版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、二、创新试验设计 创新试验一:(7,4 )汉明码的编码与译码实现 1、试验目的 实现(7,4)汉明码的编码与译码,通过 这次试验不 但加深了对汉明码编码 和译码原理明白,而且对线性分组码有所明白;2、试验原理 线性分组码的构造方法比较简洁、理论较为成熟,应用比较广泛;汉明码是一种能够订正一个错码的效率比较高的线性分组码,下面以(明码的编码与译码分别进行介绍:7,4)码为例就汉(1)编码原理一般来说,如汉明码长为n,信息位数为 k,就监督位数 r=n-k ;如期望用 r个监督位构造出 r 个监督关系式来指示一位错码的 n 种可能位置,就要求2 r1 n 或 2 r1 k r 1 1设汉明码( n
2、,k )中 k=4,为了订正一位错码,由式(1)可知,要求监督位数 r 3;如取 r=3, 就 n=k+r=7;这样就构成了( 7,4 )码;用 a a a a a a a 来表示这 7 个码元,用 s s s 的值表示 3 个监督关系式中的校正子,就 s s s 的值与错误码元位置的对应关系可以规定如表 1 所列;表 2.1 校正子和错码位置的关系s s s 1 2 3错码位置a 5s s s 32错码位置001 a 0101a4010a 1110 a5100a 2111a60113a000无错码就由表 1 可得监督关系式:a4a2s 1a 6s 2a 6a 5a 3a3s 3a6a 4a
3、3a 04在发送端编码时, 信息位a a a a 的值准备于输入信号, 因此它们是随机的;监督位a 、a 、a 应依据信息位的取值按监督关系来确定,为使所编的码中无错码,就S S 2,S 等于 0,即a 5a4a205a 6a 6a 5a3a 100a 6a4a 3a0方程组( 5)可等效成如下矩阵形式1 110100a60(6)a5a41 101010a301011001a20a 1式6可简化为由于生成矩阵a0HAT0 T,H 为监督矩阵,就由式 6可得到监督矩阵1 1 10100H1 101010 =P I r71011001G=I Q=IkP,所以由 7得生成矩阵 G 如下:100011
4、1GI QI P010011000101010001011然后利用信息位和生成矩阵G 相乘产生整个码组,即有A = a a a a a a a 0 a a a a G 8其中 A 为整个码组矩阵,a a a a 是信息位;依据上述原理可以得到 7,4汉明码的整个码组;(2)译码与检错、纠错原理当数字信号编码成汉明码后,由于信道噪声的存在,使得经过信道后的汉明码会发生差错, 使得接收端接收到错码, 因此需要多错码进行订正, 以提高通信系统的抗干扰才能及牢靠性;下面分析纠错译码原理;设 B 为接收码组,它是一行7 列的矩阵,即B=b b b b b b b 7,B 中可能含有错码,错误图样 E A
5、 B = e e e e e e e 2 1 ,在 E 的表达式中,有0 当 b i a i 时e i 0,1,2 ,71 当 b i a i 时如 ie 0,表示该码元没错;如 ie 1,表示该码元为错码;由 E A B 得A B E 99表示接收码组和错误图样之和等于正确码组U,通过( 9)式就可以实现纠错;可以用标准阵来表示全部可能的2n 个 n 元码组的接收矢量, n,k码的标准阵形式如下:A 1 A 2 A 3 A 4 A 5E 2 A 2 E 2 A 3 E 2 A 4 E 2 A 5 E 2E 3 A 2 E 3 A 3 E 3 A 4 E 3 A 5 E 3E j A 2 E
6、j A 3 E j A 4 E j A 5 E jE 2 n k A 2 E 2 n k A 3 E 2 n k A 4 E 2 n k A 5 E 2 n k应当留意到,码组 A (全 0 码字)起两个作用:既是其中一个正确码组,也是错误图样 E ,代表 A 所在行没有错误;标准阵中的 A E 2 , E 3 E 2 n k 是陪集首,陪集首的选择是有规定的, 第 j 行的陪集首是在前j-1 行中没有显现的最小码组,即错误图样 E,假如不选错误图样作为陪集首,译码将会产生错误;对于7,4汉明码,其最小码重是 3,设码的纠错才能为 t,依据公式tdmin12得该码的纠错才能为1,即能纠错一位错
7、码;由于依据完备码的定义有n 2kjt0n12j将7,4码代入 12可以得知, 7,4汉明码为完备码组,只能纠错和检错一位 错码;对于正确码组 A 而言,有当接收到错码变成码组AHT010EHTEHT11B 时,有SBHTAE HTAHT其中 S 为校正子所构成的校正矩阵,由于S 和 E 如(11)所示的一一对应的关系,对于 7,4码,错误图样与相伴式的对应关系如下 表 2.2 相伴式查询表错误图样 相伴式0000000 000 00000001 001 0000010 010 0000100 100 0001000 011 0010000 101 0100000 110 1000000 11
8、1 通过相伴式查询表,可以由相伴式得到错误图样,从而实现检错,进而实现纠错;3、试验内容 由于编码涉及到矩阵的运算, 而 matlab 在处理矩阵运算方面有特别优势,所以这次选择用 matlab 工具来实现( 7,4)汉明码的编码和译码;7,4码的编码比较简洁,已知监督矩阵 H,可以通过函数求生成矩阵 G,然后信息位和生成矩阵 G 相乘就可得到全部的码组, 7,4汉明码的编码程序如下:%( 7,4 )汉明码编码2022.11.10 clear all ; clc;H=1 1 1 0 1 0 0 ; 1 1 0 1 0 1 0; 1 0 1 1 0 0 1;%7,4%7,4码的监督矩阵G=gen
9、2parH码的生成矩阵m=0 0 0 0;0 0 0 1;0 0 1 0;0 0 1 1;0 1 0 0; 0 1 0 1;0 1 1 0;0 1 1 1;1 0 0 0;1 0 0 1; 1 0 1 0;1 0 1 1;1 1 0 0;1 1 0 1;1 1 1 0;1 1 1 1; U=remm*G,2;disp7,4汉明码的编码结果: ;dispU; %全部的信息位由原理分析可知,要实现纠错和检错译码,关键在于相伴式查询表,因此如何实现相伴式查询表是编程的关键,7,4汉明码的译码程序如下:%下面是 7,4码译码A=input 请输入接收码组: ;r,l=sizeA;E=0 0 0 0 0
10、 0 0;0 0 0 0 0 0 1;0 0 0 0 0 1 0;0 0 0 0 1 0 0;0 0 0 1 0 0 0;0 0 1 0 0 0 0;0 1 0 0 0 0 0;1 0 0 0 0 0 0;% 求校正子,然后将其转化成十进制数 for i=1:r Sx=Si,1*4+Si,2*2+Si,3;end% 下面是( 7,4 )码检错 for i=1:r switch Sxcase 0 disp 此接收码字没错 case 1 disp 留意:此接收码字的第一位有错,请订正 case 2 disp 留意:此接收码字的其次位有错,请订正 case 4 disp 留意:此接收码字的第三位有错
11、,请订正 case 3 disp 留意:此接收码字的第四位有错,请订正 case 5 disp 留意:此接收码字的第五位有错,请订正 case 6 disp 留意:此接收码字的第六位有错,请订正 case 7 disp 留意:此接收码字的第七位有错,请订正 end end%下面为在知道哪位出错的情形下,进行订正for i=1:rSxswitchcase 0 Bi,:=Ai,:+E1,:; case 1 Bi,:=Ai,:+E2,:; case 2 Bi,:=Ai,:+E3,:; case 4 Bi,:=Ai,:+E4,:; case 3 Bi,:=Ai,:+E5,:; case 5 Bi,:=
12、Ai,:+E6,:; case 6 Bi,:=Ai,:+E7,:; case 7 Bi,:=Ai,:+E8,:; end end B=remB,2;disp 纠错后的码字 ; dispB; 由于可能在纠错过程中会产生错误,在此,我们设计了检错纠错是否产生错 误的程序,程序如下:% 下面为检查纠错是否产生错误 k=1; for k=1:16 if Uk,:=B flag=1; break end end if flag=1 disp 纠错无误 ; else disp 留意:纠错有误,请检查 End 由于译码的目的就是找出信息位息位,提取信息位的程序如下:%下面为提取码的信息位 for j=1:4
13、 c:,j=B:,j;enddisp 信息位 c 如下: dispc 4、试验结果分析 运行编码程序后,得到如下结果c ,所以,需要从纠错后的码组中提取出信通过理论运算,可以得出试验结果和理论编码结果吻合,可以发觉,(7,4)码的最小码重是 3;当接收码组为 1 1 0 1 1 0 0时,译码结果如下运行程序后,可以看到:当接收码组为1 1 0 1 1 0 0 时,会显现“ 留意:此接收码字的第六位有错,请订正” 的提示,在程序中,为防止纠错错误,我设置 了纠错后的码和编码结果的比较, 假如纠错后的码和编码结果当中的某个码组相同,说明纠错无误,否就纠错有误;当接收码组为1 1 0 1 1 0
14、0时,经过纠错后显现纠错无误的结果, 说明纠错后的码是正确码组; 然后提取纠错后的码组的信 息位 c,从运行结果可以看出, c=1001;当接收码组为 0 1 0 1 1 0 1时,运行结果如下:此接收码组原先就是一个正确码组,所以通过运行程序后,会显现“ 此接收码字没错” 的提示,纠错后的码字和接收的码组是相同的,检查到纠错无误,然 后提取信息位 c,信息位 c=0101,整个译码完成;5、改进建议 7,4汉明码的编码与译码相对比较简洁,可以通过 matlab 编程实现对信 道编码性能的分析,可以编程实现比较编码后的误码率和没编码的误码率,也可以编程实现在有噪声的情形下来进行译码;创新试验二
15、:(7,4 )循环码的编码与译码1试验编码原理:依据循环码的代数性质建立系统编码的过程,可以把消息矢量用如下多项式表示:mxm k1xk1m k2xk2.m 1xm0要编码成系统循环码形式, 把消息比特移入码字寄存器的最右边 k 位,而把监督n k n k比特加在最左边的 n-k 个中,就要用 x 乘以 mx得到 x mx= n 1 n 2 n k 1 n km k 1 x m k 2 x . m 1 x m 0 xn kx mx= qx gx+ px ,其中 px可以表示为n k 1 n kpx= p n k 1 x . p 1 x p 0,就 px+ x mx n 1 n 2 n k 1
16、n k n k 1= m k 1 x m k 2 x . m 1 x m 0 x + p n k 1 x . p 1 x p 0另 Ux= px+ x n kmx,就 U=(p ,p ,p , ,p n k 1,m 0,m , ,m k 1);本试验依据以上原理, 用 matlab 实现书上例 6.8 系统形式的循环码, 生成多3项式为 gx= 1 x x2试验译码原理:译码的试验原理 gx= ,在( n,k)循环码中,3由于 gx能除尽 ,因此 x n 1 可分解成 gx和其他因式的乘积,记为 1 x xn x 1 g x h x 即可写成就h* x= x4h xxn1g x 即 h x =
17、 x4h * x 式 hx的逆多项式;x2x1x3x1,其中监督矩阵多项式可表示为Hxx2h*x ,xh*xh*x3(7,4)循环码的编码( 4 位)的程序:clear; clc; a=input 请输入消息矢量:; %高次项系数在前的生成多项式Gx=1 0 1 1; %将数组 a 的高位依次放在数组 Data 的低位Data=zeros1,7; Data1=a4; Data2=a3; Data3=a2; Data4=a1; %Data 除以 Gx 得到余数 Rx Qx,Rx=deconvData,Gx; b=Rx+Data; %将数组 b 的高位放在后面 c=b1; b1=b7; b7=c;
18、 c=b2; b2=b6; b6=c; c=b3; b3=b5; b5=c; %将数组 b 校正 for i=1:7 if remabsbi,2=0 bi=0;end end for i=1:7 if remabsbi,2=1 bi=1;end end disp输入序列: ; a disp编码输出序列:; b 程序运行结果为:转变输入序列运行结果的编码如下:序号输入序列输出序列序号输入序列输出序列1 0000 000 0000 9 1000 110 1000 2 0001 101 0001 10 1001 011 1001 3 0010 111 0010 11 1010 001 1010 4
19、0011 010 0011 12 1011 100 1011 5 0100 011 0100 13 1100 101 1100 6 0101 110 0101 14 1101 000 1101 7 0110 100 0110 15 1110 010 1110 8 0111 001 0111 16 1111 111 1111 4相对应的译码和纠错( 7 位)程序:clear; clc; r=1 0 0 1 1 1 1; h=1,0,0;1,1,0;1,1,1;0,1,1;1,0,1;0,1,0;0,0,1; b=flipudh; s=r*b; for i=1:3 if remabssi,2=0
20、si=0;end end for i=1:3 if remabssi,2=1 si=1;end end if s=0 0 0 e=0 0 0 0 0 0 0 ; elseif s=1 0 0 e=0 0 0 0 0 0 1; elseif s=1 1 0 e=0 0 0 0 0 1 0; elseif s=1 1 1 e=0 0 0 0 1 0 0; elseif s=0 1 1 e=0 0 0 1 0 0 0; elseif s=1 0 1 e=0 0 1 0 0 0 0; elseif s=0 1 0 e=0 1 0 0 0 0 0; else s=0 0 1 e=1 0 0 0 0 0
21、0; end u=r+e; for i=1:7 if remabsui,2=0 ui=0;end end for i=1:7 if remabsui,2=1 ui=1;end end Data=zeros1,4; Data1=u4; Data2=u5; Data3=u6; Data4=u7; if e=0 0 0 0 0 0 0 disp没有错误: k=0,else disp第几位错误: k=finde ;end disp接收码字 r disp译码输出序列: Data 第几位错误: k = 5 接收码字r = 1 0 0 1 1 1 1 译码输出序列:Data =1 0 1 1 以上编码有个缺
22、点,就是它只能对一个消息矢量(4 位)进行编码,我又在这个基础上编写了一个可以同时对位数是 4 的倍数的消息矢量进行编码;5多位循环码( 4 的倍数)的编码程序如下:clear; clc; a=1 1 0 0 1 0 1 1; X,N=sizea; %将信息码分为 M 帧, 1 帧 4 个信息码 M=ceilN/4; d=zeros1,4; b=zeros1,7*M; Data=zeros1,7; for k=1:M for j=1:4 dj=aj+k-1*4;end %生成多项式 Gx=1 0 1 1; Data1=d4; Data2=d3; Data3=d2; Data4=d1; %Dat
23、a除以 Gx 得到余数 Rx Qx,Rx=deconvData,Gx; e=Rx+Data; b7*k-6:7*k=e1:7; c=b1+k-1*7; b1+k-1*7=b7+k-1*7; b7+k-1*7=c; c=b2+k-1*7; b2+k-1*7=b6+k-1*7; b6+k-1*7=c; c=b3+k-1*7; b3+k-1*7=b5+k-1*7; b5+k-1*7=c; end for i=1:M*7 if remabsbi,2=0 bi=0;end end for i=1:M*7 if remabsbi,2=1 bi=1;end end disp输入序列: ; a disp编码输
24、出序列: ; b a = 0 1 1 程序运行结果如下:输入序列:1 1 0 0 1 编码输出序列: b = Columns 1 through 13 1 0 1 1 1 0 0 1 0 0 1 0 1 Column 14 1 6多位译码( 7 的倍数)纠错程序:clear; clc; r=1 0 0 1 1 0 0 1 0 0 1 0 0 1 ; X,N=sizer; %将接收到的码分为 M 帧,1 帧 7 个信息位 M=ceilN/7; h=1,0,0;1,1,0;1,1,1;0,1,1;1,0,1;0,1,0;0,0,1; b=flipudh; d=zeros1,7; U=zeros1,4*M; Data1=zeros1,7*M; Data=zeros1,7*M; for i=1:M for j=1:7 dj=rj+i-1*7;end s=d*b; for k=1:3 if remabssk,2=0 sk=0;end end for k=1:3 if remabssk,2=1 sk=1;end end if s=0 0 0 e=0 0 0 0 0 0 0 ; elseif s=1 0 0 e=0 0 0 0 0 0 1; elseif s=1 1 0 e=0 0 0 0 0 1 0; elseif s=1 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课题申报参考:教育治理视域下师德问责制度化研究
- 课题申报参考:江南风景摄影的审美范式及其传统转化研究
- 课题申报参考:价值医疗视角下安宁疗护经济可持续性机理解析及促进机制设计
- 二零二五版道路照明设施节能补贴申请合同4篇
- 2025年度大型商场装修设计与施工一体化承包合同范本4篇
- 2025年金昌b2货运资格证多少道题
- 二零二五年度轮胎产品绿色环保认证服务合同4篇
- 基于云计算的2025年度企业级应用集成合同3篇
- 中介和房东的委托协议 2篇
- 二零二五年度商业综合体消防安全与安保服务合同3篇
- 道路沥青工程施工方案
- 《田口方法的导入》课件
- 承包钢板水泥库合同范本(2篇)
- 人教版(2024年新教材)七年级上册英语Unit 7 Happy Birthday 单元整体教学设计(5课时)
- DLT 572-2021 电力变压器运行规程
- 公司没缴社保劳动仲裁申请书
- 损伤力学与断裂分析
- 2024年县乡教师选调进城考试《教育学》题库及完整答案(考点梳理)
- 车借给别人免责协议书
- 应急预案评分标准表
- “网络安全课件:高校教师网络安全与信息化素养培训”
评论
0/150
提交评论