具有量化(定点)系数的高通滤波器
信息处理
matlab
过滤器
数字滤波器
固定点
2022-02-19 01:16:40
2个回答
您的设计的一个问题是量化的分子系数不再加起来为零,因此您在 DC 处失去了所需的陷波。这可以通过不同的方式完成,因为即使使用量化系数,您也可以在 DC 处获得(双)零。只需确保和。
真正的问题是分母多项式。众所周知,量化多项式系数得到的可用极点位置在低频时非常稀疏。
请注意,理想系数的最大幅度接近,因此为了将位,您需要按而不是进行缩放。这将导致量化整数系数的正确值范围:
bb = 圆形( b * 2^14 ) * 2^(-14); aa = 圆形(a * 2^14)* 2^(-14);
得到的量化分子系数保证了 DC 处的双零。然而,量化的分母系数产生两个实值极点,其中一个在单位圆上。即,有一个零极点抵消,你最终得到一个一阶滤波器。
因此,您可以选择使用一阶滤波器而不是二阶滤波器。在这种情况下,分子系数是微不足道的:
b1 = [1,-1];
可以使用接近(但幅度小于)的某个负值通过实验选择分母系数。当然,该值必须可以使用位表示:
a1 = [1, 圆形(-r * 2^(15)) * 2^(-15)];
下图显示了理想二阶滤波器(蓝色)和的量化一阶滤波器的频率响应。您必须自己判断与理想响应的偏差对于您的应用程序是否可以容忍。
另一种解决方案是使用对系数量化(至少在低频下)更鲁棒的不同滤波器结构。这种结构是耦合形式的结构,在大多数关于 DSP 的教科书中都有描述(例如,在 Oppenheim 的离散时间信号处理中)。
该滤波器相当于 24 Hz @ 44.1 kHz 的截止频率。这意味着您的极点非常接近单位圆,因此您需要比 16 位更高的数值精度。
您需要更高的分辨率:即使是 24 位也无法满足如此低的截止频率,但 32 位应该可以做得很好。这也取决于您的要求:您可以容忍多少噪音以及您需要的最小衰减是多少?
定点处理在数学上非常具有挑战性,尤其是当极点接近单位圆时。它需要对每个滤波器级进行详细的数值分析,并仔细管理开销、级排序、状态变量缩放、削波、舍入、本底噪声等。
其它你可能感兴趣的问题