📄 example8_17.m
字号:
%例8-17:example8_17
Rp=1;Ar=15;
%数字高通滤波器的设计指标
ws1=0.4586*pi; %阻带边缘频率
wp1=0.6*pi; %通带边缘频率
%数字带通滤波器的设计指标
ws2=[0.2*pi 0.8*pi]; %阻带边缘频率
wp2=[0.4*pi 0.7*pi]; %通带边缘频率
%数字带阻滤波器的设计指标
ws3=[0.4*pi 0.7*pi]; %阻带边缘频率
wp3=[0.2*pi 0.8*pi]; %通带边缘频率
%
%数字巴特沃思高通滤波器
[N1,wn1]=buttord(wp1/pi,ws1/pi,Rp,Ar);
[b1,a1]=butter(N1,wn1,'high');
[C1,B1,A1]=dir2cas(b1,a1)
%画图
[db1,mag1,pha1,grd1,w1]=freqz_m(b1,a1); %计算频率响应和相位响应
figure(1)
subplot(3,4,1)
plot(w1/pi,mag1);
axis([0 1 0 1.1]);
ylabel('(a)')
title('幅度响应');
subplot(3,4,2);
plot(w1/pi,db1);
axis([0 1 -40 5]);
title('幅度响应(dB)');
subplot(3,4,3);
plot(w1/pi,pha1/pi);
axis([0 1 -1 1]);
title('相位响应');
subplot(3,4,4);
plot(w1/pi,grd1);
axis([0 1 0 10]);
title('群延迟');
%数字巴特沃思带通滤波器
[N2,wn2]=buttord(wp2/pi,ws2/pi,Rp,Ar);
[b2,a2]=butter(N2,wn2);
[C2,B2,A2]=dir2cas(b2,a2)
%画图
[db2,mag2,pha2,grd2,w2]=freqz_m(b2,a2); %计算频率响应和相位响应
subplot(3,4,5)
plot(w2/pi,mag2);
axis([0 1 0 1.1]);
ylabel('(b)')
subplot(3,4,6);
plot(w2/pi,db2);
axis([0 1 -40 5]);
subplot(3,4,7);
plot(w2/pi,pha2/pi);
axis([0 1 -1 1]);
subplot(3,4,8);
plot(w2/pi,grd2);
axis([0 1 0 15]);
%数字巴特沃思带阻滤波器
[N3,wn3]=buttord(wp3/pi,ws3/pi,Rp,Ar);
[b3,a3]=butter(N3,wn3,'stop');
[C3,B3,A3]=dir2cas(b3,a3)
%画图
[db3,mag3,pha3,grd3,w3]=freqz_m(b3,a3); %计算频率响应和相位响应
subplot(3,4,9)
plot(w3/pi,mag3);
axis([0 1 0 1.1]);
ylabel('(c)')
subplot(3,4,10);
plot(w3/pi,db3);
axis([0 1 -110 5]);
subplot(3,4,11);
plot(w3/pi,pha3/pi);
axis([0 1 -1 1]);
subplot(3,4,12);
plot(w3/pi,grd3);
axis([0 1 0 10]);
%
%数字切比雪夫Ι型高通滤波器
[N1,wn1]=cheb1ord(wp1/pi,ws1/pi,Rp,Ar);
[b1,a1]=cheby1(N1,Rp,wn1,'high');
[C4,B4,A4]=dir2cas(b1,a1)
%画图
[db1,mag1,pha1,grd1,w1]=freqz_m(b1,a1); %计算频率响应和相位响应
figure(2)
subplot(3,4,1)
plot(w1/pi,mag1);
axis([0 1 0 1.1]);
ylabel('(a)')
title('幅度响应');
subplot(3,4,2);
plot(w1/pi,db1);
axis([0 1 -40 5]);
title('幅度响应(dB)');
subplot(3,4,3);
plot(w1/pi,pha1/pi);
axis([0 1 -1 1]);
title('相位响应');
subplot(3,4,4);
plot(w1/pi,grd1);
axis([0 1 0 10]);
title('群延迟');
%数字切比雪夫Ι型带通滤波器
[N2,wn2]=cheb1ord(wp2/pi,ws2/pi,Rp,Ar);
[b2,a2]=cheby1(N2,Rp,wn2);
[C5,B5,A5]=dir2cas(b2,a2)
%画图
[db2,mag2,pha2,grd2,w2]=freqz_m(b2,a2); %计算频率响应和相位响应
subplot(3,4,5)
plot(w2/pi,mag2);
axis([0 1 0 1.1]);
ylabel('(b)')
subplot(3,4,6);
plot(w2/pi,db2);
axis([0 1 -40 5]);
subplot(3,4,7);
plot(w2/pi,pha2/pi);
axis([0 1 -1 1]);
subplot(3,4,8);
plot(w2/pi,grd2);
axis([0 1 0 15]);
%数字切比雪夫Ι型带阻滤波器
[N3,wn3]=cheb1ord(wp3/pi,ws3/pi,Rp,Ar);
[b3,a3]=cheby1(N3,Ar,wn3,'stop');
[C6,B6,A6]=dir2cas(b3,a3)
%画图
[db3,mag3,pha3,grd3,w3]=freqz_m(b3,a3); %计算频率响应和相位响应
subplot(3,4,9)
plot(w3/pi,mag3);
axis([0 1 0 1.1]);
ylabel('(c)')
subplot(3,4,10);
plot(w3/pi,db3);
axis([0 1 -110 5]);
subplot(3,4,11);
plot(w3/pi,pha3/pi);
axis([0 1 -1 1]);
subplot(3,4,12);
plot(w3/pi,grd3);
axis([0 1 0 40]);
%
%数字切比雪夫Ⅱ型高通滤波器
%设计指标
[N1,wn1]=cheb2ord(wp1/pi,ws1/pi,Rp,Ar);
[b1,a1]=cheby2(N1,Rp,wn1,'high');
[C7,B7,A7]=dir2cas(b1,a1)
%画图
[db1,mag1,pha1,grd1,w1]=freqz_m(b1,a1); %计算频率响应和相位响应
figure(3)
subplot(3,4,1)
plot(w1/pi,mag1);
axis([0 1 0 1.1]);
ylabel('(a)')
title('幅度响应');
subplot(3,4,2);
plot(w1/pi,db1);
axis([0 1 -40 5]);
title('幅度响应(dB)');
subplot(3,4,3);
plot(w1/pi,pha1/pi);
axis([0 1 -1 1]);
title('相位响应');
subplot(3,4,4);
plot(w1/pi,grd1);
axis([0 1 0 10]);
title('群延迟');
%数字切比雪夫Ⅱ型带通滤波器
[N2,wn2]=cheb2ord(wp2/pi,ws2/pi,Rp,Ar);
[b2,a2]=cheby2(N2,Rp,wn2);
[C8,B8,A8]=dir2cas(b2,a2)
%画图
[db2,mag2,pha2,grd2,w2]=freqz_m(b2,a2); %计算频率响应和相位响应
subplot(3,4,5)
plot(w2/pi,mag2);
axis([0 1 0 1.1]);
ylabel('(b)')
subplot(3,4,6);
plot(w2/pi,db2);
axis([0 1 -40 5]);
subplot(3,4,7);
plot(w2/pi,pha2/pi);
axis([0 1 -1 1]);
subplot(3,4,8);
plot(w2/pi,grd2);
axis([0 1 0 15]);
%数字切比雪夫Ⅱ型带阻滤波器
[N3,wn3]=cheb2ord(wp3/pi,ws3/pi,Rp,Ar);
[b3,a3]=cheby2(N3,Ar,wn3,'stop');
[C9,B9,A9]=dir2cas(b3,a3)
%画图
[db3,mag3,pha3,grd3,w3]=freqz_m(b3,a3); %计算频率响应和相位响应
subplot(3,4,9)
plot(w3/pi,mag3);
axis([0 1 0 1.1]);
ylabel('(c)')
subplot(3,4,10);
plot(w3/pi,db3);
axis([0 1 -110 5]);
subplot(3,4,11);
plot(w3/pi,pha3/pi);
axis([0 1 -1 1]);
subplot(3,4,12);
plot(w3/pi,grd3);
axis([0 1 0 10]);
%
%数字椭圆高通滤波器
[N1,wn1]=ellipord(wp1/pi,ws1/pi,Rp,Ar);
[b1,a1]=ellip(N1,Rp,Ar,wn1,'high');
[C10,B10,A10]=dir2cas(b1,a1)
%画图
[db1,mag1,pha1,grd1,w1]=freqz_m(b1,a1); %计算频率响应和相位响应
figure(4)
subplot(3,4,1)
plot(w1/pi,mag1);
axis([0 1 0 1.1]);
ylabel('(a)')
title('幅度响应');
subplot(3,4,2);
plot(w1/pi,db1);
axis([0 1 -40 5]);
title('幅度响应(dB)');
subplot(3,4,3);
plot(w1/pi,pha1/pi);
axis([0 1 -1 1]);
title('相位响应');
subplot(3,4,4);
plot(w1/pi,grd1);
axis([0 1 0 10]);
title('群延迟');
%数字椭圆带通滤波器
[N2,wn2]=ellipord(wp2/pi,ws2/pi,Rp,Ar);
[b2,a2]=ellip(N2,Rp,Ar,wn2);
[C11,B11,A11]=dir2cas(b2,a2)
%画图
[db2,mag2,pha2,grd2,w2]=freqz_m(b2,a2); %计算频率响应和相位响应
subplot(3,4,5)
plot(w2/pi,mag2);
axis([0 1 0 1.1]);
ylabel('(b)')
subplot(3,4,6);
plot(w2/pi,db2);
axis([0 1 -40 5]);
subplot(3,4,7);
plot(w2/pi,pha2/pi);
axis([0 1 -1 1]);
subplot(3,4,8);
plot(w2/pi,grd2);
axis([0 1 0 15]);
%数字椭圆带阻滤波器
[N3,wn3]=ellipord(wp3/pi,ws3/pi,Rp,Ar);
[b3,a3]=ellip(N3,Rp,Ar,wn3,'stop');
[C12,B12,A12]=dir2cas(b3,a3)
%画图
[db3,mag3,pha3,grd3,w3]=freqz_m(b3,a3); %计算频率响应和相位响应
subplot(3,4,9)
plot(w3/pi,mag3);
axis([0 1 0 1.1]);
ylabel('(c)')
subplot(3,4,10);
plot(w3/pi,db3);
axis([0 1 -110 5]);
subplot(3,4,11);
plot(w3/pi,pha3/pi);
axis([0 1 -1 1]);
subplot(3,4,12);
plot(w3/pi,grd3);
axis([0 1 0 10]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -