北京理工大学数字信号处理实验报告.docx
《北京理工大学数字信号处理实验报告.docx》由会员分享,可在线阅读,更多相关《北京理工大学数字信号处理实验报告.docx(23页珍藏版)》请在课桌文档上搜索。
1、本科实验报告实验名称:数字信号处理实验课程名称:数字信号处理实验实验时间:任课教师:实验地点:4423实验教师:实验类型:原理验证综合设计自主创新学生姓名:学号/班级:组号:学院:信息与电子学院同组伙伴:专业:信息工程成绩:实验1利用DFT分析信号频谱一、实验目的L加深对DFT原理的理解。2 .应用DFT分析信号频谱。3 .深刻理解利用DFT分析信号频谱的原理,分析现实过程现象及解决方法。二、实验原理1、DFT和DTFT的关系有限长序列XG2)的离散时间傅里叶变换X(e)在频率区间(0g2万)的N个等分点M),ND,X(Q,MN1)上的N个取样值可以由下式表示:由上式可知,序列次()的N点DF
2、TX(R),实际上就是x()序列的DTFT在N个等间隔频率点X(),X,X(Z),X(N-1)上样本XQ2、利用DFT求DTFT方法1:由X(Z)恢复出X(e)的方法如图2.1所示:图2.1.由N点DFT恢复频谱DTFT的流程由图2.1所示流程图可知:由式2-2可以得到其中0(x)为内插函数方法2:然而在实际MATLAB计算中,上诉插值公式不见得是最好的方法。由于DFT是DTFT的取样值,其相邻的两个频率样本点的间距为2%,所以如果我们增加数据的长度N,使得得到的DFT谱线就更加精细,其包络就越接近DTFT的结果,这样可以利用DFT来近似计算DTFTo如果没有更多的数据,可以通过补零来增加数据
3、长度。3、利用DFT分析连续时间信号的频谱采用计算机分析连续时间信号的频谱,第一步就是把连续时间信号离散化,这里需要进行连个操作:一是采样,二是截断。对于连续非周期信号Xa(,),按采样间隔T进行采样,截取长度为M,那么对Xa(,。)进行N点的频率采样,得到因此,可以将利用DFT分析连续非周期信号频谱的步骤归纳如下:(1)确定时域采样间隔T,得到离散序列X();(2)确定截取长度M,得到M点离散序列X例()=X()(),这里的Vv(X)为窗函数。(3)确定频域采样点数N,要求NM.(4)利用FFT计算离散序列的N点DFT,得到XW(Z)O(5)根据式(2-6)由XA(%)计算Xq(/C)采样点
4、的近似值。采用上诉方法计算的频谱,需要注意如下三点问题:(1)频谱混叠。如果不满足采样定理的条件,频谱会很出现混叠误差。对于频谱无限宽的信号,应考虑覆盖大局部主要频率的范围。(2)栅栏效应和频谱分辨率。使用DFT计算频谱,得到的结果只是N个频谱样本值,样本值之间的频谱是未知的,就像通过一个栅栏观察频谱,称为“栅栏效应”。频谱分辨率与记录长度成正比,提高频谱分辨率,就要增加记录时间。(3)频谱泄露。对于信号截断会把窗函数的频谱会引入到信号频谱中,造成频谱泄露。解决这问题的主要方法是采用旁瓣小的窗函数,频谱泄露和窗函数均会引起误差。因此,要合理选取采样间隔和截取长度,必要时还需考虑适当的窗。对于连
5、续周期信号,我们在采用计算机进行计算时,也总是要进行截断,序列总是有限长的,仍然可以采用上诉方法近似计算。4、可能用到MATLAB函数与代码实验中的DFT运算可以采用MATLAB中提供的FFT来实现。DTFT可以利用MATLAB矩阵运算的方法进行计算。三、实验内容1 .x()=2,-1,1,1,完成如下要求:(1)计算其DTFT,并画出一町乃区间的波形。(2)计算4点DFT,并把结果显示在(1)所画的图形中。(3)对补零,计算64点DFT,并显示结果。(4)是否可以由DFT计算DTFT,如果可以,请编程实现。2 .考察序列(1) 0100时,用DFT估计x(。的频谱,并画出波形。3 .信号x(
6、f)=0.15sin(2;ZTif)+sin(2%)-0.IsinQzrQf),其中工=IHz,f2=2力=3HZo从XO)的表达式可以看出,它包含三个频率的正弦波,但是,从其时域波形来看,似乎是一个正弦信号,利用DFT做频谱分析,确定适合的参数,使得到的频谱的频率分辨率符合需要。4 .利用DFT近似分析连续时间信号x(t)=e-o%(t)的频谱(幅度谱)。分析采用不同的采样间隔和截取长度进行计算的结果,并最终确定适宜的参数。四、实验代码及实验结果实验实验结果:实验代码:n=0:3;x=2-111;w=-pi:0.01*pi:pi;X=*exp(-j*n*w);subplot(211);plo
7、t(w,abs(X);title(,gbxlabel(,wylabel(X);axistight;subplot(212);plot(w,angle(X);tit,相位,);XIabei(,w)ylabe(Angle(X);axistight;实验实验结果:实验代码:n=0:3;=2-111;w=-pi:0.01*pi:pi;X=x*exp(-j*n,*w);subplot(211);plot(w,abs(X);title(,幅度为XIabeI(W)*label(,IX);axistight;holdon;subplot(212);plot(w,angle(X);title(,)jxlabel
8、(,w,)jyabel(Angle(X);axistight;holdon;H=fft(x);subplot(211);stem(n,abs(三)filled);subplot(212);stem(nzangle(三)filled,);实验实验结果:实验代码:x=2-111zeros(lz60);X=fft(x);subplot(211);n=0:63;stem(n,abs(X)filled);title(幅度);XIabei(三)abel(IX门;subplot(212);stem(n,angle(X)filled)jtitle(,(i,)jxlabel(n,)jyabel(angle(X)
9、;分析:可以由DFT计算DTFT。通过补零加长序列,提高采样密度,可以由DFT近似计算DTFT。实验实验结果:实验代码:n=0:10;=cos(0.48*n*pi)+cos(0.52*n*pi);X=fft();subplot(211);stem(n,abs(X)filled,);ttle(,幅度,);XIabeI(,n,)ylabel(X,);subplot(212);stem(n,angle(X)filled,)jtitle(ffii)jxlabel(,n)jyabel(angle(X);补零加长:实验结果:实验代码:h=xzeros(lz89);H=fft(h);n=0:99;subpl
10、ot(211);stem(n,abs(三)filled);ttle(,幅度,);XIabel(三)MabeICH);subplot(212);Stem(n,angle(三),filled);title(相位);XIabel(n);ylabel(angle(三));实验实验结果:实验代码:n=0:100;=cos(0.48*n*pi)+cos(0.52*n*pi);X=fft(x);subplot(211);stem(n,abs(X)zfilled,);title(幅度);XIabeI(n)Mabel(IXI);sbplot(212);Stem(n,angle(X),filled);title(
11、相位);Xiabel(n)ylabel(angle(X);分析:可以通过增大截取长度和增加补零的个数来提高频谱分辨率,但是补零不能够增加分辨力。实验1.3实验结果:实验代码:fl=l;f2=2;f3=3;Fs=500;Tp=I;t=O:l/Fs:Tp;x=0.15*sin(2*pi*fl*t)+sin(2*pi*f2*t)-0.1*sin(2*pi*f3*t);N=501;F=FsN;f=O:Fs/(N-l):Fs;X=fft(xzN):stem(f,abs(X)250z,filled,);axis(0A0zl);label(,fHz);title(,Magnitude);分析:通过选取适宜的
12、采样周期,可以完整的恢复出原信号的频谱波形。实验1.4Tp=ls,0n100实验结果:实验代码:n=0:1:100;x=exp(-0.l*n);X=fft(x);stem(n,abs(X),filled*);Tp=5s,0n100实验结果:实验代码:n=0:5:100;x=exp(-0.l*n);X=fft(x);stem(n,abs(X),filled*);Tp=25s,0n100实验结果:实验代码:n=0:25:100;x=exp(-0.l*n);X=fft(x);stem(n,abs(X),filled*);Tp=Is,0n50实验结果:实验代码:n=0:1:50;x=exp(-O.l*
13、n);X=fft(x);stem(n,abs(X),filled*);Tp=I,On25实验结果:实验代码:n=0:1:25;x=exp(-O.l*n);X=fft(x);stem(n,abs(X),filled*);分析:最终确定参数:tp=5s,OnUOOo五、心得与体会通过本次实验,我们掌握并加深对DFT原理的理解并且学会应用DFT分析信号频谱,在此根底上利用DFT分析信号频谱的原理,掌握了利用matlab分析现实问题的步骤及方法。并且,通过这次的实验,对信号序列有了更加深刻的认识,单纯的一个信号序列是没有意义的,只有配合他本身的时间序列才是一个完整的信号序列,才可以对其进行分析。实验2
14、利用FFT计算线性卷积(选作)一、实验目的1 .掌握利用FFT计算线性卷积的原理及具体实现方法。2 .加深理解重叠相加法和重叠保存法。3 .考察利用FFT计算线性卷积各种方法的适用范围。二、实验原理L线性卷积与圆周卷积设x(n)为L点序列,h(n)为M点序列,x(n)和h(n)的线性卷积为yl(n)=x()*h(n)=xmh(n-m)(3-1)JM=-QOy(“)的长度为L+M/x(n)和h(n)的圆周卷积为NTy(n)=x(n):1Ku)=NEx(m)h(n-m)NRN(n)(3-2)w三O圆周卷积与线性卷积相等而不产生交叠的必要条件为NL+M+1(3-3)圆周卷积定理:根据DFT性质,x(
15、n)和h(n)的N点圆周卷积的DFT等于它们的DFT的乘积:DFTx(n)h(n)=X(k)H(k)(3.4)4 .快速卷积快速卷积发运用圆周卷积实现线性卷积,根据圆周卷积定理利用FFT算法实现圆周卷积。可将快速卷积运算的步骤归纳如下:(1)必须选择NNL+M-1;为了能使用基-2算法,要求N=2,采用补零的方法使得(n)和h(n)的长度均为No(2)计算x(n)和h(n)的N点FFTo(3)组成乘积(4)利用IFFT计算Y(k)的IDFT,得到线性卷积y(n)5 .分段卷积我们考察单位取样响应为h(n)的线性系统,输入为x(n),输出为y(n),则y(n)=x(n)*h(n)当输入序列x(n
16、)极长时,如果要等x(n)全部集齐时再开始进行卷积,会使输出有较大延时;如果序列太长,需要大量存储单元。为此,我们把x(n)分段,为别求出每段的卷积,合在一起得到最后的总输出。这称为分段卷积。分段卷积可以细分为重叠保存法和重叠相加法。重叠保存法:设x(n)的长度为N,h(n)的长度为M。把序列x(n)分成多段N点序列R(口),每段雨前一段重写M-I个样本。并在第一个输入段前面补M-I个零。计算每一段与h(n)的圆周卷积,其结果中前M-I个不等与线性卷积,应当舍去,只保存后面NM+1个正确的输出样本,把它们合起来得到总的输出。利用FFT实现重叠保存法的步骤如下:(1)在x(n)前面填充M-I个零
17、,扩大以后的序列为(2)将x(n)分为假设干段N点子段,设L=N-M+1为每一段的有效长度,则第i段的数据为:(3)计算每一段与h(n)的N点圆周卷积,利用FFT计算圆周卷积(4)舍去每-一段卷积结果的前M-I个样本,连接剩下的样本得到卷积结果y(n)。重叠相加法:设h(n)长度为M,将信号x(n)分解成长为L的子段。以S)表示没断信号,则:每一段卷积(n)的长度为L+M-1,所以在做求和时,相邻两段序列由M-I个样本重叠,即前一段的最后M-I个样本和下一段前M-I个样本序列重叠,这个重叠局部相加,再与不重叠的局部共同组成y(n)o利用FFT实现重叠保存法的步骤如下:(1)将x(n)分为假设干
18、L点子段5(0)。(2)计算每一段与h(n)的卷积,根据快速卷积法利用FFT计算卷积。(3)将各段相加,得到输出y(n)。4、可能得到的UATLAB函数实验中FFT运算可采用MATLAB中提供的函数fft来实现。三、实验内容假设要计算序列X(n)=u(n)-U(n-L),0tA-iy+at);ticH=fft(hzNi);fori=l:Num;i_low=(i-l)*M+1;xi=x_add(i_low:i_low+M-1);Xi=fft(xizNi);Yi=Xi.*H;yi=ifft(YizNi);y(i_low:i_low+M-1)=yi(M:Ni);endxi=x_add(i*M+l):
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京理工大学 数字信号 处理 实验 报告
链接地址:https://www.desk33.com/p-908143.html