首页 > 代码库 > 音频重采样

音频重采样

随着数字信号处理理论和算法的发展,多抽样率信号处理在多媒体 信号处理领域显得越来越重要。为了减少计算复杂度和存储复杂度,采样速率转换技术是十分必要的,音频重采样算法可以用来实现音频信号任意采样速率之间的转 换。 本文首先简要介绍了多抽样率信号处理的基本概念和原理,设计了三种音频重采样算法,分别是基于线性插值的音频重采样算法、基于拉格朗日插值的音频重采样算 法以及基于正弦插值的音频重采样算法,并用这三种算法实现了音频信号的重采样。线性插值基于插值点相邻两点的幅值来线性计算插值点的具体幅值,拉格朗日插 值是利用拉格朗日插值多项通过设置好长度的窗口来计算插值点的具体幅值,正弦插值是用三角多项式通过预先设置好长度的窗口来求得插值点的幅值。本文实现了 所设计的三种算法,这些算法可实现任意采样速率之间的转换,并支持上采样和下采样。 在音频信号转换时间开销、信噪比和段信噪比等方面的测评结果表明所设计的三种算法既可以保证较高的重构信号质量,同时还具有较高的转换效率。

什么是重采样呢?因为符合AC97标准的声卡最后输出采样频率都定在48000Hz,而CD的音频是44100Hz的,从CD转换过来的MP3等大多部格 式也是44100Hz的,也就是说在这种类型的声卡上,在数字信号转成模拟信号之前,还要对采样频率做一次转换。转换的效果取决于声卡驱动程序,然而大多 数取程为了提高性能,都采用比较一般的重采样算法。这时候,我们就可以尝试用foobar2000提供的重采样功能了。在“参数设置”窗口里点击左边目录 树上的“回放->DSP Manager”,然后在右边的“可用的DSP”列表里选中并双击“重采样(SSRC)”,这样“重采样(SSRC)”便出现在“当前使用的DSP”列表 中。接着,点击左边目录树中的“重采样”项(注意,不是“重采样PPHS”),在“目标采样频率”中选择适当的频率。在这里,推荐SB16、AWE32、 AWE64和其他类似的ISA声卡选44100Hz;SB PCI、SB Live、Audigy、Philips AE、Sonic Fury和Yamaha 7x4等声卡选48000Hz;而像Audigy2和Terratec(德国坦克)等一些真正支持96khz的声卡,选则96000Hz。设置完毕后,按 “全部保存”按钮即可。对于一般品质的声卡和音箱来说,重采样的效果或许并不明显,但对于高级音频发烧友来说,重采样还是必需的。

 

正认识设置“重采样”

Intel在制定AC‘97标准时为了解决单CODEC解码多音频流问题而规定了输入输出的采样频率都必须是48KHz,如果输入或 输入出的采样率不是48KHz,播放的音频质量将会受到影响(如CD的标准采样就是44.1KHz)。因此,现在很多播放器都提供了“重采样”设置,当播 放器在播放不符合Intel规定的标准采样率时,就可以通过“重采样”来将不规则的采样率强化转换成48KHz。