Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Ich lese aus einer WAV-Datei die Daten ein und möchte diese über eine FFT bezüglich der Frequenzen analysieren. Dazu nutze ich das FFT.VI
Als Ergebnis erhalte ich einen 1-D-Array mit komplexen Zahlen, die ich mir nach Real- und Imaginärteil aufsplitten lasse.
Wie kann ich daraus Frequenz und dazugehörige Amplitude gewinnen?
Hallo,
der 0. Wert im Array ist ist der Gleichstromwert des Signals.
Falls die Gesamtabspieldauer T berägt, dann ist der erste Frequenzwert im ersten Arrayelement f=1/T.
Im zweiten Arrayelemente ist die Amplitude von 2/T.
Beispiel:
Gesamtabspielzeit der Wave-Datei ist 20 sec.
0. Arrayelement = Amplitude des Gleichstroms
1. Arrayelement = Amplitude von 1/20 Hz (0.05 Hz).
2. Arrayelement = Amplitude von 2/20 Hz (0.1 Hz).
3. Arrayelement = Amplitude von 3/20 Hz (0.15 Hz).
usw.
:!: Ah! Na klar, der Realteil gibt die Amplitude bei entsprechender Frequenz wieder, der Imaginärteil die Phase, richtig?
Mein Problem war, dass ja normalerweise eine FFT eine Funktion in Abhängigkeit der Frequenz wiedergibt und ich nicht wusste, wo diese in der Lösung durch FFT.VI zu finden ist. Nun ist mir das klar!
das mit dem Real und Imagiäteil ist noch nicht ganz richtig.
Der Realteil der FFT ist die Cos- Komponente, der Imaginärteil die negative Sinus-Komponente des Zeitsignals.
Man muß die Spekren ins Polarkoordinatenformat bringen und danach den Winkel negieren.
Ein entsprechendes Beispiel ist im Anhang. In diesem Beispiel sind bei manchen Frequenzen die Amplituden in der Größenornung von 10E-17.
Diese Werte sind Rundungsfehler der FFT. Die Phasen für diese winzigen Amplituden sind dann praktisch ohne Bedeutung.