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

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

一.设计目的和要求

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

实验知识要求:循环码编、解码原理,差错控制编码系统特点。 MATLAB/simulin系统的模拟知识。

实验软件平台: MATLAB 7.0软件。

课程设计任务

2.1循环码和差错控制码的概念和理论基础

2.1.1循环码的概念和生成多项式

在实际应用中,数据传输一般采用系统码的编码方式,即在所发送的信息序列的后面附加特定位数的冗馀位。 该冗馀位被称为发送的信息序列的监督位。 监督位通常是通过所发送的信息序列的适当改变而产生的。 如果监督比特是通过从每个信息比特线性组合获得的,则得到的系统代码被称为线性组码。

在线分组代码中有一个重要的代码,称为循环代码。 这种码的编码和解码装置不太复杂,检错和纠错能力强。 循环码除了线性码的一般性质外,还具有任一个码组循环1比特后仍为该码中的一个码组的循环性。 (n,k )循环代码表明其中信息比特为k,监督比特为n-k。

如果某个代码的所有代码多项式都是多项式g(x )的倍式,则g ) x )被称为该代码的生成多项式。 在循环码中,次数最低的0以外的多项式为生成多项式g[x],其他的码多项式为其倍数。 (n,k )循环码的生成多项式g ) x )一定是1的因数)1=g ) x ) x ); 相反,如果g(x )为n-k次且能被1整除,则此g(x )一定会产生n,k )循环码。

2.1.2差错控制码的基本概念

信道编码的目的是提高信号传输的可靠性,信道编码是在由信源编码的码元序列中增加额外的比特,利用这种特殊的额外的信息发现或校正在传输中产生的错误。 如果信道编码只有发现错误码的能力,而没有纠正错误码的能力,则需要结合其他措施纠正错误码,避免删除错误码带来的不良影响。 上诉手段被称为差错控制。

如果处理乘性干扰和加性干扰仍不能满足误码率要求,则需要采用差错控制措施。 错误控制技术有以下4种。

检错重发:对发送码元插入检错控制码元,在检测到误码的情况下,对发送端通过反向信道通知重发。

前向纠错(FEC )接收方不仅可以通过发射符号中的错误控制符号来发现错误码,而且可以校正错误码。

反馈检查:不在发送序列中插入差错控制符号,而是将接收到的符号全部返回到发送端,在发送端逐个进行比较,如果存在差异,则在发送端进行重发。

检错删除:接收方发现错误码后,立即删除,不要求重发。

为了能够在接收端发现或校正误码,需要在发送符号序列上追加被称为监视符号或监视位的差错控制符号。 添加监视符号的方法称为差错控制编码方法或纠错编码方法。 一般来说,监视符号越多,纠错能力越强。 另一方面,添加的监视符号越多,传输效率越低。 纠错是指以传输效率的降低换取传输可靠性的提高。

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

纠错码:改写原信息代码,根据需要增加一些监控代码,使输出端能识别错误代码。

组码的结构:将信息代码分组,每个组附加多个监视代码的代码称为组码。 在组码中,监视符号只监视本码组内的信息符号。

图2.1包代码的基本结构

组码符号: (n,k )。

n表示代码组的总位数,也称为代码组的长度(码长)。

k表示码组内信息符号的数量,

n-k=r表示代码组内的监视符号数或监视位数。

2.3循环码的码解码原理

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

在对循环码进行编码时,首先需要根据给定的循环码的参数(n,k )决定生成多项式g ) x )。 也就是说,作为从1的因子到g ) x ),需要选择一个) n-k )次多项式。 利用循环码的编码特性,即所有的循环码多项式a(x )能够被g ) x )整除来定义产生多项式g ) x )。

根据上述原理,给定的信息比特可以被编码。 如果对于(n,k )循环码,m )表示信息编码多项式,则根据循环码的编码方法,其次数一定小于k。 另一方面,m(x )的次数一定小于n,m ) x )除以g ) x得到剩余r ) x ),r ) x )的次数一定小于g ) x )的次数(n-k )。 在信息位中添加r(x )作为监督位,不久就会在r ) x ) m ) x )上得到系统循环代码。 因此,编码步骤可以概括为以下内容:

乘以m(x )。 该运算实际上是在消息代码中附加(n-k )个“0”。 例如,消息代码为110,这相当于m(x )=x。 如果n-k=7-3=4,则m(x )=等于1100000。

求r(x )。 循环码多项式a(x )可以全部被g ) x )整除,也就是说:

(2.1 ) )。

因此,将m(x )除以g ) x )可以得到商q ) x )和剩余r ) x )。 也就是说

(2.2 ) )。

这样就得到了r(x )。

求a(x )。 编码输出系统循环码多项式a(x )如下:

(2.3 ) )。

例如,对于(7,3 )循环代码,可选地,在信息代码110情况下:

(2.4 )。

上面