通信原理课程设计孙琦最终定稿_第1页
通信原理课程设计孙琦最终定稿_第2页
通信原理课程设计孙琦最终定稿_第3页
通信原理课程设计孙琦最终定稿_第4页
通信原理课程设计孙琦最终定稿_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、长沙理工大学前3页无页眉页眉中的下划线也要去掉通信原理课程设计报告修改为通信原理Good 孙琦学 院 计算机与通信工程 专 业 通信工程 班 级 通信13-03 学 号 201354080320 完成对齐下划线也要对齐 学生姓名 孙琦 指导教师 胡双红 课程成绩 完成日期 2016年1月1日完成日期统一为2016年1月1日课程设计成绩评定学 院 计算机与通信工程 专 业 通信终于对齐了。工程 班 级 通信1303班 学 号 201354080320 学生姓名 孙琦 指导教师 胡双红 课程成绩 完成日期 2016.1.1 完成对齐尚未对齐指导教师对学生在课程设计中的评价评分项目优良中及格不及格课

2、程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师对课程设计的评定意见综合成绩 指导教师签字 2016年 1 月5日课程设计任务书计算机与通信工程学院 通信工程 专业 课程名称通信原理课程设计时间20152016学年第一学期1718周学生姓名孙琦指导老师胡双红题 目基于Simulink的汉明码编码技术仿真与性能分析主要内容: 本课程设计的目的主要是仿真通信系统中基带传输信道纠错编码技术中的汉明码编码技术。产生一段随机的二进制非归零码的基带信号,对其进行汉明码编码后再送入二进制对称信道传输,在接收端对其进行汉明解码以恢复原

3、信号,观察还原是否成功,改变二进制对称信道的差错率,计算传输前后的误码率,绘制信道差错率-误码率曲线,并与理论曲线比较进行说明。要求:(1)本设计开发平台为MATLAB中的Simulink。(2)模型设计应该符合工程实际,模块参数设置必须与原理相符合。(3)处理结果和分析结论应该一致,而且应符合理论。(4)独立完成课程设计并按要求编写课程设计报告书。应当提交的文件:(1)课程设计学年论文。(2)课程设计附件(主要是模型文件和源程序)。基于MATLAB/simulink的汉明码编码技术仿页眉改变成了前三页没有页眉Good真与性能分析学生姓名:孙琦 指导老师:胡双红摘 要 本课程设计主要是仿真通信

4、系统中基带传输信道纠错编码技术中的汉明码编码技术。利用MATLAB中SIMULINK通信系统仿真模型库进行汉明码的仿真,并调用通信系统功能函数进行编程,绘制时域波形,频谱及误码率。产生一段随机的二进制非归零码的基带信号,对其进行汉明码编码后再送入二进制对称信道传输,在接收端对其进行汉明解码以恢复原信号,观察还原是否成功,改变二进制对称信道的差错率,计算传输前后的误码率,绘制信道差错率-误码率曲线,并与理论曲线比较进行说明。在此基础上,对汉明码的性能进行分析,得出本次课程设计的成果。整理成四句话:第一句总结课程设计做的工作,第二句写设计平台和设计方法。第三句写设计过程,字数比其他句多。第四句写你

5、的设计有什么成果。已按照要求进行更改关键词 通信原理;汉明码 ;SIMULINK 格式按照标准格式修改且使用自己的语言转述第一段去掉,第二段按下面的批注写1引 言MATLAB:MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,其中,MATLAB通信工具箱是一套用于在通信领域进行理论研究、系统开发、分析设计和仿真的专业化工具软件包。主要包括MATLAB和Simulink两大部分。MATLAB通信系统功能函数库由七十多个函数组成,每个函数有多种选择参数、

6、函数功能覆盖了现代通信系统的各个方面。这些函数包括:信号源产生函数、信源编码解码函数、纠错控制编码解码函数、调制解调函数(基带和通带)、滤波器函数、传输信道模型函数(基带和通带)、TDMA、FDMA、CDMA函数、同步函数、工具函数等。以纠错控制编解码函数为例:函数库提供了线性分组码、汉明码、循环码、BCH码、里德一索洛蒙码(REEDSOLOMON)、卷积码等6种纠错控制编码,每种编码又有编码、解码、矢量输入输出、序列输入输出等四种形式的函数表达。 Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用

7、于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。汉明码是由Hamming首先构造的,它是一种能够自动检测并纠正一重错的线性纠错码,即SEC(Single Error Correcting)码。汉明码利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误

