基于循环码的差错控制编码系统建模与仿真 联系客服

发布时间 : 星期日 文章基于循环码的差错控制编码系统建模与仿真更新完毕开始阅读a0e1666d58fafab068dc0207

基于循环码的差错控制编码系统建模与仿真

一、设计目的及要求

设计目标:通过利用MATLAB/simulink系统仿真功能,设计一个基于循环码的差错控制编码系统。

实验知识要求:循环码的编、译码原理,差错控制编码系统的特点。MATLAB/simulin系统仿真知识。 实验软件平台:MATLAB 7.0软件。

二、课程设计的任务

2.1循环码及差错控制编码的概念及理论基础 2.1.1循环码的概念及生成多项式

在实际应用中,数据传输一般采用系统码的编码方式,即在发送的信息序列之后附加上特定位数的冗余位,该冗余位称为所发送信息序列的监督位。监督位一般是由所发送的信息序列经过恰当的变化而生成的。若监督位由信息位经线性组合而得到,则称得到的系统码为线性分组码。

在线性分组码中有一类重要的码,称为循环码。这种码的编码和解码设备都不太复杂,而且检错和纠错的能力都较强。循环码除了具有线性码的一般性质外,还具有循环性,即任一码组循环一位后仍然是该编码中的一个码组。(n,k )循环码表示其中信息位为k,监督位为n-k。

如果一种码的所有码多项式都是多项式g(x)的倍式,则称g(x)为该码的生成多项式。在循环码中,次数最低的非0首多项式就是生成多项式g(x),其他码多项式都是其倍数。(n,k)循环码的生成多项式g(x)一定是xn+1的因式:xn+1=g(x)h(x);反之,若g(x)为n-k次,且能被xn+1整除,则此g(x)一定生成一个(n,k)循环码。

2.1.2差错控制编码的基本概念

信道编码的目的是提高信号传输的可靠性,信道编码是在经过信源编码的码元序列中增加一些多余的比特,目的在于利用这种特殊的多余信息去发现或纠正传输中发生的错误。在信道编码只有发现错码能力而无纠正错码能力时,必须结合其他措施来纠正错码,避免删除错码带来的负面影响。上诉手段称为差错控制。

在对乘性干扰和加性干扰进行处理后仍不能达到误码率要求时,就需要采用

差错控制措施。差错控制技术有以下4种:

(1)检错重发:在发送码元中加入差错控制码元,当检测到有错码时,利用反向信道通知发送端重发。

(2)前向纠错(FEC):接收端通过发送码元中的差错控制码元,不但能发现错码,而且还能纠正错码。

(3)反馈校验:不需要在发送序列中加入差错控制码元,而是将接收到的码元全部转回发送端,在发送端逐一比较,如发现有不同,则发送端重发。

(4)检错删除:在接收端发现错码后,立即将其删除,不要求重发。 为了在接收端能够发现或纠正错码,在发送码元序列中需要加入一些差错控制码元,称为监督码元或监督位。加入监督码元的方法称为差错控制编码方法或纠错编码方法。一般来说,加入的监督码元越多,检纠错能力就越强。另一方面,加入的监督码元越多,传输效率就越低。检纠错就是用降低传输效率换取传输可靠性的提高。

2.2 差错控制编码的基本原理

纠错编码:对原来的信息代码重新编写,根据需要增加一些监督码,使在输出端能够识别出错码。

分组码的结构:将信息码分组,为每组信息码附加若干监督码的编码称为分组码。在分组码中,监督码元仅监督本码组中的信息码元。

图2.1 分组码的基本结构

分组码的符号:(n, k)

N 表示码组的总位数,又称为码组的长度(码长), k 表示码组中信息码元的数目,

n-k=r 表示码组中的监督码元数目,或称监督位数目。

2.3循环码的编码译码原理 2.3.1循环码的编码原理和方法

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

根据上述原理,可以对给定的信息位进行编码。对于(n,k)循环码,设m(x)

1

表示信息码多项式,根据循环码编码方法,其次数必小于k。而xn?km(x)的次数必小于n,用xn?km(x)除以g(x),可得余数r(x),r(x)的次数必小于g(x)的次数(n-k)。将r(x)加到信息位后作监督位,即将r(x)+xn?km(x)就得到了系统循环码。因此,编码步骤可以归纳为:

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

x6+x5,它相当于1100000。

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

因此,用xn?km(x)除以g(x),就得到商Q(x)和余式r(x),即

(2.1)

(2.2)

这样就得到了r(x)。

(3)求A(x)。编码输出系统循环码多项式A(x)为:

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

(2.3)

,信息码110

上式相当于

(2.4)

这时的编码输出为:1100101。

上诉(n,k)循环码的编码过程,在硬件实现时,可以利用除法电路来实现,这里的除法电路采用一些移位寄存器和模2加法器来构成。

当信息位输入时,开关位置接“2”,输入的信息码一方面送到除法器进行运算,一方面直接输出;当信息位全部输出后,开关位置接“1”,这时输出端接到移位寄存器的输出,这时除法的余项,也就是监督位依次输出。

编码器的工作过程如下:

2

图2.2 (7,3)循环码编码器

2.3.2循环码的译码原理和方法

对于接收端译码的要求通常有两个:检错与纠错。达到检错目的的译码十分简单,可以由式(2-1),通过判断接收到的码组多项式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)相加,纠正错误。

纠错码译码器的复杂性主要取决于译码过程的第(2)步。

基于错误图样识别的译码器称为梅吉特译码器,它的原理图如图2.3所示。错误图样识别器是一个具有(n-k)个输入端的逻辑电路,原则上可以采用查表的方法,根据校正子找到错误图样,利用循环码的上述特性可以简化识别电路。梅吉特译码器特别适合于纠正2个以下的随机独立错误。

图中k级缓存器用于存储系统循环码的信息码元,模2加电路用于纠正错误。当校正子为0时,模2加来自错误图样识别电路的输入端为0,输出缓存器的内容;当校正子不为0时,模2加来自错误图样识别电路的输入端在第i位输出为1,它可以使缓存器输出取补,即纠正错误。

3