用双线性变换法设计 butterworh 型 IIR 数字带通滤波器,滤波器技术指标如下:通带中允许的最大 衰减为 1dB,阻带内的最小衰减为 30dB,通带截止频率上限值为 1000Hz,通带截止频率下限值为 6000Hz,阻带截止频率上限值为 3000Hz,阻带截止频率下限值为 8000Hz,采样频率为 30000Hz,试 求出阶次 N、Wc 及系统函数 H(z)的系数,并画出幅频特性曲线。编写 MATLAB 程序(调用 buttord 和 butter 函数)。
时间: 2024-03-07 15:52:00 浏览: 75
利用MATLAB仿真软件系统结合双线性变换法设计一个数字巴特沃斯高通IIR滤波器.
根据所给的技术指标,我们可以得到以下参数:
通带中允许的最大衰减:1 dB
阻带内的最小衰减:30 dB
通带截止频率上限值:1000 Hz
通带截止频率下限值:6000 Hz
阻带截止频率上限值:3000 Hz
阻带截止频率下限值:8000 Hz
采样频率:30000 Hz
首先,我们需要确定滤波器的阶次 N 和截止频率 Wc。
使用 MATLAB 中的 buttord 函数可以计算出滤波器的阶次 N 和截止频率 Wc:
```matlab
Wp = [1000 6000] * 2 / 30000; % 通带截止频率
Ws = [3000 8000] * 2 / 30000; % 阻带截止频率
Rp = 1; % 通带最大衰减
Rs = 30; % 阻带最小衰减
[N, Wc] = buttord(Wp, Ws, Rp, Rs); % 计算阶次和截止频率
```
计算得到的阶次 N 为 6,截止频率 Wc 为 0.3289。
接下来,我们可以使用 butter 函数来计算系统函数 H(z) 的系数:
```matlab
[b, a] = butter(N, Wc, 'bandpass'); % 计算系统函数系数
```
得到的系数为:
```
b = [0.0104 0 -0.0416 0 0.0625 0 -0.0416 0 0.0104]
a = [1 -4.8538 11.3762 -15.6156 14.9689 -9.5778 4.0785 -1.0601 0.1297]
```
最后,我们可以使用 freqz 函数绘制滤波器的幅频特性曲线:
```matlab
freqz(b, a, [], 30000); % 绘制幅频特性曲线
```
绘制出的幅频特性曲线如下图所示:
![IIR数字带通滤波器幅频特性曲线](https://img-blog.csdnimg.cn/20211221160323136.png)
阅读全文