海珠广场游玩:关于数字信号处理的问题

来源:百度文库 编辑:中科新闻网 时间:2024/05/01 12:50:30
大家好,我在做关于滤波器的毕业设计,后面是我的程序,这个程序我很多不明白,望会的指教!!我们老师的大概思路是:根据ws,wp,Rp,As求得N和Ha(s),然后求得he(n),这个序列类似{3,2,1……},自己手动反迭使它为{3,2,1,……1,2,3}或者{3,2,1,……-1,-2,-3},给它加窗使它为FIR滤波器,再证明这个反迭后的序列满足h(n)=h(N-n-1),
问题一:按照这个程序得到的N=3,Ha(s)=0.0827/(s2+0.4357s+0.1898)(s+0.4357)
H(z)=(-0.0306z-1-0.0229z-2)/(1+2.1422z-1-1.6141z-2+0.4184z-3)
为什么按照这个程序得到的ha(t)的横坐标是30呢?这样我只能对它进行31点采样,这样得到的he(n)即使反迭后,我也无法证明它满足h(n)=h(N-n-1)啊?因为此时h(0)不可能等于h(2)啊!
问题2:这样反迭后的N是不是应该为6了呢?
问题3:根据程序求得H(z)=(-0.0306z-1-0.0229z-2)/(1+2.1422z-1-1.6141z-2+0.4184z-3)后,我用长除法也可以得到he(n),这样得到的he(n)是很多的值。这样求法是否正确,如果正确怎么使它反迭再证明它满足h(n)=h(N-n-1)呢?
主程序:
Omegap=0.2*pi;
Omegar=0.3*pi;
Ap=10;
Ar=20;
T=1;
[b,a]=afd_butt(Omegap,Omegar,Ap,Ar);
[C,B,A]=sdir2cas(b,a);
[db,mag,pha,Omega]=freqs_m(b,a,0.5*pi);
[ha,x,t]=impulse(b,a);
N=ceil((log10((10^(0.1*Ar)-1)/(10^(0.1*Ap)-1)))/(2*log10(Omegar/Omegap)))
subplot(321);plot(Omega/pi,mag);title('幅度响应|Ha(j\Omega)|');grid on
subplot(322);plot(Omega/pi,db);title('幅度响应(dB)');grid on
subplot(323);plot(Omega/pi,pha/pi);title('相位响应');grid on
subplot(324);plot(t,ha);title('单位脉冲响应ha(t)');grid on;hold on
axis([0,max(t),min(ha),max(ha)]);
[bd,ad]=imp_invr(b,a,T)
[db,mag,pha,Omega]=freqs_m(b,a,2*pi);
[db,mag,pha,w]=freqz_m(b,a);
subplot(325);plot(Omega/pi,db,w/pi,db);title('幅度特性');grid on
[R,p,k]=residuez(bd,ad)
he=impz(bd,ad,31);
subplot(324);stem([0:30],he);title('单位脉冲响应he(n)');grid on
%h=[he,fliplr(he)]

推荐你去

“研学论坛”求助
那里更专业些

推荐你去

“研学论坛”求助
那里更专业些