2016-01-16 38 views
1

我正在運行FFT算法來檢測在吉他上彈奏的音符。用於吉他音符檢測的採樣頻率的最佳值

我感興趣的頻率範圍是65.41Hz(C2)到1864.7Hz(A#6)。

如果我將輸入的採樣頻率設置爲16KHz,則FFT的輸出將線性產生從0Hz到16KHz的N個點。我感興趣的所有輸入都會在第一個N/8點左右。其他N * 7/8分對我來說沒有用處。他們實際上正在減少我的決議。

根據奈奎斯特理論(https://en.wikipedia.org/wiki/Nyquist_frequency),所需採樣頻率僅爲人們希望的最大頻率的兩倍。在我的情況下,這將是大約4KHz。

4KHz真的是吉他調音應用的理想採樣頻率嗎?

直觀上,人們會感覺更好的採樣頻率會給你更準確的結果。但是,在這種情況下,採樣頻率似乎越低,對於提高分辨率越好。問候。

回答

0

是的,如果你感興趣的是頻率高達2kHz,那麼你只需要4kHz的採樣頻率。這應該在ADC或任何下變頻器的前面包括一個抗混疊濾波器,以防止任何更高頻率的分量混疊到較低的頻率。

如果您只對特定頻率感興趣(一個或兩個),那麼您可能需要查看比單頻率FFT更高效的Goertzel算法。而且,可以使用線性調頻Z變換來有效地獲得縮放的FFT(導致在較小的帶寬上獲得較高的分辨率,而沒有具有相同分辨率的FFT的計算複雜度)。您可能想要退房this CZT tutorial

+0

另一個竅門是看階段。如果我們知道我們正在使用具有少量諧波的單個音調,那麼我們不需要很多FF​​T。假設我們希望獲得接近440A的某個音調的確切頻率。假設我們在FFT中有一個[400,500)Hz的bin。這很粗糙,對吧?但只要是440組件是* *僅在該倉的內容,我們可以做到這一點:我們可以看看這是什麼斌*階段*是幹什麼的,從一個FFT窗口下一個:相位爬行哪種方式和多快。通過觀察階段,我們可以將其解決爲443 Hz或其他任何情況。 – Kaz

3

您正在混淆吉他音符的音高與頻譜頻率。吉他會以比所演奏音符的音高更高的頻率產生大量泛音和諧音。那些高次諧波和泛音,在某些情況下超過可能弱的基本頻率,是人耳聽到和解釋爲較低的感知音高。

在4 kHz採樣之前,2 kHz左右或以上的不完全低通濾波器的任何泛音和諧波都會導致混疊,從而損壞採樣數據及其頻譜。

如果要創建精確的調諧器,請使用音調估計算法,而不要使用FFT峯頻點估計器。根據您選擇的音高估計方法,每單位時間更高的樣本密度可能會在背景噪音或更迅速的響應下實現更精確或更高的可靠性。

1

4KHz真的是吉他調音應用的理想採樣頻率嗎?

如果你這樣問,你一直在誤讀奈奎斯特定理。

f_sample > 2*f_max http://latex.codecogs.com/png.download?%24f_%5Ctext%7Bsample%7D%3E2%20f_%5Ctext%7Bsignal%2Cmax%7D%24

指出採樣頻率的兩倍的最大信號頻率以上將讓你完美地重建原始的信號。所以沒有「理想」的頻率。只是一組足夠的頻率。什麼是理想因此取決於很多其他的東西:主要是,你的數字化真的支持(提示:大多數聲卡可以做到44.1,但不爲4kHz),你想爲過濾器等什麼樣的緣以及您可以花費什麼樣的處理能力(提示:現代智能手機,PC甚至袖珍計算器實際上並沒有實時處理幾百kHz的困難時間)。

另請注意,@ hotpaw2是正確的,諧波很重要,是基音頻率的倍數。

但是,在這種情況下,似乎具有較小的採樣頻率更適合提高分辨率。

沒有。不管從哪裏來,都是錯的。信息理論的首要結果是根據更多的信息,你不能做出更糟糕的估計。過採樣信號只是關於同一信號的更多信息。