循环码(7,4)(2)

2019-08-17 12:55

3.6 循环码的编码及实现 利用生成多项式g(x)实现编码:

如上所述,一但循环码的生成多项式g(x)确定时,码就完全确定了。现在讨论生成多项式g(x)给定以后,如何实现循环码的编码问题。 若已知

g(x)?gn?kxn?k?gn?k?1xn?k?1?...?g1x?g0并设信息元多项式

(3-20)

m(x)?mk?1xk?1?mk?2xk?2?...?m1x?m0xn?k乘以m(x),再加上校验元多项式r(x),这样得到的码字多项式c(x)为

(3-21)

要编码成系统循环码形式,即码字的最左边k位是信息元,其余n-k位是校验元,则要用

c(x)?xn?km(x)?r(x)其中r(x)?rn?k?1xn?k?1?...?r1x?r0

由于循环码属于线性分组码C(x)一定是g(x)的倍式,即有

(3-22)

c(x)?xn?km(x)?r(x)?q(x)g(x) (3-23) c(x)?(xn?km(x)?r(x))modg(x)?0 (3-24)

注意到g(x)为n-k次多项式,而r(x)最多为n-k-1次多项式,必有

r(x)?xn?km(x)modg(x) (3-25)

即r(x)必是xn-km(x)除以g(x)的余式。

上述过程指出了系统循环码的编码方法:首先将信息元多项式m(x)乘以xn-k成为xn-km(x),然后将xn-km(x)除以生成多项式g(x)得到余式r(x),该余式就是校验元多项式,从而得到式(3-22)所示的码字多项式

综上所述,系统循环码的编码问题,可以归结为两个多项式的除法运算,即将xn-km(x)除以生成多项式g(x)得到余式r(x)的运算。

首先根据给定的(n,k)值来选定生成多项式g(x)。即从(xn+1)的因子中选定一个(n-k)次多项式作为g(x)。所有多项式T(x)都能被g(x)整除。根据这条原则可以对给定的信息位进行编码。设m(x)为信息码多项式,其次数小于k。用xn-k 乘m(x),得到的xn-k m(x)次数必定小于n。用g(x)除xn-k m(x),得到余式r(x),r(x)的次数必定小于g(x)的次数,即小于(n-k)。将此余式r(x)加在信息位后作为监督为,即将r(x)和xn-k m(x)相加,得到的多项式必定是一个码多项式。

m(x)xn?k 确定余式r(x):xn?k m(x)/ g(x)的余式 确定c(x),c(x)=xn?k 图3-2 循环码编码过程框

下面以(7,4)码为例演示编码过程 (1)确定g(x)。

由x7+1=(x+1)(x3+x2+1)(x3+x+1)所以g(x)= x3+x2+1或g(x)= x3+x+1;这里选择g(x)= x3+x2+1 (2)用xn-k 乘m(x),该运算实际上是在信息码后附加上(n-k)个“0”,例如,信息码为1100,它写成多项式为m(x)=x3+x2。当n-k=7-4=3时,xn-k m(x)=x6+x5 它表示码组1100000。

(3)用g(x)除xn-k m(x),得到商Q(x)和余式r(x)即[xn-k m(x)]/[ g(x)]= Q(x)+r(x)/ g(x) 例如[xn-k m(x)]/[ g(x)]=(x6+x5)/(x3+x2+1)=(x3+1)+(x2+1)/(x3+x2+1) 上式是用码多项式表示的运算。它和下式等效: 1100000/1101=1001+101/1101

(4)编出码组为T(x)= xn-k m(x)+ r(x)即T(x)= 1100000+101=1100101 由以上方法可以算出(7,4)码表:

表3-3(7,4)码表

序号 1 2 3 4 5 6 7 8 输入序列 0000 0001 0010 0011 0100 0101 0110 0111 输出序列 0000000 0001101 0010111 0011010 0100011 0101110 0110100 0111001 序号 9 10 11 12 13 14 15 16 输入序列 1000 1001 1010 1011 1100 1101 1110 1111 输出序列 1000110 1001011 1010001 1011100 1100101 1101000 1110010 1111111

根据表3-3所显示的计算结果,可用vb进行编程,流程图如下:

该程序以j为循环变量反复从输入序列中读取4位,然后根据码码表添加后3位,再累加到输出序列。当输入序列全部读取时即j等于输入序列长度len时,显示输出序列。当输入序列不能被4整除时,程序不对序列做任何处理,也没有输出序列。这时可重新输

图3-3 查表法编码流程图

j=len? Y Len被4整除? 开始 在text1输入序列 点击编码触发单击事件 计算text1序列长度len N 序列长度len对4求余 Y 初始化循环变量j 读入从j开始的4位序列 读入序列后查表加3位,累加到输出 N j+4 输出到text2 结束 入序列,保证其能被4整除。

图3-4 输入“0011”时程序运行结果

图3-5 输入“10100011”时程序运行结果

当输入序列位“0011”和“10100011”时的结果如图3-4和图3-5所示,经查表验证结果正确。说明此程序可以正确将输入序列分段并添加后三位,最后显示输出序列。程序符合设计要求。

3.7 循环码的译码及实现

设发送的码字为C(x),接收到的码字为R(x),如果C(x)= R(x),则说明收到的码字正确;如果C(x)≠R(x),则说明收到的码字出现错误,则有:

R(x)?C(x)?E(x)(3-26)

公式⑴中的E(x)称为错误图样。当E(x)=0时说明没有错误,用g(x)去除R(x),得

R(x)C(x)?E(x)C(x)E(x)?== (3-27)

g(x)g(x)g(x)g(x)因为C(x)是由g(x)生成的,故C(x)必能为g(x)除尽,显然R(x)与E(x)同余式(R(x)≡ E(x)mod g(x)),以g(x)除E(x)所得余式称为伴随式S(x)。

由公式⑴可知,R(x)HT=(C(x)+E(x))H(x)= E(x)H(x)。若E(x)=0,则E(x)H(x)=0;若E(x)≠0,则E(x)H(x)≠0。这说明,R(x)HT仅与错误图样有关,而与发送的码字无关,由此可以确定错误图样表。

由于g(x)的次数为n-k次,g(x)除E(x)后得到余式(即伴随式S(x))的次数为n-k-1次,

表3-4 伴随式与错误图像关系表

错误图样 错误图样码字 1000000 伴随式S(x) 2伴随式 100 E6(x)?x6 E5(x)?x5 x 110 0100000 x2?x x2?x+1 E4(x)?x4 E3(x)?x30010000 111 0001000 0000100 0000010 0000001 x?1 x?1 x 1 2011 E2(x)?x2101 E1(x)?x1010 E0(x)?x0 001 E(x)?0 0000000 0 000 故S(x)共有2n?k个表达式,每个可能的表达式对应一个错误格式,可以知道(7,4)循环码的S(x)共有27?4=8个表达式,可以根据错误图样表来纠正(7,4)循环码的一位错误。其伴随式如表3-4所示。


循环码(7,4)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:建筑法规学习心得

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: