选择合适的窗函数用工具箱提供的fir1函数设计一个FIR数字带通滤波器,要求:下阻带截止频率fs1=100Hz,As=65dB ,通带低端截止频率fp1=150Hz,Rp=0.05dB ;通带高端端截止频率fp2=350Hz,Rp=0.05dB ;上阻带截止频率fs2=400Hz,As=65dB ;描绘滤波器的脉冲响应、窗函数及滤波器的幅频响应和相频响应曲线。
时间: 2023-09-27 10:05:40 浏览: 259
好的,根据您的要求,我们需要设计一个IR数字带通滤波器。首先,我们需要选择一个合适的窗函数来设计滤波器。在这里,我们可以选择Kaiser窗函数。
根据您给出的参数,我们可以进行如下计算:
```MATLAB
fs1 = 100; % 下阻带截止频率
As = 65; % 下阻带衰减
fp1 = 150; % 通带低端截止频率
Rp = 0.05; % 通带最大衰减
fp2 = 350; % 通带高端截止频率
fs2 = 400; % 上阻带截止频率
delta_f = min(fp1-fs1, fs2-fp2);
A = -20*log10(sqrt(Rp));
D = (A-8)/(2.285*delta_f);
N = ceil(D) + 1;
% 使用fir1函数设计带通滤波器
b = fir1(N, [fp1/(Fs/2), fp2/(Fs/2)], 'bandpass', kaiser(N+1, A));
% 绘制滤波器的脉冲响应
figure;
stem(b);
title('Impulse Response');
% 绘制窗函数
figure;
win = kaiser(N+1, A);
plot(win);
title('Window Function');
% 计算滤波器的幅频响应和相频响应
figure;
freqz(b,1,1024,Fs);
title('Frequency Response');
```
请注意,上述代码中的`Fs`是采样频率,需要根据实际情况进行设置。运行以上代码,将会得到滤波器的脉冲响应、窗函数以及滤波器的幅频响应和相频响应曲线。
阅读全文