资讯详情

MATLAB信号发生器仿真

[摘要]

本文以信号发生器为主题MATLAB以模拟为背景,介绍MATLAB模拟技术的发展和信号发生器的现状,结合线性调制系统的应用背景,设计了结构简单、性能优良的线性调制信号发生器,全面满足了信号发生器的功能要求。

本论文的主要研究内容包括:

1.研究了信号发生器的现状,MATLAB介绍了仿真技术的发展和现状MATLAB模拟的实用性和可靠性。

2.研究常规调制信号ASK信号、FSK信号和PSK等待相关理论,为信号生成奠定基础。

3.以线性调制为例研究MATLAB模拟的三种方法比较了它们各自的优缺点,并选择了它们Simulink模拟系统。

4.用GUI模拟线性调制系统,实现软件设计,调试系统,使系统满足指标要求。

关键词:信号发生器;线性调制系统;MATLAB仿真;simulink

目录

摘要...1

ABSTRACT... 2目录...3第一章 绪论...1

1.1论文的主题背景和研究意义...1

1.2 MATLAB模拟技术的发展及现状...1

1.3信号发生器的发展及现状...3

1.4论文的主要研究内容...4

第二章 信号发生器的理论部分...5

2.信号发生器分类简介...5

2.2常规信号...7

2.3本章小结...10

第三章 MATLAB三种模拟方法...11

3.1模拟基本原理...11

3.简单实现23种仿真方法...12

3.3基于Matlab 7.0三种模拟方法的比较...15

3.4本章小结... 15

第四章 信号发生器MATLAB仿真实现...16

4.1常规信号的Matlab仿真实现...16

4.二线性调制系统Matlab仿真实现...18

4.3AM信号发生的Simulink仿真实现... 20

4.4本章小结... 23

结束语...24

致谢...25

参考文献...26

第一章 绪论

1.1 论文的立题背景及研究意义

在现代声纳、雷达等通信系统的测试和模拟中,任何波形信号的重构技术也是声学和语音信号合成等应用领域的关键技术之一。然而,在声纳、雷达等通信系统的开发过程中,由于保密可能长期进行大量的现场实验。在更多的情况下,有必要重建这些具有一定特征的随机信号,进行系统测试、系统分析和半物理模拟研究。

而且,随着通信技术的发展,通信信号的种类越来越多,通信网络的数量也越来越多。通信对抗的主要研究内容是如何截获敌人的通信信号,预测和干扰敌人的正常通信。在通信对抗的研究中,通信信号发生器也是模拟真实场景不可或缺的仪器。市场上的通信信号发生器非常昂贵,功能相对简单。因此,研究任何波形通信信号的高精度重构方法具有重要的理论意义和实用价值。

在生成任何波形时域信号的过程中,分为硬件和软件。Matlab通过软件编程实现仿真。Matlab是矩阵实验室(Matrix Laboratory)是美国MathWorks公司生产的商业数学软件。MATLAB可用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域。图形用户界面(Graphical User Interface,简称GUI,又称图形用户界面)是指用图形显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面在视觉上更容易被用户接受。Matlab自带强大GUI工具。Matlab模拟技术的出现也为研究任何波形的通信信号提供了强有力的技术支持。

任何波形发生器不仅可以产生正弦、余弦、方正弦、余弦、方波、三角形波和锯齿形波,还可以使用各种编辑手段产生传统函数发生器无法产生的任何真实波形。例如,它可以模拟波形,如编码雷达信号、潜艇特征信号、磁盘数据信号、机械振动瞬变过程、电视信号和各种神经脉冲。

1.2 MATLAB模拟技术的发展及现状

1.2.1 MATLAB的概况

MATLAB是矩阵实验室(Matrix Laboratory)意思。除具有优异的数值计算能力外,还提供专业的符号计算、文字处理、可视化建模仿真、实时控制等功能。

MATLAB基本数据单位是矩阵,其指令表达式与数学非常相似,因此在工程中使用MATLAB比用来解决问题C,FORTRAN语言完成后,同样的事情要简单得多。

当前流行的MATLAB 7.0/Simulink 3.0包括拥有数百个内部函数的主包和30多个工具包(Toolbox)。工具包可分为功能工具包和学科工具包。用于扩展的功能工具MATLAB符号计算、可视化建模仿真、文字处理及实时控制等功能。学科工具包是专业性强的工具包,包括控制工具包、信号处理工具包、通信工具包等。

1.2.2 MATLAB历史背景

