基于MATLAB汉明码设计与实现_第1页
基于MATLAB汉明码设计与实现_第2页
基于MATLAB汉明码设计与实现_第3页
基于MATLAB汉明码设计与实现_第4页
基于MATLAB汉明码设计与实现_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、实验报告书 汉明码设计与实现汉明码编译码器系统班级: 学号:一. 实验原理描述1.1 汉明码编码原理一般来说,若汉明码长为 n,信息位数为 k,则监督位数 r=n-k 。若希望用 r 个监督位构造出 r 个监督关系式来指示一位错码的 n 种可能位置,则要求2r 1 n或 2r 1 k r 1(1)下面以( 7,4)汉明码为例说明原理:设汉明码( n,k )中 k=4,为了纠正一位错码,由式( 1)可知,要求监督位 数 r 3。若取 r=3, 则 n=k+r=7。我们用 a6a5a4a3a2a1a0来表示这 7 个码元,用 s1s2s3 的值表示 3个监督关系式中的校正子, 则 s1s2s3的值

2、与错误码元位置的对应关系 可以规定如表 1 所列。表 1 校正子和错码位置的关系s1s2s3错码位置s1s2s3错码位置001a0101a4a1110a5100a2111a6011a3000无错码则由表 1 可得监督关系式 : ?1= ?6 ?5 ?4 ?2 (2)?2 = ?6 ?5 ?3 ?1(3)?3 = ?6 ?4 ?3 ?0(4) 在发送端编码时,信息位 a6a5a4a3 的值决定于输入信号,因此它们是随机的。监督位 a2、a1、a0应根据信息位的取值按监督关系来确定, 即监督位应使式( 2)式( 4)中 s1、 s2、 s3 的值为 0(表示编成的码组中应无错码)?6?5?4?2

3、=0 ?6?5?3?1 =0(5)?6?4?3?0 =0式(5)经过移项运算,接触监督位?2 =?6?5?4 ?1 =?6?5?3(6)?0 =?6?4?3式(5)其等价形式为:?6?51110100?40110101 0?3 =0(7)1011001?2?1?00式( 6)还可以简记为? ? ?(8)H? = 0?或A? = 01110100其中H= 110101 0 A= ?6?5?4?3?2?1?010110011110100P= 1101 ? = 010 0 = 0001011001所以有H= P?(9)式( 6)等价于111110 ?2?1? = ?6 ?5 ?4 ?3 1 0 1

4、= ?6 ?5 ?4?3?(10)011其中 Q为 P 的转置,即Q PT (11)式( 10)表示, 信息位给定后,用信息位的行矩阵乘矩阵 Q就产生出监督位。 我们将 Q的左边加上一个 kk 阶单位方阵,就构成一个矩阵 G1000111?G= ? =0 1 0 0 1 1 0(12)0 0 1 0 1 0 10001011G称为生成矩阵,因为由它可以产生整个码组,即 有?6?5?4?3?2?1?0 = ?6?5?4?3 ?(13)或者A= ?6?5 ?4 ?3 ?(14)式 (13) 即汉明码的编码原理1.2 汉明码纠错原理当数字信号编码成汉明码形式(本文中即 A)后在信道中传输,由于信道中

5、 噪声的干扰, 可能由于干扰引入差错, 使得接收端收到错码, 因此在接收端进行 汉明码纠错,以提高通信系统的抗干扰能力及可靠性。一般来说接收码组与 A不一定相同。若设接收码组为一 n 列的行矩阵 B,即B= ?6?5?4?3?2?1?0(15)则发送码组和接收码组之差为B- A= E(16)E就是传输中产生的错码行矩阵E= ?6?5?4?3?2?1?0(17)若 ei=0,表示接收码元无错误,若 ei =1,则表示该接收码元有错。式( 16) 可改写成B= A+ E (18)若 E=0,即接收码组无错 , 则 B A E A ,将它代人式( 8),该是仍 成立,即有?B? = 0(19)当接收

