2014-04-04 180 views
0

我有一个小的.wav文件,我想用MATLAB中的sound()函数来播放。我已经搞混了一点,我发现改变播放声音的采样率也会改变音高。采样率改变正弦波的音调,声音()函数,MATLAB

现在,我对音频处理的理解,虽然很脆弱,但它告诉我,改变声波的采样率不应改变声波的音高。但是,在这种情况下,我正在播放声音,而不是录制它。所以我想知道我看到的音高偏移是由于播放采样率和录音采样率之间的差异。

这是这种情况,还是我完全误解了sound()函数的工作原理?

谢谢。

-Sean

回答

2

如果你想打回来,然后48kHz采样率1kHz正弦波,你有一个正弦周期每毫秒或48个样品。现在,如果将采样率加倍到96kHz,那么相同的48个采样将以一半的时间(0.5ms)播放,并且扬声器发出的音调将是两倍频率(2kHz)。

+0

感谢您的回答。因此,这意味着要获得最准确的预录制文件播放,我需要以与录制声音字节相同的采样率播放。 – detroitwilly

+0

是的,这会给你最好的频率精度。 – jaket

+0

非常好,谢谢。 – detroitwilly