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
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.
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.
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!
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.