8、位置。它不仅性能好,而且编译码电路非常简单,易于实现。从20世纪50年代出现以来,在提高系统可靠性方面获得了广泛的应用。2 设计原理改为:设计原理2.1汉明码编码原理汉明码的编码原理由之前的繁杂公式改变为用自己的话转述的通俗易懂段落。Good奇偶校验是一种添加一个奇偶位用来指示之前的数据中包含有奇数还是偶数个1的检验方式。如果在传输的过程中,有奇数个位发生了改变,那么这个错误将被检测出来(注意奇偶位本身也可能改变)。一般来说,如果数据中包含有奇数个1的话,则将奇偶位设定为1;反之,如果数据中有偶数个1的话,则将奇偶位设定为0。换句话说,原始数据和奇偶位组成的新数据中,将总共包含偶数个1. 奇偶

9、校验并不总是有效,如果数据中有偶数个位发生变化,则奇偶位仍将是正确的,因此不能检测出错误。而且,即使奇偶校验检测出了错误,它也不能指出哪一位出现了错误,从而难以进行更正。数据必须整体丢弃并且重新传输。在一个噪音较大的媒介中,成功传输数据可能需要很长时间甚至不可能完成。虽然奇偶校验的效果不佳,但是由于他只需要一位额外的空间开销,因此这是开销最小的检测方式。并且,如果知道了发生错误的位,奇偶校验还可以恢复数据。 如果一条信息中包含更多用于纠错的位,且通过妥善安排这些纠错位使得不同的出错位产生不同的错误结果,那么我们就可以找出出错位了。在一个7位的信息中,单个数据位出错有7种可能,因此3个错误控制位

10、就足以确定是否出错及哪一位出错了。一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k。若希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求2-1n或2-1k+r+1现以数据码1101为例说明汉明码编码原理,此时D4=1、D3=1、D2=0、D1=1,在P1编码时,先将D4、D3、D1的二进制码相加,结果为奇数3,汉明码对奇数结果编码为1,偶数结果为0(奇数位。若奇数结果编码为0.偶数结果为1,则叫偶数位),因此P1值为1,D4+D2+D1=2,为偶数,那么P2值为0,D3+D2+D1=2,为偶数,P3值为0。这样,参照上文的位置表,汉明码处理的结果就是11010

11、01。在这个4位数据码的例子中,我们可以发现每个汉明码都是以三个数据码为基准进行编码的。下面就是它们的对应表:汉明码编码用的数据码P1D8、D4、D1P2D8、D2、D1P3D4、D2、D1从编码形式上,我们可以发现汉明码是一个校验很严谨的编码方式。在这个例子中,通过对4个数据位的3个位的3次组合检测来达到具体码位的校验与修正目的(不过只允许一个位出错,两个出错就无法检查出来了,这从下面的纠错例子中就能体现出来)。在校验时则把每个汉明码与各自对应的数据位值相加,如果结果为偶数(纠错代码为0)就是正确,如果为奇数(纠错代码为1)则说明当前汉明码所对应的三个数据位中有错误,此时再通过其他两个汉明码

12、各自的运算来确定具体是哪个位出了问题。只要有图,就要在下方写图号和图题图居中图2-1 编码关系图还是刚才的1101的例子,正确的编码应该是1101001,对应D4 D3 D2 D1 P3 P2 P1。如果第三个数据位在传输途中因干扰而变成了1,就成了1111001, 即 D2=1。检测时,P1=D4+D3+D1=1+1+1的结果是奇数3,除以2余数1,原来第一位纠错代码为1,正确。P2=D3+D2+D1的结果是奇数3,除以2余数1,而原来第二位纠错代码为0,有错误。P3=D3+D2+D1的结果是奇数3,除以2余数1,而原来第三位纠错代码为0,有错误。可推断是第2位出现错误。2.2汉明码纠错原理

13、将原有的汉明码纠错原理进行改动,删除了复杂的公式,换上自己的通俗易懂语言 汉明码(Hamming Code)是一个可以有多个校验位,具有检测并纠正一位错误代码的纠错码,所以它也仅用于信道特性比较好的环境中,如以太局域网中,因为如果信道特性不好的情况下,出现的错误通常不是一位。  汉明码的检错、纠错基本思想是将有效信息按某种规律分成若干组,每组安排一个校验位进行奇偶性测试,然后产生多位检测信息,并从中得出具体的出错位置,最后通过对错误位取反(也是原来是1就变成0,原来是0就变成1)来将其纠正。  要采用汉明码纠错,需要按以下步骤来进行:计算校验位数确定校验码位置确定校验码实现

