讲义62.docx
- 文档编号:7154486
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:25
- 大小:71.81KB
讲义62.docx
《讲义62.docx》由会员分享,可在线阅读,更多相关《讲义62.docx(25页珍藏版)》请在冰豆网上搜索。
讲义62
6-2循环码(CyclicCode)
循环码是线性分组码的最重要的一类码,它的结构完全建立在有限域多项式的基础上。
它具有两个基本特点:
一是编码电路与译码电路非常简单,易于实现;二是其代数性质好编码译码分析方便,有一些好的译码方法。
6-2-1循环码的描述
[循环码定义]:
一个(n,k)线性分组码C,如果码组中的一个码字的循环移位也是这个码组中的一个码字,则称C为循环码。
C(0)={cn-1,cn-2,……c1,c0}∈C
C
(1)={cn-2,cn-3,……c0,cn-1}∈C
称为具有循环自闭性。
[循环码的多项式描述]:
循环码可以用监督矩阵和生成矩阵描述,但更多地用域上多项式来描述,一个(n,k)循环的码字矢量C(0)用一个n-1次多项式描述,可以表示为:
C(x)=cn-1xn-1+cn-2xn-2+……+c1x+c0
这个多项式称为码字多项式。
码字矢量的循环移位可以用x乘上C(x)后的模xn-1(xn+1)来表示。
xC(x)=x(cn-1xn-1+cn-2xn-2+……+c1x+c0)
=cn-1xn+cn-2xn-1+……+c1x2+c0x
=cn-2xn-1+……+c1x2+c0x+cn-1(模xn+1)
模xn+1相当于xn+1=0;xn=1
[循环码举例]:
(7,4)系统循环码的编码及码字多项式如下表:
信息码字
循环码字
码字多项式
g(x)的倍式
倍式编码
0000
0000000
0
0
0000
0001
0001011
x3+x+1
1
0001
0010
0010110
x4+x2+x
x
0010
0011
0011101
x4+x3+x2+1
x+1
0011
0100
0100111
x5+x2+x+1
x2+1
0101
0101
0101100
x5+x3+x2
x2
0100
0110
0110001
x5+x4+1
x2+x+1
0111
0111
0111010
x5+x4+x3+x
x2+x
0110
1000
1000101
x6+x2+1
x3+x+1
1011
1001
1001110
x6+x3+x2+x
x3+x
1010
1010
1010011
x6+x4+x+1
x3+1
1001
1011
1011000
x6+x4+x3
x3
1000
1100
1100010
x6+x5+x
x3+x2+x
1110
1101
1101001
x6+x5+x3+1
x3+x2+x+1
1111
1110
1110100
x6+x5+x4+x2
x3+x2
1100
1111
1111111
x6+x5+x4+x3+x2+x+1
x3+x2+1
1101
可以看出:
每个码字的循环移位仍然属于这个码组,
注意:
并不是说这个码组是由一个码字的循环移位构成的,本例中是由四个码字的循环移位构成的。
[生成多项式的定义]:
在一个(n,k)循环码中,有且仅有一个次数为n-k=r的码字多项式,记为:
g(x)=xr+gr-1xr-1+……+g1x+1
同时:
每个码字多项式都是g(x)的倍式;每个次数小于等于n-1的g(x)的倍式必为一个码字多项式。
这时称g(x)的(n,k)码的生成多项式。
从上面的例子可见,g(x)=x3+x+1为(7,4)循环码的生成多项式。
[生成多项式的性质]:
▪循环码C中次数最低的非零码字多项式是唯一的,其次数为r=n-k。
▪令g(x)=xr+gr-1xr-1+……+g1x+g0为一个(n,k)循环码C中最低次数码字多项式,则其常数项必为g0=1。
[定理1]:
(n,k)循环码的生成多项式g(x)是xn+1的因式。
{证明}:
已知g(x)为一个n-k次多项式,则xkg(x)为一个n次多项式,则必有:
因为xkg(x)是g(x)的循环移位,它也是一个码字多项式,所以一定为g(x)的倍式,即有:
g(k)(x)为g(x)的循环移位在模xn+1下的结果,因此有:
g(k)(x)=q(x)g(x),由上面的关系式可知:
xkg(x)=(xn+1)+g(k)(x)
xn+1=xkg(x)+q(x)g(x)=[xk+q(x)]g(x)
因此,g(x)为xn+1的因式。
[定理2]:
若g(x)是一个n-k次多项式,且为xn+1的因式,则g(x)生成一个(n,k)循环码。
这个定理说明:
xn+1的次数为n-k的任何一个因式,均可以生成一个(n,k)循环码。
对于较大的n,xn+1可以有多个n-k次多项式,产生不同的(n,k)循环码,但可能有好有坏。
例如:
多项式x7+1可以分解为:
x7+1=(x3+x+1)(x3+x2+1)(x+1)
可以看出有两种(7,4)循环码的生成矩阵g(x)=(x3+x+1)和g(x)=(x3+x2+1)。
还可以产生一种(7,6)循环码,
6-2-2循环码的编码方法
[系统循环码的编码方法]:
已知循环码的生成矩阵可以按以下步骤产生系统循环码。
首先定义以下多项式:
m(x)=mk-1xk-1+mk-2xk-2+……+m1x+m0为信息码字多项式;
c(x)=cn-1xn-1+cn-2xn-2+……+c1x+c0为循环码字多项式;
g(x)=xr-1+gr-2xr-2+……+g1x+1为生成多项式;
系统码的编码分为三步:
▪用xn-k乘上m(x);
▪用g(x)除以xn-km(x),得到模g(x)的余式r(x)
▪c(x)=xn-km(x)+r(x)为系统循环码的码字多项式。
[例题1]:
(7,4)循环码的生成多项式为g(x)=x3+x+1
求m=[1010]的循环码。
解:
m(x)=x3+x,xn-k=x3;
xn-km(x)=x3(x3+x)=x6+x4
r(x)=x+1
C(x)=xn-km(x)+r(x)=x6+x4+x+1
[C]=[1010011]
[例题2]:
(7,3)循环码的生成多项式为g(x)=x4+x3+x2+1=(x+1)(x3+x+1)
求:
[m]=[010]的循环码字[C]
解:
m(x)=x;xn-km(x)=x4x=x5
C(x)=x5+x2+x+1
[C]=[0100111]
[非系统循环码的编码方法]:
已知循环码的生成矩阵,可以方便的求出非系统循环码,
C(x)=m(x)g(x)
例如:
m=[1101]g(x)=x3+x+1
C(x)=(x3+x2+1)(x3+x+1)=x6+x4+x3+x5+x3+x2+x3+x+1=x6+x5+x4+x3+x2+x+1
[C]=[1111111]
m=[0101];c(x)=(x2+1)(x3+x+1)=x5+x3+x2+x3+x+1=x5+x2+x+1
[C]=[0100111]
[循环码的生成矩阵]:
循环码可以用域上多项式描述,也可以用生成矩阵描述。
已知g(x)为循环码C中的一个码字多项式,由循环码的循环特性可知,可以证明:
在(n,k)循环码的码字多项式中,g(x),xg(x),……xk-1g(x)等k个码字多项式必是线性无关(相互独立的)的。
根据线性空间的特性,可知,它们是一个k维子空间的基底,即由它们的线性组合可以生成这个k维子空间的2k个码字。
再根据线性分组码生成矩阵的定义,它的行向量是由k个线性无关的码字构成的,可以得到(n,k)循环码的一个多项式矩阵为:
[G(x)]=
xk-1g(x)
xk-2g(x)
…
g(x)
相应的生成矩阵为
[G]=
gn-k
gn-k-1
…
g1
g0
0
0
…
0
0
gn-k
gn-k-1
…
g1
g0
0
…
0
…
0
…
…
0
gn-k
gn-k-1
…
g1
g0
由这个基本关系式可以看出,当输入信息码字矢量为(mk-1,mk-2,……m0)时,相应的码字多项式为:
C(x)=(mk-1,mk-2,……m0)G(x)
=(mk-1xk-1+mk-2xk-2+……+m0)g(x)
=m(x)g(x)
利用这种方法产生的循环码为非系统循环码,因为,[G(x)]为非标准型生成矩阵,(非典型生成矩阵)。
这个非标准型生成矩阵可以通过矩阵的初等变换转换为标准型生成矩阵。
可以通过以下例子说明。
[例题]:
已知(7,4)循环码的生成多项式为g(x)=x3+x+1,其非标准型生成矩阵为:
[G(x)]=
x3g(x)
=
x6+x4+x3
=
1
0
1
1
0
0
0
x2g(x)
x5+x3+x2
0
1
0
1
1
0
0
xg(x)
x4+x2+x
0
0
1
0
1
1
0
g(x)
x3+x+1
0
0
0
1
0
1
1
利用不同的矩阵变换可以得到不同的标准型生成矩阵。
这种变换包括:
▪列换位;
▪初等行变换;
通过以上两种方法,可以得到标准型生成矩阵:
[G]=
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
只使用初等行变换可以得到标准生成矩阵:
[G]=
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
可知标准型生成矩阵是不唯一的。
6-2-3校验子与循环码的译码原理
设发送的码字多项式位C(x),错误图样多项式位E(x),则接收码字多项式为:
R(x)=C(x)+E(x)
译码器的工作过程为:
▪由接收码字多项式R(x)计算校验子多项式S(x);
▪根据校验子多项式S(x)计算错误图样多项式E(x);
▪利用R(x)-E(x)=C(x)计算译码器输出的估计值。
发送码字多项式为:
C(x)=cn-1xn-1+cn-2xn-2+……c1x+c0
接收码字多项式为;
R(x)=rn-1xn-1+rn-2xn-2+……+r1x+r0
校验子多项式为:
E(x)=en-1xn-1+en-2xn-2+……e1x+e0
由R(x)=C(x)+E(x)可知:
ri=ci+eIi=0,1,…n-1
这时定义校验子多项式为:
[模g(x)]
即:
S(x)≡E(x)≡R(x)[模g(x)]
也就是说,接收码字多项式除以g(x)的余式多项式为校验子多项式。
如果:
S(x)=0,表示接收码字无错;
如果:
S(x)≠0,表示接收码字有错;
(n,k)循环码的校验子多项式的一般表达式为:
S(x)=sr-1xr-1+sr-2xr-2+……+s1x+s0
即校验子多项式S(x)为一个r-1次多项式。
其校验子矢量为:
[S]=[sr-1,sr-2,……s1,s0]
它共有2r个状态,当2r≥n+1时,即可以纠一位错。
[例题]:
(7,4)循环码的校验子及译码,
已知:
(7,4)循环码的生成矩阵为g(x)=x3+x+1
考虑接收码字不错或只错一位时的校验子多项式。
发送码字多项式为:
C(x)=cn-1xn-1+cn-2xn-2+……c1x+c0
接收码字多项式为;
R(x)=rn-1xn-1+rn-2xn-2+……+r1x+r0
校验子多项式为:
E(x)=en-1xn-1+en-2xn-2+……e1x+e0
ei
E(x)
S(x)
[s2,s1,s0]
错误情况
0
0
0
000
无错
e0=1
1
1
001
r0
e1=1
x
x
010
r1
e2=1
x2
x2
100
r2
e3=1
x3
x+1
011
r3
e4=1
x4
x2+x
110
r4
e5=1
x5
x2+x+1
111
r5
e6=1
x6
x2+1
101
r6
这个表给出了接收码字不出错或只错一位时校验子多项式和校验子矢量的结果。
根据这个表可以进行译码。
例如:
发送码字为:
C={0010110},接收码字为:
R={0011110},表明r3错。
接收码字多项式为:
R(x)=x4+x3+x2+x,g(x)=x3+x+1,校验子多项式为:
[模g(x)]
S(x)=x+1[s2,s1,s0]=[011]查表可知r3出错。
已知(7,4)循环码的最小汉明距离dmin=3,只能纠一位错,当接收码字出现两位错时将不能纠正。
例如:
发送码字为:
C={0010111},接收码字为:
R={0011111},表明r3和r0错。
R(x)=x4+x3+x2+x+1
S(x)=x;[s2,s1,s0]=[010],根据校验子表可知,译码器判为r1错,这时产生译码错码。
6-2-4循环码的编码电路
根据循环码的编码方法,可知编码电路应当是一个多项式的除法电路,它是码字多项式的循环一位后除以生成多项式。
[系统码编码器]:
为了构成系统码,可知C(x)=xn-km(x)+r(x)
r(x)=xn-km(x)/g(x)[模g(x)]
以(7,4)汉明码为例:
g(x)=x3+x+1
编码器电路如图所示:
它由n-k级移位寄存器构成。
门1
门2
D22
D1
D0
或门
C(x)
C(x)
输入m(x)
这是一个由n-k=3级移位寄存器及加法器、或门和门控电路构成的。
▪移位寄存器的初始状态为全0,门1开,门2关。
信息码元以[m3,m2,m1,m0]依次输入编码器。
信息码元一方面通过或门输出,另一方面送入除法电路。
在除法电路的右端输入m(x)相当于完成了循环移位n-k=3位。
▪四次移位后,信息码元已输出,形成了系统循环码的前四位信息位。
同时寄存器中存放的就是余式多项式的系数,从右到左分别是(c2,c1,c0)。
▪门1关,门2开,经三次移位,这三个监督位从编码器输出。
▪门1开,门2关,进行第二个码字的编码。
m=[1001],C=[1001110]的编码过程如下表:
时钟
信息码字
寄存器内容
输出码字
D0
D1
D2
0
0
0
0
1
1
1
1
0
1
2
0
0
1
1
0
3
0
1
1
1
0
4
1
0
1
1
1
5
0
0
1
1
6
0
0
0
1
7
0
0
0
0
(7,3)循环码的生成矩阵为:
g(x)=x4+x3+x2+1
其编码电路为:
门1
D2
D3
D1
门2
D0
或门
C(x)
输入m(x)
由于n-k=r=4所以编码器有四级移位寄存器。
[非系统循环码编码电路]:
非系统循环码的产生为:
C(x)=m(x)g(x),可知其编码器为如下:
D0
D1
D2
m(x)
例如m=[1110],编出的循环码字为:
C=[1100001]
C(x)=m(x)g(x)=(x3+x2+x)(x3+x+1)=x6+x5+1
6-3循环码的译码
循环码的编码电路由n-k级移位寄存器构成,比较简单,但是循环码的译码电路就相对比较复杂。
因此,循环码的译码方法是研究编码理论和编码技术的重要内容。
线性分组码(不仅是循环码)的译码大体分为两类:
一是利用码字的代数结构进行译码,称为代数译码方法。
另一类不仅利用代数结构,而且还利用概率理论,称为概率译码。
这里我们重点介绍代数译码方法,包括捕获(错)译码,大数逻辑译码。
6-3-1梅吉特(Meggit)译码器
上面我们介绍了循环码的校验子(伴随式)译码的基本原理,已知:
S(x)=R(x)/g(x)[modg(x)]
这里首先介绍一个有关校验子多项式的重要特性。
[定理]:
设S(x)是接收码字多项式R(x)的校验子多项式,则R(x)的循环移位xR(x)[modxn+1]的校验子S1(x)是S(x)在g(x)除法电路中无输入时右移一位的结果。
S1(x)≡xS(x)[modg(x)]
[证明]:
由校验子多项式的定义可知,
S(x)≡R(x)[modg(x)],两边同时乘以x可得;
xS(x)≡xR(x)[modg(x)]
这时如果定义
S1(x)≡xR(x)[modg(x)]
显然有S1(x)≡xS(x)[modg(x)]
[定理的推广]:
这个定理的结果可以推广为,对于任意给定的j=1,2,…,n-1,必有xjR(x)的校验子多项式为:
Sj(x)=xjR(x)/g(x)≡xjS(x)[modg(x)]
同时有任意多项式a(x)乘R(x)所对应的校验子多项式
Sa(x)=a(x)R(x)/g(x)≡a(x)S(x)[modg(x)]
校验子多项式的这些性质,在循环码的译码中有重要作用。
[梅吉特译码原理]:
如果:
C(x)为循环码C中的一个码字多项式,则xC(x)[modxn+1]也是这个码组中的一个码字。
如果:
S(x)为R(x)=C(x)+E(x)的校验子多项式,则xS(x)也必然是xR(x)=xC(x)+xE(x)的校验子多项式。
这表明:
如果E(x)是一个译码器可以纠正的错误图样(相当于译码标准阵中的陪集首),则xE(x)也是一个可以纠正的错误图样,xjE(x)(j=1,2,…,n-1)也是可以纠正的错误图样。
这样就可以根据这种循环关系,对错误图样分类,将任一错误图样及其所有n-j次的循环移位归为一类。
同一类的错误,可以使用同一个译码单元电路,可以简化译码器电路的复杂性。
例如:
可以将“只错一位”的错误图样(100…0),(010…0),…,(00…01)归为一类,这样用一个错误图样(100…0)的校验子S(x)代表这一类错误图样的校验子。
这样可以大大减少译码器要识别的错误图样类别的个数:
一个(n,k)循环码,要纠正t位错误,译码器要识别的错误图样总数为:
例如(7,4)循环码可以纠正一位错,n=7,t=1,Ne=C71=7。
而通过分类后,译码器需要识别的错误图样的类别数为:
例如(7,4)循环码的错误图样类别数为Ng=1。
可以看到通过分类识别,可以简化循环码译码器的复杂性。
[例题]:
(7,4)循环码的生成矩阵为g(x)=x3+x+1,通过前面分析可知,只要接收码字矢量只错一位,译码器总可以正确译码。
在构造此译码器的错误图样识别电路时,只要识别一个错误图样例如,E6=[1000000]就可以了。
这个错误图样对应的校验子矢量为S=[101],由此可以得到一种译码器结构如图:
D1
D0
D2
r07级移位寄存器r6
门
C(x)
R(x)
这个译码器上面是一个g(x)除法电路,下面是一个7级移位寄存器作为缓存器,中间的反相器和一个与门组成了(101)校验子识别电路。
译码过程如下:
▪开始译码时门打开,移位寄存器内容位全0。
收到的码字多项式位R(x)=r6x6+…+r0由高次到低次分别输入到7级缓存器和除法电路,7次移位后,缓存器存入整个码字,除法电路[S(x)=E(x)/g(x),E(x)=x6]得到校验子S0=[s2,s1,s0]。
这时门关上,进行译码。
▪如果S0(x)=x6=x2+1[modg(x)],这时[101]识别电路输出为1,表明r6为有错。
▪这时译码器继续移位,通过[101]识别电路可以将r6位的错误纠正。
▪在纠错的同时,[101]识别电路的输出又反馈到除法电路的输入端,以消除错误码元对除法电路的下一个校验子计算的影响。
校验子产生电路开始在无输入的情况下移位,相当以开始产生xjS(x)。
本电路中,第7次移位后产生了校验子S0,第8次移位时对r6进行纠正,同时将[101]识别电路的输出的1输入到除法电路的输入端,结果使除法电路的寄存器状态为[000],消除了e6的影响。
下面我们看一下,利用这个电路能否纠正其它错误图样的接收码字。
▪如果E(x)=x5,表明e5=1或E=[0100000],这时经过前7次移位后得到的校验子多项式为S0(x)=x5=x2+x+1[modg(x)],这时除法电路的移位寄存器状态为[111],[101]识别电路的输出为0,说明r6正确,不必纠正。
▪第8次移位后,r5移位到缓存器的最右端。
同时校验子除法电路的结果根据定理可知:
(通过电路分析也可以看出)
S1(x)=xS0(x)=xE(x)=x6=x2+1[modg(x)]产生[101]状态;
这时[101]识别电路输出1,对r5进行纠正。
可以看到,利用循环码的循环特性,可以简化译码器的复杂性。
从上述译码过程中可以看到,(n,k)循环码的译码器译一个码字共需要2n次移位,不能实现连续译码,为了实现连续译码,可以再加一套除法电路,
门1
4级缓存器
门2
其工作过程如下:
▪译码前两个移位寄存器为全0状态,门1开,门2关,当k=4次移位后,4级缓存器接收到码字的前4位信息位。
▪此时,门1关。
再移位n-k=3次后,上面的除法电路得到校验子S0(x),
▪这时门2开,将上面除法电路得到的校验子送入下面的除法电路,随即门2关闭,且上面的除法电路清0。
▪门1再次打开,4级缓存器一边送出第一组信息,一边接收第二个码字的信息位,与此同时,上面的除法电路计算第二个码字的校验子,下面的除法电路对第一组码字进行纠错。
▪以上是对系统码而设计的电路,如果是非系统码,k级缓存器应改为n级,而且要在得到的码字中恢复信息位。
根据m(x)=C(x)/g(x),应再加一个除法电路。
上面介绍的系统循环码的一般译码器称为梅吉特译码器。
6-3-2捕错译码
循环码的译码器的复杂性主要取决于由校验子确定错误图样的组合逻辑电路的复杂性,另外一种译码方法称为捕错译码,其特点是适应于纠突发错误码。
[工作原理]:
设C(x)是一个纠t位错误的(n,k)系统循环码的码字多项式,而相应的接收码字多项式为:
R(x)=C(x)+E(x),译码器得到的校验子多项式为:
S(x)=R(x)/g(x)=E(x)/g(x)≡E(x)[modg(x)]
≡EI(x)+EP(x),[modg(x)]
其中:
EI(x)=en-1xn-1+en-2xn-1+…+en-kxn-k
EP(x)=en-k-1xn-k-1+…+e1x+e0
EI(x)为k位信息位的错误图样,EP(x)是n-k=r位监督位的错误图样。
这时可以看到:
如果:
错误图样多项式E(x)的次数=n-k-1=r-1,
即码字中的错误集中在n-k=r监督位上,
即en-1=en-2=…=en-k=0;
则:
EI(x)=0,E(x)=EP(x)。
又因为:
生成多项式g(x)的次数位n-k=r,
所以:
校验子多项式S(x)=E(x)/g(x)=EP(x),[modg(x)]
得到的结论是:
对于具有这样的错误图样的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 讲义 62