[求助]高手啊!怎么读信号进去?
clear;<br>N=128;n=0:N-1;<br>f1=0.1;f2=0.19;<br>A1=1;A2=3;<br>s1=A1*cos(2*pi*f1*n);<br>s2=A2*cos(2*pi*f2*n);<br>s=s1+s2;<br>noise=rand(1,N);<br>x=s+noise;<br>这是一个含有噪声的信号,应该怎么做才能把它读进一个已经设计好的滤波器,最后得到滤波后的图象呢?(比如要通过的是下面的低通滤波器 包含freqz_m2(h,)和ideal_lp(Wc,N)子程序)<br>clear all;<br>Wp=0.2*pi;<br>Ws=0.4*pi;<br>tr_width=Ws-Wp;<br>N=ceil(6.6*pi/tr_width)+1;<br>n=0:1:N-1;<br>Wc= (Ws+Wp)/2;<br>hd=ideal_lp(Wc,N);<br>w_ham=(hamming(N))';<br>h=hd.*w_ham;<br>=freqz_m2(h,);<br>delta_w=2*pi/1000;<br>Ap=-(min(db(1:1:Wp/delta_w+1)))<br>As= -round(max(db(Ws/delta_w+1:1:501)))<br>subplot(221)<br>stem(n,hd)<br>title('理想冲激响应hd(n)')<br>subplot(222)<br>stem(n,w_ham)<br>title('海明窗w(n)')<br>subplot(223)<br>stem(n,h)<br>title('实际单位脉冲响应hd(n)')<br>subplot(224)<br>plot(w/(1.5*pi),db)<br>title('幅度响应(dB)')<br>axis()<br>[此贴子已经被cdwxg于2006-6-3 18:10:13编辑过]
子程序freqz_m2(b,a)<BR>function=freqz_m2(b,a)<BR>%db为相对振幅(dB);mag为绝对振幅;pha为相位响应;grd为群延时;w为频率样本点向量。<BR>=freqz(b,a,1000, 'whole');<BR>%b和a分别为H(z)分子和分母多项式系数(对FIR而言,b=a,a=1).<BR>H=(H(1:1:501))';<BR>w=(w(1:1:501))';<BR>mag=abs(H);<BR>db=20*log10((mag+eps)/max(mag));<BR>pha=angle(H);<BR>子程序ideal_lp(Wc,N)<BR>function hd=ideal_lp(Wc,N)<BR>%理想低通滤波器;hd为0到M-1之间的理想脉冲响应;Wc为截止频率<BR>%N为理想滤波器的长度<BR>alpha=(N-1)/2;<BR>n=0:1:N-1;<BR>m =n-alpha+eps;<BR>hd=sin(Wc*m)./(pi*m);<BR>
页:
[1]