《2022年通信课设 .pdf》由会员分享,可在线阅读,更多相关《2022年通信课设 .pdf(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一章Simulink 基础知识Simulink 是一个用于建模、仿真、分析动态系统的软件包。它支持线性和非线性系统,也可以是多速率系统,也就是该系统有着不同采样速率的部分组成。它也是一种基于模块的设计工具。 Simulink 的特点在于:Simulink 鼓励你去尝试任何事,你可以很容易地用草图来搭建模块,也可对现有的模型进行添加来搭建一个新模型,你可以看到仿真结果的图形,也可通过MATLAB 中的所有分析工具来分析结果。Simulink的目的是通过鼓励你提出一个问题,模拟它,然后看发生了什么这么一种过程让你觉得建模和仿真是一件有趣的事。Simulink也很实用,全世界成千上百的工程师正用它
2、来模拟和解决实际问题,对这个工具的了解将对你的整个职业生涯都很有帮助。 1.1 仿真运行相关问题当仿真正在运行时,你可以交互地完成以下操作:1.修改一些配置参数,包括仿真停止时间和最大仿真步长2.用浮动示波器或显示模块来观察连线上传输的信号3.修改模块参数,只要不改变以下参数状态变量,输入,输出的个数采样时间过零点数任何模块参数的向量长度外部模块工作向量的长度在仿真过程中,你不可以改变模型结构如:添加删除连线或模块,除非你停止目前的仿真。一定义仿真开始和结束时间Simulink 仿真在默认值0 秒开始, 在默认值 10 秒处结束。 Solver 配置允许你对当前的仿真定义其它的开始和结束时间。
3、注意:仿真时间和实际的时间不一样。运行一次仿真所花的实际时间取决于许多因素,包括模型的复杂度,求借器的步长和计算机速度。二选择求解器求解器是Simulink 的软件组成部分,它是用来确定下一个时间步长的,仿真过程需要在这段时间内满足你所定义的精度要求。Simulink 提供了一组丰富的求解器,每一个都适用于具体的应用。下面就解释一下如何选择最适合你的应用的求解器。Simulink 将求解器分成两种类型:固定步长和变步长。定步长求解器的步长大小在整个仿真过程中是保持不变的,而变步长求解器根据模型的动态变化逐步改变步长大小。特别的是,当模型的状态快速变化时变步长求解器会减小步长大小来保持精度,而当
4、系统状态缓慢变化时变步长求解器会增大步长大小。两种类型的求解器的选择取决于你是怎样配置你的模型以及模型的变化。如果你打算将模型产生的代码在实时计算机上运行,你应该选择定步长求解器,因为实时计算机系统是以定步长的信号采样速率运行的。如果你不打算让模型产生代码,那么变步长与定步长求解器的选择就取决于你的模型的动态变化。如果你的模型状态变化得很快或不连续,变步长求解器可以大大缩短仿真时间。这是因为变步长求解器比起定步长求解器只要较少的时间步长就可达到一定的精度级别。下面的模型说明了变步长求解器是如何缩短仿真时间的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
5、 - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 38 页 - - - - - - - - - 模型以两种不同的速率每隔0.5 秒和 0.75 秒产生输出,。为了捕获两个输出,定步长求解器必须每隔 0.25 秒取一个步长0.0 0.25 0.5 0.75 1.0 1.25 . 相比之下,变步长求解器仅仅当模型实际产生输出时才取一个步长0.0 0.5 0.75 1.0 1.5 2.0 2.25这样就大大的减少了时间步长的个数。求解器的详细选择请看Simulink/Using Simulink/Runing Simulations/Choosing a Solve
6、r 1.2 输出仿真数据Simulink 允许你输入来自于MATLAB 工作空间的输入信号和状态数据,同时也允许你在仿真过程中将输出信号和状态数据输出到MATLAB 的工作空间。 这就允许你使用标准的或自定义的 MATLAB 函数来产生仿真系统的输入信号和绘制,分析或后续处理仿真系统的输出。输入来自MATLAB工作空间的输入数据,输入数据采用的形式:数组、MA TLAB 时间表达式、结构体,详情请看Simulink/Using Simulink/Runing Simulations/Importing and Exporting Simulation Data 一定义输出选项Data Impo
7、rt/Export 配置面板上的Output options 让你控制仿真的输出。你可以在三个选项中挑选1.细化输出当仿真输出值太粗略时,它提供额外的输出点,这比减小步长大小使输出变平滑来得更快。细化因数(refine factor)默认值为1。细化因数适合变步长求解器,当使ode45 时最有用。 Ode45 求解器采取大步长,当绘制仿真输出时,你可能会发现这个求解器的输出不够平滑,这时你可以用一个大一些的细化因数重新仿真,值为4 时可以提供更为平滑的结果。不会改变仿真步长大小。2.产生额外的输出直接定义求解器产生的额外输出点,这会改变仿真步长大小3.产生指定的输出仿真在这些时刻产生输出0,
8、2.5, 5, 8.5, 10 选择细化输出并定义细化因数为2 时在这些时刻产生输出0, 1.25, 2.5, 3.75, 5, 6.75, 8.5, 9.25, 10 选择产生额外的输出并定义0:10时在这些时刻产生输出0,1,2,3,4,5,6,7,8,9,10 选择只产生指定的输出并定义0:10时在这些时刻产生输出0,1,2,3,4,5,6,7,8,9,10 详情请看Simulink/Using Simulink/Runing Simulations/Importing and Exporting Simulation Data 1.3 配置参数配置参数包括以下内容:求解器面板、数据输入
9、输出面板、优化面板、诊断面板、硬件实现面板、模型参数化面板1.求解器面板( Solver)允许你定义仿真起始与终止时间,为一个特定的仿真选择和配置仿名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 38 页 - - - - - - - - - 真器,它包括以下选项:仿真时间,求解器选项求解器选项定义了可以使用的求解器的类型以及该求解器的一些仿真指标。求解器的默认类型是变步长的ode45,如果系统没有特殊要求,默认类型求解器是最适合的。2.数据输入输出面板允许你输入输出数据到
10、MATLAB 工作空间,它包括Load from workspace 定义来自 MATLAB工作空间的数据Save to workspace 定义输出到MATLAB工作空间的数据Save options 定义数据保存和导入的格式3.优化面板允许你选择各种选项来改善仿真性能和模型产生的代码性能从而提高执行速度,它包括模块化简优化用一个综合的模块来取代一组模块从而加速了模型执行速度条件输入分支执行这种优化适合于包含开关(switch )和多口 (multiport) 开关的模块内嵌参数使得在默认的情况下不能改变所有模块的参数信号存储再利用使 Simulink 重复使用分配给输入输出信号的存储缓冲区
11、4.诊断面板在模型编译或仿真过程中出现不正常的情况时,该面板让你定义Simulink 应该采取什么诊断,并显示警告或错误信息,警告信息不会停止仿真,但错误信息可以。5.硬件实现面板该面板适合基于计算机系统的模型,如嵌入式控制器。它允许你定义该模名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 38 页 - - - - - - - - - 型所代表的系统的硬件特征。这样在仿真时可检测到目标硬件上可能出现的错误,如硬件溢出。6.模型参考面板允许你将其它模型包含到该模型里以及将该
12、模型包含到其它模型中详情见 Simulink/Using Simulink/Runing Simulations/The Configuration Parameters Dialog Box 1.4 输出仿真数据诊断仿真错误如果仿真过程中出现错误,Simulink就会停止仿真,打开出错的子系统并在仿真诊断浏览器(Simulation Diagnostics Viewer )中显示错误。仿真诊断浏览器包含一个错误摘要面板和一个错误信息面板1.错误摘要面板对于每个错误显示以下信息Message 信息类型Source 出现错误的模块名字Reported by 报告错误的组件(如,Simulink,
13、Stateflow,Real-Time )Summary 简化的错误信息2.错误信息面板一开始显示列在错误摘要面板中的第一条错误信息的内容Simulink 在显示浏览器的同时还打开了包含第一个错误的子系统并高亮显示错误模块。 1.5 输出仿真数据分析仿真结果看输出轨迹,输出轨迹可用三种方法绘制1.将信号送入Scope 和 XY Graph 模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 38 页 - - - - - - - - - 2.将输出写入返回变量中,用MATL
14、AB 绘图命令3.用 To Workspace 模块将输出写入工作空间,再用MATLAB绘图命令画出结果。用 Scope 模块分析仿真结果用返回变量分析仿真结果用 To Workspace 模块分析仿真结果第二章 Communication Blockset应用Communication Blockset 是 Simulink 扩展的一个丰富的模块库,用于设计和仿真通信系统的物理层及其组成部分。该模块的关键特征是用于设计和仿真通信系统物理层,包括调制,信源编码,信道编码,信道,均衡可以调整模型并对结果可视化与通信工具箱的结合便于仿真后分析安装 Communication Blockset 时要
15、求的相关产品MATLAB Simulink Signal Processing Toolbox Communication Toolbox Signal Processing Blockset 2.1Communication Blockset 的模块库的功能介绍一 Comm Sources 库内容1.Random Data Sources 子库产生随机数据来模拟信号源,它可以产生随机比特(Bernoulli Binary Generator和 Binary Error Pattern Generator )和随机整数 (Random Integer Generator 和 Poisson I
16、nteger Generator)2.Noise Generators 子库产生不同分布的随机噪声来模拟信道噪声(高斯、瑞利、莱斯、均匀分布)3.Sequence Generators产生序列,用于通信系统中的扩频或同步。包括伪随机序列、同步码、正交码。二 Channels(信道 )库内容1.AWGN channel, 加性高斯白噪声信道。2.Binary Symmetric Channel ,二进制对称信道,通过模 2 和给二进制信号加噪声。3.Multipath Rayleigh Fading Channel和 Rician Fading Channel 模拟移动通信在现实世界中的现象,如
17、多径散射效应、多普勒频移等。Multipath Rayleigh Fading Channel适合于在接收机与发射机之间有一条或多条主反射路径的情况,Rician Fading Channel 适合于在接收机与发射机之间是直接视距路径的情况。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 38 页 - - - - - - - - - 三 Comm Filers (通信滤波器)库内容这个库所包括的模块可以用于滤波或脉冲成型(发送滤波器或接收滤波器)。这些操作在控制带宽、码间
18、干扰和信噪比方面是必需的。该库中提供的滤波功能:用升余弦滚降滤波器滤波。升余弦滚降滤波器被用于脉冲成型和匹配滤波是非常普遍的,下图解释了升余弦滚降滤波器两种典型的使用。用高斯滤波器滤波用理想矩形脉冲将信号成型实现 integrate-and-dump 操作或加窗求积分。当系统发射机用一个理想矩形脉冲模型时,integrate-and-dump 操作经常在接收机模型中使用。integrate-and-dump 也可用在光纤、 扩频通信系统中如CDMA 。四 Comm Sinks(信宿)库内容该库提供了信宿和显示设备便于对通信系统性能进行分析,完成以下功能计算错误统计数据(Error Rate C
19、alculation 模块 ) 画眼图(Discrete-Time Eye Diagram Scope 模块)生成散点图(Discrete-Time Scatter Plot Scope 模块)画信号的轨迹图(Discrete-Time Signal Trajectory Scope 模块)五 Equalizers(均衡器)库内容时间弥散信道能引起码间干扰(符号间干扰ISI) 。比如,在多径散射环境中,接收机就会看到一个延时的发送符号,这会干扰另一个符号的传输。均衡器试图减小ISI 这样就可以提高接收机的性能。该库中模块包含三类结构完全不同的均衡器:线性均衡器判决反馈均衡器MLSE (最大似然
20、估计)均衡器,用于维特比算法。六 Error Detection and Correction (检纠错)库内容当消息在数字通信系统中传输发生错误时,差错控制技术可以检测到错误并且有可能纠正它。为了实现这个功能,编码器不但发送信息符号而且还发送额外的冗余符号。解码器解释收到的内容,同时用冗余符号来检测或纠正传输中出现的任何错误。如果传输信道噪声很多或数据对噪声非常敏感,那你就可以用差错控制编码技术。根据数据或噪声的性质,你可以选择特定类型的差错控制编码。该库包含三类差错控制编码:分组编码( block coding ) ,包括循环码、BCH 码、汉明码、 Reed-Solomon 码。卷积编码
21、( convolutional coding )循环冗余检测编码(cyclic redundancy check ) ( CRC)七 Interleaving (交织)库内容交织器按照一个映射来改变符号的排列顺序。对应的解交织器用反映射来恢复符号原来的顺序。交织和反交织在减少通信系统中的突发性错误这方面是很有用的。该库中的模块提供两名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 38 页 - - - - - - - - - 大类交织器:分组交织、卷积交织八 Modulat
22、ion (调制)库内容该库包含两个子库Analog Passband Modulation , 提供模拟调制技术。Digital Baseband Modulation ,提供数字调制技术。九 RF Impairments (射频损害)库内容模拟在接收机中射频(RF)对基带信号带来的损害非线性和同相分量/正交分量不平衡相位 /频率偏移和相位噪声接收机的热噪声和自由空间路径损耗十 Sequence Operations(序列变换)库内容对序列进行补零(insert zero) 、打孔( puncture) 、加扰( scrambler) 、解扰( descrambler) 、等操作。十一 Sou
23、rce Coding(信源编码)库内容信源编码,也被称作量化或信号格式化,它是一种处理数据的方法,目的是为了减少冗余或为后续的处理做准备。模数变换和数据压缩是两类信源编码。该库中的模块提供标量量化、压缩扩张器以及差分编码,不提供矢量量化。库中的模块可以用划分和码簿来量化信号用 -law 或 A-law 压缩器或扩张器来压扩信号用差分编码对信号编码或解码十二 Synchronization (同步)库内容为了正确的翻译信息,通信系统的接收机必须与对应的发射机同步,这在模拟与和数字域都可以被实现。数字接收机必须在符号周期内的适当时刻对信号进行抽样,并且必须估计载波相位。模拟器件如压控振荡器(VCO
24、)和锁相环(PLL )就能使接收机根据输入的信号参数来调节它自身的工作方式。该库中的模块实现了几种用于定时恢复与载波恢复的算法,还包含了一些底层的器件,你可以用它们来构建自己的锁相环。十三 .Utility Blocks (功能模块)库内容Align Signals 模块,通过求两个信号间的延时将两个信号的符号时钟对齐Bipolar to Unipolar Converter模块,实现将双极性信号映射成在0,M-1 的单极性信号Bit to Integer Converter 模块,实现将彼特向量影射为整数向量Complex Phase Difference 模块,输出两个复信号的相位差Com
25、plex Phase Shift 模块,通过第二个输入值对第一个复输入信号进行相移Data Mapper 模块,实现将一整数从一种编码方案映射到另一种编码方案Find Delay 模块,求两信号之间的延时Integer to Bit Converter 将整数向量映射为比特向量Unipolar to Bipolar Converter将在 0,M-1 的单极性信号映射成双极性信号 2.2 通信系统建模这部分首先演示如何运行一个现有的Simulink 模型和如何搭建一个简单的模型,然后解释如何用 Communication Blockset 搭建典型的通信系统模型,这些模型演示了如何用模块集以及
26、揭示了模块集的一些重要特征。 2.2.1 运行一个Simulink 模型这部分描述了一个包含Communication Blockset 的通信系统的演示模型。模型显示了具有加名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 38 页 - - - - - - - - - 性噪声的散点图(scatter plot) 。目的是为了让你熟悉Simulink 模型的基础以及它们是如何运行的。在 MA TLAB 命令窗口输入commphasenoise,打开一个模型,如图该模型显示了
27、模拟相位噪声对正交幅度调制(QAM )的影响,它用图形来表示一个通信系统的数学模型。 该通信系统先产生随机信号,然后用 QAM 对它进行调制, 最后添加上噪声来模拟信道。这个模型还包含了一些便于显示符号错误率和已调信号散点图的组件。模型中的模块和连线描述了信号之间的数学关系:Random Integer Generator 模块(标有 Random Integer”) ,产生的随机整数 (在 0255之间)序列信号Rectangular QAM Modulator Baseband模块用基带256 进制的 QAM 调制信号AWGN Channel 模块通过给已调信号加上高斯白噪声来模拟有噪声的
28、信道Phase Noise 模块将噪声引入复输入信号的角度中Rectangular QAM Demodulator Baseband模块解调已调信号此外,以下的模块有助于你理解仿真Discrete-Time Scatter Plot Scope 模块(标有“ AWGN plus Phase Noise ” ) ,显示叠加了噪声的信号的散点图Error Rate Calculation 模块计算收发信号间不同的符号个数Display 模块显示错误符号比率(SER) ,错误符号总数和仿真过程中处理的总符号数所有的这些模块都包含在Communication Blockset 和 Simulink 中
29、。你可以通过右击模块从它的相关菜单中选help 来了解更为详细的内容。一正交幅度调制简介这个模型模拟正交幅度调制(QAM ) ,QAM 是将数字信号变换成复信号。该模型把信号调制到一串复数上,这些复数位于复平面的一个点阵上,我们称它为信号的星座。基带256 进制QAM 的星座如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 38 页 - - - - - - - - - 二运行仿真从模型窗口的菜单栏选Simulation-Start 运行仿真,选Simulatilon
30、-Stop停止仿真。当你运行仿真时,一个新的窗口出现,它显示了叠加了噪声的已调信号的散点图,如下图:从图上可以看出,散点图上的点并不完全位于256 进制 QAM 的星座上 ,这是因为加性噪声。而这些点呈现放射状的图案是由于相位噪声,它改变了复已调信号的角度。三显示错误率Display 模块(标有“ Error Rate Display ” )显示信道噪声引起的错误。当你运行仿真时,这个模块里就会出现三个显示框,如下图,他们显示了Error Rate Calculation 模块的向量输出。显示的三项分别为: 第一项是误符号率(SER)第二项是错误符号总数第三项是发送的符号总数四设置模块参数你可
31、以通过设置模块的参数来改变它的功能。双击要修改参数的模块,打开了一个对话框,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 38 页 - - - - - - - - - 有时也称该对话框为模块的mask。以下是 Phase Noise 模块的参数对话框:要改变相位噪声的值,在Phase noise level (dBc/Hz)域输入新值,然后点OK 。试输入两个新值,一个比当前值大,一个比当前值小,看散点图有何变化。你也可以改变AWGN Channel 模块中噪声的值。双
32、击该模块,打开它的参数对话框,修改Es/No(dB)参数值来改变信噪比,减小这个值就是相当于增加了噪声电平。你可以通过改变这些或其他参数,然后再运行仿真来对该模型做实验。比如修改 Phase Noise 模块的参数Phase noise level (dBc/Hz)为 105 修改 AWGN Channel 模块的参数Es/No 为 100 这样几乎去掉了模型中的所有噪声。当你再运行仿真时,散点图就变成了256 进制 QAM 的星座图五显示相位噪声曲线双击标有“ Display Figure ”的模块就可显示多个仿真的结果图中每条曲线都是误比特率曲线,对于固定的相位噪声值它们是信噪比的函数。得
33、到该图请参看Runing Multiple Simulations这部分。六看更多的演示(Demos)在命令窗口通过键入demo 或在帮助浏览器中选择Demos。操作方式如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 38 页 - - - - - - - - - 2.2.2 搭建一个简单模型前一节,我们运行了一个现有的模型。这一节我们建一个简单的Simulink 模型:用示波器显示一个正弦波。建模基本步骤用 commstartup 设置仿真参数打开一个新的模型窗
34、口打开模块库将模块移入模型窗口连接模块设置模块参数设置仿真参数运行模型下面我们按以上步骤来建模显示正弦波一用 commstartup 设置仿真参数建模之前先在MATLAB命令窗口输入命令commstartup这是为了将 Simulink 参数 Boolean logic signals设置为 off 将仿真参数设置为默认值,默认值对通信模型是最佳的Communication Blockset 不支持布尔型的信号。如果你想将输出是布尔值的Simulink 模块,如 Logical Operator 模块,和 Communication Blockset 中的模块在一个模型中一起使用,那么在建模前
35、就要输入commstartup。二打开一个新的模型窗口从菜单栏选File New Model ,打开一个空的模型窗口,如下图: 三打开模块库点击 MATLAB工具栏上图标打开 Simulink 库浏览器,如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 38 页 - - - - - - - - - 库浏览器左边的面板显示了已安装的产品,每个产品都有自己的库。点击+打开库,同时右边面板显示库中的内容。库浏览器可以完成寻找模块你可以在最上面的框中输入要寻找的模块,然后
36、点击望远镜说明模块的功能当你在右边面板中选中模块时,中间的框会显示模块的说明打开新的模型窗口打开已保存的模型你可以在 Communication Blockset, Signal Processing Blockset 和 Simulink 库中找到通信系统模型所需要的模块。四将模块移入模型窗口接下来将Simulink 库浏览器中的模块移到模型窗口内。1.打开 Signal Processing Blockset子库2.点击 DSP Sources,从右边面板寻找Sine Wave 模块3.点击 Sine Wave 模块将它拖入模型窗口4.在浏览器左边面板点击DSP Sinks,在右边面板找到
37、Vector Scope 模块,把它拖入模型窗口。如下图:五连接模块Sine Wave 模块向外指的小箭头是输出口,Vector Scope 模块向内指的小箭头是输入口,点击Sine Wave 输出口并朝向Vector Scope 输入口托拽鼠标就可将两模块连接起来。如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 38 页 - - - - - - - - - 当模块 Sine Wave 输入口出现了指针,就可松开鼠标。 此时你应该看到一个实心键头,如果没出现实心
38、箭头就意味着两个模块没有连接上。如下图:下表总结了鼠标和键盘的使用,包括对模块、 线、信号标签的处理。LMB 意味着按鼠标左键;CMB 代表鼠标中键;RMB 代表鼠标右键对模块的操作:对连线的操作:对信号标签的处理:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 38 页 - - - - - - - - - 标注的操作:六设置模块参数设置 Sine Wave 模块参数,双击模块删除默认值输入新的设置1.设置 Amplitude为 5 2.设置 Frequency 为 3
39、03.设置 Samples per frame 为 1004.点击 OK 注: 为了在 Scope模块中看到正弦波的图像你必须将Samples per frame 值设置为大于1 的值,如图:七设置仿真参数除了每一个模块有仿真参数以外,模型还有总的仿真参数。要想看当前的总仿真参数设置1.在模型窗口选中Simulation 菜单2.选 Configuration parameters ,打开 Configuration Parameters Dialog Box名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
40、- - - - - 第 14 页,共 38 页 - - - - - - - - - 如果在建模之前你输入了命令commstartup,那么 Stop time 就被设置为inf,这就使仿真一直运行下去直到你选Stop才停止。Configuration parameters 对话框中的参数设置只影响当前的模型参数。八.运行模型在 Simulation 菜单中选 Start,一个示波器窗口就会出现,显示了一个正弦波,如下图九添加噪声到模型中你可以给模型添加一个AWGN Channel 模块(在 Communications Blockset 库 Channels 子库中) ,这个模块给正弦波添加上
41、了高斯白噪声,你可以按照以下步骤添加该模块:1.通过拖动 Vector Scope 模块来延长Sine Wave 模块和 Vector Scope模块之间的连线,这样给模块AWGN Channel 留出空间。2.点击 AWGN 模块,将它拖动到Sine Wave 模块和 Vector Scope 模块之间连线上。如图:双击模块 AWGN Channel 打开参数对话框,如下图, 点击 Mode 域的向下箭头,选中 Signal to noise ration(SNR)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
42、- - - - - - - 第 15 页,共 38 页 - - - - - - - - - 现在当你运行模型时,示波器清楚地显示了叠加的噪声。十保存模型保存模型待将来使用,从File 菜单中选中Save。当你第一次保存模型时,它会显示Save As对话框。在Save in 选择你要保存的模型的目录。在File name 处输入模型名如,sine.mdl,点击 Save。为了在将来的MATLAB的进程中载入该模型,首先要将你的工作目录设置成保存模型的那个目录。为此,你可以通过在MA TLAB 工具栏上的Current Directory 中选择保存模型的目录来实现。然后在命令窗口输sine,就可
43、运行这个模型了。十一 .帧和基于帧的处理帧 (frame) 是包含在一个信号向量中的一串采样值。通过在模块Sine Wave 中设置 Samples per frame 为 100, 你就将帧的大小设置成了100, 也就是每一帧都包含100个采样值。这就使 Vector Scope模块足以很好地显示正弦波的图形。设置帧大小的另一个重要原因是,许多Communications Blockset 当中的模块要求输入是有着具体大小的向量 (vector) 。 如果把一个信源模块连到这些模块上,那么你就要通过设置Samples per frame 来正确地设置输入。基于帧的处理(frame-based
44、 processing)是将帧中的所有采样值同时处理,而基于样值的处理(sample-based processing)是每次只处理一个采样值,基于帧处理的优点是它能大大地提高仿真速度。如果你看见模块之间是双线连接,那么模型使用的是基于帧的处理。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 38 页 - - - - - - - - - 2.3 基础通信系统建模 2.3.1模拟调制系统建模在用模块仿真模拟调制时,定时问题是很重要的。这部分说明了信号采样时间和仿真步长大小
45、如何设置。一信号采样时间Communication blockset 中的所有模拟解调器产生离散时间的而不是连续时间的输出。这些模块要求你在参数对话框中定义输出采样时间。除此之外,一些模拟调制器也要求你定义采样时间。这类调制器是FM Modulator Passband and SSB AM Modulator Passband模块。例子在下图中, 两个 Probe 模块在它们的图标中显示采样时间是1 秒, (1 0 表明采样时间是1 秒,采样时样偏移是0 秒。 )设置 FM Modulator Passband 模块的参数Sample time 为 1 是合适的,因为这个块的输入的采样时间也
46、是1 秒。建模步骤如下1.Sine Wave 模块(来自Simulink Sources 库) ,设置 Sample time 为 1 2.FM Modulator Passband 模块,设置Sample time 为 1 3.两个 Probe 模块,除 Probe sample time.之外清空所有复选框4.两个 Terminator 模块。连接模块如上图, 然后选择模型窗口的Edit 菜单的 Update diagram,这就可以更新Probe 显示的内容。二仿真步长大小如果你使用连续时间信号,那你就要根据载频来设置仿真步长大小。由奈奎斯特理论,仿真时采样速率必须至少是载波频率与调制信
47、号带宽之和的二倍。下面的例子说明了仿真步长大小为什么要适应给定的载频。第一个示波器显示了对一个常数信号进行抑制载波双边带(DSBSC)调制的正确结果,而第二个示波器则显示了错误结果。错误的结果出现是由于仿真步长相对于载频太大了。在这个例子中, DSBSC AM Modulator Passband 模块参数Carrier frequency 为 100。 也就是说,载波频率是0.01 秒,合适的仿真步长的大小不应该大于0.005 秒。因此0.01 秒的仿真步长太大了以至于不能满足奈奎斯特准则。而 0.001 秒的仿真步长就足够小的了。模型及结果见下图。选择 Simulation 菜单中的Con
48、figuration parameters ,将 Stop time 设置为1 秒。显示正确结果的 Configuration Parameters中的 Max step size 参数 (和 Initial step size,要是有的话 ) 设置为0 .001 秒。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 38 页 - - - - - - - - - 解调器中滤波器截至频率的选取是模拟解调中的重要问题,在许多情况下,合适的滤波器截至频率一般选为载波频率的一半。
49、既然载波频率必须比消息信号的带宽还要高,那么以这种方式选择的截至频率就限制了消息信号的带宽。如果截至频率太高,载频就可能不被滤除;如果截至频率太低,它有可能会减小消息信号的带宽,损失消息信号频谱分量。三滤波器截至频率下面的例子是调制一个锯齿消息信号,解调时用巴特沃斯滤波器作为低通滤波器,并画出了原始信号和恢复后的信号。巴特沃斯滤波器是在SSB AM Demodulator Passband模块中实现的。在搭建模型前,先执行命令num,den = butter(2,25*.01) 这里, 2 是巴特沃斯滤波器的阶数,25 是载频, 0.01 是信号的采样时间。变量num 和 den分别代表了滤波
50、器传输函数的分子和分母。这些变量位于MATLAB 的工作空间, Simulink 在仿真过程中可以访问它们。建模步骤如下:1.Signal Generator 模块,设置参数Wave form 为 Sawtooth,参数 Amplitude 为 4,参数Frequency 为 3。2.Zero-Order Hold 模块,设置Sample time 为 0.01 3.SSB AM Modulator Passband 模块 , 设置 Carrier frequency 为 25, Time delay for Hilberttransform filter 为 0.1,Sample time