当前位置:  开发笔记 > 编程语言 > 正文

下采样并将低通滤波器应用于数字音频

如何解决《下采样并将低通滤波器应用于数字音频》经验,为你挑选了2个好方法。

我有一张来自CD的44Khz音频流,表示为16位PCM采样数组.我想把它切成11KHz的流.我怎么做?从我多年前的工程课时代开始,我就知道流不再能够准确地描述超过5500Hz的任何东西,所以我想我也想把所有东西都切掉.有任何想法吗?谢谢.

更新:此页面上有一些代码,使用简单的算法和看起来像{1,4,12,12,4,1}的系数数组,从48KHz转换为8KHz.我认为这就是我所需要的,但我需要的是4倍而不是6倍.知道如何计算这些常数吗?此外,我最终将16字节样本转换为浮点数,因此我可以使用浮点数而不是短点进行下采样,如果这有助于提高质量.



1> Nils Pipenbr..:

阅读FIR和IIR滤波器.这些是使用coefficent数组的过滤器.

如果您在"FIR或IIR过滤器设计器"上进行谷歌搜索,您会发现许多软件和在线小程序可以为您完成繁重的工作(获取系数).

编辑:

这个页面(http://www-users.cs.york.ac.uk/~fisher/mkfilter/)允许您输入过滤器的参数,并准备好使用C-Code ...



2> Mendelt..:

你是对的,你需要在你的信号上应用低通滤波.任何超过5500 Hz的信号都将出现在您的下采样信号中,但是"别名"为另一个频率,因此您必须在下采样之前删除这些信号.

用浮点数进行过滤是个好主意.还有定点滤波器算法,但这些算法通常具有可用的质量权衡.如果你有浮子然后使用它们!

使用DFT进行过滤通常是过度的,它会使事情变得更复杂,因为dft不是一个连续的过程,而是在缓冲区上工作.

数字滤波器通常有两种口味.FIR和IIR.这通常是相同的想法,但IIF滤波器使用反馈回路以更少的系数实现更陡的响应.这对于下采样可能是一个好主意,因为那里需要非常陡峭的滤波器斜率.

下采样是一种特殊情况.因为你要扔掉4个样本中的3个,所以不需要计算它们.这种称为多相滤波器的滤波器有一类特殊的滤波器.

有关更多信息,请尝试使用Google搜索多相IIR或多相FIR.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有