Fast Fourier Transform (FFT), schnelle Fourier-Transformation

Was ist eine FFT?

Eine schnelle Fourier-Transformation (FFT) ist eine hochoptimierte Implementierung der diskreten Fourier-Transformation (DFT), die diskrete Signale von der Zeit- in die Frequenzdomäne umwandelt. FFT-Berechnungen liefern Informationen über die Frequenz-Zusammensetzung, die Phase und andere Eigenschaften eines Signals.

Durch FFT in seine Frequenzkomponenten aufgeschlüsseltes Audiosignal von Blauwalgesängen. (Siehe MATLAB-Beispielcode)

Zu den gängigsten FFT-Algorithmen gehören der Cooley-Tukey-Algorithmus, der Primfaktor-FFT-Algorithmus und der Rader FFT-Algorithmus. Der am häufigsten verwendete FFT-Algorithmus ist der Cooley-Tukey-Algorithmus, der eine große DFT in kleinere DFTs zerlegt, um die Rechengeschwindigkeit zu erhöhen und die Komplexität zu verringern. FFTs findet in vielen Bereichen Anwendung.

Anwendungen für FFTs

In der Signalverarbeitung bildet die FFT die Grundlage der Frequenzdomänen-Analyse (Spektralanalyse) und wird zur Signalfilterung, Spektralschätzung, Datenkomprimierung und für andere Anwendungen eingesetzt. Durch Varianten der FFT wie etwa die Kurzzeit-Fourier-Transformation ist auch eine simultane Analyse in der Zeit- und Frequenzdomäne möglich. Diese Verfahren können auf eine Vielzahl von Signalen angewandt werden, etwa auf Audio- und Sprachsignale, Radarsignale, Kommunikationssignale und andere Datensignale von Sensoren. Die FFT wird manchmal auch als Zwischenschritt für komplexere Signalverarbeitungs-Verfahren verwendet.

In der Bildverarbeitung wird sie beispielsweise zur Filterung und Komprimierung von Bildern eingesetzt. Darüber hinaus wird die FFT in der Physik und Mathematik zur Lösung partieller Differentialgleichungen (PDEs) herangezogen.

FFTs in MATLAB

MATLAB® bietet viele Funktionen wie fft, ifft und fft2, mit denen FFTs direkt implementiert werden können. In MATLAB ist die Implementierung von FFTs dadurch optimiert, dass je nach Datenumfang und Rechenaufwand verschiedene FFT-Algorithmen zur Auswahl stehen. Ebenso bietet Simulink® Blöcke für FFTs, die beim Model-Based Design und in Simulationen verwendet werden können. MATLAB und Simulink unterstützen außerdem die Implementierung von FFTs auf spezifischer Hardware wie FPGAs, Prozessoren (auch ARM) und NVIDIA-GPUs durch automatische Codegenerierung.

Die untenstehenden Funktionen und Beispiele geben Ihnen weitere Informationen über Fourier-Transformationen, deren Anwendungsmöglichkeiten sowie Implementierungen von FFTs mit MATLAB.

FFT-Beispiele in MATLAB Online ausführen

Entfernung von Signalrauschen mit FFTs

Einführung in FFTs und die Frequenzdomänen-Analyse

Schätzung der spektralen Leistungsdichte mit FFTs

Hardware-Implementierung von FFTs

Die Implementierung von FFTs auf programmierbaren Logikbausteinen ist nicht so einfach wie deren Software-Implementierung. Falsche Entscheidungen zu technischen Kompromissen bezüglich Geschwindigkeit und Genauigkeit, aber auch ineffizienter Code, können die Qualität und Leistung einer Anwendung erheblich beeinträchtigen. Mit den Codegenerierungs-Tools für MATLAB und Simulink lassen sich FFTs auf einfache Weise auf verschiedenen Hardwaregeräten implementieren, von Allzweckprozessoren wie ARMs bis hin zu spezialisierten Chips wie FPGAs.

Siehe auch: MATLAB und Simulink in der Signalverarbeitung, MATLAB für Bildverarbeitung und Computer Vision, MATLAB und Simulink für Radarsysteme, Signal Processing Toolbox, Audio Toolbox, Radar Toolbox

Panel Navigation
Entwurf von Leistungselektronik-Reglern

Tutorial zur Signalverarbeitung

Gratis-Tutorial zu Signalverarbeitungs-Verfahren für die Spektralanalyse