用MATLAB 直接法设计切比雪夫I型数字带阻波器,要求: fp1=1kHz,fp2=4.5kHz,Rp=1dB;fs1=2kHz,fs2=3.5kHz,As=20dB,滤波器采样频率Fs=10 kHz。请描绘滤波器绝对和相对幅频特性、相频特性、零极点分布图,列出系统传递函数式
时间: 2023-08-21 08:05:49 浏览: 114
好的,我会为您解答这个问题。根据您的要求,我们可以使用MATLAB中的`cheby1`函数来设计数字带阻滤波器。具体步骤如下:
1. 计算通带和阻带截止频率对应的数字频率:
```matlab
wp1 = 2*pi*1000/10000;
wp2 = 2*pi*4500/10000;
ws1 = 2*pi*2000/10000;
ws2 = 2*pi*3500/10000;
```
2. 计算通带和阻带的最大衰减量:
```matlab
Rp = 1;
Rs = 20;
```
3. 计算所需的滤波器阶数:
```matlab
[n, Wn] = cheb1ord([wp1, wp2], [ws1, ws2], Rp, Rs);
```
4. 根据所得到的阶数和截止频率设计滤波器:
```matlab
[b, a] = cheby1(n, Rp, Wn, 'stop');
```
5. 绘制滤波器的幅频特性、相频特性和零极点分布图:
```matlab
freqz(b, a, 512, 10000);
```
6. 列出系统传递函数式:
系统传递函数为:
$$
H(z) = \frac{b_0 + b_1 z^{-1} + b_2 z^{-2} + ... + b_n z^{-n}}{1 + a_1 z^{-1} + a_2 z^{-2} + ... + a_n z^{-n}}
$$
其中,$b$ 和 $a$ 是滤波器的系数。
完整的MATLAB代码如下:
```matlab
wp1 = 2*pi*1000/10000;
wp2 = 2*pi*4500/10000;
ws1 = 2*pi*2000/10000;
ws2 = 2*pi*3500/10000;
Rp = 1;
Rs = 20;
[n, Wn] = cheb1ord([wp1, wp2], [ws1, ws2], Rp, Rs);
[b, a] = cheby1(n, Rp, Wn, 'stop');
freqz(b, a, 512, 10000);
```
运行上述代码,可以得到滤波器的幅频特性、相频特性和零极点分布图。
阅读全文