是否存在一种离散低通滤波器算法,它对于高阶(例如大于 10)低通滤波器的计算效率比 IIR 巴特沃斯滤波器系列等直接方法要高得多?
更好的高阶低通滤波器?
信息处理
离散信号
低通滤波器
2022-02-20 14:33:38
2个回答
您可以使用累积求和实现非常有效的高阶低通滤波器。理论如下。完美积分器具有递归定义
如果您将输出的延迟差设为
您正在实现一个长度为的 boxcar 过滤器,这可以从显式解析 ]中的递归中看出:
这意味着您有一个有效阶的低通滤波器,每个样本只需一次加法和一次减法。
当然,棚车只在一定程度上有用。但同样的想法可以推广 到更大类别的滤波器,并在滤波器形状和计算量之间进行权衡。这是通过连接几个积分差分级来完成的。
两个串联将产生三角形脉冲响应,三个将产生抛物线响应,依此类推。每个阶段都将输出与另一个 boxcar 进行卷积。在频域中,原始 sinc() 形状的响应取 n 次方(或者,如果不同阶段的延迟长度不同,则乘以其他不同比例的 sinc)。
但是时域和频域中的响应序列都表现得非常可预测,因为统计的中心极限定理预测时域响应很快接近高斯分布。并且因为高斯的傅里叶变换也是高斯的,所以只需几个阶段,您就可以很好地近似高斯频率响应低通滤波器。
关于数值精度的一个注释。因为您正在积分,延迟缓冲区的内容可能会变得非常大,并且差异精度会受到影响。这可以通过使积分器泄漏来解决,这样它就不会将常数函数累积到无穷大。泄漏积分器差分方程为
对于一些足够小的正。
取决于您对低通滤波器的要求。对于任何需要陡峭的东西,IIR 滤波器都是不错的选择。通常,您使用椭圆滤波器获得最低阶数:您可以权衡通带纹波、阻带衰减和陡度。假设您想要一个音频(采样率 = 44100 Hz)滤波器,它在 1kHz 时下降不超过 1 dB,但在 2 kHz 及以上时下降不超过 60 dB。使用大约需要 11 阶的巴特沃斯。您可以使用 5 阶椭圆滤波器获得相同的结果。将通带纹波降低到 0.1dB 会将椭圆阶数增加到 6。
其它你可能感兴趣的问题