循环码产生电路设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

循环码产生电路设计

1.引言

在线性分组码中,有一种重要的码称为循环码。循环码是线性分组码中最重要的一种子类,是目前研究的比较成熟的一类码。循环码具有许多特殊的代数性质,这些性质有助于按照要求的纠错能力系统地构造这类码,并且简化译码算法,并且目前发现的大部分线性码与循环码有密切关系。循环码还有易于实现的特点,很容易用带反馈的移位寄存器实现其硬件。循环码是在严密的代数学理论基础上建立起来的。这种编码和解码设备都不太复杂,而且纠错的能力较强。循环码除了具有线性码的一般性质外,还具有循环性。循环性是指任一码组循环一位以后,认为该码中的一个码组。

正是由于循环码具有码的代数结构清晰、性能较好、编译码简单和易于实现的特点,因此在目前的计算机纠错系统中所使用的线性分组码几乎都是循环码。它不但可以纠正独立的随机错误,也可用于检错突发错误并且非常有效。(n,k)循环码能够检测长为n-k 或更短的任何突发错误, 包括首尾相接突发错误。n-k+1位长的突发错误不能被检出所占的概率最大是错误!未找到引用源。,如果l>n-k+1,则不能检测长为l 的突发错误所占据的比值最大为)(2k n --。

2.设计要求

(1)用simulink 对系统建模。

(2)写出其生成多式。

(3)对所设计的系统性能进行仿真分析。

(4)对其应用举例阐述。

3.设计原理

3.1 循环码多项式

为了利用代数理论研究循环码,可以将码组用代数多项是来表示,这个多项式被称为码多项式,对于许用循环码A =(0121a a a a n n ⋯-- ),可以将它的码多项式表示为:

T(x)=012211a x a x a x a x a i i n n n n ++⋯++⋯++----对于二进制码组,多项式的每个系数不是0就是1,x 仅是码元位置的标志。因此,这里并不关心x 的取值。

3.2 循环码的生成多项式和生成矩阵

(全0码字除外)称为生成多项式,用g (x )表示。可以证明生成多项式g (x )具有以下特性:

1)g (x )是一个常数项为1的r=n-k 次多项式;

2)g (x )是1+n x 的一个因式;

3)该循环码中其它码多项式都是g (x )的倍式。

为了保证构成的生成矩阵G 的各行线性不相关,通常用g (x )来构造生成矩阵,这时,生成矩阵G 可以表示为:

⎥⎥⎥⎥⎥⎥

⎥⎦

⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡⋅⋅⋅=--)()()()()(21x g x g x x g x x g x x G k k 其中011)(a x a x a x x g r r r ++++=- ,因此,一旦生成多项式g (x )确定以后,该循环码的生成矩阵就可以确定,进而该循环码的所有码字就可以确定。

3.3 循环码的编、译码方法

在编码时,首先需要根据给定循环码的参数确定生成多项式g (x ),也就是从1+n x 的因子中选一个(n-k )次多项式作为g (x );然后,利用循环码的编码特点,即所有循环码多项式A (x )都可以被g (x )整除,来定义生成多项式g (x )。

根据上述原理可以得到一个较简单的系统循环码编码方法:设要产生(n,k )循环码,m (x )表示信息多项式,则其次数必小于k ,而)(x m x k n ⋅-的次数必小于n ,用)(x m x k n ⋅-除以g (x ),可得余数r (x ),r (x )的次数必小于(n-k ),将r (x )加到信息位后作监督位,就得到了系统循环码。下面就将以上各步处理加以解释。

(1)用)(x m x k n ⋅-。这一运算实际上是把信息码后附加上(n-k )个“0”。例如,信息码为110,它相当于m (x )=2x +x 。当n-k =7-3=4时,)(x m x k n ⋅-=6x +5x ,它相当于1100000。

而希望的到得系统循环码多项式应当是A (x ) =)(x m x k n ⋅- + r (x )。

(2)求r (x )。由于循环码多项式A (x )都可以被g (x )整除,也就是:

)

()()()()()()()()()(x g x r x g x m x x g x r x m x x Q x g x A k n k n +⋅=+⋅==-- 因此,用)(x m x k n ⋅-除以g (x ),就得到商Q (x )和余式r (x ),即

)

()()()()(x g x r x Q x g x m x k n +=⋅-)。 这样就得到了r (x )。

(3)编码输出系统循环码多项式A (x )为:)()()(x r x m x x A k n +⋅=-

例如,对于(7,3)循环码,若选用

x x x x g ++=24)(+ 1,信息码110时,则:1

1)1(1)()(24222456+++++++=++++=⋅-x x x x x x x x x x x x g x m x k n 上式相当于:

10111

101111101111100000+=这时的编码输出为:1100101。

在译码时,对于接收端译码的要求通常有两个:检错与纠错。达到检错目的的译码十分简单,通过判断接收到的码组多项式B (x )是否能被生成多项式g (x )整除作为依据。当传输中未发生错误时,也就是接收的码组与发送的码组相同,即A (x )=B (x ),则接收的码组B (x )必能被g (x )整除;若传输中发生了错误,则A (x )≠B (x ),B (x )不能被g (x )整除。因此,可以根据余项是否为零来判断码组中有无错码。需要指出的是,有错码的接收码组也有可能被g (x )整除,这时的错码就不能检出了。这种错误被称为不可检错误,不可检错误中的错码数必将超过这种编码的检错能力。在接收端为纠错而采用的译码方法自然比检错要复杂许多,因此,对纠错码的研究大都集中在译码算法上。我们知道,校正子与错误图样之间存在某种对应关系。如同其它线性分组码,循环编码和译码可以分三步进行:

1)由接收到的码多项式B (x )计算校正子(伴随式)多项式S (x );

2)由校正子S (x )确定错误图样E (x );

3)将错误图样E (x )与B (x )相加,纠正错误。

相关文档
最新文档