Forum: Digitale Signalverarbeitung / DSP / Machine Learning FFT beim Blackfin 532


von Ahmet (Gast)


Lesenswert?

Hallo!

Versuche gerade eine FFT mit dem Blackfin 533 von Analog Devices.
Hier die Funktion:

void rfft_fr16 (  const fract16   input[],
    complex_fract16  temp[],
    complex_fract16  output[],
    complex_fract16  twiddle_table[],
    int    twiddle_stride,
    int    fft_size,
    int    block_exponent,
    int    scale_method );

Das klappt auch soweit. Nach der Ausführung möchte ich das Spektrum 
plotten, dass sich in output befindet. Muss ich die Werte in diesem Feld 
vorher konvertieren von complex_fract16 nach short, oder was muss ich da 
machen?

Danke für eure Hilfe!!!!

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Kommt drauf an was du plotten willst - Betrag, Phase, Realteil, 
Imaginärteil... wie man die aus complex_fract16 bekommt steht in der 
Dokumentation der Bibliothek.

von Ahmet (Gast)


Lesenswert?

Erstmal danke für die schnelle Antwort Andreas.

Ich hatte gehofft eine Darstellung wie auf einem Spektrumanalysator zu 
erhalten, wenn ich das Feld output plotte.  Brauche ich dafür nicht den 
Realteil und den Imaginärteil der komplexen Zahl?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Der Betrag dürfte das sein was du suchst, um den zu berechnen gibt es 
die Funktion cabs_fr16:
1
fract16 output_abs[fft_size];
2
3
...
4
  output_abs[i] = cabs_fr16(output[i]);
5
...

von Ahmet (Gast)


Lesenswert?

Super und vielen Dank.

Werde es gleich ausprobieren.
Falls ich etwas für Dich tun kann würde ich mich freuen.
Ahmet

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.