零极点图说明

信息处理 过滤器 无限脉冲响应
2022-02-10 14:56:34

我在 IIR 滤波器中尝试了系数量化。我更改了一些值,例如通带纹波以及量化方法需要多少位。在第一张图片中,我有 1db 通带纹波、“圆形”和 7 位作为量化方法:

在此处输入图像描述

在第二张图片中,我有 1.3db 作为通带波纹,'round' 和 6-bits 作为量化方法。

在此处输入图像描述

这些是 PZP 图。我不明白如何从图表中提取有用的信息,以便说明哪种设计更好或在这两种设计之间进行比较。极点和零点如何影响我做出更好的决定?

编辑:当您复制 url 并打开或选择查看图像时,图像会变得更大更明显。绿色也是量化的,蓝色是未量化的系数。

编辑2:当马特要求幅度频率响应时,我添加了额外的信息:

1db 通带纹波,'round' 和 7 位

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

1.3db 作为通带纹波,'round' 和 6-bits

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

编辑:在马特的回答之后,我需要添加更多信息:

我想找到一组符合规范且位数最少的量化系数。我的规范是一个 8 阶 IIR 滤波器,具有以下传递函数幅度响应:

0db±1.5dbfor 0.2<|v|<0.3<60dbfor |v|<0.14 and |v|>0.36

我使用这个 matlab 函数: [b,a]=ellip(n,Rp,Rs,Wp),

经过一些试验,我发现(过滤器是使用二阶部分实现的): [b,a]=ellip(4,1,60,2[0.2,0.3]) 并使用 7 位量化,我采用上面的图表,我认为验证规范(如果我犯了错误,请纠正我),

但如果使用:[b,a]=ellip(4,1.3,60,2[0.2,0.3])和 6 位量化我也得到了一个合理的结果。我担心的是我的想法和程序是正确的还是我有错误需要坚持 7 位量化?

2个回答

仅使用零极点图确实很难比较两种设计。我认为查看频率响应的(幅度)并比较系数量化前后频率响应的变化会更有用。通过查看零极点图,我唯一能说的是,您设计了一个具有中心频率的八阶带通滤波器fs/4(经过fs我的意思是采样频率)。

现在我提供了另一个答案,因为我可以看到漂亮的幅度响应图。我们注意到的当然是由于系数量化引起的幅度响应略有变化,但显然相对较小。阻带行为完全没有问题,唯一明显的变化是在通带中,在靠近带边缘的地方有轻微的过冲。这是因为在量化后极点向单位圆移动了一点。6 位设计的这种过冲比 7 位设计的要大一些,这并不令人意外(更粗略的量化<=> 极点从理想位置移动更多)。什么是可容忍的完全取决于应用程序。当询问哪种设计更好时,必须回答“更好的原因是什么?”这个问题。预先。在任何情况下,我都会对滤波器进行归一化,以使幅度响应的最大值即使在量化之后也是 1。这将避免溢出问题(至少是由于系数量化引起的溢出问题)。您可能需要或不需要的所有其他措施将取决于您的应用程序。