Grundlagen
FFT (Fast Fourier Transformation)
Wie der FFT-Block ein Signal vom Zeitbereich in den Frequenzbereich umwandelt, und was die wichtigsten Parameter bedeuten.
Der FFT-Block dient dazu, ein Signal aus dem Zeitbereich in den Frequenzbereich umzuwandeln. Er implementiert den Fast Fourier Transform Algorithmus, eine effiziente Methode zur Berechnung der Diskreten Fourier-Transformation (DFT). Das Ergebnis der FFT zeigt, welche Frequenzanteile mit welcher Stärke (Amplitude und Phase) im Eingangssignal vorhanden sind.
Der Block akzeptiert als Eingabe einen Stream von Abtastwerten (Samples) vom Typ Complex Float 32 (für komplexe Basisbandsignale, z.B. nach einer IQ-Demodulation) oder Float 32 (für reelle Signale). Diese Daten werden als Vektoren in Form von Blöcken abgearbeitet. Die Größe eines Blocks wird über die FFT Size eingestellt.
Das Ausgangssignal repräsentiert die jeweilige Amplitude und Phase einer bestimmten Zeitkomponente im Eingangssignal. Das Ausgangssignal wird ebenfalls in Form eines Vektors mit der Größe FFT-Size bereitgestellt.
Das Eingangssignal (im Zeitbereich) enthält potenziell viele verschiedene Frequenzkomponenten. Die FFT analysiert einen Block dieses Signals und „sortiert" die Energie des Signals in eine Reihe von Frequenz-„Bins". Jeder einzelne Wert im Ausgangsvektor wird daher Bin genannt.
Parameter
TYP: Definiert die Datentypen für Ein- und Ausgang.
Complex to Complex (c2c): Standard für komplexe Signale und
Float to Complex (f2c): Für reelle Eingangssignale. Nutzt oft die Symmetrieeigenschaft der FFT für reelle Signale aus.
FFT Size (FFT-Größe): Mit diesem Parameter wird die Anzahl der Samples, die für jede FFT-Berechnung verwendet werden, eingestellt. Er legt auch die Anzahl der Punkte im Ausgabespektrum fest. Eine größere FFT-Größe führt zu einer feineren Frequenzauflösung, während eine kleinere Größe die Rechenlast reduziert. Typische Werte sind Potenzen von 2, wie z.B. 1024, 2048 oder 4096, da diese Größen die effizientesten FFT-Algorithmen ermöglichen. Die Wahl der FFT-Größe ist ein Kompromiss zwischen Frequenzauflösung und der Zeit, die für die Berechnung benötigt wird.
Forward/Reverse (Vorwärts/Rückwärts): Dieser Wert bestimmt, ob eine Vorwärts-FFT (Zeitbereich zu Frequenzbereich) oder eine inverse FFT (IFFT, Frequenzbereich zu Zeitbereich) durchgeführt werden soll. In den meisten Anwendungen der Spektralanalyse wird die Vorwärts-FFT verwendet. Die IFFT kann beispielsweise zur Synthese von Signalen aus ihren Frequenzkomponenten oder in bestimmten Filterdesigns eingesetzt werden.
Window (Fenster): Vor der Durchführung der FFT kann auf die Eingangsdaten ein Fenster angewendet werden. Fensterfunktionen reduzieren das Phänomen des spektralen Leckens (Spectral Leakage) — ein Resultat der endlichen Betrachtung des Signals im FFT-Algorithmus, bei dem ein Teil der Energie eines Frequenz-Bins in die benachbarten Bins überläuft. Ein Vergleich der gängigen Fenster (Hamming, Hann, Blackman-Harris, Flat-Top, Kaiser) und wann welches sinnvoll ist, steht im Artikel Fensterfunktionen.
Shift (Verschiebung): Dieser optionale Parameter ist nur aktiv, wenn der Eingangsdatentyp komplex ist. Wenn „Shift" aktiviert ist, wird die Ausgabe der FFT so verschoben, dass die DC-Komponente (0 Hz) in der Mitte des Frequenzspektrums liegt. Ohne diese Verschiebung befindet sich die DC-Komponente am Anfang des Spektrums (Index 0). Die Verschiebung erleichtert die Visualisierung und Interpretation des Spektrums, da positive und negative Frequenzen symmetrisch um die Nulllinie angeordnet sind.
Num Threads (Anzahl der Threads): Dieser optionale Parameter ermöglicht die Angabe der Anzahl der Threads, die für die FFT-Berechnung verwendet werden sollen. Bei Systemen mit mehreren Prozessorkernen kann die Erhöhung der Thread-Anzahl die Berechnungszeit für sehr große FFTs deutlich reduzieren und somit die Leistung verbessern.