讲义61.docx

上传人:b****2 文档编号:1638377 上传时间:2023-05-01 格式:DOCX 页数:20 大小:38.88KB
下载 相关 举报
讲义61.docx_第1页
第1页 / 共20页
讲义61.docx_第2页
第2页 / 共20页
讲义61.docx_第3页
第3页 / 共20页
讲义61.docx_第4页
第4页 / 共20页
讲义61.docx_第5页
第5页 / 共20页
讲义61.docx_第6页
第6页 / 共20页
讲义61.docx_第7页
第7页 / 共20页
讲义61.docx_第8页
第8页 / 共20页
讲义61.docx_第9页
第9页 / 共20页
讲义61.docx_第10页
第10页 / 共20页
讲义61.docx_第11页
第11页 / 共20页
讲义61.docx_第12页
第12页 / 共20页
讲义61.docx_第13页
第13页 / 共20页
讲义61.docx_第14页
第14页 / 共20页
讲义61.docx_第15页
第15页 / 共20页
讲义61.docx_第16页
第16页 / 共20页
讲义61.docx_第17页
第17页 / 共20页
讲义61.docx_第18页
第18页 / 共20页
讲义61.docx_第19页
第19页 / 共20页
讲义61.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

讲义61.docx

《讲义61.docx》由会员分享,可在线阅读,更多相关《讲义61.docx(20页珍藏版)》请在冰点文库上搜索。

讲义61.docx

讲义61

第六章线性分组码

纠错编码(FEC)主要分为分组码和卷积码两大类,这一章主要介绍分组码。

6-1汉明码(HammingCode)

汉明码是一种基本的线性分组码。

6-1-1线性分组码的定义

分组码是一种代数编码,它的基本关系一个码字包括独立的信息元和监督元,其监督元与信息元之间是一种代数关系,如果这种代数关系为线性的则称为线性分组码。

分组码的编码器的模型为:

Encoder

[m]=(mk,mk-1,…m0)[C]=(cn-1,cn-2,…,c0)

[m]为编码器的输入,称为信息码元(信息位),它由k位码元组成。

[C]为编码器的输出,称为码字矢量,它由n位码元组成,其中有k位信息元,r=n-k位监督元。

对于二元编码来说,k位信息码元共有2k个不同组合,根据编码器为一一对应关系,输出的码字矢量也应当有2k种码字。

对于长度为n的二元序列来(n-重)说,共有2n个可能的码字矢量,编码器只是在这2n个可能码矢中选择2k个码字,被选中的2k个n-重称为许用码字,其余的2n-2k个码字称为禁用码字,称这2k个码字矢量的集合为(n,k)分组码。

信息元监督元

 

[线性分组码定义]:

长度为n,有2k个码字的分组码,当且仅当这2k个码字是GF

(2)上n维矢量空间(所有n重)的一个k维子空间时,称为(n,k)线性分组码,简称(n,k)码。

▪二元分组码为线性分组码的充要条件为两个码字的模二加也是一个码字。

▪由于k维子空间是在模2加法下运算的,构成了一个加法交换群(阿贝尔群),所以线性分组码也称为群码。

▪线性分组码的一个重要参数为码率(Coderate):

R=k/n;它实际上也就是编码效率或传输效率。

▪如果(n,k)码位信息位没有变化,与信息码元排列相同,并且与监督位分开,称为系统码,否则称为非系统码。

6-1-2基本监督矩阵(Paritycheckmatrix)

线性分组码可以用GF

(2)上的矢量空间的矩阵和GF

(2)上多项式来描述,对于汉明码这一类分组码用矩阵描述更为方便。

[汉明码定义]:

对于任意正整数r≥3,存在有下列参数的线性分组码,

码长:

n=2r-1

信息位:

k=2r-1-r=n-r

监督位:

r=n-k

最小码距:

dmin=3

这种码称为狭义汉明码,也称为完备汉明码。

这种码的码字矢量为:

[C]={cn-1,cn-2,……c1,c0}

如果对于系统码,其前k位为信息位,后r位位监督位。

信息位=[mk-1,mk-2,……,m0]=[cn-1,cn-2,……,cn-k]

监督位=[cn-k-1,……c1,c0]

由于线性分组码的监督元与信息元之间的线性关系,可以用二元域上的线性方程组描述。

记为:

cn-k-1=h1,n-1cn-1+h1,n-2cn-2+……+h1,n-kcn-k

cn-k-2=h2,n-1cn-1+h2,n-2cn-2+……+h2,n-kcn-k

