數字信號處理(第3版)dspch1-9信號與系統分析Matlab實現_第1頁
數字信號處理(第3版)dspch1-9信號與系統分析Matlab實現_第2頁
數字信號處理(第3版)dspch1-9信號與系統分析Matlab實現_第3頁
數字信號處理(第3版)dspch1-9信號與系統分析Matlab實現_第4頁
數字信號處理(第3版)dspch1-9信號與系統分析Matlab實現_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

電子信息工程學院信號處理課程組數字信號處理DigitalSignalProcessing離散信號與系統分析

離散信號的時域分析離散系統的時域分析離散信號的頻域分析離散系統的頻域分析離散信號的復頻域分析離散系統的復頻域分析全通濾波器與最小相位系統信號的時域抽樣與信號重建信號與系統分析MATLAB實現利用MATLAB實現離散信號與系統分析

利用MATLAB產生離散信號利用MATLAB計算序列卷積與相關利用MATLAB求解離散LTI系統響應利用MATLAB計算離散信號的頻譜利用MATLAB求解不同表示形式的系統函數利用MATLAB產生離散信號

利用MATLAB表示離散序列x[k],一般利用兩個向量:MATLAB產生離散信號的基本函數:exp,sin,cos,square,sawtooth等向量(1):表示自變量k的取值范圍向量(2):表示離散序列x[k]的值如序列x[k]={2,1,1,-1,3;k=-2,-1,0,1,2},MATLAB表示為k=-2:2;x=[2,1,1,-1,3];[例]利用MATLAB產生指數序列

x[k]=Kaku[k]。

MATLAB程序如下:a=input('a=');K=input('K=');N=input('N=');k=0:N-1;x=K*a.^k;stem(k,x);xlabel('Time');ylabel('Amplitude');title(['\alpha=',num2str(a)]);MATLAB程序運行結果:a=0.9,K=2,N=31的指數序列利用MATLAB計算序列卷積和相關

離散序列的卷積和相關是數字信號處理中的基本運算,MATLAB提供了計算卷積和相關的函數conv和xcorr,調用方式是:y=conv(x,h)y=xcorr(x,h)x,h:分別為參與卷積和相關運算的兩個序列y:返回值是卷積或相關的結果注意:序列y的起點和取值范圍可由序列的卷積或相關的性質得到。[例]利用MATLAB函數

conv

計算兩個序列的卷積。

MATLAB程序如下:x=[-0.5,0,0.5,1];kx=-1:2;h=[1,1,1];kh=-2:0;y=conv(x,h);k=kx(1)+kh(1):kx(end)+kh(end);stem(k,y);xlabel('k');ylabel('y');MATLAB程序運行結果:[例]利用MATLAB函數

xcorr計算兩個序列的相關。

MATLAB程序如下:x=[-0.5,0,0.5,1];kx=0:3;h=[1,1,1,1];kh=0:3;y=xcorr(x,h);k=kx(1)-kh(end):kx(end)-kh(1);stem(k,y);xlabel('k');ylabel('y');MATLAB程序運行結果:利用MATLAB求解離散LTI系統響應

當已知系統的輸入和N個初始狀態,可由下式迭代計算系統的輸出:離散LTI系統的輸入-輸出關系可由線性常系統差分方程描述:利用MATLAB求解離散LTI系統響應

其中:b=[b0,b1,,bM],a=[a0,a1,,aN];x表示輸入序列,y表示輸出序列;

系統的初始狀態為零;

輸出序列y[k]的長度和輸入序列x[k]相同。

y=filter(b,a,x

)MATLAB提供了求解零狀態差分方程的函數:[例]利用M點的滑動平均系統去噪。

解:M點的滑動平均系統的輸入-輸出關系為原始信號:

s[k]=5+2cos(0.02pk)+(2k)0.9k噪聲干擾的信號:

x[k]=s[k]+n[k]噪聲信號:

n[k]利用M點的滑動平均系統從信號x[k]中濾去噪聲信號n[k]。[例]利用M點的滑動平均系統去噪。

MATLAB程序如下:N=201;n=1.0*rand(1,N)-0.5;k=0:N-1;s=2*k.*(0.9.^k)+2.0*cos(0.02*pi*k)+5.0;x=s+n;subplot(2,1,1);plot(k,n,'k-',k,s,'b--',k,x,'m-');xlabel('Timeindexk');legend('n[k]','s[k]','x[k]');M=5;b=ones(M,1)/M;a=[1];y=filter(b,a,x);subplot(2,1,2);plot(k,s,'b-',k,y,'r-');xlabel('Timeindexk');legend('s[k]','y[k]');[例]利用M點的滑動平均系統去噪。

MATLAB程序運行結果:利用MATLAB分析離散系統頻率響應

H=freqz(b,a,w

)MATLAB提供的freqz函數可分析離散系統的頻率響應,若系統的頻率響應H(ejΩ)表示為e-jΩ的有理多項式:則函數freqz的調用形式為:其中:b=[b0,b1,,bM],a=[a0,a1,,aN]分別為分子、分母系數向量;w表示需要計算的抽樣頻率點向量(至少2點)。[例]畫出的頻率響應。

MATLAB程序如下:b=[1];a1=[1,-0.9];a2=[1,0.9];w=linspace(0,pi,512);h1=freqz(b,a1,w);h2=freqz(b,a2,w);plot(w/pi,

abs(h1),w/pi,abs(h2),':');legend('\alpha=0.9','\alpha=-0.9');MATLAB程序運行結果:有理多項式形式利用MATLAB求解不同形式的系統函數

MATLAB提供了多個函數實現不同表示形式的系統函數的求解:零極點形式[z,p,K]=tf2zp(b,a)[b,a]=zp2tf(z,p,K)零極點形式利用MATLAB求解不同形式的系統函數

MATLAB提供了多個函數實現不同表示形式的系統函數的求解:二階因子級聯形式sos=zp2sos(z,p,K)[例]已知某離散因果的LTI系統的系統函數,試將系統函數轉換為零極點形式和二階因子級聯形式。

MATLAB程序如下:b=[0.2665,-0.0001,-0.5331,

-0.0001,0.2665];a=[1,0,0.1077,0,0.1736];[z,p,K]=tf2zp(b,a)MATLAB程序運行結果:z=

-1.0000

p=

-0.4260+0.4850iK=0.2665

-1.0000

-0.4260-0.4850i

1.0142

0.4260+0.4850i

0.9860

0.4260-0.4850iMATLAB程序如下:b=[0.2665,-0.0001,-0.5331,

-0.0001,0.2665];a=[1,0,0.1077,0,0.1736];[z,p,K]=tf2zp(b,a);sos=zp2sos(z,p,K)MATLAB程序運行結果:sos=0.2665-0.53300.2665

1.0000-0.85190.41671.00002.0000

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論