Qual é a resolução de frequência máxima para o espectrograma de implementação STFT da Matlab ()?

10

A spectrogram()função do Matlab calcula o STFT de um sinal. Ele descreve seu NFFTargumento da seguinte maneira:

S = SPECTROGRAM(X,WINDOW,NOVERLAP,NFFT)especifica o número de pontos de frequência usados ​​para calcular as transformadas discretas de Fourier. Se NFFTnão for especificado, o padrão NFFTserá usado.

Estou correto, pois NFFThá uma troca apenas entre resolução de frequência e número de cálculos? Para o meu trabalho offline, não há necessidade de salvar ciclos. Existe algum limite máximo para NFFT, imposto, por exemplo, por vazamento espectral, ou qualquer outro problema que eu deva conhecer, ou posso definir esse argumento o mais alto possível?

Andreas
fonte

Respostas:

5

A duração da FFT é uma troca entre resolução de frequência e tempo. Os espectrogramas são frequentemente gerados calculando FFTs sobrepostas no sinal de interesse. Se você prolongar a FFT, a largura de banda efetiva de cada compartimento de saída ficará menor, para melhorar a resolução ao longo do eixo da frequência. O único fator limitante para a resolução de frequência que você pode obter é o tempo total de observação que você possui do sinal.

Ao mesmo tempo, no entanto, sua capacidade de resolver um recurso localizado no tempo diminui. Uma maneira intuitiva de pensar sobre isso é visualizar a FFT como uma conversão descendente complexa seguida por uma operação de integração e despejo:

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

x[n]2πnkNNx[n]N

Você também está certo de que aumentar a duração da FFT exige mais cálculos, o que pode ser relevante para aplicativos em tempo real.

Jason R
fonte