6、码组有错时, E0,将 B 带入式(8)后,该式不一定成立。 在未超过检错能力时,式( 19)不成立。假设此时式( 19)的右端为 S,即?B? = ?(20)将B= A+ E代入式( 20),可得? ?S= (A+ E)? + ?由式( 8)可知,所以?S= E? (21)此处 S 与前面的 s1s2s3有着一一对应关系,则 S能代表错码位置。因此,纠错原理即,接收端收到码组后按式( 20)计算出 S,再根据表 1 判断 错码情况,进行差错纠正。二. 实验仪器1. 通信原理综合实验系统一台2. 电脑-MATlab一台三. 实验目的1. 熟悉掌握汉明码的原理与实现2. 观察了解汉明距离的作用3

7、. 通过已经知道的汉明码监督方程为传输的编码进行纠错也验证四. 实验容1. 汉明码编码规则 汉明码是 1950 年由美国贝尔实验室提出来的, 是第一个设计用来纠正一位误码的线性分组码, 汉明码及其变型已广泛应用于数字通信和数据存储系 统中作为差错控制码。汉明码的原始设计思想来自于前面讨论的奇偶监督码。 通过一个例子来说明如何具体构造这些监督关系式。设分组码 (n,k) 中 k = 4。为了纠正一位错码,按汉明不等式可得 r3,若取r =3 ,则n= kr=7。我们用a6a5a4a3a2 a1a0a2a6a5a4a1a6a5a3a0a6a4a32. 编码的检验与纠错用 S1,S2, S3 表示三

8、个监督关系式式中的校正子, 监督方程为:S1 =a6 a5 a4 a2S2 =a6 a5 a3 a1S3 =a6 a4 a3 a0则 S1,S2, S3 的值与错码位置的对应关系可以规定如下表: 五. 实验要求1.编写 7位汉明码的程序,输出汉明码 function f=hammingencod(a)G=1 0 0 0 1 1 1;0 1 0 0 1 1 0;0 0 1 0 1 0 1;0 0 0 1 0 1 1; a=input( 输入信息元序列 : ); c=mod(a*G,2);disp( 编码后序列为 : );disp(c); x=.01:.01:4;m,n=size(a*ones(1

9、,100); y=reshape(a*ones(1,100),1,m*n);plot(x,y)axis(0 4 0 1.5);set(gca, XTick ,0:1:4); set(gca, YTick ,0:0.5:1.5); title( hanmingencode ) xlabel( value ) ylabel( value ) end输入信息元序列 :1101编码后序列为 :100 0111010 0110001 0101000 10112. 任意输入一个 7位编码使用程序判断编码是否正确,如果错误,指出错位并纠正function g=hammingdecod(B)H=1 1 1 0

10、 1 0 0 ;1 1 0 1 0 1 0;1 0 1 1 0 0 1;B=input( 输入接收序列 B= );S=mod(B*H,2);%计算 B的伴随式if S=0disp( 接收到的码字无错误。 );E=dec2bin(0,7);endfor i=1:1:7if S=H(:,i)E=dec2bin(2(7-i),7);%计算 R的错误图样fprintf( 错误出现在第 %1.0f位 n ,i); break ;endenda=mod(B-E,2);%计算原发送码序列disp( 原发送码字为 : );disp(a)x=.01:.01:7; m,n=size(a*ones(1,100);

11、y=reshape(a*ones(1,100),1,m*n); m,n=size(B*ones(1,100); z=reshape(B*ones(1,100),1,m*n);plot(x,y)hold on;plot(x,z, -r )axis(0 7 0 1.5);set(gca, XTick ,0:1:7);set(gca, YTick ,0:0.5:2.5);set(gca, ZTick ,0:0.5:2.5);title( hanmingdecode )xlabel(value)ylabel(value)zlabel(value)end输入接受序列为 1 1 0 1 0 1 0 译码后的仿真图如下 :hanmingdecode1.5eula0.500123

温馨提示

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

评论

0/150

提交评论