14、校验和纠错。下面来具体介绍这几个步骤。本文先介绍除最后一个步骤的其它几个步骤。 计算校验位数 要使用汉明码纠错,首先就要确定发送的数据所需要要的校验码(也就是“汉明码”)位数(也称“校验码长度”)。它是这样的规定的:假设用N表示添加的校验码位,它们之间的关系应满足:N=Kr2r1。  如K=5,则要求2r-r5+1=6,根据计算可以得知r的最小值为4,也就是要校验5位信息码,则要插入4位校验码。如果信息码是8位,则要求2r-r8+1=9,根据计算可以得知r的最小值也为4。根据经验总结,得出信息码和校验码位数之间的关系如表2-2所示。表2-2   信息码位

15、数与校验码位数之间的关系表头位置居中信息码位数1 245111226275758120121247校验码位数2345678表格位置居中,每列宽度应大致相同暂时做了居中处理,不太会怎么把表格对称确定校验码位置 上一步我们确定了对应信息中要插入的校验码位数,但这还不够,因为这些校验码不是直接附加在信息码的前面、后面或中间的,而是分开插入到不同的位置。但不用担心,校验码的位置很容易确定的,那就是校验码必须是在2n次方位置,如第1、2、4、8、16、32,位(对应20、21、22、23、24、25,是从最左边的位数起的),这样一来就知道了信息码的分布位置,也就是非2n次方位置,如第3、5、6、7、9、

16、10、11、12、13,位(是从最左边的位数起的)。  举一个例子,假设现有一个8位信息码,即b1、b2、b3、b4、b5、b6、b7、b8,由表5-1得知,它需要插入4位校验码,即p1、p2、p3、p4,也就是整个经过编码后的数据码(称之为“码字”)共有12位。根据以上介绍的校验码位置分布规则可以得出,这12位编码后的数据就是p1、p2、b1、p3、b2、b3、b4、p4、b5、b6、b7、b8。  现假设原来的8位信息码为10011101,因现在还没有求出各位校验码值,现在这些校验码位都用“?”表示,最终的码字为:?1?001?1101。 确定校验码 经过前面的两步,我

17、们已经确定了所需的校验码位数和这些校验码的插入位置,但这还不够,还得确定各个校验码值。这些校验码的值不是随意的,每个校验位的值代表了代码字中部分数据位的奇偶性(最终要根据是采用奇校验,还是偶校验来确定),其所在位置决定了要校验的比特位序列。总的原则是:第i位校验码从当前位开始,每次连续校验i(这里是数值i,不是第i位,下同)位后再跳过i位,然后再连续校验i位,再跳过i位,以此类推。最后根据所采用的是奇校验,还是偶校验即可得出第i位校验码的值。    3 仿真与程序一级标题居中3.1 SIMULINK仿真将3级小节整改为2级小节Good在设计中,本系统信号产生模块选用伯努利二

18、进制序列产生器(Bernoulli Binary Generator)来输出速率为100Bit/s的随机数字信号,主要步骤如下:1. 进入Hamming encoder进行编码2. 送入BSC信道传输模型中没有这个步骤,删掉3. 接收信号送入Hamming decoder进行差错纠正4. 其后加一误码率计算模块(Error Rate Calculation)计算误码率5. 再用示波器scope观察波形,用spectrum scope观测频谱6. 由To Workspace模块将运算结果送入M文件7. 画出信噪比与误码率关系的曲线。绘制SIMULINK仿真电路图,如图31,因为信号为离散型号,示

19、波器(Scope)无法正常出现波形,后经老师指导,加入Unbuffer/buffer,并更换AWGN信道为BSC信道,进行了正确的误码率以及编码器译码器的设置。重新绘制了仿真电路图图3-1 SIMULINK仿真电路图(更改后可行)3. 2 模块设置模块设置进行改变(1)产生服从伯努利分布的随机二进制序列,模块的输出可以是帧结构的矩阵,也可以是数据流形式的行或列向量或一维数组。二进制伯努利产生器设置如图3-2所示,将”sample time”设为0.01s,即0.01s产生一个码元。图3-2 Bernoulli Binary Generator参数设置图(2)对Buffer模块进行设置,因为我们

20、观测的是(7,4)汉明码的编码与解码,故将Buffer输出设为4,即将输入的串行数据转化为4位并行数据输入到汉明码编码模块。如图3-3所示。 图3-3 Buffer模块参数设置图(3)因为本次观察(7,4)汉明码的编码与解码,所以汉明码编码器模块参数设置如图3-4所示。图3-4 汉明码编码器参数设置图(4)BSC信道设置,我们先观测理想状态下的汉明码编码与解码,故将信道误码率设为“0”,如图3-4所示。图3-5 BSC信道参数设置图(5)汉明码译码器也设为(7,4)汉明码对应的参数,如图3-6所示。图3-6 汉明码译码参数设置图(6)误码率延时设置,在观察中发现在编码和解码的过程中,信息延时了