70年代中期,Cleve Moler在美国国家科学基金的资助下,博士及其同事开发了调用EISPACK和LINPACK的FORTRAN子程序库.EISPACK是特征值求解FOETRAN程序库,LINPACK解决线性方程的程序库.当时,这两个程序库代表矩阵运算的最高水平.

到20世纪70年代末的美国New Mexico大学计算机系主任Cleve Moler利用业余时间为学生写作EISPACK和LINPACK的接口程序.在以后的数年里,MATLAB它被用作许多大学的教学辅助软件,并被广泛用作面向公众的免费软件。

1983年春天,Cleve Moler和Cleve Moler,Steve Bangert第二代专业版是用C语言开发的.这一代的MATLAB语言还具有数值计算和数据图示的功能.

1984年,Cleve Moler和John Little成立了Math Works公司,正式MATLAB推向市场,继续前进MATLAB研发.

在当今30多个数学科技应用软件中,软件数学处理的原始核心可分为两类.一种是数值计算软件,如MATLAB,Xmath,Gauss等等,这类软件比数值计算长,对处理大量数据效率高;另一种是数学分析软件,Mathematica,Maple等等,这类软件擅长符号计算,能给出解析解和任意精确解,其缺点是处理大量数据时效率较低.MathWorks公司顺应多功能需求的趋势,在优秀的数值计算和图形能力的基础上,率先开发了符号计算、文本处理、可视化建模和实时控制能力,开发了适合多学科、多部门要求的新一代科技应用软件MATLAB.经过多年的国际竞争,MATLAB占据数值软件市场的主导地位.

时至今日,路过MathWorks公司不断完善,MATLAB已发展成为适合多学科、多工作平台的强大大型软件。在国外,MATLAB经过多年的考验,MATLAB成为线性代数、自动控制理论、数理统计、数字统计号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具。

1.2.3 MATLAB的语言特点

  一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB最突出的特点就是简洁。MATLAB用更直观的,符合人们思维习惯的代码,代替了C和 FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。

1)语言简洁紧凑,使用方便灵活,库函数极其丰富2)运算符丰富。3)MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。4)程序限制不严格,程序设计自由度大。5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。6)MATLAB的图形功能强大。7)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。8)功能强大的工具箱。9)源程序的开放性。

1.3 信号发生器的发展及现状

在七十年代前,函数信号发生器能够提供正弦波、余弦波、方波、三角波等几种常用标准波形,产生其它波形时,需要采用较复杂的电路和机电结合的方法。这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。同时,主要表现为两个突出问题,一是通过电位器的调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。

在七十年代后,微处理器的出现,可以利用处理器A/D和D/A,硬件和软件使波形发生器的功能扩大,产生更加复杂的波形。这时期的波形发生器多以软件为主,实质是采用微处理器对DAC的程序控制,就可以得到各种简单的波形。

信号发生的主要实现方法根据实现思路可以分为模拟式和数字式,根据实现方法可以分为直接法、相法、直接数字法和混合法四种。

直接法是优点是速度快,相位噪声底,但结构复杂、杂散多。锁相法所采用的锁相频率合成技术在近年发展较快,应用也较广泛,但其频率转换速度不快,电路控制复杂,这使得该技术的应用受到了一定的限制。直接数字法是采用直接数字合成(DDS)的方法实现信号产生。该技术具有频率转换速度快、频率分辨率高、易于控制的突出特点。在信号发生的几种技术当中,直接数字合成技术出现得最晚,但近年来发展得最快。随着大规模集成技术和数模混合信号集成技术的发展,单片集成的DDS芯片纷纷出现,在应用领域内大有后来居上的势头。混合法则是指采用以上方法中的两种及两种以上的方法实现信号发生。

随着现代信息事业的发展,测试对象不断丰富,现代通信系统和电子系统对测试系统提出了越来越高的要求,进而对信号发生器也提出了更高的要求。我们将当前业内对信号发生部件的要求大致归纳为以下四点:(1)高频谱纯度、宽频带。 (2 ) 快速和多点频率捷变。(3 )系列化、模块化。(4 )小型化和工程化。

随着现代电子、计算机和信号处理等技术的发展,极大促进了数字化技术在电子测量仪器中的应用,使原有的模拟信号处理逐步被数字信号处理所代替,从而扩充了仪器信号的处理能力,提高了信号测量的准确度、精度和变换速度,克服了模拟信号处理的诸多缺点,数字信号发生器随之发展起来。

