用matlab代码生成低通滤波器设计。wp=pi/3, ws=pi/2通带允许最大衰减3dB, 阻带应达到的最小衰减30dB。
时间: 2024-05-10 14:16:29 浏览: 100
基于矩形窗的FIR低通数字滤波器.docx
可以使用MATLAB中的firpm函数来设计低通滤波器。
代码如下:
```matlab
wp = pi/3; % 通带截止频率
ws = pi/2; % 阻带截止频率
Rp = 3; % 通带最大衰减
Rs = 30; % 阻带最小衰减
% 计算滤波器的阶数
delta_p = (10^(Rp/20)-1)/(10^(Rp/20)+1);
delta_s = (1+delta_p)/(10^(Rs/20));
N = ceil(log10(delta_s/delta_p)/log10(ws/wp));
% 计算等式中的A和B
A = [-Rp, -Rs];
B = [1, delta_s];
% 设计滤波器
h = firpm(N, [0, wp/pi, ws/pi, 1], B, A);
% 绘制幅频响应曲线
freqz(h);
```
其中,firpm函数的第一个参数表示滤波器的阶数,第二个参数是一个长度为N+1的数组,表示滤波器的频率响应,第三个参数是一个长度为N+1的数组,表示频率响应的理想值,第四个参数是一个长度为2的数组,表示频率响应的权重。
运行以上代码,将会得到一个低通滤波器的幅频响应曲线。
阅读全文