Was ist die maximale Frequenzauflösung für das STFT-Implementierungsspektrogramm () von Matlab?


10

Die Matlab- spectrogram()Funktion berechnet die STFT eines Signals. Es beschreibt sein NFFTArgument wie folgt:

S = SPECTROGRAM(X,WINDOW,NOVERLAP,NFFT)Gibt die Anzahl der Frequenzpunkte an, die zur Berechnung der diskreten Fourier-Transformationen verwendet werden. Wenn NFFTnicht angegeben, wird die Standardeinstellung NFFTverwendet.

Stimmt es, dass dies NFFTnur ein Kompromiss zwischen Frequenzauflösung und Anzahl der Berechnungen ist? Für meine Offline-Arbeit müssen keine Zyklen gespeichert werden. Gibt es eine Höchstgrenze für NFFTz. B. durch spektrale Leckage oder ein anderes Problem, über das ich Bescheid wissen sollte, oder kann ich dieses Argument so hoch wie möglich setzen?

Antworten:


5

Die Länge der FFT ist ein Kompromiss zwischen Frequenz und Zeitauflösung. Spektrogramme werden häufig durch Berechnung überlappender FFTs auf dem interessierenden Signal erzeugt. Wenn Sie die FFT verlängern, wird die effektive Bandbreite jedes Ausgabefachs kleiner, sodass sich die Auflösung entlang der Frequenzachse verbessert. Der einzige begrenzende Faktor für die Frequenzauflösung, die Sie erhalten können, ist die Gesamtbeobachtungszeit, die Sie aus dem Signal haben.

Gleichzeitig verringert sich jedoch Ihre Fähigkeit, eine zeitlich lokalisierte Funktion aufzulösen. Eine intuitive Möglichkeit, darüber nachzudenken, besteht darin, die FFT als komplexe Abwärtskonvertierung zu betrachten, gefolgt von einer Integrations- und Speicherauszugsoperation:

X[k]=n=0N1(x[n]ej2πnkN)

Wenn Sie es auf diese Weise betrachten, wird der Verlust der Zeitauflösung deutlicher. Das Produkt in Klammern verschiebt die Frequenz von um unten , und das resultierende Signal wird über ein Fenster von Abtastwerten integriert. Wenn es in ein Merkmal gibt , das sich nur in einer begrenzten Zeitspanne befindet, dann alsx[n]2πnkNNx[n]NWenn sie größer werden, enthalten mehr überlappende FFTs diesen Zeitraum in ihren Integrationszeitfenstern. Daher wird das Merkmal in mehr Zeilen des Spektrogrammbilds angezeigt (vorausgesetzt, die Zeit liegt entlang der Y-Achse). Wenn Sie dann die Spalten (dh die Frequenzbereiche) des Spektrogramms, in dem sich das Feature befindet, abschneiden, werden Sie einen breiteren, verschmierten Peak bemerken. Sie haben daher eine geringere Fähigkeit, den tatsächlichen Zeitpunkt des Beginns der Funktion aufzulösen.

Sie haben auch Recht, dass das Erhöhen der FFT-Länge mehr Berechnungen erfordert, die für Echtzeitanwendungen relevant sein können.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.