Hallo
ich hab auch ma versucht mit Labview eine simple FFT von einem simulierten Signal generieren zu lassen.
Von meinem geringen Verständnis her erwarte ich, im Graph mit dem Spektrum den Amplitudenwert mit der halben Sinusamplitude zu finden. Aber irgendwie ist dem überhaupt nicht so. Kann mir einer sagen warum?
[
attachment=28127]
Das ist mir bekannt, aber warum das so ist, darüber habe ich nie nachgeforscht, weil das Problem so einfach zu lösen ist:
Das unendlichfach komfortablere VI "FFT-Spektrum (Betrag-Phase)" mit Waveform-Eingang verwenden.
Im FFT-Spekrum hat man dort allerdings nicht die Amplituden, sondern die Effektivwerte.
Dein Zeitverlauf besteht aus einer genau ganzzahligen Anzahl von Perioden. Deshalb muß man nicht Fenstern (Window = Rechteck) und man findet im FFT-Spektrum genau die richtigen Effektivwerte.
[
attachment=28128]
Wenn ich dieses Detail richtig in Erinnerung habe, ist die Erklärung dafür die folgende:
Dieses sehr urige FFT VI führt keine Amplitudennormierung über die Anzahl der Abtastwerte durch. Die Indikation für eine solche Normierung erahnt man ja schon, wenn man sich die Formel der DFT aus den Hilfe anschaut: Je größer N (Anzahl Abtastwerte) desto größer wird auch Yk (FFT-Ergebnis).
Wenn man in deinem Beispiel Fs und #s um zwei 10er Potenzen erhöht, hat man plötzlich die richtige Amplitude. Wie man selbst normiert weiß ich nicht ... müsste man recherchieren.
Fazit: Bei Verwendung dieses urigen VIs darf man auf den absoluten Amplitudenwert nix geben. Interessant und richtig ist nur das relative Verhältnis der Amplituden zueinander -> qualitative statt quantitative Betrachtung!
Das von Lucki vorgeschagene VI (welches ich auch immer verwende) scheint diese Normierung implementiert zu haben.
ok, danke Lucki
. Hier sind die Spiegelfrequenzen schon "entfernt" worden, so wie ich das sehe.
Die Effektivwerte könnte man ja in Amplituden umwandeln indem man das Ergebnis mit Wurzel 2 multipliziert.
Danke auch Dimitri für die Erklärung.
Ich hab auch noch was beizutragen:
Das "urige" VI funktioniert anscheinend dann, wenn man das Ergebnis der FFT durch die Anzahl der Samples teilt. Allerdings hat man dann noch die blöden Spiegelfrequenzen. Die Idee ist jetzt, dass man alle Werte bis auf den ersten mit 2 multipliziert, dann hätte man die Effektivwerte. Jetzt müsste man noch das Array mit den Datenpunkten in der Mitte halbieren - glaube ich...dann passts wahrscheinlich auch.
Das einfache FFT funktioniert auch bei Frequenzgangmessungen problemlos: Frequenzgang = Ausgangsspektrum / Eingangsspektrum. Wenn man das FFT für Eingangs- und Ausgangs- Zeitverlauf verwendet und dann dividiert, ist kürzen sich die "willkürlichen" Amplituden heraus.