matlab考试 实现带通滤波器和带阻滤波器的函数!

在线等啊非常急!!!谢谢!!!!
2024-11-16 23:31:45
推荐回答(1个)
回答1:

巴特沃斯:
1、带阻滤波器设计
带阻滤波器指标:
阻带上边界频率:5Kz;
阻带下边界频率:7Kz;
通带上边界频率:2Kz;
通带下边界频率:9Kz;
通带最大衰减:1dB;
阻带最小衰减:20dB;
设计程序如下:
wp=2*pi*[2000,9000];
ws=2*pi*[5000,7000];
Rp=1;
As=20;
[Nb,wc]=buttord(wp,ws,Rp,As,'s');
[BSB,ASB]=butter(Nb,wc,'stop','s');
[hk,w]=freqs(BSB,ASB);
subplot(2,2,1)
plot(w,20*log(abs(hk)),'b')
xlabel('频率/Hz')
ylabel('幅度/dB')
title('幅频特性')
subplot(2,2,2)
plot(angle(hk))
xlabel('频率/Hz')
ylabel('相位')
title('相频特性')
程序运行结果:
巴特沃斯模拟带阻滤波器阶数:Nb=4

2、带通滤波器的设计
带通滤波器指标:
通带上边界频率:4Kz;
通带下边界频率:7Kz;
阻带上边界频率:2Kz;
阻带下边界频率:9Kz;
通带最大衰减:1dB;
阻带最小衰减:20dB;
设计程序如下:
wp=2*pi*[4000,7000];
ws=2*pi*[2000,9000];
Rp=1;
As=20;
[N,wc]=buttord(wp,ws,Rp,As,'s');
[BB,AB]=butter(N,wc,'s');
[hk,w]=freqs(BB,AB);
subplot(2,2,1)
plot(w,abs(hk),'b')
xlabel('频率/Hz')
ylabel('幅度/dB')
title('幅频特性')
subplot(2,2,2)
plot(angle(hk))
xlabel('频率/Hz')
ylabel('相位')
title('相频特性')
程序运行结果:
巴特沃斯模拟带通滤波器阶数:N=5