我最近一直在使用 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)
、导出二阶部分的系数,而无需指定截止频率。也许这就是我最困惑的地方?