21、4个码元的时间,故将 Receive delay设置为4,如图3-7所示。图3-7 误码率延时时间设置图(7)对to workspace模块设置参数,将名称改为simout,如图3-8所示。图3-8 to workspace模块参数设置3.3 M文件程序使命令的输入更加简化,当我们需要在命令窗口反复执行某些计算过程时,可以比较方便。先要有文字介绍本段程序引入的原因和程序的编程思想,和具体实现算法介绍。调用m文件来绘制误码率与信噪比的关系,程序如下所示:x=0:0.005:0.05;      %x表示差错率y=x; 

22、0;           %y表示信号的误比特率for i=1:length(x)     %重复.mdl文件,检验不同条件下译码性能Fu1=x(i);             sim(' test '); %计算BitErrorRate的均值作为仿真的

23、错误比特率y(i)=simout(end,1);endplot(x,y);      %绘制x和y的关系曲线图xl('BER');      横坐标误比特率y=x;                    title('经(7,4)汉明码信道编码后的误码率改

24、善')3.4仿真结果添加了仿真结果的波形图与分析结果都应该加上解释,解释每一条波形代表的意思,和从几条波形之间的关系分析,是否与原理相符,说明模型设计是否正确仿真结果图进行更改(1)示波器观测的结果如图3-9所示,其中入口1为输入的串行数据,入口2为输出的数据,可看出输出的数据与输入数据相比,只是延迟了0.01s,即4个码元宽度的时间。说明编码与译码过程是正确的。图3-9 示波器输出信号波形(2)对误码率观测模块进行分析,此时误码率如图3-10所示,可知理想状态下误码率为“0”,说明该系统是正确的。图3-10 理想状态下误码率观测图(3)图3-11 差错率与误码率的关系曲线图模型中已经

25、没有高斯信道了,这个图也就与模型不符了3.5调试 运行M文件后,画出的信噪比和误码率关系的曲线为一条直线。结论与模型不符,没有高斯信道,也就没有信噪比曲线,而且这个曲线也不是直线啊更改 调试方法:将误码率计算模块的属性时延由1改为0,将to workplace'的属性中的limit data points to last改为1,且sim函数括号中内容应与仿真模块名相同,信道模块的信噪比应该设为变量,才能画出表示信噪比和误码率关系的曲线。删除之前错误插入的多余程序内容3.6结果分析通过仿真结果可知:汉明码可以降低误码率,在simulink环境下,汉明码的技术就是编码译码的方式,提高了纠错

26、率,使实际的误码率低于了信道里的误码率。4 总结 通过本次课程设计,我收获了很多:一、我对MATLAB软件有了较深的了解,并且学会了SIMULINK仿真的基本方法。这次课程设计是我第一次接触到SIMULINK 工具,刚开始我无从下手,不知所措,后来经过问同学、去图书馆资查料、上网查资料,逐渐了解了SIMULLINK是MATLAB提供的用于对动态系统进行建模、仿真和分析的工具包,并且学会了它的基本使用方法。并在调试过程不断出错的过程中,不断加强了对SIMULINK的掌握程度,能够将SIMULINK仿真和M文件相结合,分析汉明码信噪比与误码率的关系。二、本次课程设计锻炼了我独立解决问题的能力。刚看

27、到题目时我一点思路也没有,到后来,自己不断探索SIMULINK,不断摸索各个模块的使用方法和属性,最后完成了SIMULINK的仿真,整个过程让我学会了发现问题,并独立解决问题的方法,也能更好的利用网络学习知识。三、本次课程设计让我对差错控制编码有了更深的了解,并且更深刻的理解了通信原理该章节的内容。了解了汉明码的编码、译码,及纠错原理,并能通过MATLABMATLAB编程和SIMULINK仿真理解了汉明码编码对不同信噪比下误码率的影响。本次课程设计最重要的是让我学会了独立解决问题的方法,经过不断的学习、出错、调试、改正,锻炼了我的耐心和毅力,让我体会到了不断探索的乐趣,并体会到了付出后得到成功

28、的激动。此次设计也让我发现了我的不足:对同上MATLAB的掌握程度不够,在原来学习后,我对同上MATLAB的许多函数、语句的用法还是不很了解,以后应当多多学习软件,辅助各门专业课的学习,并激发对本专业的学习兴趣。5 结束语另起页本次课程设计是我第一次对专业理论知识的一次实践,这一个多星期的实践使我对整个通信系统的结构以及原理有了更深层次的理解,了解到一个完整的通信系统必须经过调制、编码、解调、译码过程。在此过程中我也真正的做到了学以致用,将课堂上学到的知识运用到了实践之中,并且通过实践充分意识到全大写MATLAB的强大功能以及掌握它的使用方法的必要性。我们以后会经常用到系统仿真来设计我们所需的通信系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论