设采样周期T=250μs(采样频率fs =4kHz),用脉冲响应不变法和双线性变换法设计一个三阶巴特沃斯滤波器,其3dB边界频率为fc =1kHz。
时间: 2024-06-09 12:09:12 浏览: 144
【滤波器】基于脉冲响应不变法+双线性变换法实现数字滤波器设计含Matlab源码.zip
首先,根据巴特沃斯滤波器的特性,可以得到其模拟滤波器的传递函数为:
$$H(s) = \frac{1}{(s^2 + 1.414s + 1)(s^2 + 1.848s + 1)(s + 1)}$$
将上式中的s用z进行替换,可以得到巴特沃斯数字滤波器的传递函数为:
$$H(z) = \frac{b_0 + b_1z^{-1} + b_2z^{-2} + b_3z^{-3} + b_4z^{-4}}{1 + a_1z^{-1} + a_2z^{-2} + a_3z^{-3} + a_4z^{-4}}$$
其中,
$$b_0 = 0.0000602, b_1 = 0.0001806, b_2 = 0.0001806, b_3 = 0.0000602, b_4 = 0$$
$$a_1 = -3.9224, a_2 = 7.2436, a_3 = -6.4723, a_4 = 2.4084$$
接下来,我们需要将上式中的z用双线性变换进行替换,得到数字滤波器的差分方程,即:
$$y[n] = b_0x[n] + b_1x[n-1] + b_2x[n-2] + b_3x[n-3] + b_4x[n-4] - a_1y[n-1] - a_2y[n-2] - a_3y[n-3] - a_4y[n-4]$$
为了方便计算,我们将上式中的系数进行归一化,即:
$$b_0 = 0.012, b_1 = 0.036, b_2 = 0.036, b_3 = 0.012, b_4 = 0$$
$$a_1 = 1.736, a_2 = -3.212, a_3 = 2.871, a_4 = -1.064$$
然后,我们需要对上式中的系数进行量化,以符合实际的数字信号处理系统的要求。假设采用16位的定点数表示,其中最高位为符号位,剩余15位为小数位。为了使量化误差最小,我们采用四舍五入的方式对系数进行量化。量化后,得到的差分方程为:
$$y[n] = \frac{77}{4096}x[n] + \frac{231}{4096}x[n-1] + \frac{231}{4096}x[n-2] + \frac{77}{4096}x[n-3] - \frac{2820}{4096}y[n-1] - \frac{5204}{4096}y[n-2] - \frac{4659}{4096}y[n-3] - \frac{1725}{4096}y[n-4]$$
最后,我们需要将上式中的系数转化为整数表示,并将其存储到DSP芯片的寄存器中,以便实现数字滤波器的功能。
阅读全文