使用matlab设计:用脉冲响应不变法设计一个切比雪夫型数字带通滤波器,要求通带频带0.3π<=w<=0.7π,通带最大衰减Rp=1dB,阻带截止频率ws1=0.1pi,ws2=0.9pi,阻带最小衰减As=15dB,滤波器采样频率Fs=2000Hz。
时间: 2023-05-24 17:04:47 浏览: 800
步骤:
1. 确定滤波器的一阶归一化切比雪夫型原型滤波器的极点和零点。
一阶切比雪夫型原型滤波器的传递函数为:
H(s) = 1 / (1 + ε * s)
其中,ε为阻带最小衰减对应的通带最大衰减Rp的函数,ε = √[10^(0.1 * As) - 1] / √[10^(0.1 * Rp) - 1],在本题中,Rp = 1dB,As = 15dB,因此,ε = 0.209
求解H(s) = 1 / (1 + ε * s)的极点和零点:
极点:
s1 = -ε + j * √(1 - ε^2)
s2 = -ε - j * √(1 - ε^2)
零点:
z = -1
2. 将原型滤波器的极点与零点映射到数字域。
applying the bilinear transformation:(双线性变换)
s = (2/T) * (z-1) / (z+1)
其中,T为采样周期,T = 1/Fs = 0.0005
将一阶切比雪夫型原型滤波器的极点和零点代入双线性变换公式:
数字域中的极点:
z1 = (1 + s1 * T/2) / (1 - s1 * T/2)
z2 = (1 + s2 * T/2) / (1 - s2 * T/2)
数字域中的零点:
z = -1
3. 根据数字域中的极点和零点,构造数字域中的传递函数。
一阶数字切比雪夫型带通滤波器的传递函数为:
H(z) = (z - z1) * (z - z2) / (z - z)
将数字域中的极点和零点代入上式:
H(z) = (z - 0.9555 + 0.2945i) * (z - 0.9555 - 0.2945i) / (z + 1)
4. 通过对比数字域中的传递函数与算法推导得到的数字域中的传递函数,得到数字滤波器的系数。
将数字域中的传递函数H(z)展开得到系数:
b0 = 0.9528, b1 = 0, b2 = -0.9528, a1 = -1.9111, a2 = 0.9104
这些系数即为数字滤波器的系数。
5. 利用fir2函数设计滤波器。
freqz函数可绘制数字滤波器的幅频响应和相位响应。
matlab代码:
阅读全文