1.4 论文的主要研究内容

研究相关理论,并根据具体实验室的应用,意在设计一个通用的多路任意波形信号发生器,该系统由两部分组成:

本论文围绕第一部分数据处理、信号产生部分设计而展开,基于对Matlab7.0的三种仿真方式介绍引出信号发生器的Matlab应程序设计。其主要工作如下:

第一章绪论

介绍了本论文的研究背景和立题意义,强调了通信信号发生器的重要性,概述了信号发生器的及MATLAB仿真技术的发展和现状,提出了本文的研究内容,阐述了本文的主要工作。

第二章信号发生器的理论部分

在本章中主要简单介绍了信号发生器的理论以及分类,研究了ASK、PSK、FSK和代县白噪声等常规信号的时频域表达式、调制方法。为设计通信信号发生器奠定了技术和理论的基础。为后面用MATLAB实现ASK、PSK、FSK信号奠定了理论基础。

第三章MATLAB的三种仿真办法

本文分析了线性模拟调制的数学模型,采用基于Matlab 7.0的三种仿真方法对AM调制进行仿真,以实例阐述了三种仿真方法的特点。最后,在实例分析的基础上对三种方法进行了简单的比较。结果表明,三种方法各有优劣,基于Simulink仿真模型能够反映系统的动态工作过程,基于GUI的可视化界面具有很好的演示效果,都为通信系统的设计和研究提供了强有力的工具,也为通信系统理论的教学和学习提供了有力的工具。

第四章信号发生器的MATLAB仿真实现

介绍了Matlab软件实现的程序编程的情况,重点介绍了信号的软件产生,其中包括ASK、PSK、FSK等信号以及AM、DSB 、SSB等信号。同时用Simulink产生的线性调制系统可以产生AM、DSB 、SSB、VSB等线性调制系统的任意波形信号等波形。

第二章 信号发生器的理论部分

2.1 信号发生器分类简介

信号发生器按输出波形可分为正弦波信号发生器、脉冲信号发生器、函数发生器和任意波形发生器等。按其产生频率的方法又可分为调谐信号发生器、锁相信号发生器和合成信号发生器。

调谐信号发生器是由调谐振荡器构成,传统调谐信号发生器都是由调谐振荡器和统调的调幅放大器(输出放大器)加上一些指示电路构成。这种信号发生器结构复杂、频率范围窄,而且可靠性、稳定性较差,波形失真比较大。随着集成电路的迅速发展,高性能的集成电路越来越多,这类信号发生器的性能有所改善。一般这种信号发生器只能手动来转换量程,不仅体积大,而且可靠性和准确度很难进一步提高,频率准确度一般在0.5%以下。现代电子测量对信号发生器的频率准确度和稳定度要求越来越高,要求在较宽的频率范围内获得高稳定度和准确度的输出信号。因此调谐信号发生器己经越来越不能满足现代电子测量的需要。另外,这类信号发生器只能产生规则波形,如方波、三角波、TTL信号和正弦波。进行科学试验则对信号发生器的输出波形提出了各种各样的要求,采用纯模拟的方法很难满足实验的要求。

锁相信号发生器是由调谐振荡器通过锁相的方法获得输出信号的信号源。这类信号发生器频率的精度和稳定度很高,但要实现快速和数控比较困难,同时输出信号的频率分辨率较差。实现高分辨率的信号发生器,采用锁相环来实现有一定的难度,尤其是覆盖低频和高频的信号发生器采用锁相实现比较困难。

合成信号发生器是采用频率合成方法构成的信号发生器。合成信号发生器中使用一个晶体参考频率源,所需的各种频率都由它经过分频、混频和倍频后得到的,因而合成器输出频率的稳定性和精度与参考源一样,现在绝大多数频率合成技术都使用这种合成方法。这类信号发生器具有频率稳定度高、分辨率高、输出信号频率范围宽、频率易于实现程序控制、可以实现多种波形输出及频率显示方便等优点。近10年间,随着微电子技术的迅速发展,它以有别于其它频率合成方法的优越性能和特点,成为现代频率合成技术中的佼佼者。具体体现在频率范围宽、频率转换时间短、频率分辨率高、输出相位连续、可产生宽带正交信号及其他多种调制信号、可编程和全数字化、控制灵活方便等方面,并具有极高的性价比。传统的模拟信号发生器存在可靠性差、体积大、不能实现数控等缺点。模拟信号发生器与模拟信号发生器相比,具有很大的优势。

