信号的傅立叶级数和频谱分析——周期性矩形脉冲信号的分解与叠加_第1页
信号的傅立叶级数和频谱分析——周期性矩形脉冲信号的分解与叠加_第2页
信号的傅立叶级数和频谱分析——周期性矩形脉冲信号的分解与叠加_第3页
信号的傅立叶级数和频谱分析——周期性矩形脉冲信号的分解与叠加_第4页
信号的傅立叶级数和频谱分析——周期性矩形脉冲信号的分解与叠加_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、29沈阳理工大学成 绩 评 定 表学生姓名刘磊班级学号1203060315专 业通信工程课程设计题目周期性矩形脉冲信号的分解与叠加评语组长签字:成绩日期 2014 年6 月 日课程设计任务书学 院信息科学与工程专 业通信工程学生姓名刘磊班级学号 1203060315课程设计题目信号的傅立叶级数和频谱分析周期性矩形脉冲信号的分解与叠加实践教学要求与任务:1、 学习Matlab软件及应用;2、 学习并研究信号的傅立叶级数和频谱分析有关理论;3、利用Matlab编程,完成周期性矩形脉冲信号的分解与叠加课题;4、写出课程设计报告,打印程序,给出运行结果。工作计划与进度安排:第1-2天: 1、学习使用M

2、atlab软件、上机练习2、明确课题内容,初步编程 第3-5天: 1、上机编程、调试2、撰写课程设计报告书3、检查编程、运行结果、答辩4、上交课程设计报告指导教师:2014 年6 月 日专业负责人:2014 年 6 月 日学院教学副院长:2014 年6 月 日目录一、引言4二、Matlab入门62.1 Matlab7.0介绍62.2利用Matlab7.0编程完成习题设计6三、Matlab7.0实现周期性矩形脉冲信号的分解与叠加 83.1周期性矩形脉冲信号的分解与叠加的原理83.2指数形式的傅里叶级数83.3连续时间周期信号的傅里叶综合9 3.4吉布斯现象.10 3.5单边与双边频谱关系.11

3、四、运行代码.12 五、编程实现.18六、结论26七、参考文献28一、引言人们之间的交流是通过消息的传播来实现的,信号则是消息的表现形式,消息是信号的具体内容。信号与系统课程是一门实用性较强、涉及面较广的专业基础课,该课程是将学生从电路分析的知识领域引入信号处理与传输领域的关键性课程,对后续专业课起着承上启下的作用. 该课的基本方法和理论大量应用于计算机信息处理的各个领域,特别是通信、数字语音处理、数字图像处理、数字信号分析等领域,应用更为广泛。近年来,计算机多媒体教序手段的运用逐步普及,大量优秀的科学计算和系统仿真软件不断涌现,为我们实现计算机辅助教学和学生上机实验提供了很好的平台。通过对这

4、些软件的分析和对比,我们选择MATLAB语言作为辅助教学工具,借助MATLAB强大的计算能力和图形表现能力,将信号与系统中的概念、方法和相应的结果,以图形的形式直观地展现给我们,大大的方便我们迅速掌握和理解老师上课教的有关信号与系统的知识。MATLAB是当前最优秀的科学计算软件之一,也是许多科学领域中分析、应用和开发的基本工具。MATLAB全称是Matrix Laboratory,是由美国Mathworks公司于20世纪80年代推出的数学软件,最初她是一种专门用于矩阵运算的软件,经过多年的发展,MATLAB已经发展成为一种功能全面的软件,几乎可以解决科学计算中的所有问题。而且MATLAB编写简

5、单、代码效率高等优点使得MATLAB在通信、信号处理、金融计算等领域都已经被广泛应用。它具有强大的矩阵计算能力和良好的图形可视化功能,为用户提供了非常直观和简洁的程序开发环境,因此被称为第四代计算机语言。MATLAB 强大的图形处理功能及符号运算功能,为我们实现信号的可视化及系统分析提供了强有力的工具。MATLAB 强大的工具箱函数可以分析连续信号、连续系统,同样也可以分析离散信号、离散系统,并可以对信号进行各种分析域计算,如相加、相乘、移位、反折、傅里叶变换、拉氏变换、Z 变换等等多种计算。作为信号与系统的基本分析软件之一,利用MATLAB进行信号与系统的分析与设计是通信以及信息工程学科的学

