资源描述:
《北邮-DSP-实验二实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验二:数字信号的FFT分析题目1假设信号x(n)由下述信号组成:这个信号有两根主谱线0.3pi和0.302pi靠的非常近,而另一根谱线0.45pi的幅度很小,请选择合适的长度N和窗函数,用DFT分析其频谱,得到清楚的三根谱线。步骤:1.编写离散傅里叶变换DFT函数:function[Xk]=dft(xn,N)%ComputesDiscreteFourierTransformCoefficients%[Xk]=dft(xn,N)%Xk=DFTcoeff.arrayover0<=k<=N-1%xn=inputsignal%N=lengthof
2、DFTn=[0:1:N-1];%rowvectorfornk=[0:1:N-1];%rowvecorforkWN=exp(-j*2*pi/N);%Wnfactornk=n'*k;%createsaNbyNmatrixofnkvaluesWNnk=WN.^nk;%DFTmatrixXk=xn*WNnk;%rowvectorforDFTcoefficients2.代码实现:n=0:1:999;x=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-0.25*pi);stem(n,x);title(
3、'signalx(n),0<=n<=999');xlabel('n');X=dft(x,1000);%计算1000点DFTmagX=abs(X(1:1:501));%镜像对称,只画出一半k=0:1:500;w=2*pi*k/1000;stem(w/pi,magX);title('DTFTMagnitude');xlabel('frequencyinpiunits');axis([0.29,0.31,0,500]);xlabel('frequencybetween0.29piand0.31pi');axis([0.44,0.46,0,0.5]
4、);xlabel('frequencybetween0.44piand0.46pi');3.图片:4.分析:x(n)由3个正弦函数叠加而成,周期分别是40,20,1000。这里序列长度选择n=1000,为周期的最小公倍数。从频谱分析中可以看出,此时的谱线中有3条清晰的谱线,所在位置分别是0.3pi,0.302pi和0.45pi。这说明当取样点数为函数周期的整倍数时,其频谱中科出现3条清晰的谱线。题目2已知信号这里,N=25,Q=0.9+j0.3。可以推导出,首先根据这个式子计算X(k)的理论值,然后计算输入序列x(n)的32个值,再利用基2
5、时间抽选的FFT算法,计算x(n)的DFTX(k),与X(k)的理论值比较(要求计算结果最少6位有效数字)。步骤:1.计算X(k)的理论值写入代码:Q=0.9+j*0.3;N=25;n=0:1:N-1;k=0:1:N-1;WN=exp(-j*2*pi/N);X=(1-Q.^N)./(1-Q*WN.^k);X=vpa(X,6)得到结果:X=[1.83992+2.88851*i,10.0793+7.6341*i,0.-5.86055*i,0.-2.56282*i,0.28018-1.62973*i,0.-1.18569*i,0.-0.*i,0.
6、-0.73897*i,0.-0.*i,0.-0.*i,0.-0.*i,0.-0.*i,0.50991-0.*i,0.-0.18669*i,0.-0.*i,0.-0.*i,0.+0.*i,0.+0.*i,0.+0.*i,0.64843+0.*i,0.+0.*i,0.+0.*i,0.+0.*i,0.+1.04306*i,1.13973+1.59277*i]2.计算输入序列x(n)的32个值:写入代码:n=0:1:N-1;x=[Q.^n,zeros(1,32-N)]x=vap(x,6)得到32点的x(n),输出结果为:x=[1.0,0.9+0.3
7、*i,0.72+0.54*i,0.486+0.702*i,0.2268+0.7776*i,-0.02916+0.76788*i,-0.+0.*i,-0.43565+0.*i,-0.+0.*i,-0.+0.15148*i,-0.-0.*i,-0.-0.*i,-0.-0.35019*i,-0.-0.*i,-0.-0.*i,0.-0.*i,0.-0.*i,0.28056-0.*i,0.-0.*i,0.-0.*i,0.+0.*i,0.29438+0.*i,0.+0.22409*i,0.+0.*i,0.+0.*i,0,0,0,0,0,0,0]3.利用
8、基2时间抽选的FFT算法,计算x(n)的DFTX(k)写入代码:n=0:1:N-1;x=[Q.^n,zeros(1,32-N)]X1=fft(x);X1=vpa(X1,6)得到结