繁体   English   中英

如何检查/更改声卡的采样率?

[英]How do I check/change my sound card's sample rate?

我正在使用 XAudio2 将 PCM 格式的波发送到我的声卡,我遇到了一个让我想到这个问题的问题。 我用 440 Hz 正弦波的 MATLAB 创建了一个 .csv 文件,起初我以 1 KHz(1 秒)对其进行采样。

然后我的 C++ 程序将加载该文件并将缓冲区发送到声卡。 问题是 output 失真(削波),听起来根本不像正弦波。 然后我想,也许声卡不喜欢 1 kHz 的采样率,所以我加倍了,突然一切都好了。

有没有办法确认这确实是问题所在?

1kHz 采样率下的奈奎斯特频率仅为 500Hz。 我一点也不惊讶它听起来很糟糕。 假设你有一个 1kHz 的采样率并且你播放了一个 500Hz 的声音。 您的 output 将是方波。 - + - + - + 中间没有任何内容,因为您没有足够的样本。 当您接近奈奎斯特频率时,复制该波的能力下降。 在如此低的频率下可以听到。

无论如何,以如此低的采样率将您的声卡安装到 go 是不太可能的。 更有可能是软件驱动程序正在为您重新采样,并且谁知道会抛出什么样的工件。

尝试做一些更合理的事情,比如至少 11.025Hz。 这是 44.1kHz(“CD”采样率)除以 4,许多声卡直接支持。 几乎所有的卡都应该做到 22.05kHz。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM