实验五汉明码的编译码

上传人:无*** 文档编号:144236845 上传时间:2022-08-26 格式:DOC 页数:15 大小:193.50KB
收藏 版权申诉 举报 下载
实验五汉明码的编译码_第1页
第1页 / 共15页
实验五汉明码的编译码_第2页
第2页 / 共15页
实验五汉明码的编译码_第3页
第3页 / 共15页
资源描述:

《实验五汉明码的编译码》由会员分享,可在线阅读,更多相关《实验五汉明码的编译码(15页珍藏版)》请在装配图网上搜索。

1、数据通信原理实验报告 实验题目: 汉明码的编译码 专业班级: 信息工程2班 姓名学号: 赵星敏 201342351 李明阳201342300 指导教师: 刘钰 1 / 15实验五 汉明码的编译码一、 实验目的1、理解汉明码的编码原理2、掌握利用simulink进行汉明码编译码仿真的方法3、掌握利用matlab指令进行汉明码编译码的方法二、 实验原理在数字通信系统中,为了实现信息的可靠传输,需要采用差错控制来发现并纠正错误。进行差错控制的方法就是对信息进行差错控制编码,差错控制编码种类较多,其中线性分组码是常用的一类编码,具有编码效率高,实现较简单以及检纠错能力较强等特点。一般数字通信系统模型由

2、信源信宿、加解密、编解码、调制解调等模块组成,其中有些通信模块是组成整个通信系统所必不可少的,有些模块是可以不需要的。差错控制编解码属于编解码器通信模块,为了方便分析差错控制编码性能,通过将通信系统简化为如图5-1所示的信息传输系统来搭建仿真实验平台进行分析研究。信源差错控制编码器差错控制解码器信宿信道图5-1 编码,有时也称为纠错编码。不同的编码方法,有不同的检错或纠错能力,有的编码只能检错,不能纠错。一般说来,付出的代价越大,检纠错的能力就越强。在选择差错控制编码时需要考虑到编码效率、检纠错的能力等方面因素的影响。按照是否将信息码元进行分组可以将差错控制编码分为分组码和非分组码,线性码是指

3、信息位和监督位满足一组线性方程的码,任一(n,k)线性分组码的编码效率为k/n。Simulink通信模块中提供了二进制线性分组码编解码器:Binary Linear Encoder和Binary Linear Decoder。汉明码是汉明(Hamming)于1950年提出的能纠正一位错码且编码效率较高的线性分组码,它可以用一种简洁有效的方法进行解码。汉明码不是仅指某一种码,而是指一类码。二进制汉明码应满足条件:2n-k=1+n,令m=n-k,汉明码n和k服从关系式:码长n=2m-1;信息位k=2m-1-m;最小距离dmin=3(指汉明距离)。当m=3,4,5,6,7,8,时,分别有(7,4),

4、(15,11),(31,26),(63,57),(127,120),(255,247),汉明码。汉明码的基本思想:在k个信息位上加r个校验位,构成n=k+r位的码字,其中每个校验位和某几个特定的信息位构成偶校验的关系。接收端对这r个偶关系进行校验,即将每个校验位与它关联的信息位进行异或加,相异或的结果称为校正因子。如果没有错的话,这r个校正因子都为0;如果有一个错则校正因子不会全为0,根据校正因子的不同取值,可以知道错误发生在码字的哪一个位置上。线性分组码的生成原理与Hamming码基本一致,下面以(7,4)Hamming码为例简单地介绍一下汉明码的构造过程。 构造一个(7,4)汉明码,就是求

5、出它的生成矩阵,或等效地,求出它的监督矩阵(也叫校验矩阵)。由于(7,4)汉明码的校验矩阵是矩阵,而监督矩阵的列矢量不能为全零(零与任何码元的乘积为零,失去检验功能),因此监督矩阵H的7个列矢量正好是除全零矢量外3重矢量的全部可能组合。将001T、010T、011T、100T、101T、110T、111T排列起来就是监督矩阵,排列顺序不同,所得矩阵也就不同,说明H不是唯一的。由于交换列不会影响最小距离,所以可以通过列置换将最初的H变换为系统形式的H(若信息组以不变的形式,在码字的任意k位中出现,则称该码为系统码。否则,称为非系统码),成为系统汉明码:经过变换,整理为典型监督矩阵形式为根据校验矩

6、阵与生成矩阵的转换关系式得到系统汉明码的生成矩阵G为:这样输入信息组m=m3,m2,m1,m0,将m与G相乘即得到编码后的码字A。当数字信号编码成汉明码形式后在信道中传输,由于信道中噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行汉明码纠错,以提高通信系统的抗干扰能力及可靠性。解码的时候将接收到的信息组r与HT相乘,如果rHT=0,接收码组无错;如果rHT0,则根据译码图样进行纠错。Simulink通信模块中提供了Hamming码编解码器:Hamming Encoder和Hamming Decoder。三、实验内容1、simulink仿真汉明码编译码过程汉明码编译码仿真的

7、模型图如图5-2所示。图5-2 汉明码编译码仿真各模块参数及说明:Bernoulli Binary Generator(伯努利二进制随机数产生器)模块描述:产生服从伯努利分布的随机二进制序列,模块的输出可以是帧结构的矩阵,也可以是数据流形式的行或列向量或一维数组。模块位置:Communications Blockset-Comm Sources-Random Data Sources-Bernoulli Binary Generator模块参数:参数说明:Probability of a zero:模块产生的二进制序列中出再0的概率。Initial seed:随机数种子,不同的随机数种子通常产

8、生不同的序列。Sample time:抽样时间,表示输出序列中每个二进制符号的持续时间。此处参数表示在0.02秒内产生4个比特。Frame-based outputs:选种表示输出为帧格式,否则输出数据流。Samples per frame:只有当Frame-based outputs选种后才可编辑此参数,它表示输出一帧中包含的抽样点数。此处表示1帧由4个比特组成。Hamming Encode(汉明码编码器)模块描述:用于对输入信息进行汉明编码,汉明码是一种能够纠正一位错误的红性分组码,码长为N。该信息位的长度为K,其中,N=2M-1(M=3),K=N-M。模块位置:Communication

9、s Blockset-Error Detection and Correction-Block-Hamming Encode模块参数: Binary Symmetric Channel(二进制对称信道)模块描述:用于对二进抽制信号的误比特率性能进行仿真,添加二进制噪声到输入信号,可以是标量、数据流向量或帧结构的行向量。模块位置:Communications Blockset-Channels-Binary Symmetric Channel模块参数: 参数说明:Error probability:添加噪声比特的概率。Hamming Decode(汉明码译码器)模块描述:创建一个码长为N,信息码

10、长为K的汉明码。其中,N=2M-1(M=3),K=N-M。模块位置:Communications Blockset-Error Detection and Correction-Block-Hamming Decode模块参数:此处的两个参数要与前面的Hamming Encode参数一致。 Error Rate Calculation(误码率计算)模块描述:通过比较传输数据和接收数据来计算误码率,模块的输出数据是长度为3的向量,其中每个元素的意义分别是:误码率或误比物率、总的错误个数、总的参加比较的符号或比特数。模块位置:Communications Blockset-Comm Sinks-E

11、rror Rate Calculation模块参数: 参数说明:Receive delay:指定接收方滞后发送的抽样点数,即接收的第几个值对应发送的第一个值。Computation delay:指定开始比较时模块忽略的抽样点数。Computation mode:指定模块是比较全部还是输入数据。Output data:指定计算结果是输出到工作区还是端口。To Workspace(输出到工作区)模块描述:写入专门的数据到MATLAB的主工作区。数据不可用直到仿真结束或暂停。模块位置:Simulink -Sinks-To Workspace模块参数: 参数说明:Variable name:写入工作区

12、间的数据名称,默认为simout。Limit data points to last:模块最多可以保留的数据个数,inf表示无穷大。Decimation:写入数据的抽样频率,即每隔多少抽样点输入一个值。Sample time:写入数据的抽样时间,默认值为-1,表示与上一模块抽样时间相同。Save format:输出数据的形式。Display(显示仿真结果)模块描述:显示结果模块位置:Simulink -Sinks-Display模块参数:参数说明:Format:显示在模块对话框上的数据形式,short显示小数据点后5位数字。2、 利用matlab语句进行汉明码编译码MATLAB中提供了汉明码的

13、编码和译码函数,本程序直接调用进行编程。将用到的程序函数说明如下:encode函数功能:编码函数语法:code=encode(msg,N,K,hamming)说明:该函数对二进制信息msg进行汉明编码,K为信息位长度,N为码字长度。msg是一个任意行K列的矩阵。比如: code=encode(1 0 0 0;1 1 0 1,7,4,hamming)运行结果为:code = 1 1 0 1 0 0 0 0 0 0 1 1 0 1decode函数功能:译码函数语法:rcvcode=decode(code,N,K,hamming)说明:该函数对接受码字进行译码,恢复出原始信息,译码参数及方式必须和编

14、码时采用的完全相同。比如,在结果的基础上: rcvcode=decode(code,7,4,hamming)运行结果为:rcvcode = 1 0 0 0 1 1 0 1randint函数功能:产生一个均匀分布的n*m维的整数矩阵,矩阵的元素是随机的。语法:randint(m,n)说明:randint(m,n),矩阵中的元素或者是0或者是1,0或者1的出现是随机的。 比如: randint(3,2)运行结果为:ans = 0 0 0 1 0 1语法:randint(m,n,range)说明:产生一个m*n的随机矩阵,矩阵元素值的范围由range确定。比如range设定为一个区间:randint

15、(2,3,1 6),就是产生一个2*3随机矩阵,这个矩阵的元素是区间1 6的随机整数。比如: randint(3,2,1 2)运行结果为:ans = 2 1 1 2 1 2rem函数功能:求余数语法:R=rem(X,Y),求X除以Y的余数,X,Y应该为正数。当Y为2时,相当于模二运算。randerr函数功能:产生比特误差样本语法:randerr(A,B)说明:产生A行B列的随机误差样本矩阵比如: randerr(3,2)运行结果为:ans = 0 1 1 0 0 1说明:计算A、B两个矩阵中的误比特数,返回给num,计算误码率返回ratbiterr函数功能:计算误比特数和误比特率语法:num,

16、rat=biterr(A,B)说明:计算A、B两个矩阵中的误比特数,返回给num,计算误码率返回rat参考matlab编译码的指令代码为:K=4;N=7;row_num=20;msg=randint(row_num,4) %信息产生 产生row_num行4列的二进制随机矩阵,row_num表示要对row_num组信息数进行编码code=encode(msg,N,K,hamming) %(7,4)汉明编码,输出为3行7列的已编码矩阵nois=randerr(row_num,N)code_noise=rem(code(:,:)+nois(:,:),2) %编码后进入有噪信道,则加上噪声(3行7列的

17、随机数) rem运算相当于取了模二和 code(:,:)+nois(:,:)表示两个二维矩阵求和rcv=decode(code_noise,N,K,hamming) %汉明译码 num,rat=biterr(rcv,msg) %比较编码前和译码后矩阵,计算误码率运行指令的方法:1、直接在matlab的command window窗口下输入上述语句。2、在matlab主界面下,新建一个空白文档,输入以下命令行,然后保存为*.m文件。按F5键,或者在.m文件界面选择菜单debugrun运行,运行结果会显示在matlab的command window窗口下。四、实验结果五、 实验结论通过结果可知,汉

18、明码可以降低误码率,提高系统抗干扰能力。六、 实验总结 通过这次通信原理课程设计的题目是汉明码的编码、译码。因为之前并没有接触过MATLAB中的SIMULINK,所以在画原理图和设置参数的时候遇到了不少困难。但好在网上可借鉴的资源很多,通过学习相关的教程和查阅MATLAB中的help,这些困难都迎刃而解了。这其中我深刻地体会到专业英语的重要性。可想而知,多积累点英语对今后的工作、学习将有极大的帮助。通过本次学习,我再一次体会到MATLAB的强大。丰富的库函数、强大的数据处理能力,出色的绘图功能,友好的工作平台,简单一用的操作语言等等,这些优点都促使MATLAB成为数学处理软件发展史上的巅峰之作。这激发了我之后学习MATLAB的决心。知识的构架是千枝交错的。学到大学,知识之间相互渗透的现象可谓比比皆是,这启发我们不仅要发散思维的领域,也要拓宽知识的领域。对与本专业相关的领域多加了解百利而无一害。最后,还是那句话,实践出真知。在渴望知识的道路上,用双脚探索出来的路才是你自己的路。我还将上下左右而求索。 友情提示:方案范本是经验性极强的领域,本范文无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!