c0=hr,n-1cn-1+hr,n-2cn-2+……+hr,n-kcn-k在二元域上,hij:

{0,1}

整理这个方程组可得:

h1,n-1

h1,n-2

h1,n-k

1

0

0

cn-1

=[0]

h2,n-1

h2,n-2

h2,n-k

0

1

0

cn-2

hr,n-1

hr,n-2

hr,n-k

0

0

1

c0

记为:

[H][C]T=[0]

[C]T为[C]的转置,称矩阵[H]为分组码的基本监督矩阵(一致校验矩阵,一致监督矩阵)。

可见系统码的基本监督矩阵为:

[H]=[PIr]

[P]=

h1,n-1

h1,n-2

h1,n-k

h2,n-1

h2,n-2

h2,n-k

hr,n-1

hr,n-2

hr,n-k

[Ir]=

1

0

0

0

1

0

0

0

1

[P]为r×k矩阵,[Ir]为r×r单位阵。

[举例]:

(7,4)系统汉明码,n=7,k=4,r=3

[C]=[c6,c5,c4,c3,c2,c1,c0];其中[c6,c5,c4,c3]为信息位,[c2,c1,c0]为监督位。

[H]=

0

1

1

1

1

0

0

1

0

1

1

0

1

0

1

1

0

1

0

0

1

由[H][C]T=[0]可知:

监督方程为:

c2=c5+c4+c3

c1=c6+c4+c3

c0=c6+c5+c3

根据这个方程组可以进行编码。

例如信息码元m=[1011],则有

c2=c5+c4+c3=0+1+1=0

c1=c6+c4+c3=1+1+1=1

c0=c6+c5+c3=1+0+1=0

则汉明码字[C]=[1011010]。

6-1-3生成矩阵(Generatormatrix)

(1)[生成矩阵的基本形式]:

由上面(7,4)汉明码的例子;

可以将基本监督方程扩展写为:

c6=c6

c5=c5

c4=c4

c3=c3

c2=c5+c4+c3

c1=c6+c4+c3

c0=c6+c5+c3

用矩阵表示:

[c6,c5,c4,c3,c2,c1,c0]=

[c6,c5,c4,c3].

1

0

0

0

0

1

1

0

1

0

0

1

0

1

0

0

1

0

1

1

0

0

0

0

1

1

1

1

[c6,c5,c4,c3,c2,c1,c0]=

[m3,m2,m1,m0].

1

0

0

0

0

1

1

0

1

0

0

1

0

1

0

0

1

0

1

1

0

0

0

0

1

1

1

1

可以写为:

[C]=[m3,m2,m1,m0].[G][汉明码字]=[信息码字][生成矩阵]

[G]称为(7,4)汉明码的生成矩阵。

例如:

[m]=[1100],[C]=[1100][G]=[1100110]

可以看出:

(n,k)码的生成矩阵的基本形式为:

[G]=

g1,n-1

g1,n-2

g1,1

g1,0

g2,n-1

g2,n-2

g2,1

g2,0

gk,n-1

gk,n-2

gk,1

gk,0

同样,利用生成矩阵的编码关系为

[C]=[m][G]

而系统(n,k)码的生成矩阵的基本形式应当为

[G]=

1

0

0

g1,n-k-1

g1,0

0

1

0

g2,n-k-1

g2,0

0

0

0

1

gk,n-k-1

gk,0

这种系统码的生成矩阵也称为典型生成矩阵,其基本形式为;

[G]=[Ik,Q],[Q]为k×r矩阵,[Ik]为k×k单位阵。

(2)[系统码基本监督矩阵与典型生成矩阵的关系]:

从生成矩阵与码字矢量的关系可以看出:

[G]矩阵的每一行都是一个码字矢量,分别对应信息码字[10…0],[010…0]…[00…01]的分组码的码字。

由于每一行都是码字,把每一行作为一个码字矢量,都应当满足监督矩阵所规定的监督关系,即应当有:

[H][G]T=[0],同时有:

[G][H]T=[0]

称[H]与[G]为正交矩阵,由

[PIr][IkQ]T=[0]

[P+QT]=[0][P]=[Q]T[Q]=[P]T

P矩阵与Q矩阵互为转置矩阵。

对于系统码,已知监督矩阵[H]就可以确定典型生成矩阵[G],反之,已知生成矩阵也就可以确定监督矩阵。

(3)[生成矩阵的一般性质]:

