Berchin 的 FDLS 任意滤波器设计算法

信息处理 频率响应 无限脉冲响应 均衡
2022-02-16 20:36:56

我正在尝试使用Berchin 的 FDLS方法(对于那些不知道它是什么的人,这是一种设计 IIR 方程的任意幅度和相位的方法)

我尝试了不同的东西,但都没有给我我所问的:

  1. 我试图设计一个具有任意相位响应的全通滤波器(没有什么特别的,只是一个线性相位和 5 个点的短偏差),但它没有按计划工作。实际上我想做的是对抗 IIR 滤波器的相位变化

  2. 我尝试了一个陷波的线性相位响应,并且它没有起作用(黑色是所需的响应)12 dB

    示例图

    我使用了的采样率,点和大约的过滤器阶数。316M=15850

我是否需要使用更多点来增加过滤器阶数,或者使用该算法设计我的过滤器是不可能的?

3个回答

FDLS需要因果频率响应。您的原型频率响应处处为零相位,这绝对不是因果关系。

50 的 IIR 滤波器阶数是巨大的。当 FDLS 有太多可用的极点和零点时,它会“尝试”用多余的零点消除多余的极点。不幸的是,由于数量限制,取消通常很差。对于您的陷波滤波器,在做出响应因果后,尝试使用 2 阶或 4 阶分子和分母。

虽然(测量次数)=(系数数量)= [(分子顺序)+(分母顺序)+ 1] 在数学上就足够了,但我发现 FDLS 比这更喜欢测量。我建议绝对最小值是系数的两倍,并且更喜欢 5 倍到 10 倍。

格雷格·伯钦

我没有使用过这种技术,但是 50 的 IIR 滤波器阶数听起来非常高,并且可能容易出现数值问题。尝试从 M 和过滤器阶数的小得多的值开始,然后慢慢增加它们。您引用的论文使用M=8N=9

使用 FDLS,寻找替代解决方案的另一个参数是零点与极点的比率以及总数。IIRC,两者中的更多并不总是更好(可能出于数字原因)。