循环码产生电路设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
循环码产生电路
1引言
在线性分组码中,有一种重要的码称为循环码。循环码是线性分组码中最重要的一种子类,是目前研究的比较成熟的一类码。循环码具有许多特殊的代数性质,这些性质有助于按照要求的纠错能力系统地构造这类码,并且简化译码算法,并且目前发现的大部分线性码与循环码有密切关系。循环码还有易于实现的特点,很容易用带反馈的移位寄存器实现其硬件。循环码是在严密的代数学理论基础上建立起来的。这种编码和解码设备都不太复杂,而且纠错的能力较强。循环码除了具有线性码的一般性质外,还具有循环性。循环性是指任一码组循环一位以后,认为该码中的一个码组。
正是由于循环码具有码的代数结构清晰、性能较好、编译码简单和易于实现的特点,因此在目前的计算机纠错系统中所使用的线性分组码几乎都是循环码。它不但可以纠正独立的随机错误,也可用于检错突发错误并且非常有效。(n,k)循环码能够检测长为n-k或更短的任何突发错误,包括首尾相接突发错误。n-k+1位长的突发错误不能被检出所占的概率最大是2(nAJ),如果l>n-k+1,则不能检测长为I的突发错误所占据的比值最大为2AnJk}。
2循环码
2.1循环码多项式
为了利用代数理论研究循环码,可以将码组用代数多项是来表示,这个多项式被称为
码多项式,对于许用循环码A=(a n』a2…a i a。),可以将它的码多项式表示为:
T(x)=a n4x n4 a n^x n^ a i x^ a1x a0对于二进制码组,多项式的每个系数不是 0
就是1, x仅是码元位置的标志。因此,这里并不关心 x的取值。
2.2循环码的生成多项式和生成矩阵
(全0码字除外)称为生成多项式,用g(x)表示。可以证明生成多项式g(x)具有以下特性:
1)g(x)是一个常数项为1的r=n-k次多项式;
2)g(x)是x n,1的一个因式;
3)该循环码中其它码多项式都是g(x)的倍式。
为了保证构成的生成矩阵G的各行线性不相关,通常用g(x)来构造生成矩阵,这时,生成矩阵G可以表示为:
■x k 宀 g(x) G(x)=- - x g (x) :.g(x)一 其中g(x) = x r• a rX r,• a/ • a°,因此,一旦生成多项式g(x)确定以后,该循环码的生成矩阵就可以确定,进而该循环码的所有码字就可以确定。 2.3循环码的编、译码方法 在编码时,首先需要根据给定循环码的参数确定生成多项式g(x),也就是从x n 1的因子中选一个(n-k)次多项式作为g(x);然后,利用循环码的编码特点,即所有循环码多项式 A(x)都可以被g(x)整除,来定义生成多项式g(x)。 根据上述原理可以得到一个较简单的系统循环码编码方法:设要产生( n,k)循环码,m(x)表示信息多项式,则其次数必小于 k,而x n° m(x)的次数必小于n,用x nJ< m(x)除以 g(x),可得余数r(x),r(x)的次数必小于(n-k),将r(x)加到信息位后作监督位,就得到了系统循环码。下面就将以上各步处理加以解释。 1)用x nJk m(x)。这一运算实际上是把信息码后附加上(n-k)个“0”例如,信息码为 110,它相当于 m(x)= x2+x。当 n-k= 7-3 = 4 时,x n* m(x) = x6+ x5,它相当于 1100000。而希望的到得系统循环码多项式应当是A(x) =x n* m(x) + r(x)。 2)求r(x)。由于循环码多项式A(x)都可以被g(x)整除,也就是: 上式相当于:1100000 =111 • -0101这时的编码输出为:1100101。 10111 10111 在译码时,对于接收端译码的要求通常有两个:检错与纠错。达到检错目的的译 码十分简单,通过判断接收到的码组多项式 B(x)是否能被生成多项式g(x)整除作为依 据。当传输中未发生错误时,也就是接收的码组与发送的码组相同,即 A(x)=B(x),则 接收的码组B(x)必能被g(x)整除;若传输中发生了错误,则A(x)毛(x), B(x)不能被g(x) 整除。因此,可以根据余项是否为零来判断码组中有无错码。需要指出的是,有错码 的接收码组也有可能被g(x)整除,这时的错码就不能检出了。这种错误被称为不可检 错误,不可检错误中的错码数必将超过这种编码的检错能力。在接收端为纠错而采用 的译码方法自然比检错要复杂许多,因此,对纠错码的研究大都集中在译码算法上。 我们知道,校正子与错误图样之间存在某种对应关系。如同其它线性分组码,循环编 码和译码可以分三步进行: 1) 由接收到的码多项式B(x)计算校正子(伴随式)多项式 S(x); 2) 由校正子S(x)确定错误图样E(x); 3) 将错误图样E(x)与B(x)相加,纠正错误。 3循环码的电路设计 A(x) g(x) n _k n _k 二Q(x)二 X - m(x) r(x) _ x - m(x) r(x) g(^) - g(x) 丽 因此, 用x n± m(x)除以g(x),就得到商Q(x)和余式r(x),即 n _k X —g(x) m(x) 二 Q(x) 这样就得到了 r(x)。 3) 编码输出系统循环码多项式 A(x)为:A(x)二 x n 丄 m(x) r (x) 例如,对于(7, 3)循环码, 4 2 若选用g(x)二x x x + i,信息码no 时,贝y : x n± m(x) g(x) 6 5 x +x . 2 -~ 2 (x x 4 x 2 x 1 x 1) - 4 x 2 1— 4 x 2 x 1