6、生所要掌握的必要技能之一。通过学习并使用MATLAB语言进行编程实现课题的要求,对学生能力的培养极为重要。尤其会提高综合运用所学理论知识进行分析问题、解决问题的能力,也便于将理论知识与实践相结合,并得以更好地掌握信号分析与处理的基本方法与实现。这也将为后续相关的课程学习打下一定的基础,从而在以后相关课程设计与分析的时候达到对MATLAB的熟练应用与融会贯通。二、Matlab入门2.1 Matlab7.0介绍Matlab7.0比Matlab的老版本提供了更多更强的新功能和更全面、更方便的联机帮助信息。当然也比以前的版本对于软件、硬件提出了更高的要求。在国内外Matlab已经经受了多年的考验。Ma

7、tlab7.0功能强大,适用范围很广。其可以用来线性代数里的向量、数组、矩阵运算,复数运算,高次方程求根,插值与数值微商运算,数值积分运算,常微分方程的数值积分运算、数值逼近、最优化方法等,即差不多所有科学研究与工程技术应用需要的各方面的计算,均可用Matlab来解决。 MATLAB7.0提供了丰富的库函数(称为M文件),既有常用的基本库函数,又有种类齐全、功能丰富多样的的专用工具箱Toolbox函数。函数即是预先编制好的子程序。在编制程序时,这些库函数都可以被直接调用。无疑,这会大大提高编程效率。MATLAB7.0的基本数据编程单元是不需要指定维数的复数矩阵,所以在MATLAB环境下,数组的

8、操作都如数的操作一样简单方便。而且,MATLAB7.0界面友好,用户使用方便。首先,MATLAB具有友好的用户界面与易学易用的帮助系统。用户在命令窗里通过help命令可以查询某个函数的功能及用法,命令的格式极为简单。其次,MATLAB程序设计语言把编辑、编译、连接、执行、调试等多个步骤融为一体,操作极为简单。除此之外,MATLAB7.0还具有强大的图形功能,可以用来绘制多姿多彩的图形,直观而形象。综上,在进行信号的分析与仿真时,MATLAB7.0无疑是一个强大而实用的工具。尤其对于信号的分析起到了直观而形象的作用,非常适合与相关课题的研究与分析。2.2利用Matlab7.0编程完成习题设计在熟

9、悉了MATLAB7.0的基本界面之后,可以通过简单的编程与相关函数的调用,实现一些常用时间信号的可视化操作。例如:编程实现正弦波的仿真。程序如下,直接在命令窗口键入如下程序:t=0:0.001:2*pi; w0=2;phi=0; ft1=sin(w0*t+phi); plot(t,ft1)仿真图形如下: 图a三Matlab7.0实现周期性矩形脉冲信号的分解与叠加的设计3.1周期性矩形脉冲信号的分解与叠加的原理频域分析法即傅里叶分析法,它是变换域分析法的基石。其中,傅里叶级数是变换域分析法的理论基础,傅里叶变换作为频域分析法的重要数学工具,具有明确的物理意义,在不同的领域得到广泛的应用矩形形式的

10、傅里叶级数为:式中系数、称为傅里叶系数,可由下式求得。 其中,为基波频率,为n次谐波频率。3.2 指数形式的傅里叶级数根据欧拉公式: 并考虑和奇偶性可将改写为指数形式的傅里叶级数: 即周期信号可分解为一系列不同频率的虚指数信号之和,式中称为傅里叶复系数,可由下式求得: 3.3 连续时间周期信号的傅里叶综合任何满足狄里赫里条件的周期信号,可以表示成式或的和式形式,或式常称为连续周期信号的傅里叶级数综合公式。一般来说,傅里叶级数系数有无限个非零值,即任何具有有限个间断点的周期信号都一定有一个无限项非零系数的傅里叶级数表示。但对数值计算来说,这是无法实现的。在实际的应用中,但我们可以用有限项的傅里叶

