资源描述:
《2012数字信号处理实验讲义 - 实验二》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、--数字信号处理实验讲义--实验二离散傅立叶变换及谱分析一、实验目的1.掌握离散傅里叶变换的计算机实现方法。2.检验实序列傅里叶变换的性质。3.掌握计算序列的循环卷积的方法。4.学习用DFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差,以便在实际中正确应用DFT。二、实验内容1.实现序列的离散傅里叶变换并对结果进行分析。(自己选择序列,要求包括复序列,实序列,实偶序列,实奇序列,虚奇序列)2.计算序列循环卷积。3.计算实序列傅里叶变换并检验DFT性质。4.实现补零序列的傅里叶变换。6.实现高密度谱和高分辨率谱,并比较二
2、者的不同。三、实验报告要求见各程序要求%以下为4个扩展函数%(1)离散傅立叶变换采用矩阵相乘的方法function[Xk]=dft(xn,N)n=[0:1:N-1];k=[0:1:N-1];WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^(nk);Xk=xn*WNnk;%(2)逆离散傅立叶变换function[xn]=idft(Xk,N)n=[0:1:N-1];k=[0:1:N-1];WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^(-nk);xn=(Xk*WNnk)/N;%(3)实序列的分解%
3、实序列可分解为共扼对称分量%和共扼反对称分量function[xec,xoc]=circevod(x)N=length(x);n=0:(N-1);xec=0.5*(x+x(mod(-n,N)+1));%根据上面的公式计算,mod函数为取余xoc=0.5*(x-x(mod(-n,N)+1));%(4)序列的循环移位functiony=cirshftt(x,m,N)3--数字信号处理实验讲义--iflength(x)>Nerror('Nmustbe>=thelengthofx')%要求移位周期大于信号长度endx=[xzeros(1,N-le
4、ngth(x))];n=[0:1:N-1];n=mod(n-m,N);y=x(n+1);%例1本例检验实序列的性质DFT[xec(n)]=Re[X(k)]DFT[xoc(n)]=Im[X(k)]%设x(n)=10*(0.8).^n0<=n<=10将x(n)分解为共扼对称及共扼反对称部分%实验报告要求:(1)将实验结果画出(2)实验结果说明什么n=0:10;x=10*(0.8).^n;[xec,xoc]=circevod(x);subplot(2,1,1);stem(n,xec);%画出序列的共扼对称分量title('Circular-ev
5、encomponent')xlabel('n');ylabel('xec(n)');axis([-0.5,10.5,-1,11])subplot(2,1,2);stem(n,xoc);%画出序列的共扼反对称分量title('Circular-oddcomponent') xlabel('n');ylabel('xoc(n)');axis([-0.5,10.5,-4,4])figure(2)X=dft(x,11);%求出序列的DFTXec=dft(xec,11);%求序列的共扼对称分量的DFTXoc=dft(xoc,11);%求序列的共扼反
6、对称分量的DFTsubplot(2,2,1);stem(n,real(X));axis([-0.5,10.5,-5,50])title('Real{DFT[x(n)]}');xlabel('k');%画出序列DFT的实部subplot(2,2,2);stem(n,imag(X));axis([-0.5,10.5,-20,20])title('Imag{DFT[x(n)]}');xlabel('k');%画出序列DFT的虚部subplot(2,2,3);stem(n,Xec);axis([-0.5,10.5,-5,50])title('DF
7、T[xec(n)]');xlabel('k');subplot(2,2,4);stem(n,imag(Xoc));axis([-0.5,10.5,-20,20])title('DFT[xoc(n)]');xlabel('k');%例2本例为计算序列的循环卷积程序%运行之前应在命令窗口输入x1,x2,N的值%实验报告要求:自己选择2个序列进行计算,将实验结果写出iflength(x1)>Nerror('Nmustbe>=thelengthofx1')endiflength(x2)>Nerror('Nmustbe>=thelengthofx2
8、')endx1=[x1zeros(1,N-length(x1))];%将x1,x2补0成为N长序列x2=[x2zeros(1,N-length(x2))];m=[0:1:N-1];x2=x2(