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.
Details zu FFT sind hier beschrieben: Fourier Transformation
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 werden verwendet, um das Phänomen des spektralen Leckens (Spectral Leakage) zu reduzieren. Spectral Leaking ist ein Resultat der endlichen Betrachtung des Signals im FFT Algorithmus und beschreibt den Effekt, dass ein Teil der Energie eines Frequenz-Bin in die benachbarten Bins überläuft.
Es gibt verschiedene Arten von Fensterfunktionen, wie z.B. Hamming-, Hann-, Blackman-Harris- oder Flat-Top-Fenster, die jeweils unterschiedliche Eigenschaften in Bezug auf Frequenzauflösung und die Unterdrückung von Nebenzipfeln (Sidelobes) aufweisen. Die Wahl des Fensters hängt von der Art des zu analysierenden Signals und den gewünschten Eigenschaften des Spektrums ab.
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.