根据线性分组码的定义,(n,k)线性分组码[C]是二元n重矢量空间中的一个k维子空间,因此,在码字[C]的集合中(2k个码元的码组中),可以找到k个线性独立的码字,g1,g2,…gk;使[C]中的所有码字都是这k个码字的线性组合。

g1=[g1,n-1,g1,n-2,……,g1,0]

g2=[g2,n-1,g2,n-2,……,g2,0]

gk=[gk,n-1,gk,n-2,……,gk,0]

[C]=mn-1g1+mn-2g2+……+mn-kgk

其中系数就是信息码字矢量的元素:

[mn-1,mn-2……mn-k]=[mk-1,mk-2……m0]

▪根据线性矢量空间的知识,这k个码字矢量就可以张成(生成)这个k维子空间,将这k个矢量组成的矩阵就是(n,k)分组码的生成矩阵。

所以生成矩阵是一个k行n列的矩阵。

▪确定(n,k)码的生成矩阵的问题实际上就是确定n-重矢量空间中k维子空间的k个线性无关的码字矢量的问题。

也就是寻找基底的问题。

▪(n,k)码的n-重矢量空间中的一个k维子空间的基底可以有多个,因此可以有不同的生成矩阵[G],但都产生相同的码组。

▪(n,k)码的n-重矢量空间中可以有多个k维子空间,产生不同的码组。

