Quelle est la résolution de fréquence maximale pour le spectrogramme d'implémentation STFT de Matlab ()?

10

La spectrogram()fonction de Matlab calcule le STFT d'un signal. Il décrit son NFFTargument comme suit:

S = SPECTROGRAM(X,WINDOW,NOVERLAP,NFFT)spécifie le nombre de points de fréquence utilisés pour calculer les transformées de Fourier discrètes. Si NFFTn'est pas spécifié, la valeur par défaut NFFTest utilisée.

Ai-je raison de dire que NFFTc'est un compromis uniquement entre la résolution de fréquence et le nombre de calculs? Pour mon travail hors ligne, il n'est pas nécessaire de sauvegarder les cycles. Y a-t-il une limite maximale NFFTimposée, par exemple par une fuite spectrale, ou tout autre problème que je devrais connaître, ou puis-je définir cet argument le plus haut possible?

Andreas
la source

Réponses:

5

La longueur de la FFT est un compromis entre la fréquence et la résolution temporelle. Les spectrogrammes sont souvent générés en calculant des FFT qui se chevauchent sur le signal d'intérêt. Si vous rallongez la FFT, la bande passante effective de chaque bac de sortie diminue, de sorte que la résolution le long de l'axe des fréquences s'améliore. Le seul facteur limitant à la résolution de fréquence que vous pouvez obtenir est le temps total d'observation que vous avez du signal.

En même temps, cependant, votre capacité à résoudre une caractéristique localisée dans le temps diminue. Une façon intuitive de penser à cela est de voir la FFT comme une conversion descendante complexe suivie d'une opération d'intégration et de vidage:

X[k]=n=0N-1(X[n]e-j2πnkN)

X[n]2πnkNNX[n]N

Vous avez également raison de dire que l'augmentation de la longueur de la FFT nécessite plus de calculs, ce qui pourrait être pertinent pour les applications en temps réel.

Jason R
la source