Berapa resolusi frekuensi maksimal untuk spektrogram implementasi STFT Matlab ()?

10

spectrogram()Fungsi Matlab menghitung STFT dari suatu sinyal. Ini menjelaskan NFFTargumennya sebagai berikut:

S = SPECTROGRAM(X,WINDOW,NOVERLAP,NFFT)menentukan jumlah titik frekuensi yang digunakan untuk menghitung transformasi Fourier diskrit. Jika NFFTtidak ditentukan, default NFFTdigunakan.

Apakah saya benar karena NFFThanya trade-off antara resolusi frekuensi dan jumlah perhitungan? Untuk pekerjaan offline saya, tidak perlu menyimpan siklus. Apakah ada batas maksimum untuk NFFT, yang diberlakukan misalnya oleh kebocoran spektral, atau masalah lain yang harus saya ketahui, atau dapatkah saya menetapkan argumen setinggi mungkin?

Andreas
sumber

Jawaban:

5

Panjang FFT adalah pertukaran antara frekuensi dan resolusi waktu. Spektrogram sering dihasilkan dengan menghitung FFT yang tumpang tindih pada sinyal yang diinginkan. Jika Anda membuat FFT lebih lama, maka bandwidth efektif dari setiap nampan keluaran menjadi lebih kecil, sehingga resolusi di sepanjang sumbu frekuensi meningkat. Satu-satunya faktor pembatas untuk resolusi frekuensi yang dapat Anda peroleh adalah total waktu pengamatan yang Anda dapatkan dari sinyal.

Namun, pada saat yang sama, kemampuan Anda untuk menyelesaikan fitur yang terlokalisasi dalam waktu berkurang. Cara intuitif untuk memikirkan hal ini adalah dengan memandang FFT sebagai konversi turun yang kompleks diikuti oleh operasi integrasi-dan-dump:

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

x[n]2πnkNNx[n]N

Anda juga benar bahwa menambah panjang FFT memang membutuhkan lebih banyak perhitungan, yang mungkin relevan untuk aplikasi waktu nyata.

Jason R
sumber