📄 example9_8.m
字号:
%例9-8,example9_8
%设计条件:wp=0.2pi;ws=0.3pi;Rp=0.25dB;Ar=50dB;
%(a)
N=20;alpha=(N-1)/2;L=0:N-1;wL=(2*pi/N)*L;
Hrs=[1,1,1,zeros(1,15),1,1]; %理想滤波器振幅响应抽样
Hdr=[1,1,0,0];wdl=[0,0.25,0.25,1]; %理想滤波器振幅响应
k1=0:floor((N-1)/2);k2=floor((N-1)/2)+1:N-1;
angH=[-alpha*(2*pi)/N*k1,alpha*(2*pi)/N*(N-k2)];
H=Hrs.*exp(j*angH);
h=real(ifft(H,N));
[db,mag,pha,grd,w]=freqz_m(h,1);
[Hr,ww,a,M]=hr_type2(h);
%画图
figure(1)
subplot(2,2,1);plot(wL(1:11)/pi,Hrs(1:11),'o',wdl,Hdr);
axis([0,1,-0.1,1.1]);title('频率样本 N=20')
xlabel('频率(单位:pi)');ylabel('h(n)');
subplot(2,2,2);stem(L,h);axis([-1,N,-0.1,0.3]);
title('脉冲响应');xlabel('n');ylabel('h(n)');
m1=[0 0];m2=[-1 20];line(m2,m1)
subplot(2,2,3);plot(ww/pi,Hr,wL(1:11)/pi,Hrs(1:11),'o');
axis([0,1,-0.2,1.2]);title('振幅响应')
xlabel('频率(单位:pi)');ylabel('Hr(w)');
subplot(2,2,4);plot(w/pi,db);
axis([0,1,-60,10]);title('幅度响应')
xlabel('频率(单位:pi)');ylabel('分贝');
%(b)
Hrs=[1,1,1,1,zeros(1,14),1,1]; %理想滤波器振幅响应抽样,在k=3处加一个抽样点
Hdr=[1,1,0,0];wdl=[0,0.25,0.25,1]; %理想滤波器振幅响应
k1=0:floor((N-1)/2);k2=floor((N-1)/2)+1:N-1;
angH=[-alpha*(2*pi)/N*k1,alpha*(2*pi)/N*(N-k2)];
H=Hrs.*exp(j*angH);
h=real(ifft(H,N));
[db,mag,pha,grd,w]=freqz_m(h,1);
[Hr,ww,a,M]=hr_type2(h);
%画图
figure(2)
subplot(2,2,1);plot(wL(1:11)/pi,Hrs(1:11),'o',wdl,Hdr);
axis([0,1,-0.1,1.1]);title('频率样本 N=20')
xlabel('频率(单位:pi)');ylabel('h(n)');
subplot(2,2,2);stem(L,h);axis([-1,N,-0.1,0.3]);
title('脉冲响应');xlabel('n');ylabel('h(n)');
m1=[0 0];m2=[-1 20];line(m2,m1)
subplot(2,2,3);plot(ww/pi,Hr);
axis([0,1,-0.2,1.2]);title('振幅响应')
xlabel('频率(单位:pi)');ylabel('Hr(w)');
subplot(2,2,4);plot(w/pi,db);
axis([0,1,-60,10]);title('幅度响应')
xlabel('频率(单位:pi)');ylabel('分贝');
%
N=60;alpha=(N-1)/2;L=0:N-1;wL=(2*pi/N)*L;
Hrs=[ones(1,8),zeros(1,46),ones(1,6)]; %理想滤波器振幅响应抽样
Hdr=[1,1,0,0];wdl=[0,0.2,0.2,1]; %理想滤波器振幅响应
k1=0:floor((N-1)/2);k2=floor((N-1)/2)+1:N-1;
angH=[-alpha*(2*pi)/N*k1,alpha*(2*pi)/N*(N-k2)];
H=Hrs.*exp(j*angH);
h=real(ifft(H,N));
[db,mag,pha,grd,w]=freqz_m(h,1);
[Hr,ww,a,M]=hr_type2(h);
%画图
figure(3)
subplot(2,2,1);plot(wL(1:30)/pi,Hrs(1:30),'o',wdl,Hdr);
axis([0,1,-0.1,1.1]);title('频率样本 N=60')
xlabel('频率(单位:pi)');ylabel('h(n)');
subplot(2,2,2);stem(L,h);axis([-1,N,-0.1,0.3]);
title('脉冲响应');xlabel('n');ylabel('h(n)');
m1=[0 0];m2=[-1 60];line(m2,m1)
subplot(2,2,3);plot(ww/pi,Hr);
axis([0,1,-0.2,1.2]);title('振幅响应')
xlabel('频率(单位:pi)');ylabel('Hr(w)');
subplot(2,2,4);plot(w/pi,db);
axis([0,1,-60,10]);title('幅度响应')
xlabel('频率(单位:pi)');ylabel('dB');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -