您好,欢迎访问三七文档
《数字信号处理》课程设计报告任课教师:王晓君指导教师:王晓君学生学号:120701235学生姓名:张念琦所学专业:电子信息工程2014年12月31日课程设计成绩评定表学生姓名张念琦学号120701235成绩专业班级电信122起止时间2014.12.28至2014.12.31设计题目设计一:DFT在信号频谱中的应用设计设计二:有噪声情况下信号幅度谱的研究指导教师评语指导教师:年月日目录一、DFT在信号频谱分析中的应用1.1设计目的…………………………………………………………………11.2设计原理…………………………………………………………………11.3实现方法…………………………………………………………………11.4设计内容及要求……………………………………………………………………11.5设计结果及改进建议………………………………………………………21.6思考题……………………………………………………………………8二、有噪声情况下信号幅度谱的研究2.1设计目的…………………………………………………………………92.2设计原理…………………………………………………………………92.3实现方法…………………………………………………………………92.4设计内容及要求……………………………………………………………………92.5设计结果及改进建议………………………………………………………122.6思考题……………………………………………………………………14三、设计体会………………………………………………………………………………14四、参考文献………………………………………………………………………………151一、DFT在信号频谱中的应用1.1设计题目DFT在信号频谱中的应用1.2设计原理所谓信号的频谱分析就是计算信号的傅里叶变换。连续信号与系统的傅里叶分析显然不便于直接用计算机进行计算,使其应用受到限制,而DFT是一种时域和频域均离散化的变换,适合数值运算,成为分析离散信号和系统的有力工具。工程实际中,经常遇到的连续信号Xa(t),其频谱函数Xa(jW)也是连续函数。数字计算机难于处理,因而我们采用DFT来对连续时间信号的傅里叶变换进行逼近,进而分析连续时间信号的频谱。离散傅里叶变换是有限长序列的傅里叶变换,它相当于把信号的傅里叶变换进行等频率间隔采样,并且有限长序列的离散傅里叶变换和周期序列的离散傅里叶级数本质是一样的。快速傅里叶变换(FFT)并不是一种新的变换,它是离散傅里叶变换的一种快速算法,并且主要是基于这样的思路而发展起来的:(1)把长度为N的序列的DFT逐次分解成长度较短的序列的DFT来计算。(2)利用WN(nk)的周期性和对称性,在DFT运算中适当的分类,以提高运算速度。(对称性,;周期性,r为任意整数)1.3设计目的1).熟悉DFT的性质。2).加深理解信号频谱的概念及性质。3).了解高密度谱与高分辨率频谱的区别。1.4设计任务与要求1).学习用DFT和补零DFT的方法来计算信号的频谱。2).用MATLAB语言编程来实现,在做课程设计前,必须充分预习课本DTFT、DFT及补零DFT的有关概念,熟悉MATLAB语言,独立编写程序。21.5设计内容1).用MATLAB语言编写计算序列x(n)的N点DFT的m函数文件dft.m。并与MATLAB中的内部函数文件fft.m作比较。DFTmatlab.m源程序如下:function[q]=DFTmatlab(xn,N)n=[0:1:N-1];%n取0到N-1k=[0:1:N-1];WN=exp(-j*2*pi/N);%求WNnk=n'*k;WNnk=WN.^nk;q=xn*WNnk%求出xn的DFT表达式2).DFT与FFT计算时间比较的源程序:dft_time=zeros(1,100);forn=1:100;t=clock;%clock%将当前时间作为日期向量返回a=sin(n)+cos(n);DFTmatlab(a,n);dft_time(n)=etime(clock,t);%etime指消耗的时间end;n=1:100;subplot(1,2,1);plot(n,dft_time,'.');%plot二维曲线图xlabel('N');ylabel('time/s');title('DFT');fft_time=zeros(1,100);forn=1:1:100;t=clock;a1=sin(n)+cos(n);fft(a1);fft_time(n)=etime(clock,t);end;n=1:100;subplot(1,2,2);plot(n,fft_time,'.');xlabel('N');ylabel('time/s');title('FFT');3运行结果截图:DFT与FFT计算时间比较05010000.020.040.060.080.10.12Ntime/sDFT050100-1-0.8-0.6-0.4-0.200.20.40.60.81Ntime/sFFT3).对离散确定信号()cos(0.48)cos(0.52)xnnn作如下谱分析:截取()xn使()xn成为有限长序列N(0nN-1),(长度N自己选)写程序计算出()xn的N点DFT()Xk,画出时域序列图xn~n和相应的幅频图()~Xkk。源程序如下:n=0:99;xn=cos(0.48*pi*n)+cos(0.52*pi*n);Xk=fft(xn,100);subplot(2,1,1);stem(n,xn);grid;subplot(2,1,2);stem(n,abs(Xk));grid;4运行结果截图:低频信号截取100点时的幅频图0102030405060708090100-2-1012010203040506070809010002040604).利用补零DFT计算(3)中N点有限长序列()xn频谱()jXe并画出相应的幅频图()~jXe源程序如下:n=0:9;xn=cos(0.48*pi*n)+cos(0.52*pi*n);n1=0:99;xn3=[xn,zeros(1,90)];Xk3=DFTmatlab(xn3,100);plot(n1,abs(Xk3));grid;5运行结果截图;利用补零DFT计算低频信号N点序列01020304050607080901000123456789104).研究高密度谱与高分辨率频谱。对连续确定信号:333()cos(26.510)cos(2710)cos(2910)axtttt以采样频率fs=32kHz对信号()axt采样得离散信号()xn,分析下列三种情况的幅频特性。①采集数据()xn长度取N=16点,编写程序计算出()xn的16点DFT()Xk,并画出相应的幅频图()~Xkk源程序如下:T=1/(32*10^3);n=(0:15);xn=cos(2*pi*6.5*10^3*n*T)+cos(2*pi*7*10^3*n*T)+cos(2*pi*9*10^3*n*T);Xk=fft(xn,16);subplot(2,1,1);stem(n,xn);grid;subplot(2,1,2);stem(n,abs(Xk));grid;6运行结果截图:计算高频信号16点的DFT051015-4-2024051015051015②采集数据()xn长度N=16点,补零加长至M点(长度M自己选),利用补零DFT计算()xn的频谱1()jXe并画出相应的幅频图1()~jXe。源程序如下:T=1/(32*10^3);n=(0:15);xn=cos(2*pi*6.5*10^3*n*T)+cos(2*pi*7*10^3*n*T)+cos(2*pi*9*10^3*n*T);n1=0:50;xn1=[xn,zeros(1,35)];Xk1=fft(xn1,51);subplot(2,1,1);stem(n1,xn1);grid;subplot(2,1,2);plot(n1,abs(Xk1));grid;7运行结果截图:高频信号补零至50点的频谱05101520253035404550-4-20240510152025303540455005101520③采集数据()xn长度取为M点(注意不是补零至M),编写程序计算出M点采集数据()xn的的频谱2()jXe并画出相应的幅频图2()~jXe。源程序如下:T=1/(32*10^3);n=[0:50];xn=cos(2*pi*6.5*10^3*n*T)+cos(2*pi*7*10^3*n*T)+cos(2*pi*9*10^3*n*T);Xk2=fft(xn,51);subplot(2,1,1);stem(n,xn);grid;subplot(2,1,2);plot(n,abs(Xk2));grid;8运行结果截图:高频信号取长度为50点的频谱05101520253035404550-4-2024051015202530354045500102030由以上的结果可知,DFT所需时间比FFT长很多,既FFT是DFT的一种快速算法。1.6简要回答如下思考题:(1)对比设计内容2中(1)(2)(3)的图,说明补零DFT的作用。答:DFT是有限长序列的频谱等间隔采样所得到的样本值,这就相当于透过一个栅栏去观察原来信号的频谱,因此必然有一些地方被栅栏所遮挡,这些被遮挡的部分就是未被采样到的部分,这种现象称为栅栏效应。由于栅栏效应总是存在的,因而可能会使信号频率中某些较大的频率分量由于被“遮挡”无法得到反映。此时,通常在有限长序列的尾部增补若干个零值,介意改变原序列的长度。这样加长的序列作DFT时,由于点数增加就相当于调整了原来栅栏的间隙即间隔频率,可以使得原来的不到反映的那些较大的频率分量落在采样点上而得到反映。但要注意,由于栅栏效应,使得被分析的频谱变得较为稀疏,为此,在采样样本序列x(n)后补零,在数据长度不变的情况下,可以改变频谱的频率取样密度,得到高密度频谱。(2)解释设计内容3中图和图有什么区别?补零DFT能否提高信号的频谱分辨率,说明提高频谱密度、频谱分辨率的措施各是什么?答:补零作用不能提高信号的频谱分辨率,因在x(n)后面补零并没有增加新的信息量,改善的仅是栅栏效应,所以补零是不能提高频率分辨率的,即得不到高分辨率谱。这说明,补零仅仅是提高了计算分辨率,得到的是高密度频谱,而要得到高分辨率谱,则要通过增加数据的记录长度来提高物理分辨率。9二、有噪声情况下信号幅度谱的研究2.1设计目的1.了解并掌握白噪声的产生方法。2.了解并掌握正弦信号及白噪声信号的相关函数求法。2.2设计原理白噪声,是在无限频率范围内功率密度为常数的信号是一种功率谱密度为常数的随机信号。连续时间白噪声信号的自相关函数是一个δ函数,在除τ=0之外的所有点均为0。维纳-辛钦定理(Winener-Khinchintheorem)表明,自相关函数和功率谱密度函数是一对傅里叶变换对。2.3实现方法1.鉴于matlab多用矩阵,因此程序中运用矩阵来定义白噪声信号,当给定正弦信号后,正弦信号与白噪声信号相加,即正弦信号中混有白噪声。2.调用Matlab工具箱提供的计算随机信号的相关函数:xcorr。若函数用于计算x(n)的自相关,则调用格式:c=xcorr(x,y,’option’)其中:‘option’为选择项①若为’biased’:代表有偏互相关估计②若为’unbiased’:代表无偏互相关估计2.4设计内容及要求1.编写产生均匀分布白噪声序列的M函数文件drand.m。Drand.m源程序如下:p=0.01;N=50000;%点数u=rand(1,N);%均匀矩阵u=u-mean(u);a=sqrt(12*p);u1=u*a;%定义白噪声10power_u1=dot(u1,u1)/N%白噪声功率的求法subplot(211)%确定图位置plot(u1(1:200));gridon;title('whiteno
本文标题:35张念琦
链接地址:https://www.777doc.com/doc-2919681 .html