欢迎来到天天文库
浏览记录
ID:28056550
大小:144.30 KB
页数:7页
时间:2018-12-07
《实验三循环码的编码和译码程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验!i!循环码的编码和译码程序设计姓名:夏静学号:20060830118班级:信息安全一班一、实验目的:1.通过实验了解循环码的工作原理。2.了解生成多项式g(x)与编码、译码的关系。3.了解码SLd与纠、检错能力之间的关系。4.分析(7.3)循环码的纠错能力。二、实验要求:1、编、译码用上述的计算法程序框图编写。2、计算出所冇的码字集合,可纠的错误阁样E(x)表和对应的错误伴随式表。3、考查和分析该码检、纠一、二位错误的能力情况。4、整理好所旮的程序清单,变量名尽量用程序框图所给名称,并作注释。5、出示软件报告.三、实验设计原理1、循环码编码原理设有
2、一(n,k)循环码,码字C=[Cn4"3、(x).g(x)Xn-Km(x)=q(x).g(x)+r(x)r(x)=Rg(x)[xn-Km(x)]即监督多项式是将多项式xn-Km⑻除以g(x)所得的金式。编码过程就是如何根据生成多项式完成除法运算求取监督多项式的过程。设循环码(7.3)码的字多项式为:(n=7)生成多项式为:信息多项式力:C(x)=C6x6+C5x5+C4x4+C3x3+C2x2Clx+C0g(x)=x4+x2+x+lm(x)=m2x2+m1x+mO(k=3),设m(x)=x2+x监督多项式为:r(x)=Cr-lXr-l+-+Clx+CO根据循环码的定义:生成多项式的倍式均是码字,4、编码实际上是做xn-km(x)除以g(x)的运算求得r(x)。编码程序框图见图8.1(a)左,二进制多项式除法示意图见图8.1(b)。2、译码原理设R⑻为接收码字多项式,E(x)为错误图样多项式,S(x)为伴随式,则根据循环码的性质冇:S(x)=Rg(x)[R(x)]=Rg(x)[E(x)]当R(x)=C(x)时,有E(x)=O,S(x)=O当R(x)不等于C(x)时,冇E(x)为非0,S⑻为非0C—xnkm(x),D^C,r=n-kiG—g(x)系数除法子程序111...商数g(x):1011111100000•••xrm(x)+10111...第一步5、11110+10111...第二步10010+10111...第三步101...余式:x2+l1、n-k=r=7-3=4,用X1乘m(x)的运算实际上相当于在信息码110后附上4个0,变为11000002、用x'm(x)=x4(x2+x)=xb+x°除以g(x),如图(a)所示,得到监督余式r(x)=x2+lo3、编出相应的发送码字为:按上述步骤,将得到下述码表信息位监督位0000000001011101011100111001C(x)=xrm(x)+r(x)01100000+101=1100101D—C+D1001011101110011100101码6、字D输出1110010(a)编码计算程序框阁(b)二进制多项式除法示意阁图8.1编码计算程序框图及多项式除法示意图译码过程如h计算每一•种可能被纠的错误图样E(x)的伴随式,Si(x)=Rg(x)[E(x)]木地作数据表存储好。根据已接收码字多项式R(x),计算相应的伴随式:S(x)=Rg(x)[R(x)]将实际接收码字求出的S(X)与木地存储的各Si(X)相比较,查出两者相等的那个唯一匹配的Si(x),找出并得到相应的错误图样E(x)o(4)纠错:C(x)=R(x)+E(x)否则由S(x)找不Hi唯一匹配的Si(x),则报出错信息,表示出现不可纠错的错7、误图样,即码元出错的个数超出该循环码的纠错能力。译码流程图8.2所示:初始化i可纠错误图样种类总数=>^=0iG*~g(x)系数i调除法子程序求Rg⑻[恥)】iS8、-*CI将所有的E9、(x)系数=FJ及对应S,造表存储待用初始化iG-*g(x)系数,i=O,N赋值i>输入接收矢量R(x)的系数<—iR,C一R(x)系数调除法子程序求Ra(x)[R(x)]R(x)元错输出转下一R(x)译码ti=O,C=R+Ei出现不可纠的错误图样报错,转下一R(x)译码译码流程一译码流程二i=i+l图6.2译码程序流程图四、算法源代码:#include'stdio.h"#10、include"string.h"#definen7#definek3voidm
3、(x).g(x)Xn-Km(x)=q(x).g(x)+r(x)r(x)=Rg(x)[xn-Km(x)]即监督多项式是将多项式xn-Km⑻除以g(x)所得的金式。编码过程就是如何根据生成多项式完成除法运算求取监督多项式的过程。设循环码(7.3)码的字多项式为:(n=7)生成多项式为:信息多项式力:C(x)=C6x6+C5x5+C4x4+C3x3+C2x2Clx+C0g(x)=x4+x2+x+lm(x)=m2x2+m1x+mO(k=3),设m(x)=x2+x监督多项式为:r(x)=Cr-lXr-l+-+Clx+CO根据循环码的定义:生成多项式的倍式均是码字,
4、编码实际上是做xn-km(x)除以g(x)的运算求得r(x)。编码程序框图见图8.1(a)左,二进制多项式除法示意图见图8.1(b)。2、译码原理设R⑻为接收码字多项式,E(x)为错误图样多项式,S(x)为伴随式,则根据循环码的性质冇:S(x)=Rg(x)[R(x)]=Rg(x)[E(x)]当R(x)=C(x)时,有E(x)=O,S(x)=O当R(x)不等于C(x)时,冇E(x)为非0,S⑻为非0C—xnkm(x),D^C,r=n-kiG—g(x)系数除法子程序111...商数g(x):1011111100000•••xrm(x)+10111...第一步
5、11110+10111...第二步10010+10111...第三步101...余式:x2+l1、n-k=r=7-3=4,用X1乘m(x)的运算实际上相当于在信息码110后附上4个0,变为11000002、用x'm(x)=x4(x2+x)=xb+x°除以g(x),如图(a)所示,得到监督余式r(x)=x2+lo3、编出相应的发送码字为:按上述步骤,将得到下述码表信息位监督位0000000001011101011100111001C(x)=xrm(x)+r(x)01100000+101=1100101D—C+D1001011101110011100101码
6、字D输出1110010(a)编码计算程序框阁(b)二进制多项式除法示意阁图8.1编码计算程序框图及多项式除法示意图译码过程如h计算每一•种可能被纠的错误图样E(x)的伴随式,Si(x)=Rg(x)[E(x)]木地作数据表存储好。根据已接收码字多项式R(x),计算相应的伴随式:S(x)=Rg(x)[R(x)]将实际接收码字求出的S(X)与木地存储的各Si(X)相比较,查出两者相等的那个唯一匹配的Si(x),找出并得到相应的错误图样E(x)o(4)纠错:C(x)=R(x)+E(x)否则由S(x)找不Hi唯一匹配的Si(x),则报出错信息,表示出现不可纠错的错
7、误图样,即码元出错的个数超出该循环码的纠错能力。译码流程图8.2所示:初始化i可纠错误图样种类总数=>^=0iG*~g(x)系数i调除法子程序求Rg⑻[恥)】iS
8、-*CI将所有的E
9、(x)系数=FJ及对应S,造表存储待用初始化iG-*g(x)系数,i=O,N赋值i>输入接收矢量R(x)的系数<—iR,C一R(x)系数调除法子程序求Ra(x)[R(x)]R(x)元错输出转下一R(x)译码ti=O,C=R+Ei出现不可纠的错误图样报错,转下一R(x)译码译码流程一译码流程二i=i+l图6.2译码程序流程图四、算法源代码:#include'stdio.h"#
10、include"string.h"#definen7#definek3voidm
此文档下载收益归作者所有