长沙理工大学《通信原理》课程设计报告数据传输系统误码率测试器的MATLAB实现及性能分析123学 院 计算机与通信工程 专 业 通信工程 班 级 学 号学生姓名 指导教师 课程成绩完成日期 201课程设计成绩评定学院计算机与通信工程专业通信工程班级学号学生姓名指导教师课程成绩完成日期指导教师对学生在课程设计中的评价指导教师对课程设计的评定意见课程设计任务书计算机与通信工程学院通信工程专业数据传输误码率的MATLAB实现性能分析学生姓名:席广然指导老师:曹敦摘要本课程设计主要运用MATLAB集成环境下的Simulink仿真平台设计进行数据传输系统误码率测试器的仿真。
在本次课程设计中先根据9级m序列发生器的结构,从Simulink 工具箱中找所需元件,送入含噪信道,改变信道误码率大小,测试发送信号与接收信号的误码率大小,其中可以通过不断的修改优化得到需要信号,最后通过对输出波形的分析得出仿真是否成功。
关键词Simulink;数据系统;m序列;误码率1引言本次课程设计主要运用MATLAB软件,在Simulink平台下建立仿真模型。
实现数据传输系统的的误码率计算的过程,通过比较发送信号与接收信号之间产生的误码率大小,分析比较,改变参数设置,观察波形变化及误码率大小的变化,并对其进行分析总结。
1.1课程设计的目的通信原理是通信工程专业的一门骨干的专业课,是通信工程专业后续专业课的基础。
掌握通信原理课程的知识可使学生打下一个坚实的专业基础,可提高处理通信系统问题能力和素质。
由于通信工程专业理论深、实践性强,做好课程设计,对学生掌握本专业的知识、提高其基本能力是非常重要的。
本次的课程设计研究的是数据传输的误码率,通过改变噪声方差的大小,测试发送信号与接收信号的误码率大小,用来理解实际生活的数据传输之间误码率大小的决定条件,从而在实际中尽量减少误码率的大小。
1.2课程设计的基本任务和要求本次课程设计的基本任务:(1)使学生通过专业课程设计掌握通信中常用的信号处理方法,能够分析简单通信系统的性能。
(2)使学生掌握通信电路的设计方法,能够进行设计简单的通信电路系统。
(3)了解通信工程专业的发展现状及发展方向。
(4)与运用学过的MATLAB基本知识,熟悉MATLAB集成环境下的Simulink仿真平台的使用课程设计中必须遵循下列要求:(1)9级m序列发生器,送入含噪信道,改变信道误码率大小,测试接收信号与发送信号之间的误码率,分析该种系统的抗噪声性能(2)要求编写课程设计论文,正确阐述和分析设计和实验结果。
1.3设计平台Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。
同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。
Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。
为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI) ,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。
Simulik是MATLAB软件的扩展,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。
所谓模型化图形输入是指Simulik提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型,进而进行仿真与分析。
2设计原理2.1 Simulink工作环境(1)模型库在MATLAB命令窗口输入“simulink”并回车,就可进入Simulink模型库单击工具栏上的按钮也可进入Simulik模块库按功能进行分为以下8类子库:Continuous(连续模块)Discrete(离散模块)Function&Tables(函数和平台模块)Math(数学模块)Nonlinear(非线性模块)Signals&Systems(信号和系统模块)Sinks(接收器模块)Sources(输入源模块)用户可以根据需要混合使用歌库中的模块来组合系统,也可以封装自己的模块,自定义模块库、从而实现全图形化仿真。
S imulink模型库中的仿真模块组织成三级树结构Simulink子模型库中包含了Continous、Discontinus等下一级模型库Continous模型库中又包含了若干模块,可直接加入仿真模型。
图2.1-1 Simulink工具箱(2)设计仿真模型在MATLAB子窗口或Simulink模型库的菜单栏依次选择“File” | “New” | “Model”,即可生成空白仿真模型窗口图2.1-2 新建仿真模型窗口(3)运行仿真两种方式分别是菜单方式和命令行方式,菜单方式:在菜单栏中依次选择"Simulation"| "Start" 或在工具栏上单击。
命令行方式:输入“sim”启动仿真进程比较这两种不同的运行方式:菜单方式的优点在于交互性,通过设置示波器或显示模块即可在仿真过程中观察输出信号。
命令行方式启动模型后,不能观察仿真进程,但仍可通过显示模块观察输出,适用于批处理方式。
2.2m序列产生器(1)m 序列产生器的结构m序列是最长线性反馈移位寄存器序列的简称,m序列是带线性反馈的移位寄存器产生的。
由n级串联的移位寄存器和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑电路只由模2和构成,则称为线性反馈移位寄存器。
带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化,其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。
n级线性移位寄存器如图所示:图2.2 n级线性移位寄存器(2)m序列产生器的性质○1均衡性:在m序列中一个周期内“1”的数目比“0”的数目多1,这表明,序列平均值很小。
○2m序列和其移位后的序列逐位模2相加,所得的序列还是m序列,只是相移不同而已。
○3m序列发生器中移位寄存器的各种状态,除全0状态外,其他状态只在m序列中出现1次。
○4m序列发生器中,并不是任何抽头组合都能产生m序列。
○5m序列具有良好的自相关特性,其自相关系数:当j等于0时,p(j)=1;当j 不等于0时,p(j)=1/N,从m序列的自相关系数可以看出m序列是一个狭义伪随机码。
2.3误码率测量在数字通信中误码率是一项主要的质量指标。
在实际测量数字通信系统的误码率时,一般来说,测量结果与信源送出信号的统计特性有关。
通常认为二进制信号中“0”和“1”是以等概率随机出现的。
所以测量误码率时最理想的信源是随机序列发生器,在实际通信中一般都是单程传输信息的,在测量单程数字通信的误码率时,就不能用随机序列,而是用性能相近的伪随机序列代替它,如下图所示:图2.3 单程测试法3 设计步骤3.1 噪声信号加入噪声信号模块为:3.1-1 噪声信号模块其参数设置为:3.1-2 噪声信号参数设置示波器产生的图形为:3.1-2噪声信号波形图改变参数设置Variance为0.01,其噪声波形变为3.1-4 改变噪声信号参数后波形图(1)改变参数设置Variance为1,其噪声波形变为3.1-5 改变噪声信号参数后波形图(2)3.2 m 序列产生器m序列产生器模块图形:3.2-1 m序列产生器模型图其参数设置为:Unit Delay4 和Unit Delay8设置相同:3.2-2 参数设置(1)其余Unit Delay单元设置相同,为:3.2-3 参数设置(2)示波器产生的图形为:3.2-4 m序列产生器波形图3.3抽样判决器3.3-1 抽样判决器其参数设置为:3.3-2 抽样判决器参数设置3.4 误码率计算比较实现误码计算比较所需要的模块有:3.4-1 误码率计算所需要的模块参数设置为:3.4-2 各模块参数设置将之前的模块连线之后,检查线路连接,整个模块框图为:3.6-3 误码率测试器整体框图运行该模块,Display 显示为:3.6-4第一次运行Display显示说明:Display1显示的是误码率的大小;示波器显示为:3.6-5示波器显示说明:第一幅图表示的是经过抽样判决之后的信号波形图;第二幅图表示的是伪随机序列的波形图;第三幅图表示的是伪随机序列加入噪声信道的波形;改变噪声参数设置,设置Variance为0.2,再次运行,结果为:3.6-6改变噪声设置后运行结果Display显示说明:Display1显示的是误码率的大小,为0.1881;示波器显示为:3.6-7 改变噪声参数设置后运行结果示波器显示说明:第一幅图表示的是经过抽样判决之后的信号波形图;第二幅图表示的是伪随机序列的波形图;第三幅图表示的是伪随机序列加入噪声信道的波形;3.7 误码率曲线生成(1)在MATLAB界面下新建窗口:图3.7-1 新建Editor窗口输入以下程序:for i=1:100power=0.001*i;sim(' untitledkeyi.mdl');error(i)=ErrorVec(1);endk=[1:100].*0.001;plot(k,error);xlabel('噪声功率'),ylabel('误码率');title('误码率变化曲线图');grid;此时相应的在整体框图中作以下改变:○1输入噪声信号模块,Variance设置为power3.7-2 噪声信号模块参数改变设置○2误码率计算Error Rata Calulation1中Output Data 设置为Workspace:3.7-3 Error Rata Calulation1模块参数改变设置(2)运行文件,生成的图:3.7-4 MATLAB运行程序后显示的误码率曲线示意图说明:当噪声功率小于等于0.01时,发送信号与接收信号之间的误码率大小为0;当噪声功率大于0.01时,发送信号与接收信号之间的误码率大小随着噪声功率的增大而增大,呈阶梯形改变。