11、级数求和来逼近。为了比较有限项谐波的逼近情况,本次课设编写了程序来绘制波形以给读者一个直观的感受。调用xiebo.m函数文件,即可绘出周期矩形波信号各次谐波的合成波形。如图2.1所示。图2.1 周期矩形脉冲信号的合成由图2.1可见,当它所包含的谐波分量越多时,合成波形愈接近于原来的矩形波脉冲(。由图2.1还可以看到,合成波形所包含的谐波分量愈多时,除间断点附近外,它越接近于原矩形波脉冲。在间断点附近,随着所含谐波次数的增加,合成波形的尖峰愈接近间断点,但尖峰幅度并未明显减少。可以证明,即使合成波形所含谐波次数时,在间断点处仍有约9%的偏差,这种现象称为吉布斯(Gibbs)现象。在傅里叶级数的项

12、数取得很大时,间断点处尖峰下的面积非常小以致趋近于零,因而在均方的意义上合成波形同原波形的真值之间没有区别4。3.4 吉布斯现象 上一节中我们提到了吉布斯现象,本节我们将作重点来讨论。我们知道满足狄里赫利条件的周期函数表示成的傅立叶级数都收敛。狄里赫利条件如下:1. 在任何周期内,x(t)必须绝对可积;2. 在任一有限区间中,x(t)只能取有限个最大值或最小值;3. 在任何有限区间上,x(t)只能有有限个第一类间断点。 所谓的吉布斯现象就是:在x(t)的不可导点上,如果我们只取x(t)等式右边的无穷级数中的有限项作和X(t),那么X(t)在这些点上会有起伏1。具体现象如下图所示,以下分别为谐波

13、次数为N=50,N=100,N=500合成波的情况。图2.2 不同时N值时的合成波 从上面的图像中可以看出,当N=500的时候,合成波与原来的方波拟合得非常好,但是在不可导的点上,即为x=-1.5,x=-0.5,x=0.5,x=1.5这样的点的时候,合成波会有较大的波动,这就是非常明显的吉布斯现象。3.5单边与双边频谱关系如前所述,周期信号可以分解成一系列正弦(余弦)信号或虚指数信号之和,为了直观地表示出信号所含各分量的振幅或,随频率的变化情况,通常以角频率为横坐标,以各次谐波的振幅或虚指数函数的幅度为纵坐标,画出如图3.1和3.2所示的各谐波的振幅或与角频率的关系图,称为周期信号的幅度(振幅

14、)频谱,简称幅度谱。图中每条竖线代表该频率分量的幅度,称为谱线。各谱线顶点连线的曲线(如图中原点所示)称为频谱包络线,它反映了各谐波分量幅度随频率变化的情况。图3.5.1中幅度谱为单边幅度谱(用绘制的频谱)。图3.2中幅度谱为双边幅度谱(用绘制的频谱)。类似地,也可画出各谐波初相角与角频率的关系图,如图3.1和3.2中各谐波初相角与角频率的关系图,称为相位频谱,简称相位谱。图3.5.1中相位谱为单边相位谱。图3.2中相位谱为双边相位谱。如果为实数,那么可用的正负来表示为0或也可把幅度谱和相位谱画在一张图上。由图可见,周期信号的谱线只出现在频率为等原周期信号频率的整数倍的离散频率上,即周期信号的

15、频谱是离散谱。图3.5.1 周期信号的双边幅度谱和相位谱由此可见周期信号频谱具有三个特点:(1)离散性,即谱线是离散的;(2)谐波性,即谱线只出现在基波频率的整数倍上;(3)收敛性,即谐波的幅度随谐波次数的增高而减小。单边频谱和双边频谱的区别就是求值的范围不同,单边频谱求的是频率大于0的情况,而双边频谱求的是所有频率的情况,即包括频率小于0的情况,这个区别在上面的两张图中可以非常明显地看出来。四.运行代码4.1吉布斯效应t=-2:0.001:2;N=input('N=');% N为输入要达到的最高次谐波的次数c0=0.5;fN=c0*ones(1,length(t);for n

16、=1:2:NfN=fN+cos(pi*n*t)*sinc(n/2);%sinc抽样函数endfigureplot(t,fN)axis(-2 2 -0.2 1.2)4.2画方波t=-2*pi/100:pi/1024:2*pi/100;y=square(2*pi*30*t,50);%脉宽50plot(t,y);grid ylim(-1.5 1.5)4.3 方波信号的合成clear all; %将原来的信号清楚close all; %关闭该程序N=200; dt=2/N; %数据点数和采样间隔for n=1:N %得到方波信号if(n*dt+1>=2) %方波跳变 x(n)=1; else x

17、(n)=-1;end endfigure(1); %画振幅谱subplot(211); plot(1:N)*dt,x); hold on; %hold on稍等plot(1:N)*dt,zeros(1,N),'r');xlabel('时间/s');title('振幅');a=zeros(1,N);b=zeros(1,N);mm=floor(N/2)+1;for k=0:mm-1 a(k+1)=0;b(k+1)=0;for i=0:N-1a(k+1)=a(k+1)+2/N*x(i+1)*cos(2*pi*k*i/N);b(k+1)=b(k+1)+2

