模拟滤波器原型直接形成二阶级联

信息处理 过滤器设计 低通滤波器 无限脉冲响应
2022-02-03 20:23:12

我最近一直在使用 Faust 编程语言来试验 DSP,并且我一直在研究他们对椭圆 (Cauer) 低通滤波器的实现。这是一个具有三阶过滤器的示例。

如果您不熟悉浮士德,希望那里的示例仍然相当清楚:他们设计了一个具有评论中列出的属性的三阶 Cauer 过滤器,并将其实现为二阶直接形式的过滤器,馈送到一阶直接使用列出的系数形成滤波器。

我了解他们[z,p,g] = ncauer(Rp,Rs,3);在 Matlab/Octave 中设计的模拟原型,并且我认为我对如何将传递函数分解为级联的一阶和二阶滤波器有很好的理解。我不明白的是他们poly在 Octave 中使用来找到那里的系数,为什么这个椭圆滤波器的频率只受最终一阶滤波器中的最后一个系数控制?直观地说,似乎更多的这些系数应该取决于滤波器的频率,尤其是在我们必须考虑多个采样率的情况下。他们是否在这里跳过了一些步骤或做出了一些我遗漏的假设?对我的困惑的任何解释将不胜感激,谢谢!

更新:我发现有趣的是,在 Matlab/Octave 中,我可以计算[z,p,g] = ncauer(0.2,60,3); sos=zp2sos(z, p, g)、导出二阶部分的系数,而无需指定截止频率。也许这就是我最困惑的地方?

1个回答

函数中的系数是归一化连续时间传递函数lowpass3()的两个部分(一阶和二阶)的分子和分母系数。连续时间传递函数如下所示:

(1)H(s)=b21s2+b11s+b01s2+a11s+a011s+a02

请注意,这个归一化滤波器的截止频率为1. 这两个函数tf2s并使用双线性tf1s变换将这两个部分转换到离散时间域,从而将连续时间滤波器的归一化截止频率映射到离散时间域中的所需截止频率。所以虽然系数在(1)与截止频率无关(因为滤波器是归一化的),离散时间域中两个最终滤波器部分的系数确实取决于截止频率。

您使用ncauer后跟的示例zp2sos不会为您提供具有所需截止频率的离散时间滤波器的系数。相反,您只需计算归一化连续时间低通滤波器的一阶和二阶部分的系数,即硬编码的系数lowpass3()在这种情况下,您错过的是从连续时间到离散时间的转换步骤,以及归一化截止频率到所需截止频率的映射。