2.2 常规信号

通信的根本任务是远距离传递信息,因此如何准确地传输数字信息是数字通信的一个重要组成部分。在数字传输系统中,其传输对象通常是二元数字信息,它可能来自计算机、电传打字机或其他数字设备的各种数字代码,也可能来自数字电话终端的脉冲编码信号。设计数字传输系统的基本考虑是选择一组有限的离散的波形来表示数字信息。这些离散波形可以是未经调制的不同电平信号,也可以是调制后的信号形式。由于未经调制的电脉冲信号占据的频带通常从直流和低频开始,因此称为数字基带信号。在某些有线信道中,特别是传输距离不太远的情况下,数字基带信号可以直接传送,我们称之为数字信号的基带传输。而在另外一些信道,特别是无线信道和光信道中,数字基带信号则必须经过调制,将信号频谱搬移到高频处才能在信道中传输,我们把这种传输称为数字信号的调制传输(或载波传输)。

调制的方法主要是通过改变余弦波的幅度、相位或频率来传送信息。其基本原理是把数据信号寄生在载波的上述三个参数中的一个上,即用数据信号来进行幅度调制、频率调制或相位调制。数字信号只有几个离散值,因此调制后的载波参数也只有有限个值,类似于用数字信息控制开关,从几个具有不同参量的独立振荡源中选择参量,为此把数字信号的调制方式称为“键控”。数字调制分为调幅、调相和调频三类,分别对应“幅移键控”(ASK)、“相移键控”(PSK)和“频移键控”(FSK)三种数字调制方式。除这些基本的以外,还可以采用各种多相位、多振幅和多频率的方案。但ASK、PSK和FSK这三种数字调制方式仍是最主要和最基本的,所以接下来要对这三种调制技术,以及上面提到的QAM调制技术分别进行介绍。

2.2.1 ASK信号

在幅度键控中载波幅度是随着调制信号而变化的。最简单的形式是载波在二进制基带信号1或0的控制下通或断,这种二进制幅度键控方式称为通一断键控(00K)。

二进制幅度键控的调制器可以用一个相乘器来实现,如图2.1所示,对基带信号和载波进行乘法运算即可得到ZASK信号。对于通断键控信号来说,相乘器则可以用一个开关电路来代替,调制信号为1时开关电路导通,为0时开关电路切断。

v2-523f59a263038b3fabf67bd4dc7c09ed_b.jpg

图2.1 2ASK调制原理图

2.2.2 FSK信号

在二进制频移键控中载波频率随着调制信号1或0而变。

二进制频移键控的调制器可以采用模拟信号调制电路来实现,但更容易的实现方法是图2.10中的键控法,两个独立的载波发生器的输出受控于输入的二进制信号,按照1或O分别选择一个载波作为输出。

FSK方式实现起来比较容易,抗噪声和抗衰减性能好,稳定可靠,是中低速数据传输最佳选择。

图2.2 2FSK调制原理图

2.2.3 PSK信号

在PSK调制时,载波的相位随调制信号状态不同而改变。如果两个频率相同的载波同时开始振荡,这两个频率同时达到正最大值,同时达到零值,同时达到负最大值,此时它们就处于“同相”状态;如果一个达到正最大值时,另一个达到负最大值,则称为“反相”。一般把信号振荡一次(一周)作为360度。如果相差半个周期,我们说两个波的相位差180度,也就是反相。二进制相移键控中,载波的相位随调制信号1或0而改变,通常用相位0。和

来分别表示1或0。二进制相移键控已调信号的时域表达式为

式(2-9)所示BPSK信号与式(2-1)所示OOK信号相对比可知,BPSK信号是双极性非归零码的双边带调制,而OOK信号则是单极性非归零码的双边带调制。BPSK调制信号没有直流分量,因而是抑制载波的双边带调制。由此可见,BPS信号的功率谱与OOK信号的相同,只是少了一个离散的载频分量。这一结论也同样适用于基带信号为其他形式的BPSK信号。BPSK调制器可以采用相乘器,如图2.3所示。将二进制信息由单记性变为双极性后与载波相乘,即可得到已调信号。另外,也可以用相位选择器来实现,根据二进制信息选择载波的相位,也可得到已调信号。

图2.3 BPSK调制原理图

