2013-05-20 68 views
1

我正在試圖爲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庫)

我真的很感謝你能提供任何幫助。

+0

問問於:http://dsp.stackexchange.com/ – motiur

回答

0

較短的FFT長度的較低分辨率也意味着每個FFT結果倉的較寬的帶寬。因此,光譜圖需要較粗的行線以覆蓋每行的較寬帶寬以填充圖中各行之間的間隙。

+0

感謝您的回覆,我嘗試過,並擴展了頻率箱,它的價值超過了空箱。看起來更好。但是我想確定,這是製作窄帶譜圖的正確方法嗎?結果如下:http://img23.imageshack.us/img23/8788/256ext.png Motiur Ra​​hman,感謝您的建議,我會檢查它。 – rottenclover

相關問題