使用MATLAB根据如下技术指标,选择窗函数,用窗函数法设计FIR数字低通滤波器: 通带wp=0.2π,Rp=2dB,阻带ws=0.+5π,Rs=35dB。 计算滤波器的阶数N,画出幅频特性曲线。
时间: 2024-06-13 14:08:31 浏览: 113
利用MATLAB仿真软件系统结合窗函数法设计一个数字带通FIR滤波器
根据提供的技术指标,选择窗函数,用窗函数法设计FIR数字低通滤波器的MATLAB代码如下:
```matlab
% 定义通带、阻带的角频率和通带、阻带的最大衰减
wp = 0.2*pi;
ws = 0.5*pi;
Rp = 2;
Rs = 35;
% 计算滤波器的阶数N
delta_p = (10^(Rp/20)-1)/(10^(Rp/20)+1);
delta_s = 10^(-Rs/20);
delta = min(delta_p, delta_s);
A = -20*log10(delta);
if A > 50
N = ceil((A-8)/(2.285*(ws-wp)));
else
N = ceil((A-8.7)/(2.285*(ws-wp)));
end
% 选择窗函数
M = N-1;
w = hamming(M+1);
% 计算滤波器的系数
n = 0:M;
hd = (ws/pi)*sinc((ws/pi)*(n-M/2));
h = hd.*w';
% 画出幅频特性曲线
[H, w] = freqz(h, 1, 1024);
H = 20*log10(abs(H));
w = w/pi;
plot(w, H);
xlabel('Normalized Frequency (\times\pi rad/sample)');
ylabel('Magnitude (dB)');
title('Magnitude Response');
```
阅读全文