PSK相移键控调制技术在数据传输中,尤其是在中速和中高速的数传机2400bit/s-4800bit/s中得到了广泛的应用。应用较多的是二相和四相调相,即QPSK(Quadrature Phaseshift Keying),在卫星信道中传送数字电视信号时采用的就是QPSK调制方式,它可以看成是由两个ZPSK调制器构成的。输入的串行二进制信息序列经串一并变换后分成两路速率减半的序列,由电平转换器分别产生双极性二电平信号I(t)和Q(t)。fct进行调制,相加后即可得到QPSK信号。四相相移调制是利用载波的四种不同相位差来表征输入的数字信息,是四进制移相键控。QPSK是在M=4时的调相技术,它规定了四种载波相位,分别为45度,135度,225度,275度。调制器输入的数据是二进制数字序列,为了能和四进制的载波相位配合起来,则需要把二进制数据变换为四进制数据,这就是说需要把二进制数字序列中每两比特分成一组,共有四种组合,即00,01,10,l1。QPSK中每次调制可传输2个信息比特,这些信息比特是通过载波的四种相位来传递的。

2.2.4 带限白噪声

白噪声是指功率谱密度在整个频域内均匀分布的噪声。严格地说,白噪声只是一种理想化模型,因为实际噪声的功率谱密度不可能具有无限宽的带宽,否则它的平均功率将是无限大,是物理上不可实现的,如图2.4。然而,白噪声在数学处理上比较方便,因此它是系统分析的有力工具。一般,只要一个噪声过程所具有的频谱宽度远远大于它所作用系统的带宽,并且在该带宽中其频谱密度基本上可以作为常数来考虑,就可以把它作为白噪声来处理。

白噪声具有频带宽、能量分布均衡、对被测系统干扰小的特点,在工程实际中,是一种使用十分广泛的信号。当然用任何方法都无法产生理想的无限带宽的白噪声,实际应用中是要求信号的频率特性在一定带宽内具有白噪声的频率特性,即带宽内各频率分量能量近似相等。工程应用和试验研究中,经常需要信号的带宽可调,并具有较好的低通特性,一般还要求产生的白噪声信号具有一定的输出功率。

图2.4 理想白噪声的功率谱密度和自相关函数

白噪声的实现可以通过单一的Logist方程进行,Logist方程见式(2-11)。Logist所产生的迭代混沌序列是平稳的随机过程,并且当参数K=4时,所产生的信号的统计特性和时频特性与白噪声一致,因此用Logist方程可以产生白噪声的理论成立。而且同时应用两个Logist方程可以改善白噪声的性能。

2.3 本章小结

在本章中主要简单介绍了信号发生器的理论以及分类,研究了ASK、PSK、FSK和代县白噪声等常规信号的时频域表达式、调制方法。为设计通信信号发生器奠定了技术和理论的基础。为后面用MATLAB实现ASK、PSK、FSK信号奠定了理论基础。

第三章 MATLAB的三种仿真办法

3.1 仿真基础原理

3.1.1 三种仿真方法简介

目前,计算机仿真已经成为解决工程实际问题的重要手段,Matlab软件是其中功能最为强大的仿真软件之一。目前利用Matlab进行系统性能仿真,主要有三种方法:其一是通过脚本程序的编写,实现相关系统仿真和性能分析;其二是利用Simulink模块库,通过鼠标拖拉的方式建立相关系统的仿真模型,对每个模块进行参数设置,以达到动态系统仿真和性能分析的目的;其三是利用图形用户界面GUI,创建各种菜单、按钮等可视化界面,通过函数回调等手段,实现人机交互的系统仿真及其性能分析。Matlab语言比较简单,脚本程序的编写也比较简单,很多语言结构和风格与常用的C语言非常相似,因此,对于初学者而言,是很容易上手的。

Simulink软件具有丰富的模块库,其中公共模块库共包含9个模块库:连续系统模块库、离散系统模块库、函数与表库、数学运算库、非线性系统模块库、信号与系统模块库、系统输出模块库、系统输人模块库、子系统模块库。除了公共模块库之外,Simulink中还集成了许多面向不同专业领域的专业模块库,如面向控制系统设计与分析的Control System Toolbox模块库、面向数字信号处理系统设计与分析的DSP Blockset模块库、专用于通信系统仿真的通讯模块库等。Simulink不但功能非常强大,而且还是一个开放性体系,可以支持用户开发模块来增强其自身的功能。

