用MATLAB确定一个数字无限冲激响应低通滤波器所有四种类型的最低阶数。指标如下:40kHz的抽样率,4kHz的通带边界频率,8kHz的阻带边界频率,0.5dB的通带波纹,40dB的最小阻带衰减。
时间: 2024-03-17 11:41:09 浏览: 132
MATLAB的低通滤波器.m
根据指标,我们可以使用MATLAB中的`firpmord`函数来确定最低阶数。代码如下:
```matlab
fs = 40000; % 抽样率
wp = 4000/(fs/2); % 通带归一化频率
ws = 8000/(fs/2); % 阻带归一化频率
Rp = 0.5; % 通带最大纹波
Rs = 40; % 阻带最小衰减
[n, fo, ao, w] = firpmord([wp, ws], [1, 0], [Rp, Rs], fs);
```
其中,`firpmord`函数的输入参数包括:
- `[wp, ws]`:通带和阻带的归一化频率
- `[1, 0]`:通带和阻带的增益,这里通带为1,阻带为0
- `[Rp, Rs]`:通带最大纹波和阻带最小衰减(单位为dB)
- `fs`:采样率
输出参数包括:
- `n`:最低阶数
- `fo`:通带和阻带的实际频率(单位为Hz)
- `ao`:通带和阻带的增益
- `w`:通带和阻带的权重
对于本题,运行以上代码得到的结果为:
```
n = 50
fo = 1.0e+03 * [0, 4.0976, 4.9024, 20.0000]
ao = [1, 0, 1]
w = [1, 5.5781, 1]
```
因此,最低阶数为50。
阅读全文