2014-04-04 174 views
0

我有一個小的.wav文件,我想用MATLAB中的sound()函數來播放。我已經搞混了一點,我發現改變播放聲音的採樣率也會改變音高。採樣率改變正弦波的音調,聲音()函數,MATLAB

現在,我對音頻處理的理解,雖然很脆弱,但它告訴我,改變聲波的採樣率不應改變聲波的音高。但是,在這種情況下,我正在播放聲音,而不是錄製它。所以我想知道我看到的音高偏移是由於播放採樣率和錄音採樣率之間的差異。

這是這種情況,還是我完全誤解了sound()函數的工作原理?

謝謝。

-Sean

回答

2

如果你想打回來,然後48kHz採樣率1kHz正弦波,你有一個正弦週期每毫秒或48個樣品。現在,如果將採樣率加倍到96kHz,那麼相同的48個採樣將以一半的時間(0.5ms)播放,並且揚聲器發出的音調將是兩倍頻率(2kHz)。

+0

感謝您的回答。因此,這意味着要獲得最準確的預錄製文件播放,我需要以與錄製聲音字節相同的採樣率播放。 – detroitwilly

+0

是的,這會給你最好的頻率精度。 – jaket

+0

非常好,謝謝。 – detroitwilly