2015-11-03 87 views
1

我正在開發一個實時聲音頻譜分析儀應用程序在Linux上的C++和我使用FFT來計算幅度。該應用通過連接到PC的簡單便宜的麥克風獲取聲音。爲什麼我的電腦沒有檢測到正確的聲音頻率?

我試着用在線聲音發生器測試應用程序,只需在揚聲器上播放生成的聲音,我注意到它總是顯示播放聲音的一半頻率。例如。如果我生成440Hz的聲音,它會將其檢測爲〜220Hz。

起初我以爲我只是做了一些錯誤的計算,但後來我試着用其他可以測量頻率的應用程序(例如gtkguitune)進行測試。我注意到同樣的事情!即使這些應用程序總是隻會顯示揚聲器上正在生成的實際聲音的一半。

有沒有人有任何解釋爲什麼會這樣?

+0

什麼是您的FFT採樣頻率? – paisanco

+0

通過問題快速掃描,「頻率」和「一半」這兩個字讓我想起採樣方面的[奈奎斯特頻率](https://en.wikipedia.org/wiki/Nyquist_frequency),但我不確定這是問題。可能值得分享你從麥克風採樣的實現,然後執行FFT –

+0

@paisanco我的聲音採樣率是44100,我的FFT採樣率是1470(44100/1470 = 30,即我在一秒鐘內FFT 30次)。我對音頻處理和DSP一般都很陌生,所以我不知道如果這太多/太少等。 – IanDess

回答

4

聽起來像它可能是立體聲樣本解釋爲單聲道。

相關問題