图形用户界面GUI(Graphics User Interface)是由各种图形对象,如图形窗口、图轴、菜单、按钮、文本框等构建的用户界面,是人机交流信息的T具和方法。在该界面内,用户可以根据界面提示完成整个工程,不必去了解工程内部是如何工作的。GUI设计可以以基本的Matlab程序设计为主,也可以鼠标为主利用GUIDE(Graphics User Interface Design Environment)工具进行设计。利用GUIDE设计图形用户界面时,可通过GUI应用属性设置编辑器来设置对句柄操作的响应,findobj命令可以获得所需对象的旬柄。GUIDE是—个专用于GUI程序设计的快速开发环境,使用者通过鼠标就能迅速地产生各种CUI控件,并随心所欲地改变它们的外形、大小及颜色等,从而帮助用户方便地设计出各种符合要求的图形用户界面。

本章将以线性模拟调制为例,来阐述基于Natlab7.0的三种系统仿真方法,最后在仿真分析的基础上,对三种仿真方法进行分析比较。

3.2.2 线性模拟调制原理

线性模拟调制主要有调幅(AM)、双边带(DSB)、单边带(SSB)和残留边带(VSB)等调制方式。其中VSB调制是介于SSB与DSB之间的一种折中方式。

由于基于Matlab 7.0的三种系统仿真,都需要了解系统数学模型,所以下面就对AM、DSB和SSB调制的数学模型进行分析。

3.2 三种仿真的简单实现

3.2.1 基于Matlab的系统仿真

本文以线性模拟调制中的线性调制AM调制为例,通过脚本程序的编写,实现系统仿真和性能分析。

首先,编写Matlab脚本程序如下:

clear;

clf;

t=0:pi/10:40*pi;

Carrier=sin(t);

Mod_Sig=sin(t/20);

Dsb_am=Carrier.*(1+Mod_Sig);

plot(t,Carrier,t,Mod_Sig,t,Dsb_am);

title('Plot of carrier modulated by sinewave (dsb-am)');

xlabel('time');

ylabel('voltage');

grid on;

legend('carrier','baseband','modulated signal')

图3.1 基于脚本程序仿真的仿真结果

3.2.2 基于Simulink的系统仿真及分析

从以上理论分析可知,AM、DSB和SSB调制具有一定的共性,因此,为了演示和比较这三种调制方式的特点,可以将其集成在同一个仿真模型中。当需选择其他调制方式时,只需手动点击开关就可以进行切换。

使用Simulink建立如图3.2所示的线性模拟调制仿真模型。

图3.2 线性模拟调制仿真模型

仿真模型中所用到的模块,均可以用鼠标从Simulink模块库中拖到模型编辑窗口,进行模块间的连线,然后对每一个模块的参数进行设置。当参数设置和连线正确后,就可以点击开始仿真按钮,进行性能仿真。通过示波器和频谱仪等输出模块,可以非常直观地看到各个节点的时域和频域特性。

本文以AM调制的性能仿真结果为例,得出相关节点的仿真图形。显然,示波器模块可以非常直观地显示了AM调制的调制信号时域波形、乘法器输出时域波形、乘法器输出信号频谱和已调信号时域波形。

在图2中,当切换左边开关就可以改变调制信号,实现AM调制与DSB或SSB调制不同调制方式的切换;当切换右边下面的开关就可以通过选择不同的滤波器,得到不同的SSB调制信号;而切换右边上面的开关就可以在示波器和频谱仪中显示相应的输出结果。当然,整个仿真模型中载波频率、滤波器传输特性等都可以按需要改变,相应节点的输出时域波形和频域波形都会随之改变。

3.2.3 基于GUI的动态系统仿真及分析

Matlab 7.0通信工具箱提供了一个典型的通信系统通常所包括的信源、信宿、信道和发送接收处理部分,可以通过应用相应的函数实现相关通信功能的仿真。通过使用GUI,可以使不同功能的系统形成一个独立的界面,编写m函数实现界面上相应按钮的功能,使用函数回调功能实现界面和m函数之间的链接。调试成功的图形用户界面可以实现对不同仿真系统的运行、暂停或停止进行控制,通过滑动块或动态文本框等实时修改模块参数,形成一个完整的仿真体系。

仍然以线性模拟调制解调系统中的AM调制为例,设计图形用户界面,编写m函数,通过函数回调等功能,达到动态演示AM调制的目的。

此种仿真首先要建立基于GUI的仿真系统主界面,添加按钮、静态文本、坐标轴等来实现界面的可视化,然后通过编辑回调函数,调用回调函数,来实现分析仿真。

3.3 基于Matlab 7.0的三种仿真方法比较

