audio - 具有特定截止频率的低通和高通滤波器

标签 audio filtering frequency lowpass-filter highpass-filter

如果要通过以下代码在数字样本数组上实现低通滤波器,其中original是数据的原始数组,new是过滤后的数据数组,c是某个常数:

new[0] = original[0];
for(int i=1; i<original.length; i++){
    new[i] = new[i-1] + c * (original[i] - new[i-1]);
}

或将第三行替换为的高通滤波器:
new[i] = c * (new[i-1] + original[i] - original[i-1]);
c和每个截止频率之间的关系是什么?

最佳答案

这两个滤波器都是单极无限冲激响应(IIR) filters

IIR滤波器在连续时域中具有类似物(例如简单的LC和RC电路)。分析通常从所需的传递函数H(ω)开始-使用z-tranform转换为离散时间。稍作重新排列,将产生一个方程,您可以求解该方程的滤波器系数。 [H(ω)在截止频率处为-3dB]。

该 Material 通常在电子工程学位的第一和第二学年授课,因此将提供大量在线和免费的课件。您将需要随附的纯数学类(class)。

许多实用的过滤器设计证明是不可分析的(或至少很难做到)。一种常见的进行方法是数值求解。
MATLAB是许多人的首选工具。 NI LabView也有一个滤波器设计器。都不便宜。

单极点滤波器很容易解决。 this可能有帮助。如果要设计更复杂(或更高级)的过滤器,还可以使用各种在线filter solvers

关于audio - 具有特定截止频率的低通和高通滤波器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30954044/

相关文章:

python - Python中的时变带通滤波器

c++ - 将一维数组转换为重叠的二维数组

iphone - ipod网页可以播放音频吗?

audio - 更改音频元素的src属性不起作用

arrays - 涉及数组和具有数组成员的对象的复杂过滤

scala - Scala 2.10.1 中的新脱糖行为

matlab - 如何绘制传递函数数组的波特图?

qt - 为什么麦克风关闭时基本频率和幅度不为零?

matlab - 获取麦克风的频率响应

python - 如何获得完美的音频时序