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

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

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

一、设计目的及要求

设计目标:通过利用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)

一定是n x+1的因式:n x+1=g(x)h(x);反之,若g(x)为n-k次,且能被n x+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),也就是从n x+1的因子中选一个(n-k)次多项式作为g(x)。利用循环码的

编码特点,即所有循环码多项式A(x)都可以被g(x)整除,来定义生成多项式

g(x)。

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

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

6

x+5x,它相当于1100000。

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

(2.1)因此,用k n x m(x)除以g(x),就得到商Q(x)和余式r(x),即

(2.2)这样就得到了r(x)。

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

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

(2.4)上式相当于

这时的编码输出为:1100101。

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

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

编码器的工作过程如下:

图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,它可以使缓存器输出取补,即纠正错误。

图2.3 梅吉特译码器原理

2.4 差错控制编码系统的性能

(1)系统带宽和信噪比的关系:为了减少接收错误码元数量,需要在发送信息码元序列中加入监督码元。这样使发送序列增长,冗余度增大。若仍须保持发送信息码元速率不变,则传输速率必须增大,因而增大了系统带宽,继而引起系统中噪声功率增大,信噪比下降。信噪比的下降反而又使系统接收码元序列中

相关文档
最新文档