从上文的仿真范例可以看出,基于脚本程序编写的方法比较简单,只要掌握Matlab语言,就可以编辑一些简单的程序,实现一些仿真功能。但这种方法不直观,对于复杂系统的仿真对编程水乎有较高的要求。另外,这种仿真方法不直观,用户不了解功能系

统的体系构成。

Simulink是一个对动态系统进行建模、仿真并对仿真结果进行分析的软件包。使用Simulink可以更加方便地对系统进行可视化建模,并进行基于时间流的系统级仿真,使得仿真系统建模与工程中的方框图统一起来。并且仿真结果可以近乎“实时”地通过可视化模块,如示波器模块、频谱仪模块以及数据输入输出模块等显示出来,使得系统的仿真工作十分方便。因此,目前这种方法在科研中被广泛使用。但这种方法,不足之处就在于人机交互不太理想,对于系统演示等也不是很适合。

而使用GUI进行的界面设计,具有人机交互功能,可以实时改变系统各个参数,进行动态仿真,并将仿真结果形象地展现m来。可以通过形象、对比式的演示,使用户能够从整体上认识和区别各种系统,容易理解、印象深刻。因此,这种方法常用于演示系统

的开发,如通信原理课程的实验教学等。

3.4 本章小结

本文分析了线性模拟调制的数学模型,采用基于Matlab 7.0的三种仿真方法对AM调制进行仿真,以实例阐述了三种仿真方法的特点。最后,在实例分析的基础上对三种方法进行了简单的比较。结果表明,三种方法各有优劣,基于Simulink仿真模型能够反映系统的动态工作过程,基于GUI的可视化界面具有很好的演示效果,都为通信系统的设计和研究提供了强有力的工具,也为通信系统理论的教学和学习提供了有力的工具。

  1. 信号发生器的MATLAB仿真实现

4.1 常规信号的MATLAB仿真实现

理论论述介绍参见第二章,现在仅介绍用Matlab仿真实现常规数字信号的发生实现,现列举简洁的程序请单及运行结果如图一所示下:

clear all;

close all;

A=1;

fc=2; %2Hz

N_sample=8;

N=500; %码元数

Ts=1; %1Baud/s

dt=Ts/fc/N_sample; %波形采样间隔

t=0:dt:N*Ts-dt;

Lt=length(t);

%产生二进制信号源

d=sign(randn(1,N));

X=length((d+1)/2);

dd=zeros(fc*N_sample,X);

dd(1,:)=(d+1)/2;

dd=reshape(dd,1,fc*N_sample*X)

gt=ones(1,fc*N_sample); %NRZ波形

figure(1)

subplot(411); %输入NRZ信号波形(单极性)

d_NRZ=conv(dd,gt);

plot(t,d_NRZ(1:length(t)));

axis([0 10 0 1.2]);ylabel('输入信号');

%OOK信号

ht=A*cos(2*pi*fc*t);

s_2ask=d_NRZ(1:Lt).*ht;

subplot(412);

plot(t,s_2ask);

axis([0 10 -1.2 1.2]);ylabel('OOK');

%2PSK信号

d_2psk=2*d_NRZ-1;

s_2psk=d_2psk(1:Lt).*ht;

subplot(413);

plot(t,s_2psk);

axis([0 10 -1.2 1.2]);ylabel('2PSK');

%2FSK信号

sd_2fsk=2*d_NRZ-1;

s_2fsk=A*cos(2*pi*fc*t+2*pi*sd_2fsk(1:length(t)).*t);

subplot(414);

plot(t,s_2fsk);

axis([0 10 -1.2 1.2]);ylabel('t');ylabel('2PSK');

图4.1 OOK、PSK、FSK信号的仿真实现图

4.2 线性调制信号的MATLAB仿真实现

Matlab语言比较简单,脚本程序的编写也比较简单,很多语言结构和风格与常用的C语言非常相似,因此,对于初学者而言,是很容易上手的。

本文以线性模拟调制中的线性调制AM、DSB、SSB调制为例,通过脚本程序的编写,实现系统仿真和性能分析。理论介绍参考第三章。

close all;

clear all;

dt=0.001;

fm=1;

fc=10;

t=0:dt:5;

mt=sqrt(2)*cos(2*pi*fm*t);

%AM信号

A=2;

s_am=(A+mt).*cos(2*pi*fc*t);

figure;

subplot(311);

plot(t,s_am);hold on;

