用 MATLAB 直接法设计椭圆型数字高通滤波器,要求:通带ωp=0.3π,Rp=1dB;阻带ωs=0.2π,As=20dB。请描绘滤波器的绝对和相对幅频特性、相频特性、零极点分布图,列出系统传递函数式。
时间: 2024-03-08 09:49:18 浏览: 83
好的,我会尽力回答你的问题。首先需要说明的是,MATLAB 中设计椭圆型数字滤波器一般使用 `ellip` 函数,这个函数可以根据指定的通带、阻带参数以及其他设计要求来自动计算出滤波器的系数。下面是具体步骤:
1. 确定通带截止频率ωp和阻带截止频率ωs,计算通带和阻带的角频率ωp和ωs。
ωp = 0.3π
ωs = 0.2π
2. 确定通带最大衰减Rp和阻带最小衰减As,将其转换为分贝单位。
Rp = 1 dB
As = 20 dB
3. 使用 `ellipord` 函数计算出滤波器的阶数和截止频率。
[n, Wn] = ellipord(ωp, ωs, Rp, As);
4. 使用 `ellip` 函数计算出滤波器的系数。
[b, a] = ellip(n, Rp, As, Wn);
5. 绘制滤波器的幅频特性、相频特性和零极点分布图。
(1)绘制绝对幅频特性
```
freqz(b, a);
```
(2)绘制相频特性
```
[H, W] = freqz(b, a);
plot(W, angle(H));
```
(3)绘制零极点分布图
```
zplane(b, a);
```
6. 列出系统传递函数式。
系统传递函数式为:
```
H(z) = (b0 + b1 z^-1 + ... + bN z^-N) / (1 + a1 z^-1 + ... + aN z^-N)
```
阅读全文