版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计任务书课程设计任务书 学生姓名学生姓名: 王伟 _ 专业班级专业班级: 电子科学与技术 0703 班 指导教师指导教师: 钟毅 _ 工作单位工作单位: 信息工程学院 题题 目目: 连续时间信号傅里叶级数分析及 matlab 实现 初始条件:初始条件: matlab 6.5 要求完成的主要任务:要求完成的主要任务: 深入研究连续时间信号傅里叶级数分析的理论知识,利用 matlab 强大的图 形处理功能,符号运算功能以及数值计算功能,实现连续时间周期信号频域分析 的仿真波形。 1.用 matlab 实现周期信号的傅里叶级数分解与综合。 2.用 matlab 实现周期信号的单边频谱及双边频谱
2、。 3.用 matlab 实现典型周期信号的频谱。 4.撰写matlab 应用实践课程设计说明书。 时间安排:时间安排: 学习 matlab 语言的概况 第 1 天 学习 matlab 语言的基本知识 第 2、3 天 学习 matlab 语言的应用环境,调试命令,绘图能力 第 4、5 天 课程设计 第 6-9 天 答辩 第 10 天 指导教师签名:指导教师签名: 年年 月月 日日 系主任(或责任教师)签名:系主任(或责任教师)签名: 年年 月月 日日 目 录 摘要.i abstract.ii 绪论.1 1 matlab 内容简介.2 1.1 matlab 语言功能 .2 1.2 matlab
3、语言特点 .2 2 连续时间周期信号的傅里叶级数ctfs.3 2.1 连续时间周期信号的分解 .3 2.1.1 三角形式的傅里叶级数.3 2.1.2 指数形式的傅里叶级数.4 2.2 连续时间周期信号的傅里叶综合 .4 3 连续时间周期信号的频谱分析.6 4 周期信号的傅里叶级数分解与综合的仿真波形.8 4.1 实现流程 .8 4.2 matlab 算法提示 .8 4.3 程序运行结果 .9 5 连续时间周期信号的频谱分析的仿真波形.10 5.1 实现流程.10 5.2 matlab 算法提示 .11 5.3 程序运行结果及分析 .12 5.3.1 程序运行结果.12 5.3.2 脉冲宽度与频
4、谱的关系.13 5.3.3 脉冲周期与频谱的关系.15 6 典型周期脉冲的频谱.18 6.1 周期方波脉冲频谱的 matlab 实现.18 6.2 周期三角波脉冲频谱的 matlab 实现.20 结束语.23 致谢.24 参考文献.25 附录.26 摘要 matlab 目前已发展成为由 matlab 语言、matlab 工作环境、matlab 图形 处理系统、matlab 数学函数库和 matlab 应用程序接口五大部分组成的集数值计算、 图形处理、程序开发为一体的功能强大的系统。本次课程设计则在深入研究连续时间信 号傅里叶级数分析理论知识的基础上,利用 matlab 强大的图形处理功能、符号
5、运算功 能以及数值计算功能,通过 matlab 编程进行图形功能仿真,从而实现连续时间周期信 号频域分析的仿真波形,包括以下内容:用 matlab 实现周期信号的傅里叶级数分解与 综合的波形;用 matlab 实现周期信号的单边频谱及双边频谱的波形与分析;用 matlab 实现典型周期信号的频谱的波形。 关键词:matlab;图形处理;傅里叶级数;周期信号;频谱 abstract matlab now evolved into matlab language, matlab working environment, matlab graphics processing systems, mat
6、lab math library and the matlab application program interface has five major components of the set of numerical computation, graphics processing, program development as one powerful system. the curriculum design, in-depth study fourier series analysis of continuous-time signal on the basis of theore
7、tical knowledge, using matlab a powerful graphics processing capabilities, symbolic computing and numerical computing capabilities, through the functional simulation matlab graphical programming in order to achieve continuous time periodic signal frequency domain analysis of the simulation waveforms
8、, including the following: realization of periodic signals using matlab fourier series decomposition and integration of the waveform; periodic signals using matlab to achieve unilateral and bilateral spectrum waveform and spectrum analysis; using matlab to achieve a typical cycle of the signal wave
9、spectrum. keywords: matlab; graphics processing; fourier series; periodic signal; spectrum 绪论 在科学技术飞速发展的今天,计算机正扮演着愈来愈重要的角色。在进行科学研究 与工程应用的过程中,科技人员往往会遇到大量繁重的数学运算和数值分析,传统的高 级语言basic、fortran 及c 语言等虽然能在一定程度上减轻计算量,但它们均要求应用人 员具有较强的编程能力和对算法有深入的研究。另外,在运用这些高级语言进行计算结 果的可视化分析及图形处理方面,对非计算机专业的普通用户来说,仍存在着一定的难 度。ma
10、tlab 正是在这一应用要求背景下产生的数学类科技应用软件。它具有的顶尖的 数值计算功能、强大的图形可视化功能及简洁易学的“科学便捷式”工作环境和编程语 言,从根本上满足了科技人员对工程数学计算的要求,并将科技人员从繁重的数学运算 中解放出来,因而越来越受到广大科技工作者的普遍欢迎1。 matlab 是matrix 和laboratory 前三个字母的缩写,意思是“矩阵实验室”,是 mathworks 公司推出的数学类科技应用软件。其dos 版本(matlab 1.0)发行于1984 年,现已推出了windows 版本(matlab 5.3)。经过十多年的不断发展与完善, matlab 已发展
11、成为由matlab 语言、matlab 工作环境、matlab 图形处理系统、 matlab 数学函数库和matlab 应用程序接口五大部分组成的集数值计算、图形处理、 程序开发为一体的功能强大的系统。matlab 由“主包”和三十多个扩展功能和应用学 科性的工具箱(toolboxs)组成。 matlab 语言是以矩阵计算为基础的程序设计语言,语法规则简单易学,用户不用 花太多时间即可掌握其编程技巧。其指令格式与教科书中的数学表达式非常相近,用 matlab 编写程序尤如在便笺上列写公式和求解,因而被称为“便笺式”的编程语言。另 外,matlab 还具有功能丰富和完备的数学函数库及工具箱,大量
12、繁杂的数学运算和分 析可通过调用matlab 函数直接求解,大大提高了编程效率,其程序编译和执行速度远 远超过了传统的c 和fortran 语言,因而用matlab 编写程序,往往可以达到事半功倍 的效果。在图形处理方面,matlab 可以给数据以二维、三维乃至四维的直观表现,并 在图形色彩、视角、品性等方面具有较强的渲染和控制能力,使科技人员对大量原始数 据的分析变得轻松和得心应手。 正是由于 matlab 在数值计算及符号计算等方面的强大功能,使matlab一路领 先,成为数学类科技应用软件中的佼佼者。目前,matlab 已成为国际上公认的最优秀 的科技应用软件。matlab 的上述特点,
13、使它深受工程技术人员及科技专家的欢迎,并 很快成为应用学科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。 1 matlab 内容简介 1.1 matlab 语言功能 matlab功能丰富,可扩展性强。matlab软件包括基本部分和专业扩展两大部分 的功能。基本部分包括:矩阵的运算和各种变换;代数和超越方程的求解;数据处理和 傅立叶变换;数值部分等等,可以充分满足大学理工科本科的计算需要。扩展部分称为 工具箱。它实际上是用matlab的基本语句辩称的各种子程序集,用于解决某一方面的 专门问题,或实现某一类的新算法。 matlab 具有以下基本功能: (1)数值计算功能; (2)符号计
14、算功能; (3)图形处理及可视化功能; (3)可视化建模及动态仿真功能。 1.2 matlab 语言特点 matlab 给用户带来的是最直观、最简洁的程序开发环境。它具有以下特点: (1)语言简洁紧凑,使用方便灵活,库函数极其丰富。matlab 程序书写形式自 由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。 由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。 (2)运算符丰富。由于matlab 是用c 语言编写的,matlab 提供了和c语言几 乎一样多的运算符,灵活使用matlab 的运算符将使程序变得极为简短。 (3)matlab 既具有结构化的控制语
15、句(如for 循环,while 循环,break 语句和if 语句),又有面向对象编程的特性。 (4)程序限制不严格,程序设计自由度大。例如,在matlab 里,用户无需对矩 阵预定义就可使用。 (5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统 上运行。 (6)matlab 的图形功能强大。在fortran 和c 语言里,绘图都很不容易,但 在matlab 里,数据的可视化非常简单。matlab 还具有较强的编辑图形界面的能力。 (7)功能强大的工具箱是matlab 的另一特色。matlab 包含两个部分:核心部 分和各种可选的工具箱。核心部分中有数百个核心内部函数。
16、其工具箱又分为两类:功 能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿 真功能,文字处理功能以及与硬件实时交互功能,而学科性工具箱是专业性比较强的, 如control,toolbox,signl proceessing, toolbox,commumnication toolbox 等。 2 连续时间周期信号的傅里叶级数ctfs 周期信号是定义在区间,按一定时间间隔(周期)不断重复的信号。它可表-+,t 示为,式中为任意整数,为周期,周期的倒数称为该信号的频率2。 f t =f t+mtmt 2.1 连续时间周期信号的分解 设有周期信号 ,它的周期为t ,角频率,
17、且满足狄里赫里条件,则 f t 2 =2 f= t 该周期信号可以展开成傅里叶级数,即可表示为一系列不同频率的正弦或复指数信号之 和。傅里叶级数有三角形式和指数形式两种2。 2.1.1 三角形式的傅里叶级数 三角形式的傅里叶级数为: 0 12 2 tcoscos 2 a fatat 12 sinsin 2btbt 0 11 cossin 2 nn nn a an tbn t 1,2,3,n 2 1 式中系数、称为傅里叶系数,可由下式求得。 n a n b 2 2 2 2 2 2 0 1 2 cos 2 sin t t t t t t n n af t dt t af tn t dt t bf
18、tn t dt t 22 如果将式中同频率的正弦和余弦分量合并,则三角形式的傅里叶级数可表示为:2 1 0 1 tcos 2 nn n a fan t 1,2,3,n 23 上式中 00 22, 1,2, arctan nnn n n n aa aabn a b 24 00 cos,1,2, sin nnn nnn aa aan ba 由式可见;傅里叶系数和都是或的函数,其中是或的偶22 n a n bnn n ann 函数,即有;而是或的奇函数,即有。 n a n a n bnn n b n b 由式可见,是或的偶函数,即有;而是或的奇函24 n ann n a n a n nn 数,即有。
19、 n n 式表明,任何满足狄里赫里条件的周期信号可分解为一系列不同频率的余弦23 (或正弦)分量的叠加。其中第一项是常数项,它是周期信号中所包含的直流分量; 0 2a 第二项称为基波或一次谐波,它的角频率与原周期信号相同,是基波振 11 cosat 1 a 幅,是基波初相角;第三项称为二次谐波,它的频率是基波频率的二 1 22 cos 2at 倍, 是二次谐波振幅,是其初相角;依此类推,还有三次、四次、 等谐波。一 2 a 2 般而言,称为次谐波,是次谐波振幅,是其初相角。式cos nn an t n n an n 表明,周期信号可以分解为各次谐波分量的叠加。23 2.1.2 指数形式的傅里叶
20、级数 指数形式的傅里叶级数表达式为: ,0, 1, 2, 3, jn t n n f tf en 25 即周期信号可分解为一系列不同频率的虚指数信号之和,式中称为傅里叶复系数, n f 可由下式求得: 2 2 1 t t jn t n ff t edt t 26 2.2 连续时间周期信号的傅里叶综合 任何满足狄里赫里条件的周期信号,可以表示成式或的和式形式,2 125 或式常称为ctfs综合公式。2 125 一般来说,傅里叶级数系数有无限个非零值,即任何具有有限个间断点的周期信号 都一定有一个无限项非零系数的傅里叶级数表示。但对数值计算来说,这是无法实现的。 在实际的应用中,但我们可以用有限项
21、的傅里叶级数求和来逼近。即对有限项和 n jn t n nn f tf e 0 11 cossin 2 nn nn nn a an tbn t 27 当值取得较大时,上式就是原周期信号的一个很好的近似。式常称作n f t27 的截断傅里叶级数表示。 f t matlab的符号积分函数可以帮助我们求出连续时间周期信号的截断傅里叶级 int 数及傅里叶表示。 求积指令的具体使用格式如下:int 给出符号表达式对指定变量的(不带积分常数的)不定积分。intint,fff 给出符号表达式对指定变量的定积分。intint, , ,ffa bf 3 连续时间周期信号的频谱分析 如前所述,周期信号可以分解成
22、一系列正弦(余弦)信号或虚指数信号之和,即 n jn t n nn f tf e 0 11 cossin 2 nn nn nn a an tbn t 3 1 其中, 11 22 n j nnnn fa eajb 32 或 幅度和相位 22 11 | 22 arctan nnnn n n n faab b a 为了直观地表示出信号所含各分量的振幅或,随频率的变化情况,通常以角 n a| n f 频率为横坐标,以各次谐波的振幅或虚指数函数的幅度为纵坐标,画出如图3.1和3.2 n a| n f 所示的各谐波的振幅或与角频率的关系图,称为周期信号的幅度(振幅)频谱, n a| n f 简称幅度谱。图
23、中每条竖线代表该频率分量的幅度,称为谱线。各谱线顶点连线的曲线 (如图中原点所示)称为频谱包络线,它反映了各谐波分量幅度随频率变化的情况。图 3.1中幅度谱为单边幅度谱(用绘制的频谱)。图3.2中幅度谱为双边幅度谱(用绘 n a| n f 制的频谱)。 类似地,也可画出各谐波初相角与角频率的关系图,如图3.1和3.2中各谐波初相角 n 与角频率的关系图,称为相位频谱,简称相位谱。图3.1中相位谱为单边相位谱。图3.2 n 中相位谱为双边相位谱。如果为实数,那么可用的正负来表示为0或也可把幅度 n f n f n 谱和相位谱画在一张图上。 由图可见,周期信号的谱线只出现在频率为等原周期信号频率的
24、整数倍的0,2 ,. 离散频率上,即周期信号的频谱是离散谱。 图3.1 周期信号的幅度谱和相位谱(单边) 图3.2 周期信号的幅度谱和相位谱(双边) 由此可见周期信号频谱具有三个特点: (1)离散性,即谱线是离散的; (2)谐波性,即谱线只出现在基波频率的整数倍上; (3)收敛性,即谐波的幅度随谐波次数的增高而减小3。 matlab的符号积分函数、一维数组的寻访概念和可以帮助我们求出 int fliplr 连续时间周期信号的频谱(傅里叶级数分析法)。 4 周期信号的傅里叶级数分解与综合的仿真波形 matlab强大的符号运算功能为进行周期信号的分析提供了强有力的工具。以周期 矩形脉冲信号为例,采
25、用三角形式傅里叶级数分解与综合形式,利用matlab来实现周 期信号的分解与综合过程。 周期矩形脉冲信号如图4.1所示。其幅度为1,脉冲宽度为1,周期。tao 5*ttao 用式求出傅里叶级数分解系数,运用matlab的符号运算功能,用式实现信223 1 号的综合,谐波的阶数nf =6。 图4.1 周期矩形脉冲信号 4.1 实现流程 利用matlab实现上述分析过程的流程如下: (1)编写子函数x=time_fun_x(t),用符号表达式表示出周期信号在第一个周期内的 符号表达式,并赋值给返回符号变量x。 (2)编写子函数 y=time_fun_e(t),求出该周期信号在绘图区间内的信号样值,
26、并赋 值给返回变量y。 (3)编写求解信号傅里叶系数及绘制合成波形图的通用函数ctfs1.m,该函数的流 程如下: 调用函数time_fun_x(t),获取周期信号的符号表达式。 求出信号的傅里叶系数。 求出各次谐波。 绘制各次谐波叠加波形图。 调用函数time_fun_e(t),绘制原信号波形图。 4.2 matlab 算法提示 (1) 采用符号积分 4求 内时间函数的三角级数展开系数:,int0,t 0 a 0 a n aas ,即计算式。 n bbs22 (2) 用循环语句求出三角级数展开系数,的数值:分别为,.for end n a n b_asym 。_bsym (3) 用语句输出三
27、角级数展开系数,。 disp_asym_bsym (4) 用傅里叶三角级数展开式合成(综合)连续时间信号。3 1 (5) 化简表达式,据函数的奇偶性,可知,若为奇函数,则。若为偶 f t n a0 f t 函数,则,以此化简三角级数展开式。0 n b 源程序见附录中程序一。 4.3 程序运行结果 调用ctfs1.m函数文件,即可绘出周期矩形波信号各次谐波的合成波形。指令如下: 在matlab命令窗口键入ctfs1,并回车,即可绘出周期矩形波信号各次谐波的合成波 形,如图4.2所示。 图4.2 周期矩形脉冲信号的合成 由图4.2可见,当它所包含的谐波分量越多时,合成波形愈接近于原来的矩形波脉冲
28、(图中虚线)。由图4.2还可以看到,合成波形所包含的谐波分量愈多时,除间断点附近 外,它越接近于原矩形波脉冲。在间断点附近,随着所含谐波次数的增加,合成波形的 尖峰愈接近间断点,但尖峰幅度并未明显减少。可以证明,即使合成波形所含谐波次数 时,在间断点处仍有约9%的偏差,这种现象称为吉布斯(gibbs)现象。在傅里叶n 级数的项数取得很大时,间断点处尖峰下的面积非常小以致趋近于零,因而在均方的意 义上合成波形同原波形的真值之间没有区别4。 5 连续时间周期信号的频谱分析的仿真波形 由周期信号频谱分析只要求出了周期信号傅里叶级数(或)及,我们就可根 n a n f n 据(或)及随频率的变化关系画
29、出信号的振幅和相位频谱。以图5.1 n a n f n n 2 t 所示的周期矩形脉冲信号为例,利用matlab绘制周期信号的频谱图,并对周期信号的 频谱特性进行分析。 图5.1 周期矩形脉冲信号 由于绘制频谱的前提是必须先求出周期信号的傅里叶系数,因此只需对求周期信号 傅里叶级数的函数ctfs1.m进行适当修改,即可编写出绘制周期信号频谱的通用函数。由 于周期信号的频谱是离散的,故在绘制频谱时,采用stem命令而不是plot命令3。 5.1 实现流程 采用三角形式傅里叶级数分解形式,用式求出傅里叶级数分解系数和,22 n a n b 再用式求出傅里叶复指数系数,并画出的振幅和相位频谱。谐波的
30、阶数nf 可32 n f n f 任意指定为60。 利用matlab实现上述分析过程的流程如下: (1)编写子函数y=time_fun_s(t),用符号表达式表示出周期信号在第一个周期内的 符号表达式,并赋值给返回符号变量y。 (2)编写子函数x=time_fun_e,求出该周期信号在绘图区间内的信号样值,并赋值 给返回变量x。 (3)编写求解信号傅里叶复指数系数及绘制频谱图的通用函数,该函数的流程如 n f 下: 调用函数time_fun_s(t),获取周期信号的符号表达式。 求出信号的三角级数形式的傅里叶级数展开系数和。 n a n b 求出信号的复指数形式的傅里叶级数展开系数。 n f
31、绘制的振幅频谱图和相位频谱图。 n f 调用函数time_fun_e,绘制信号波形图。 5.2 matlab 算法提示 (1)采用符号积分求内时间函数的三角级数展开系数:,int0,t 0 a 0 a n aas 。即计算式。 n bbs22 (2)用循环语句求出三角级数展开系数,的数值:并赋值给变量.for end n a n b ,如图5.2所示。1sym k _1bsym k 图5.2 三角级数展开系数,频谱(n=k+1:nf) n a n b (3)从三角级数展开系数,得到复指数展开系数为了得到复指数展开系数 n a n b n f 必须先求出三角形式的傅里叶级数展开系数和,如图5.2
32、所示,再据式求出 n f n a n b32 。但要注意、和的自变量取值情况,即: n f n a n b n f 从上式的自变量取值情况及图5.2可见,三角级数展开系数,的变量的取值范 n a n bn 围为,而指数形式展开系数的变量的取值范围为,为0,1,2,3,.,nn n fn0, 1, 2,.,nn 了从和得到,需要用到matlab的反折函数fliplr来实现频谱的反折。 n a n b n f 双边、单边(幅度,相位)频谱分析源程序见附录程序二。 5.3 程序运行结果及分析 5.3.1 程序运行结果 调用ctfs2.m函数文件,即可绘出周期矩形波信号的频谱。指令如下:在matlab
33、 命令窗口键入ctfs2,并回车,命令窗口将出现:pleas input 所需展开的最高谐波次数 nf=?,输入nf=60 然后命令窗口将出现:pleas input 信号的周期t=?,输入周期t=5, 然后命令窗口又出现:周期与脉冲宽度之比m=?,输入m =5,即可绘出周期矩形波信号 的双边频谱,如图5.3所示。修改绘制周期矩形脉冲双边频谱的函数文件ctfs2.m,将其 改为绘制周期矩形脉冲单边频谱的函数文件ctfs21.m,则可绘出单边频谱如图5.4所示。 图5.3 周期t=5,脉宽tao=1 的矩形脉冲及双边频谱图 图5.4 周期t=5,脉宽tao=1 的矩形脉冲及单边频谱图 由图5.3
34、和5.4可见,周期矩形脉冲的频谱具有一般周期信号频谱的共同特点,即它们 的频谱都是离散的。仅含有的各分量,其相邻两谱线的间隔是,同时单n 2t 边谱仅为双边谱的一半波形。 5.3.2 脉冲宽度与频谱的关系 重复调用周期矩形脉冲单边频谱的函数文件,当窗口出现输入信号谐波次数nf,周 期t,周期与脉冲宽度之比m时,分别将信号设置为表5-1所示三种情况,则可绘出表5-1 所示各情况的信号波形及频谱图,如图5.5所示。 表5-1 周期矩形脉冲脉宽取值参数表 周期t555 脉冲宽度tao 被展开函数的时间 区间的左端a=tao/2 0.6250.31250.15625 a 周期t=5,脉冲宽度tao=t
35、/4=1.25,a=tao/2=0.625 的矩形脉冲频谱 b 周期t=5,脉冲宽度tao=t/8=0.625, a=tao/2=0.3125 的矩形脉冲频谱 c 周期t=5,脉冲宽度tao=t/16=0.3125, a=tao/2=0.15625 的矩形脉冲频谱 图5.5 脉冲宽度与频谱的关系 由图5.5可见,由于周期t相同,因而相邻谱线的间隔相同;脉冲宽度tao愈窄,其频 谱包络线第一个零点的频率愈高,即信号带宽愈宽,频带内所含的分量愈多。可见,信 号的频带宽度与脉冲宽度tao成反比2。 5.3.3 脉冲周期与频谱的关系 重复调用绘制周期矩形脉冲单边频谱的函数文件,当窗口出现输入信号谐波次
36、数 nf,周期t,周期与脉冲宽度之比m 时,分别将信号设置为表5-2所示各种情况(即信号 时域宽度保持不变),则可绘出表5-2所示各情况下的信号波形及频谱图如图5.6所示。 表5-2 周期矩形脉冲周期取值参数表 脉冲宽度tao111 周期t 被展开函数的时间 区间的左端a=tao/2 0.50.50.5 a 脉冲宽度tao=1,周期t=4*tao =4的矩形脉冲频谱 b 脉冲宽度tao=1,周期t=8*tao =8 的矩形脉冲频谱 c 脉冲宽度tao=1,周期t=16*tao =16 的矩形脉冲频谱 图5.6 周期与频谱的关系 由图5.6可见,由于周期脉冲信号的时域宽度不变,这时频谱包络线的零
37、点所在位置 不变,而当周期增长时,相邻谱线的间隔减少,频谱变密。如果周期无限增长(这时就 成为非周期信号),那么,相邻谱线的间隔将趋近于零,周期信号的离散频谱就过渡到 非周期信号的连续频谱。随着周期的增长,各谐波分量的幅度也相应减少。脉冲周期t 愈长,谱线间隔愈小,频谱越稠密;反之,则越稀疏2。 6 典型周期脉冲的频谱 6.1 周期方波脉冲频谱的 matlab 实现 周期方波脉冲信号如图6.1所示,其幅度为1,脉冲宽度占空比:duty=1/2,周期 t=5。 图6-1 周期方波脉冲 编写ctfs3.m函数文件,源程序文件见附录程序三。调用函数ctfs3.m,即可绘出方 波脉冲的双边频谱如图6.
38、2所示,其中周期t和占空比duty可变,修改程序即可得到单边频 谱如图6.3所示。 a 周期为t=5,占空比duty=50的方波脉冲双边频谱 b 周期为t=10,占空比duty=80的方波脉冲双边频谱 图6.2 方波脉冲双边幅度谱 a 周期为t=5,占空比duty=50的方波脉冲单边频谱 b 周期为t=10,占空比duty=80的方波脉冲单边频谱 图6.3 方波脉冲单边幅度谱 由图可以看出,周期方波信号频谱与周期矩形脉冲信号具有相同的规律,由于方波 的周期与脉宽比,因此频谱的第一个过零点内只有两根谱线。2 t 6.2 周期三角波脉冲频谱的 matlab 实现 周期三角波脉冲如图6.4所示,周期
39、t=5,其幅度为1。 图6.4 周期三角波脉冲 matlab 内置有产生三角波的函数sawtooth(t),其调用格式为:x= sawtooth(t,width): 根据width值的不同产生不同形状的三角波,参数width 是01 之间的标量,指定在一个周 期之间最大值的位置,width是该位置的横坐标和周期的比值.因而,当width=0.5 时产生标准 的对称三角波,当width时(可缺省)产生锯齿波。 编写ctfs4.m函数文件,源程序文件见附录程序四。调用函数ctfs4.m,即可绘出方 波脉冲的双边频谱如图6.5所示,其中周期t和width可变,修改程序即可得到单边频谱如 图6.6所示
40、。 a 周期t=5,width=0.5的三角脉冲双边频谱 b 周期t=10,width=1的三角脉冲双边频谱 图6.5 周期三角波双边幅度频谱 a 周期t=5,width=0.5的三角脉冲单边频谱 b 周期t=10,width=1的三角脉冲单边频谱 图6.6周期三角波单边幅度频谱 结束语 本次课程设计至此已经接近尾声,一周的时间虽然很短暂,但在这一个星期的设计 过程中收获颇多。设计的核心内容就是利用 matlab 强大的图形处理功能,符号运算功 能以及数值计算功能,实现连续时间周期信号频域分析的仿真波形。整个设计过程中首 先对所学的信号与系统与数字信号处理有了更深的了解,比如傅立叶级数、信号频
41、谱等; 其次,实现过程是通过 matlab 软件完成的,matlab 的图形功能强大,具有良好的 人机界面5,此次设计过程中熟练了 matlab 的编程,掌握了很多函数的作用及使用方 法;最后,通过此次课程设计,我对设计所用到的软件 matlab 有了更加深刻地了解, matlab 不管在数值计算方面的功能很强大,而且其图形仿真功能更能满足各个领域的 需要,因此我们以后更要经常运用 matlab 软件,使其成为自己不可或缺的工具。 致谢 感谢学校给我们这次matlab课程设计的机会,不仅让我们更加学会了matlab的 强大图形处理方法,掌握了matlab的编程技术,而且也锻炼了我们的动手能力。
42、通过 这次课设让我明白了理论联系实践的重要性,书本上的理论知识学了不少,我们必须得 应用到实践当中,做到学以致用,这样我们才能有不断的创新。这次课程设计也感谢指 导老师在设计过程中的辅导以及同学们的帮助。 参考文献 1 陈怀琛,吴大正,高西全.matlab 及在电子信息课程中的应用z. 北京:电子工业 出版社,2005 2 刘泉,江雪梅.信号与系统z. 北京:高等教育出版社,2006 3 刘泉,阙大顺,郭志强.数字信号处理原理与实现z. 北京:电子工业出版社,2009 4 梁虹. 信号与系统分析及 matlab 实现z. 北京:电子工业出版社,2002 5 罗建军. matlab 教程z. 北
43、京:电子工业出版社,2005 附录 源程序一 周期信号的傅里叶级数分解与综合的源程序如下: functiona_sym,b_sym=ctfs1 syms t n k x t=5;tao=0.2*t;a=0.5; if nargin4;nf=6;end if nargin5;nn=32;end x=time_fun_x(t); a0=2*int(x,t,-a,t-a)/t; as=int(2*x*cos(2*pi*n*t/t)/t,t,-a,t-a); bs=int(2*x*sin(2*pi*n*t/t)/t,t,-a,t-a); a_sym(1)=double(vpa(a0,nn); for
44、k=1:nf a_sym(k+1)=double(vpa(subs(as,n,k),nn); b_sym(k+1)=double(vpa(subs(bs,n,k),nn); end if nargout=0 c=a_sym;disp(c) d=b_sym;disp(d) t=-8*a:0.01:t-a; f1=2*(0.2/2+0.1871.*cos(2*pi*1*t/5)+0.*sin(2*pi*1*t/5); f2=2*(0.1514.*cos(2*pi*2*t/5)+0.*sin(2*pi*2*t/5); f3=2*(0.1009.*cos(2*pi*3*t/5)+0.*sin(2*pi
45、*3*t/5); f4=2*(0.0468.*cos(2*pi*4*t/5)+0.*sin(2*pi*4*t/5); f5=2*(-0.0312.*cos(2*pi*6*t/5)+0.*sin(2*pi*6*t/5); f6=f1+f2; f7=f6+f3; f8=f7+f4+f5; subplot(2,2,1) plot(t,f1),hold on y=time_fun_e plot(t,y,:) title(周期矩形波的形成基波) subplot(2,2,2) plot(t,f6),hold on y=time_fun_e plot(t,y,:) title(周期矩形波的形成基波+2次谐波
46、) subplot(2,2,3) plot(t,f7),hold on y=time_fun_e plot(t,y,:) title(周期矩形波的形成基波+2次谐波+3次谐波) subplot(2,2,4) plot(t,f8),hold on y=time_fun_e plot(t,y,:) title(周期矩形波的形成基波+2次谐波+3次谐波+6次谐波) end function x=time_fun_x(t) h=1; x1=sym(heaviside(t+0.5)*h; x=x1-sym(heaviside(t-0.5)*h; function y=time_fun_e a=0.5;t
47、=5;h=1;tao=0.2*t;t=-8*a:0.01:t-a; e1=1/2+1/2.*sign(t+tao/2); e2=1/2+1/2.*sign(t-tao/2); y=h.*(e1-e2); 源程序二 双边、单边(幅度,相位)频谱分析源程序如下: 双边频谱分析源程序: function a_sym,b_sym=ctfs2 syms t n y if nargin3;nf=input(pleas input 所需展开的最高谐波次数: nf=);end t=input(pleas input 信号的周期=); if nargin5;nn=32;end y=time_fun_s(t);
48、a0=2*int(y,t,0,t)/t; as=int(2*y*cos(2*pi*n*t/t)/t,t,0,t); bs=int(2*y*sin(2*pi*n*t/t)/t,t,0,t); a_sym(1)=double(vpa(a0,nn); for k=1:nf a_sym(k+1)=double(vpa(subs(as,n,k),nn); b_sym(k+1)=double(vpa(subs(bs,n,k),nn);end if nargout=0 s1=fliplr(a_sym) s1(1,k+1)=a_sym(1) s2=fliplr(1/2*s1) s3=fliplr(1/2*b_
49、sym) s3(1,k+1)=0 s4=fliplr(s3) s5=s2-i*s4; s6=fliplr(s5); n=nf*2*pi/t; k2=-n:2*pi/t:n; s7=s6,s5(2:end); x=time_fun_e subplot(3,1,2) stem(k2,abs(s7); title(连续时间函数周期矩形脉冲的双边幅度谱) axis(-80,80,0,0.12) line(-80,80,0,0) line(0,0,0,0.12) subplot(3,1,3) stem(k2,angle(s7); title(连续时间函数周期矩形脉冲的双边相位谱) axis(-80,80
50、,-4,4) line(-80,80,0,0) line(0,0,-4,4) end function y=time_fun_s(t) syms a a1 t=input(pleas input 信号的周期t=); m=input(周期与脉冲宽度之比m=); a=1;tao=t/m;a=tao/2; y1=sym(heaviside(t+a1)*a; y=y1-sym(heaviside(t-a1)*a; y=subs(y,a1,a); y=simple(y); function x=time_fun_e t=5;t=-2*t:0.01:2*t;tao=t/5; x=rectpuls(t,1)
51、; subplot(3,1,1) plot(t,x) hold on x=rectpuls(t-5,1); plot(t,x) hold on x=rectpuls(t+5,1); plot(t,x) title(周期为t=5,脉宽tao=1的矩形脉冲) axis(-10,10,0,1.2) 单边频谱分析源程序: function a_sym,b_sym=ctfs21 syms t n k y if nargin4;nf=input(pleas input 所需展开的最高谐波次数: nf=);end t=input(pleas input 信号的周期t=); if nargin5;nn=32;
52、end y=time_fun_s(t); a0=2*int(y,t,0,t)/t; as=int(2*y*cos(2*pi*n*t/t)/t,t,0,t); bs=int(2*y*sin(2*pi*n*t/t)/t,t,0,t); a_sym(1)=double(vpa(a0,nn); for k=1:nf a_sym(k+1)=double(vpa(subs(as,n,k),nn); b_sym(k+1)=double(vpa(subs(bs,n,k),nn);end if nargout=0 s1=fliplr(a_sym) s1(1,k+1)=a_sym(1) s2=fliplr(1/2
53、*s1) s3=fliplr(1/2*b_sym) s3(1,k+1)=0 s4=fliplr(s3) s5=s2-i*s4; n=nf*2*pi/t; k2=0:2*pi/t:n; x=time_fun_e subplot(3,1,2) stem(k2,abs(s5); title(连续时间函数周期矩形脉冲的单边幅度谱) axis(0,80,0,0.12) line(0,80,0,0) line(0,0,0,0.12) subplot(3,1,3) stem(k2,angle(s5); title(连续时间函数周期矩形脉冲的单边相位谱) axis(0,80,-5,5) line(0,80,0
54、,0) line(0,0,-5,5) end function y=time_fun_s(t) syms a a1 t=input(pleas input 信号的周期t=); m=input(周期与脉冲宽度之比m=); a=1;tao=t/m;a=tao/2; y1=sym(heaviside(t+a1)*a; y=y1-sym(heaviside(t-a1)*a; y=subs(y,a1,a); y=simple(y); function x=time_fun_e t=5;t=-2*t:0.01:2*t;tao=t/5; x=rectpuls(t,1); subplot(3,1,1) plo
55、t(t,x) hold on x=rectpuls(t-5,1); plot(t,x) hold on x=rectpuls(t+5,1); plot(t,x) title(周期为t=5,脉宽tao=1的矩形脉冲) axis(-10,10,0,1.2) 源程序三 周期方波脉冲频谱分析源程序如下: 双边频谱分析源程序: function a_sym,b_sym=ctfs3 syms t n k y t=10; if nargin4;nf=input(pleas input 所需展开的最高谐波次数: );end if nargin5;nn=32;end y=time_fun_s(t); a0=2*
56、int(y,t,0,t)/t; as=int(2*y*cos(2*pi*n*t/t)/t,t,0,t); bs=int(2*y*sin(2*pi*n*t/t)/t,t,0,t); a_sym(1)=double(vpa(a0,nn); for k=1:nf a_sym(k+1)=double(vpa(subs(as,n,k),nn); b_sym(k+1)=double(vpa(subs(bs,n,k),nn);end if nargout=0 s1=fliplr(a_sym) s1(1,k+1)=a_sym(1) s2=fliplr(1/2*s1) s3=fliplr(1/2*b_sym)
57、s3(1,k+1)=0 s4=fliplr(s3) s5=s2-i*s4; s6=fliplr(s5); n=nf*2*pi/t; k2=-n:2*pi/t:n; s7=s6,s5(2:end); subplot(2,1,1) x=squ_timefun t=10;t=-2*t:0.01:2*t; plot(t,x) title(t=10,占空比为80%的周期方波脉冲) axis(-20,20,-1,1.2) line(-20,20,0,0) subplot(2,1,2) stem(k2,abs(s7); title(连续时间函数周期方波脉冲的双边幅度谱) axis(-40,40,0,0.6)
58、 end function y=time_fun_s(t) syms a a1 t=10;a=t/2; y1=sym(heaviside(t)*2-sym(heaviside(t-a1); y=y1-sym(heaviside(t+a1); y=subs(y,a1,a); y=simple(y); function x=squ_timefun t=10;t=-2*t:0.01:2*t;duty=80; x=square(t,duty); 单边频谱分析源程序: function a_sym,b_sym=ctfs31 syms t n k y t=10; if nargin4;nf=input(p
59、leas input 所需展开的最高谐波次数: );end if nargin5;nn=32;end y=time_fun_s(t); a0=2*int(y,t,0,t)/t; as=int(2*y*cos(2*pi*n*t/t)/t,t,0,t); bs=int(2*y*sin(2*pi*n*t/t)/t,t,0,t); a_sym(1)=double(vpa(a0,nn); for k=1:nf a_sym(k+1)=double(vpa(subs(as,n,k),nn); b_sym(k+1)=double(vpa(subs(bs,n,k),nn);end if nargout=0 s1=fliplr(a_sym) s1(1,k+1)=a_sym(1) s2=fliplr(1/2*s1) s3=fliplr(1/2*b_sym) s3(1,k+1)=0 s4=fliplr(s3) s5=s2-i*s4; n=nf*2*pi/t; k2=0:2*pi/t:n; subplot(2,1,1) x=squ_timefun t=10;t=-2*t:0.01:2*t; plot(t,x) title(t=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拍卖公司鉴定师聘用合同范本
- 铁路工程款结算书
- 旅游景区道路建设协议
- 机场建设脚手架工程分包协议
- 学校桩基建设项目招标文件
- 城市供气主体劳务施工合同
- 银行股权纠纷处理手册
- 金融创新合资铁路产品研发
- 展览馆展厅装修施工分包协议
- 电子产品运营总监聘用协议
- GB/T 44744-2024粮食储藏低温储粮技术规程
- 自然拼读法-图文.课件
- 苏教版(2024新版)一年级上册科学全册教案教学设计
- 创新创业实训智慧树知到期末考试答案章节答案2024年西安理工大学
- 2024届宜宾市九年级语文上学期期中考试卷附答案解析
- 大学生国家安全教育智慧树知到期末考试答案2024年
- 无人机飞行操作手册
- 2024继续教育《医学科研诚信与医学了研究伦理》答案
- 《埃隆·马斯克传》导读
- MOOC创新创业与管理基础(东南大学)
- 硫磺安全技术说明书MSDS
评论
0/150
提交评论