如何正确设计数字 FIR 滤波器?

问题描述 投票:0回答:2

我想设计一系列针对超声波信号的最佳滤波器。滤波器阶数固定为 16,我希望滤波器具有一系列范围的通带,即(16kHz-38kHz、17kHz-39kHz 等)。我一直在使用 Matlab 的滤波器设计器,并尝试以反复试验的方式进行不同的设计输入。我可以使用什么方法来找到最佳滤波器设计算法(Remez、最小窗口或其他算法),而不是随意将输入扔到墙上然后看看什么看起来最好(我正在寻找一个在阻带中衰减最好的滤波器,并且考虑到我的滤波器阶数限制,通带中具有平坦的频率响应)。

matlab signal-processing digital-filter
2个回答
0
投票

16 个抽头对于 FIR 滤波器来说并不算多,所以我怀疑任何设计是否都能获得令人满意的结果。也就是说,我建议尝试 Remez,又名 Parks-McClellan 最佳 FIR 滤波器设计。请参阅 Matlab 的 firpm 函数。 Remez 算法设计的 FIR 滤波器在最小化最大逐点误差的意义上是“最优的”。 Anthor 关于 Remez 的补充是,它允许在每个频段上设置不同的重要性,这对于平衡通带平坦度与阻带衰减之间的权衡很有用。


0
投票

查看这个 GitHub 存储库,它是一个开源软件(也可作为桌面应用程序使用),可促进多频带 FIR、线性相位数字滤波器的设计。它创建最佳 FIR 滤波器(最小二乘法),并具有许多功能,例如自动生成 MATLAB 代码、绘图进行分析和延迟/性能测量。

© www.soinside.com 2019 - 2024. All rights reserved.