(?

(4)[非系统汉明码]:

可以证明非系统汉明码的一致监督矩阵可以用一种简单方法得到。

例如:

(7,4)非系统汉明码的[H]为

0

0

0

1

1

1

1

[H]=

0

1

1

0

0

1

1

1

0

1

0

1

0

1

其每一例都是二进制数的1,2,3。

利用[H][C]T=[0]的基本关系,可以得到非系统形式的汉明码。

通过[H]矩阵的列换位,可以将[H]变为系统码的形式。

6-1-4校验子与译码(SyndromeMatrixandDecoding)

设发送码字为:

[C]=(cn-1,cn-2,……,c0);由于信道干扰产生差错,反映到接收码字上可以用一个二元矢量[E]表示,称为错误图样(errorpatterns),

[E]=(en-1,en-2,……,e0)

其中:

ei=1表明相应位有错,ei=0表明相应位无错。

这时接收码字可以表示为,

[R]=[C]+[E]=(cn-1+en-1,cn-2+en-2,……c0+e0)

译码器的作用就是从接收码字[R]中得到发送码字的估计值,或者说从接收码字中确定错误图样[E],然后由[C]=[R]-[E]得到发送码字的估计值,如果估计正确则译码正确,否则译码错误。

定义[S]为校验子(伴随式):

[S]=[R][H]T=[C][H]T+[E][H]T=[E][H]T或

[S]T=[H][R]T=[H][C]T+[H][E]T=[H][E]T(本教材的表示方法)

[S]=[sr,sr-1,……s1]=[sn-k,sn-k-1,……s1]

可以看出:

如果校验子矢量[S]≠0,接收码字一定有错误,如果校验子矢量[S]=0,译码器认为接收码字无错误。

下面通过例子说明校验子的作用。

(7,4)汉明码的基本监督矩阵[H]为已知,

[H]=

0

1

1

1

1

0

0

1

0

1

1

0

1

0

1

1

0

1

0

0

1

由其得到的汉明码字如下表:

0000

0000000

0100

0100101

1000

1000011

1100

1100110

0001

0001111

0101

0101010

1001

1001100

1101

1101001

0010

0010110

0110

0110011

1010

1010101

1110

1110000

0011

0011001

0111

0111100

1011

1011010

1111

1111111

假如接收码字为[R]=[0100101]可以看到:

[S]T=[H][R]T=[0]

这时表明无差错;

如果接收码字有一位差错,[R]=[0110101];即错误图样[E]=[0010000];接收码字的第三位错。

这时校验子矢量为:

[S]T=

0

=

1

0

1

1

1

1

0

0

1

1

1

0

1

1

0

1

0

0

1

1

1

0

1

0

0

1

1

0

0

1

相当于:

[S]T=

0

=

0

0

1

1

1

1

0

0

1

1

1

0

1

1

0

1

0

0

1

1

1

0

1

0

0

1

0

0

0

0

可见这时校验子[S]T不为0,译码器认为有错,且正好等于[H]的第三列,表明接收码字的第三位码元错了。

这时判断发送码字位[0100101],译码正确。

如果接收码字由两位差错,[R]=[0111101];即错误图样[E]=[0011000];接收码字的第三、四位错。

这时校验子矢量为:

[S]T=

0

=

0

0

1

1

1

1

0

0

1

0

1

0

1

1

0

1

0

1

0

1

1

0

1

0

0

1

0

1

0

0

可见这时,校验子矢量不为0,但是如果这时接收机按原来的译码方法,将认为第7位出错。

但如果接收机设计为检错系统,当校验子不为0,就认为有错。

因为(7,4)汉明码的最小码距为3,其纠错检错能力是正确的。

注意:

这里告诉我们一个问题,纠错码的选用要小心,要根据信道条件来确定,如果信道较差,而使用的纠错码能力不够,可能使译码错误反而增加,不仅错误的码元没有纠正,原来正确的码元还被错误的改变。

错上加错。

这种纠检错能力是由码组的最小码距决定的。

可以验证:

下面的(7,3)线性分组码的最小码距为4,可以纠一位错,同时检两位错,其基本监督矩阵为:

[H]=

1

0

1

1

0

0

0

1

1

1

0

1

0

0

1

1

0

0

0

0

0

0

1

1

0

0

0

1

6-1-5分组码的纠检错能力

已知(n,k)分组码的最小码距,就可以知道其纠检错能力,例如,当最小码距为4时,可以纠一位错,同时检两位错,也可以用于检三位错,这与上一章介绍的结论是一样的。

这里将进一步介绍有关性质。

[定理1]:

任一个(n,k)线性分组码,若要纠正t位错误,其充要条件是一致监督矩阵[H]中的任何2t个列向量线性无关。

或者说:

若使一个(n,k)线性分组码的最小码距为d,其一致监督矩阵[H]中的任何d-1个列向量线性无关。

或者说:

若使一个(n,k)线性分组码的最小码距d,等于一致监督矩阵[H]中和为0的最小列数。

[推理1]:

改变一致监督矩阵的列的位置,不会影响列的相关性,也就不会影响其最小码距。

但可能产生不同的码组,其纠错检错能力是相同的。

根据这个推理,非系统汉明码的一致监督矩阵,经过列换位,可以得到系统汉明码的一致监督矩阵。

例如:

(7,4)非系统汉明码的监督矩阵位,

0

0

0

1

1

1

1

[H]=

0

1

1

0

0

1

1

1

0

1

0

1

0

1

将其进行列换位,可以得到:

1

1

0

1

1

0

0

[H]=

1

1

1

0

0

1

0

0

1

1

1

0

0

1

由于前面4列的位置可以任意放置,编出的码字可以不同,但纠错能力是相同的。

[推理2]:

(n,k)线性分组码的最小码距dmin的最大值为n-k+1=r+1。

dmin≤r+1

这说明,要想提高纠检错能力,只能增加监督元的位数。

例如:

1

1

0

0

[H]=

1

0

1

0

1

0

0

1

这个监督矩阵的最小码距位dmin=4,因为,它由d-1=3个列向量线性无关,任何两个列或三个列相加都不为0。

这时最小码距达到其最大值。

实际上这是一个n=4,k=1,r=3的简单重复码,

1—0000

2—1111

它可以纠一位,同时检两位,或检4位。

[定理2]:

线性分组码的最小码距等于非0码字的最小码重。

[分组码的检错能力]:

▪最小码距为dmin的分组码,能检出所有dmin-1位或更少位错误的错误图样。

▪它不能检测出所有的dmin位错误,但可以检出一些(大部分)dmin位或更多位的码元错误。

▪事实上,(n,k)码能检出长度为n的2n-2k个错误图样。

因为为禁用码字的个数,收到禁用码字就等于检出错码。

令一个(n,k)线性分组码,Ai为码组中重量为i的码字的个数,码字集合(码组)的重量分布为A0,A1,…An。

这时码字在误码率(转移概率)为pe的BSC信道上的漏检概率为:

其中pei(1-pe)n-i为错误图样(en,en-1,…e1)中出现i个1,n-i个0的概率,Ai为此错误图样分布正好错成许用码字的数量。

也就是错误图样等于许用码字的可能性就是漏检概率。

例如:

(7,4)汉明码的重量分布为:

A0=1,A1=A2=0,A3=A4=7,A5=A6=0,A7=1。

Pu=7p3(1-p)4+7p4(1-p)3+p7(根据公式A0一项没用,所以只有三项)

当pe=10-2时,漏检概率为7×10-6。

可见其实际检错能力远远高于最低检错能力。

如果按照最小码距与检错能力的分析,其漏检概率为:

但是对于短码可以这样计算,对于长码,这样计算是很困难的。

[分组码的纠错能力]:

当(n,k)分组码的最小码距为d=2t+1,它可以纠正t个或更少的错误。

但实际上,纠错能力为t的分组码还可以纠正一些t+1位或更多位错误的错误图样(在后面的译码原理分析中可以看出),但较难精确计算,其错误译码概率的上限为:

6-1-6标准阵与校验子译码

(n,k)分组码的译码步骤为:

▪由接收码字R计算校验子[S]T=[H][R]T。

▪若[S]=0,则译码器认为接收码字没错,否则有错,并由[S]计算错误图样[E]。

▪由错误图样进行译码,估计发送的码字[C]=[R]-[E]=[R]+[E](模2减法等于加法)。

其中最困难的是第二步,确定错误图样,即错误定位。

这里介绍一个基本的译码方法,标准阵译码,即查表法译码。

(n,k)分组码的2k个码字,是n维矢量空间Vn中的一个k维子空间,它在GF

(2)上是一个子群。

利用分元陪集的方法,可以利用该子空间的所有2k元素,生成n为空间中的所有2n个元素。

产生的方法如图。

码字(子群)

陪集首

C0

C1

C2

C2k-1

禁用码字

E1

C1+E1

C2+E1

C2k-1+E1

E2

C1+E2

C2+E2

C2k-1+E2

E2r-1

C1+E2r-1

C2+E2r-1

C2k-1+E2r-1

▪将2k个码字放在表中的第一行(第一陪集),该子群的加法单位元C0=(00…0)放在第一列,作为第一个陪集的陪集首。

▪在所有禁用码字中,挑出一个汉明重量最小的作为第二行的第一列,作为第二个陪集的陪集首。

将第一行的相应元素与其陪集首相加,构成第二个陪集。

▪依次进行,构成第2r个陪集。

这个表称为标准译码表,简称标准阵。

译码器按以下规则进行:

收到码字R必然在这个表中,如果落在表中某一列,译码器就译成第一行的相应码字,由此可以看出:

译码表的第一列(陪集首)相当于错误图样,如果实际错误图样完全包含在表中的第一列中,译码器就不会产生错误译码,否则就可能产生错误译码。

因此问题的关键是如何选择译码表的陪集首。

我们知道,在随机信道中,错一个码元的概率大于错两个码元的概率,错两个码元的概率会大于错三个码元的概率。

错误图样的汉明重量越小,其产生的可能性越大,应用译码表正确译码的可能性越大,错误译码概率越小。

所以在设计译码表是应选择重量最轻的禁用码字作为陪集首。

这一译码设计满足最小汉明距离译码准则,可以证明在BSC信道条件下,最小汉明距离译码等价于最大似然译码。

[例题]:

设一个(5,2)线性分组码,该码的最小汉明距离为dmin=3,可以纠正一个码元的错误。

其一致监督矩阵为:

[H]=

1

1

1

0

0

1

0

0

1

0

1

1

0

0

1

其码字为[C]=(c4,c3,c2,c1,c0),其信息元为(c4,c3),监督元为(c2,c1,c0)。

编码后得到的四个码字分别为:

C0=(00000)

C1=(01101)

C2=(10111)

C4=(11010)

这时的标准译码表为

许用码字

00000

01101

10111

11010

禁用码字

10000

11101

00111

01010

01000

00101

11111

10010

00100

01001

10011

11110

00010

01111

10101

11000

00001

01100

10110

11011

00011

01110

10100

11001

00110

01011

10001

11100

例如接收码字R=(10101),则由译码表可知,按最大似然译码准则译码器输出为(10111),在译码表中的第一列中可以看到,在禁用码字部分,前五行为只错一位的错误图样,即汉明重量为最小(dmin=1)的码字矢量。

但由这五个汉明距离最小的码矢作为陪集首,并没有构成全部n维空间的码字矢量,所以这个译码表又选择了两个汉明距离较小的禁用码字作为陪集首。

所以按这种译码表译码,不仅可以纠正所有单个错误,而且可以纠正两种类型的两位错误。

可以得到错误译码概率为:

PE=1-[5pe(1-pe)4-2pe2(1-pe)3]

利用标准译码表,需要把2n个码字矢量存在译码器中,译码器的复杂性会随n指数增加。

当n较大时,这种方法不可能实现。

解决的方法之一,错误图样与校验子矢量有一一对应的关系,根据这种关系,可以将译码表简化。

例如(5,2)线性码的简化译码表为

错误图样

00000

10000

01000

00100

00010

00001

00011

0011

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2