📄 exa5_16.m
字号:
%-----------------------------------------------------------------------------
% exa060402_fresam2.m , for example 6.4.2
% use frequency sampling method 2 to design bandpass digital filter
%-----------------------------------------------------------------------------
N=41;
T1 = 0.1095;
alpha = (N-1)/2;
l = 0:N-1;
wl = (2*pi/N)*l;
Hrs = [zeros(1,6),T1,ones(1,7),T1,zeros(1,11),T1,ones(1,7),T1,zeros(1,6)]; % 理想振幅响应采样
Hdr = [0,0,1,1,0,0];
wdl = [0,0.3,0.3,0.7,0.7,1];
k1 = 0:floor((N-1)/2);
k2 = floor((N-1)/2)+1:N-1;
angH = [pi/2-alpha*(2*pi)/N*(k1+0.5),-pi/2+alpha*(2*pi)/N*(N-k2-0.5)]; % 相位约束条件
Hdk = Hrs.*exp(j*angH); % 构成Hd(k)
h1 = ifft(Hdk,N);
n = 0:1:N-1;
h = real(h1.*exp(j*pi*n/N));% 实际单位冲激响应
[db,mag,pha,w] = freqz_m2(h,[1]);
[Hr,ww,a,L] = hr_type3(h); % 实际振幅响应
subplot(221)
plot(wl/pi+1/N,Hrs,'.',wdl,Hdr)
title('频率样本Hd(k):N=41')
axis([0 1 -0.1 1.2])
subplot(222)
stem(l,h)
title('实际单位脉冲响应h(n)')
subplot(223)
plot(ww/pi,Hr,wl/pi+1/N,Hrs,'.')
axis([0 1 -0.1 1.2])
title('实际振幅响应H(w)')
subplot(224)
plot(w/pi,db)
title('幅度响应(dB)')
axis([0 1 -80 10])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -