資源描述:
《《現(xiàn)代信號分析與處理》課終作業(yè)(20090709)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、《現(xiàn)代信號分析與處理》課終作業(yè)姓名:司愛威年級:2009級博士研究生學(xué)號:111200911005專業(yè):車輛工程2009-7-1610一、線性卷積程序1.1子函數(shù)程序(matlab語言)functiony=saw_fun_conv(x,h)%x,h分別表示兩個(gè)要卷積的信號Nx=length(x);Nh=length(h);Ny=Nx+Nh-1;fori=Nx+1:Nyx(i)=0;endfori=Nh+1:Nyh(i)=0;endfori=1:Nysum=0;forj=1:isum=sum+x(j)*h(i-j+1);endy(i)=sum;end1.2驗(yàn)證程序
2、x=[1234];h=[11];y=saw_fun_conv(x,h)subplot(2,2,1);stem(x,'bo');xlabel('x(k)');gridon;subplot(2,2,3);stem(h,'bo');axis([1405]);xlabel('h(k)');gridon;subplot(1,2,2);stem(y,'bo');xlabel('y(n)');gridon;1.3驗(yàn)證波形如圖1.1所示。其中x=[1234];h=[11];y=[13574].10圖1.1線性卷積程序驗(yàn)證波形10二、DFT程序2.1子函數(shù)程序functionX=
3、saw_fun_dft(x)%x表示原信號N=length(x);W=exp(-j*2*pi/N);fork=1:Nsum=0;forn=1:Nsum=sum+x(n)*W.^((n-1)*(k-1));endXa(k)=abs(sum);endfori=1:N/2X(i)=Xa(i);end2.2驗(yàn)證程序N=256;f1=0.1;f2=0.2;fs=1;a1=5;a2=3;w=2*pi/fs;x=a1*sin(w*f1*(0:N-1))+a2*sin(w*f2*(0:N-1))+randn(1,N);X=saw_fun_dft(x);subplot(2,1,1
4、);plot(x);xlabel({'n','(a)'});ylabel('x(n)');gridon;f=0:1/N:fs/2-1/N;subplot(2,1,2);plot(f,X);xlabel({'f/Hz','(b)'});ylabel('X(f)');gridon;2.3驗(yàn)證波形如圖2.1所示。其中x=5sin(0.2n)+3sin(0.4n)+randn(1,256),n=0,2,…255圖(a)為原信號波形,圖(b)為DFT變換后的波形。10圖2.1DFT程序驗(yàn)證波形10三、窗函數(shù)法設(shè)計(jì)FIR濾波器程序3.1子函數(shù)程序functionh=saw_
5、fun_firwin(N,fc)%低通濾波器,選用漢明窗,N表示濾波器階數(shù),fc表示截止頻率。ifrem(N,2)==0n2=N/2-1;flag=1;elsen2=N/2;flag=0;endwc1=2*pi*fc;fori=0:n2s=i-N/2;h(i+1)=(sin(wc1*s)/(pi*s))*(0.54-0.46*cos(2*i*pi/(N+1)));h(N-i+1)=h(i+1);endif(flag==1)h(N/2+1)=wc1/pi;end3.2驗(yàn)證程序N=60;fc=0.15;f1=0.1;f2=0.2;fs=1;a1=5;a2=3;w=2
6、*pi/fs;x=a1*sin(w*f1*(0:N-1))+a2*sin(w*f2*(0:N-1))+randn(1,N);X=saw_fun_dft(x);%利用第2題DFT程序N2=20;h=saw_fun_firwin(N2,fc)x2=saw_fun_conv(x,h);%利用第1題線性卷積程序X2=saw_fun_dft(x2);%利用第2題DFT程序subplot(321);stem(h,'.');xlabel({'n','(a)'});ylabel('h(n)');gridon;subplot(322);f11=0:0.5/N:0.5-0.5/N;
7、plot(f11,abs(freqz(h,1,N)));xlabel({'f','(b)'});ylabel('H(f)');gridon;subplot(323);plot(x);xlabel({'n','(c)'});ylabel('x(n)');gridon;subplot(324);10f12=0:1/N:0.5-1/N;plot(f12,X);xlabel({'f','(d)'});ylabel('X(f)');gridon;subplot(325);plot(x2);xlabel({'n','(e)'});ylabel('x2(n)');gridon
8、;subplot(326