资源描述:
《周期信号的分解与合成设计(叶水庚)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、信号与系统课程设计设计题目:周期信号的分解与合成的仿真设计院系:机械电子工程系专业班级:09应用电子技术学生姓名:叶水庚李兵陈致远杜天勇学号:09353027093530280935302909353030指导老师:文如泉起止时间:2010.12.13-2010.12.25任务书:周期信号的分解与合成的仿真设计·目的:完成仿真,讨论参数对分解和合成波形的影响。·要求:学生设计实现信号的分解与合成。·内容:信号的分解与合成。·方法:应用MATLAB平台。·参考资料:MATLAB相关书籍。教师评分:一、设计目的和
2、意义讨论参数对分解和合成波形的影响,进一步理解用傅里叶级数对周期信号的分解与合成的方法和公式,加深了解信号分析手段之一的傅立叶变换的基本思想和物理意义,学会用Matlab仿真软件,并用它对周期信号的分解和合成进行分析。写出他们的表达是和画出图像。通过这一次的设计,进一步提高自己的实践动手能力。二、设计原理Matlab具有高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来,也具有完备的图形处理功能,实现计算结果和编程的可视化,这些都为分析信号系统提供了强有力的手段,它是分析信号系统的一种强有力
3、的工具。1、周期信号的三角级数表示周期信号是定义在(-∞,∞)区间内,每个一点周期T按相同规律重复变化的信号,他们可一般地表示为f(t)=f(t+kT)(k=0,……).当周期信号f(t)满足狄里赫利条件时,则可用傅里叶级数表示f(t)=a+acost+acos2t+acos3t+…………+bsint+bsin2t+bsin3t+………或表示为f(t)=a+式中称为f(t)的基波角频率,n称为n次谐波的频率;a为f(t)的直流分量,a和b分别为各余弦分量和正弦分量的幅度。可由上式求傅里叶新级数:a=1/Ta=
4、2/Tb=2/T显然,当f(t)给定后,a、a和b可以确定,因而f(t)的傅里叶级数展开时即可写出。因为acosnt+bsinnt=Acos(nt+)式中a=Acos,b=-AsinA==-arctan(b/a)故傅里叶级数又可以写为f(t)=a+2、周期信号的复指数级数表示对于周期信号的三角级数表达式,利用欧拉公式,进一步表示为f(t)=a+即f(t)=式中F=a,上式即为f(t)的复指数级数形式。复系数F=1/T上式表明,只要给定周期信号f(t),则F可以在一个周期内积分确定,继而可写出复指数形式的傅里叶
5、级数。3、三角形式和指数形式傅里叶级数及各系数间的关系傅里叶级数的指数形式和三角形式是等价的,其系数可互相转换。下表综合了三角形式和指数形式傅里叶级数及其系数,以及各系数间的关系。表2-1周期函数展开为傅里叶级数形式指数形式三角函数形式展开式f(t)=n=(0,,,…………)f(t)=a+n=(0,,,…………)傅里叶系数F=1/Tn=(0,,,…………)a=1/Ta=2/Tb=2/T系数间的关系F=(Ae)/2=(a+jb)/2n=(0,,,…………)a=Acos,b=-AsinA==-arctan(b/a
6、)三、用MATLAB实现周期信号的傅立叶级数分解与合成以连续周期矩形信号为例,用MATLAB来实现周期信号的傅立叶技术的分解与合成。矩形信号是一个周期为4,占空比为50%,幅值为1的矩形波,从上面的分析可以得知,这个矩形波信号可以分解成傅立叶级数也是就无数个不同频率的三角波的叠加,用MATLAB软件可以很容易的画出不同个数谐波叠加形成的合成波的形状。程序如下:T=4;tao=2;w=2*pi/T;a0=quadl(@singrect,-2,2)/T;%计算a0N=10;an=zeros(1,N);bn=zer
7、os(1,N);fork=1:Nan(k)=quadl(@rectcos,-2,2,[],[],k,w)*2/T;%计算an.quadl中的[],[]表示以默认精度进行数值积分%rectcos函数中的后两个参数;bn(k)=quadl(@rectsin,-2,2,[],[],k,w)*2/T;%计算bn;end;n=1:1:N;figure(1);subplot(1,2,1);plot(n,an,'-o');gridon;subplot(1,2,2);plot(n,bn,'-o');gridon;t=-6:0
8、.01:6;x=pulstran(t,-8:4:8,'rectpuls',2);%生成周期矩形脉冲信号figure(2);subplot(6,2,1);plot(t,x);axis([-8,8,-1,2]);gridon;%有限项级数逼近A0=a0;AN=sqrt(an.^2+bn.^2);fiN=-atan(bn./an);subplot(6,2,2);plot(t,A0/2);gridon;%直