18、/N*x(i+1)*sin(2*pi*k*i/N);endc(k+1)=sqrt(a(k+1).2+b(k+1).2);endsubplot(212);plot(0:mm-1)/(N*dt),c);title('Fourier变换');xlabel(频率/HZ');ylabel('振幅');%绘制振幅谱axis(0 25 0 1);m=input('输入谐波最大阶数');%输入最大K值if(m>floor(N/2)+1)error('谐波次数必须小于频率对应的阶数');endif(mod(N,2)=1)a(mm)=a

19、(mm)/2;end %此时b(nn)为零a(nn)减半for i=0:N-1 %合成信号xx(i+1)=a(1)/2;for k=1:mxx(i+1)=xx(i+1)+a(k+1)*cos(2*pi*k*i/N)+b(k+1)*sin(2*pi*k*i/N);endendfigure(2);plot(1:N)*dt,xx,(0:N-1)*dt,x);%绘制合成信号与方波信号图便于比较hold on;plot(1:N)*dt,zeros(1,N),'r');xlabel('绘制横轴');ylabel('振幅An');title(信号合成图'

20、;);4.4 方波的分解clear all;close all;N=200; dt=2/N; %数据点数和采样间隔for n=1:N %得到方波信号if(n*dt>=1) %半个周期幅值分别为 1、-1x(n)=1;else x(n)=-1;end endfigure(1);plot(1:N)*dt,x); axis(0 2 -1.5 1.5);hold on;plot(1:N)*dt,zeros(1,N),'r');xlabel('时间/s');ylabel('振幅');title('原始信号');a=zeros(1,N)

21、;m=input('输入谐波的最高次数');for k=0:m-1a(k+1)=0;b(k+1)=0;for i=0:N-1a(k+1)=a(k+1)+2/N*x(i+1)*cos(2*pi*k*i/N);b=zeros(1,N);b(k+1)=b(k+1)+2/N*x(i+1)*sin(2*pi*k*i/N);endAn(k+1)=sqrt(a(k+1).2+b(k+1).2);ph(k+1)=(atan(b(k+1)/a(k+1)+2*pi*k*i/N);%反正切函数,即求相位角end subplot(211); stem(0:m-1)/(N*dt),An); xlabel

22、('频率(HZ)');ylabel('振幅(An)');title('Fourier变换'); subplot(212); stem(0:m-1)/(N*dt),ph);title('Fourier Fourier变换');xlabel('频率(HZ)');ylabel('相位(rad)');4.5 周期矩形脉冲信号的幅度谱 n=-12:12;E=1;t=1;T=5*t;w=2/T;Fn=(E*t/T)*sinc(w*t*n/2);stem(n,abs(Fn),'filled

23、9;);hold on k=-12:0.01:12;f=abs(E*t/T)*sinc(w*t*k/2);plot(k,abs(f),'-');4.6 周期矩形脉冲信号的频谱 a. 取E=1,tao=1, 画出周期矩形脉冲的傅里叶级数的频谱;n=-12:12;E=1;t=1;T=5*t;w=2/T;Fn=(E*t/T)*sinc(w*t*n/2);stem(n,Fn,'filled');hold on k=-12:0.01:12;f=abs(E*t/T)*sinc(w*t*k/2);plot(k,f,'-');五、编

24、程实现原始方波输入谐波的最高次数5输入谐波的最高次数25输入谐波的最高次数50输入谐波的最高次数100周期信号幅度图 周期信号频谱图 六、结论本次的信号与系统课程设计中,我查阅了相关资料,并且进行了反复练习。由于是第一次做信号与系统的课程设计,对于相关设计过程和分析方法以及MATLAB软件的使用并不大熟练。 但功夫不负有心人,最终还算顺利完成,这对我以后学习相关的课程以及进行更高层次的信号与系统设计都奠定了一定的基础。设计过程中,出现了各种各样的问题,有些是单一原因引起的,有的是综合原因引起的,这些都很考验我的毅力与坚持。但是我掌握了研究这类问题的方法,即问题解决的过程就是要从问题所表现出来的情况出发,通过反复推敲,作出相应判断,逐步找出问题的症结所在,从而一举击破。对于信号与系统课程设计,尤其在使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论