我正在試圖爲Qt中的聲音數據繪製合適的聲譜圖。現在我可以繪製一個非常漂亮的頻譜圖,它的fft窗口長度爲1024,重疊數據長度爲976.但是,通常使用小窗口長度來繪製頻譜圖,例如256,這會給我一個更好的時間分辨率。但是,當我將窗口長度縮小到256時,我會在譜圖中看到空行。我知道縮短窗口長度會導致FFT的低頻分辨率,但爲什麼其他程序的頻譜圖中沒有空行。我做錯了什麼或者這個結果是否正常?爲什麼減少窗口長度會導致譜圖中出現空行?
以下是我用來獲取聲譜圖的主要步驟: - 從聲音文件中獲取數據。 -FFT在第一窗口(hanning)。 (幅度= sqrt(re^2 + im^2)) - 將幅度轉換爲對數刻度(dB)幅度_dB = 20 * log10(幅度) - 繪製第一列通過擴展頻譜數據,將其固定到列 -move窗口48個樣品,進行下一步操作頻譜..
你可以看到這些屏幕截圖的問題: window length 1024 window length 256
(順便說一句我目標是製作一個可以識別語音數據中的電話的程序。使用FFTW庫)
我真的很感謝你能提供任何幫助。
問問於:http://dsp.stackexchange.com/ – motiur