資源描述:
《數(shù)字信號處理實驗報告MATLAB》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、實驗2離散時間信號的頻譜分析1、實驗內(nèi)容一、編寫子函數(shù)計算長度為N的序列x(n)(0≤n≤N-1)的離散時間傅里葉變換,將頻率均勻離散化,一個周期內(nèi)有M個點。要求畫出虛部、實部、幅度、相位,并標注坐標軸。二、對矩形序列x(n)=RN(n)1.用公式表示x(n)的頻譜,求出其幅度譜和相位譜;2.利用編寫的子函數(shù),計算并畫出x(n)的頻譜1)固定M,改變N,觀察N的取值對頻譜的最大值、過零點、第一旁瓣幅度與最大值的比值以及相位譜的影響;2)固定N,改變M,觀察M的取值對幅度譜和相位譜的影響。如:M=4,26,100N=4,26,100三、利用子函數(shù),畫出信號x(n)=
2、sin(pi*n/5)和x(n)=cos(pi*n/4)+cos(pi*n/8)(0≤n≤N-1)的幅度譜和相位譜。N分別取為8,16,20,64,75,128,M=256。觀察N取不同值時信號頻譜的相同和不同之處,為什么會有這樣的結(jié)果。2、編程原理、思路和公式(1)、給定長度為N的序列x(n)的離散時間傅里葉變換(DTFT)的公式為。可以看出x(n)的DTFT仍然是一個連續(xù)函數(shù),所以需要將數(shù)字角頻域w離散化,設(shè)一個頻率周期內(nèi)離散點有M個,則第k個點所代表的數(shù)字角頻率。這樣x(n)的DTFT變成:,(2)、因為0≤.n≤.N-1,設(shè)置兩層for循環(huán),用sum表示累
3、加求和的值,即可實現(xiàn)(3)對矩形序列x(n)=R4(n),首先固定M不變,改變N的取值。主函數(shù)x=ones(1,N);M=100;w=0:2*pi/M:2*pi*(M-1)/M;然后調(diào)用已經(jīng)寫好的dtft子函數(shù),求出相位譜和幅度譜,然后調(diào)用plot函數(shù)即可畫出圖形。(4)再次,固定N不變,改變M的取值。x=ones(1,N);M=4;w=0:2*pi/M:2*pi*(M-1)/M;然后調(diào)用已經(jīng)寫好的dtft子函數(shù),求出相位譜和幅度譜,然后調(diào)用plot函數(shù)即可畫出圖形。(5)實驗三主函數(shù)M=256;N=8;n=0:N-1;x=sin(pi*n/5);x=cos(pi
4、*n/4)+cos(pi*n/8);然后調(diào)用子函數(shù)dtft,求出相位譜和幅度譜,然后調(diào)用plot函數(shù)即可畫出圖形。(6)改變N的取值,其余不變,即可觀察信號頻譜的不同之處。3、程序腳本,并注釋子函數(shù):function[Xm,Xp]=dtft(x,M)N=length(x);Xk=zeros(1,M);fork=0:M-1w=2*pi*k/M;sum=0;forn=0:N-1sum=sum+x(n+1)*exp(-j*w*n);endXk(k+1)=sum;endXm=abs(Xk);Xp=phase(Xk);實驗1functionDTFT(xn,N,M);N=10
5、;n=0:N-1;xn=0:N-1;M=100;k=0:M-1;w=2*pi/M*k;Xw=xn*exp(-j*(n'*w));Xw_real=real(Xw);Xw_imag=imag(Xw);Xw_abs=abs(Xw);Xw_angle=angle(Xw);subplot(2,2,1);plot(w,Xw_real);xlabel('w');ylabel('real');title('DTFT-real');subplot(2,2,2);plot(w,Xw_abs);xlabel('w');ylabel('abs');title('DTFT-abs');su
6、bplot(2,2,3);plot(w,Xw_angle);xlabel('w');ylabel('angle');title('DTFT-angle');subplot(2,2,4);plot(w,Xw_imag);xlabel('w');ylabel('imag');title('DTFT-imag');實驗2x=ones(1,4);M=100;w=0:2*pi/M:2*pi*(M-1)/M;[Xm,Xp]=dtft(x,M);subplot(2,5,1);plot(w,Xm);xlabel('w');ylabel('Xm');title('幅頻特性');gr
7、id;subplot(2,5,6);plot(w,Xp);xlabel('w');ylabel('Xp');title('相頻特性');grid;x=ones(1,26);M=100;w=0:2*pi/M:2*pi*(M-1)/M;[Xm,Xp]=dtft(x,M);subplot(2,5,2);plot(w,Xm);xlabel('w');ylabel('Xm');title('幅頻特性');grid;subplot(2,5,7);plot(w,Xp);xlabel('w');ylabel('Xp');title('相頻特性');grid;x=ones(1,10
8、0);M=