Forum: Digitale Signalverarbeitung / DSP / Machine Learning FFT reller Wert: Ergebnis umrechen?


von Tex (Gast)


Lesenswert?

Hallo Forum,

für eine Frequenzanalyse liefert mir ein AD-Wandler N Samples, die mit 
einer auf reale Eingangswerte optimierten FFT (fix_fft.c) ausgewertet 
werden.
Es werden dafür die Sampels mit geradem und ungeradem Index in 2 Puffern 
gespeichert und dann eine (N-1)-FFT durchgeführt. Die ungeraden Samples 
werden als imaginäre Werte und die geraden als reale Werte angesehen.
Die Ergebnisse scheinen richtig zu sein.

Was mir fehlt ist eine Umrechnungsfunktion, mit dem ich aus dem Ergebnis 
(N-Werte) die (N+1)-komplexen Zahlen für mein Spektrum bekomme.
Wer weiß wie man diese Umrechung nennt, kann sie hier posten oder hat 
einen Link? Bei den üblichen DSP-Seiten habe ich nichts dazu finden 
können.
Ich suche keinen fertigen Code, sondern die Formeln möglichst mit 
Erklärung.

Tex

von Karl (Gast)


Lesenswert?

Das ist doch eine ganz normale einseitige FFT? Einseitig wegen den 
reellen Eingangswerten, das negative Spektrum ist konjugiert komplex zum 
positiven Spektrum. Für das positive Spektrum kannst du die ganz normale 
FFT-Formel bzw. DFT-Formel nehmen.

von Tex (Gast)


Lesenswert?

Moin,

>>Das ist doch eine ganz normale einseitige FFT?
Nein, es wir eine statt einer 2048er-FFT mit Imaginäreteil = 0 eine 
1024er-FFT durchgeführt, die als Imaginärteil die ungeraden Samples 
nimmt und 1024 komlexe Zahlen errechnet.
Das Ergebnis ist deshalb symetrisch zu dem 512ten Wert, statt zu dem 
1024zigsten Wert, wie es bei der 2048er-FFT ist.

>>Einseitig wegen den reellen Eingangswerten, das negative Spektrum ist 
>>konjugiert komplex zum positiven Spektrum.
Ja, aber das Spektrum muss konjugiert komplex zum 1024zigsten Wert sein 
und nicht zum 512ten.

>>Für das positive Spektrum kannst du die ganz normale
>>FFT-Formel bzw. DFT-Formel nehmen.
Ich nehme diese FFT, weil ich damit nur die Hälfte an Speicher brauche.
Für die normale FFT ist kein Platz im RAM.

von SilentPro (Gast)


Lesenswert?

Hi,

der Thread ist zwar schon wenige Monate alt, aber evtl. dürfte die 
Lösung interessant sein für alle, die noch auf diesen Thread stoßen 
werden!

Was "Tex" mit seiner Beschreibung wohl gemeint hat, ist die "real FFT",
also eine für reale Eingangsswerte optimierte Variante der FFT.
Obwohl Tex anscheinend "die üblichen DSP-Seiten" durchsucht hat, ist ihm 
wohl nicht aufgefallen, dass diese Technik auf www.dspguide.com (bzw. in 
dem Buch, dass dort einzusehen ist) klar und ausführlich beschrieben 
wird.

Der Link zu der entsprechenden Seite:
http://www.dspguide.com/ch12/5.htm

Der Ansatz, die geraden Eingangswerte im Realteil und die ungeraden in 
den Imaginäreil eines N/2 großen Arrays zu packen, ist dabei schonmal 
richtig. Da durch die FFT hieraus zwei überlagerte Teilspektren im Real- 
und Imaginärteil werden, müssen diese mit 2 Schritten zu einem Spektrum 
vereinigt werden.

1. "Even/odd frequency domain decomposition"
Die beiden überlagerten Teilspektren werden hierbei voneinander 
getrennt.

2. "Complete the last FFT stage
Wie in der normalen FFT selbst, wird hier aus den zwei N/2-Spektren ein 
N-Spektrum erzeugt; also nochmal die ganze Butterfly-Schleife 
durchlaufen.

Das alles sollte man wohl direkt in einer gemeinsamen Funktion vereinen.
In dem Beispielcode ganz unten auf der Link-Seite (s.o.) wird das etwas 
aufgeteilt, so dass man die ganz normale FFT-Funktion einsetzen kann.
Am Ende fehlt meines Erachtens nach aber noch die Skalierung des 
Spektrums mit 1/N! Dies merkt man aber wohlerst, wenn man die Werte 
absolut betrachten oder eine inverse FFT durchführen möchte!

von Joe J. (j_955)


Lesenswert?

Hallo,

ich sitze im Moment ebenfalls an einer Aufgabe, die u.a. die FFT als 
Teilaufgabe beinhaltet. Zu dem Punkt für RFFT´s bin ich auch gekommen..@ 
Tex-könntest du vielleicht den einen oder anderen Link postn, der mich 
zu einer (einfacheren) Erklärung der RFFT führt?

Grüße und Danke

von Tex (Gast)


Lesenswert?

Nein, das kann ich leider nicht, ich habe meine Antworten in dem
Buch "FFT - Schnelle Fouriertransformation" von E. O. Brigham
gefunden. Bei einem komplexen Thema wie FFT schlägt ein gutes Buch jede
Internetseite.

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.