Matlab fir iir滤波器的比较设计程序及图片原创.docx
《Matlab fir iir滤波器的比较设计程序及图片原创.docx》由会员分享,可在线阅读,更多相关《Matlab fir iir滤波器的比较设计程序及图片原创.docx(19页珍藏版)》请在冰豆网上搜索。
![Matlab fir iir滤波器的比较设计程序及图片原创.docx](https://file1.bdocx.com/fileroot1/2023-4/20/92215875-5e1e-48f4-928c-fdce790262cb/92215875-5e1e-48f4-928c-fdce790262cb1.gif)
Matlabfiriir滤波器的比较设计程序及图片原创
技术指标fpl=10000;fsl=11000;fsu=20000;fpu=21000;Fs=50000;Rp=1;Rs=50;时的滤波器
IIR
fpl=10000;fsl=11000;fsu=20000;fpu=21000;Fs=50000;Rp=1;Rs=50;
wpl=2*pi*fpl/Fs;wsl=2*pi*fsl/Fs;wsu=2*pi*fsu/Fs;wpu=2*pi*fpu/Fs;
wp=[wpl/pi,wpu/pi];ws=[wsl/pi,wsu/pi];
[N,Wpo]=ellipord(wp,ws,Rp,Rs);%求模拟带阻滤波器的阶数和通带截止频率
[b,a]=ellip(N,Rp,Rs,Wpo,'stop');
w=0:
0.005*pi:
pi;
[h,w]=freqz(b,a,w);
阶数N=6
clc;clear;
fpl=10000;fsl=11000;fsu=20000;fpu=21000;Fs=50000;Rp=1;Rs=50;
wpl=2*pi*fpl/Fs;wsl=2*pi*fsl/Fs;wsu=2*pi*fsu/Fs;wpu=2*pi*fpu/Fs;
wp=[wpl/pi,wpu/pi];ws=[wsl/pi,wsu/pi];
[N,Wpo]=ellipord(wp,ws,Rp,Rs);%求模拟带阻滤波器的阶数和通带截止频率
[b,a]=ellip(N,Rp,Rs,Wpo,'stop');
w=0:
0.005*pi:
pi;
[h,w]=freqz(b,a,w);
hw1=20*log10(abs(h));
plot((0:
199)/200,hw1(1:
200));gridon;xlabel('\omega/\pi');ylabel('幅度/dB');%也可用plot(20*log10(abs(h)));gridon;
thet=unwrap(angle(h));
figure;
plot((0:
199)/200,thet(1:
200));gridon;xlabel('\omega/\pi');ylabel('相频响应');
x=sin(2*pi*(1:
256)*7000/Fs);%输入信号:
0<=n<=255,f0=7kHz;
yi=filter(b,a,x);
figure;
plot(yi(1:
250));gridon;xlabel('n');ylabel('y(n)');
幅频响应
相频响应
系统输出
IIR
f0=12kHz(在阻带)
f0=7kHz(在通带)
FIR
clc;clear;
fpl=10000;fsl=11000;fsu=20000;fpu=21000;Fs=50000;Rp=1;Rs=50;
wpl=2*pi*fpl/Fs;wsl=2*pi*fsl/Fs;wsu=2*pi*fsu/Fs;wpu=2*pi*fpu/Fs;
wp=[wpl/pi,wpu/pi];ws=[wsl/pi,wsu/pi];
w=0:
0.005*pi:
pi;
B1=wpu-wsu;B2=wsl-wpl;
B=min(B1,B2);
NF=ceil(6.6*pi/B);
wp1=[(fpl+fsl)/Fs,(fpu+fsu)/Fs];
h1=fir1(NF-1,wp1,'stop');
[hf,w]=freqz(h1,1,w);
freqz(h1,1,w);
hw2=20*log10(abs(hf));
plot((0:
199)/200,hw2(1:
200));gridon;xlabel('\omega/\pi');ylabel('幅度/dB');%也可用plot(20*log10(abs(h)));gridon;
thet2=unwrap(angle(hf));
figure;
plot((0:
199)/200,thet2(1:
200));gridon;xlabel('\omega/\pi');ylabel('相频响应');
x=sin(2*pi*(1:
256)*12000/Fs);%输入信号:
0<=n<=255,f0=7kHz;
yi=filter(h1,1,x);
figure;
plot(yi(1:
250));gridon;xlabel('n');ylabel('y(n)');
幅频响应
相频响应
阶数NF=166
系统输出
(1)f0=12kHz
(2)f0=7kHz(在通带中)
Fs与滤波器阶数的关系
(1)Fs=50kHz
IIR
N=6
FIR
阶数NF=166
(2)Fs=100kHz
IIR
N=7
FIR
NF=331
(3)Fs=150kHz
N=7
FIR
NF=496
(4)Fs=2MHz
N=7
FIR
NF=6601
验证了书上
(1)P251中间几行“无论是设计IIR数字滤波器还是FIR。
。
。
。
。
”
(2)P251第三行IIR数字滤波器随着Fs的提高,阶数提高不明显。
IIR滤波器频率选择性越好,其相位的非线性越严重。
Fs=50000;Rp=1;Rs=50;
fpl=10000;fsl=10250;fsu=20750;fpu=21000;
fpl=10000;fsl=11000;fsu=20000;fpu=21000;
fpl=10000;fsl=12000;fsu=19000;fpu=21000;
fpl=10000;fsl=13000;fsu=18000;fpu=21000;