plot(t,A+mt,'r');

title('AM');xlabel('t');

%DSB信号

s_dsb=mt.*cos(2*pi*fc*t);

subplot(312);

plot(t,s_dsb);hold on;

plot(t,mt,'r');

title('DSB');xlabel('t');

%SSB信号

s_ssb=real(hilbert(mt).*exp(j*2*pi*fc*t));

subplot(313);

plot(t,s_ssb);

title('SSB');xlabel('t');

图4.2 AM、DSB、SSB信号的仿真实现图

4.3 AM信号发生的Simulink仿真实现

第三章所建立的Simulink模型如图4.3进行分析如下:

图4.3 AM信号发生的Simulink仿真实现

图4.4 调制信号1

图4.5 调制信号2

图4.6 AM调制信号

图4.7 DSB单边带调制信号

图4.8 AM经过带通滤波器的输出波形

其中,仿真结果图4.6验证了调幅波是一个载波振幅按照调制信号的大小线性变化的高频振荡信号,而其载波频率保持不变的特点。图4.6和图4.8相比较可以看出,未经过带通滤波器滤波的乘法器输出时域波形比经过带通滤波器滤波的已调信号时域波形多很多带外噪声,这也验证了带通滤波器在AM调制中的作用。

在图4.3中,当切换左边开关就可以改变调制信号,实现AM调制与DSB或SSB调制不同调制方式的切换;当切换右边下面的开关就可以通过选择不同的滤波器,得到不同的SSB调制信号;而切换右边上面的开关就可以在示波器和频谱仪中显示相应的输出结果。当然,整个仿真模型中载波频率、滤波器传输特性等都可以按需要改变,相应节点的输出时域波形和频域波形都会随之改变。

图4.6,4.7分别与4.2节中直接用MATLAB语言进行仿真的结果相比较,可以发现,其调制结果是相同的。由此也可以证明用Simulink来进行仿真是很简洁的,可以不用过多的了解MATLAB语言,只要懂得对参数进行设计就可以了。

4.4 本章小结

综上分析,Simulink是一个对动态系统进行建模、仿真并对仿真结果进行分析的软件包。使用Simulink可以更加方便地对系统进行可视化建模,并进行基于时间流的系统级仿真,使得仿真系统建模与工程中的方框图统一起来。并且仿真结果可以近乎“实时”地通过可视化模块,如示波器模块、频谱仪模块以及数据输入输出模块等显示出来,使得系统的仿真工作十分方便。因此,目前这种方法在科研中被广泛使用。

结束语

计算机仿真已经成为解决工程实际问题的重要手段,Matlab软件是其中功能最为强大的仿真软件之一。目前利用Matlab进行系统性能仿真,主要有三种方法:其一是通过脚本程序的编写,实现相关系统仿真和性能分析;其二是利用Simulink模块库,通过鼠标拖拉的方式建立相关系统的仿真模型,对每个模块进行参数设置,以达到动态系统仿真和性能分析的目的;其三是利用图形用户界面GUI,创建各种菜单、按钮等可视化界面,通过函数回调等手段,实现人机交互的系统仿真及其性能分析。Matlab语言比较简单,脚本程序的编写也比较简单,很多语言结构和风格与常用的C语言非常相似,因此,对于初学者而言,是很容易上手的。

利用MATLAB丰富的数据处理函数和强大的图形可视化功能,用它来实现信号源,使设计者能快速实现多种方案,对于信号源的采集、分析和处理都带来了较大的方便。虽然这种方法实现的信号源受声卡采样频率、电脑噪音的影响较大,但还是能够基本满足电路实验室低频信号发生器的要求。

但是,采用这种方法实现的低频信号发生器有产生噪音,分析如下:

(1)主机电源的噪音;

(2)主机的高频幅射;

(3)环境噪音。降低噪音。

我们可以:

(1)选择信噪比比较高的主机电源将会对消除噪到重要作用;

(2)实验设备在利用信号源时应尽量与主机保持距离,以减少电磁辐射对设备的影响;

(3)对于环境噪音,当信号频率与50HZ相差很大时忽略环境噪音对设备的影响,但当信号频率接近50HZ应对实验设备采取良好的屏蔽措施;

虽然会有一些噪声,但总体而言,用MATLAB仿真得到的信号发生器总体效果还是很好的,简单可靠有效。这些特点使MATLAB仿真在实际应用中具有广泛的推广应用前景。

标签: r09n系列电位器74fct543集成电路

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台