这样,一个k比特信息的线性分组码可以映射到一个长度为n码组上,该码组是从M=2k个码组构成的码集中选出来的,这样剩下的码组就可以对这个分组码进行检错或纠错。
对于码组长度为n、信息码元为k位、监督码元为r=n-k位的分组码,常记作(n,k)码,如果满足2r-1≥n,则有可能构造出纠正一位或一位以上错误的线性码。
(2)生成矩阵和校验矩阵
线性分组码码空间是由个线性无关的基底,…,张成的维重子空间,码空间的所有元素都可以写成个基底的线性组合,即
这种线性组合特性正是线性分组码。
为了深化对线性分组码的理论分析,可将其与线性空间联系起来。
由于每个码字都是一个二进制的n重,及二进制n维线性空间Vn中的一个矢量,因此码字又称为码矢。
用表示第个基底并写成矩阵形式再将个基底排列成行列的矩阵,得:
=
个基底即的个行矢量线性无关,矩阵的秩一定等于,当信息元确定后,码字仅由矩阵决定,因此称这矩阵为该线性分组码的生成矩阵。
基底不是唯一的,生成矩阵也就不是唯一的。
事实上,将个基底线性组合后产生另一组个矢量,只要满足线性无关的条件,依然可以作为基底张成一个码空间。
不同的基地有可能生成同一个码集,但因编码涉及码集和映射两个因素,码集一样而映射方法不同也不能说是同样的码。
基底的线性组合等效于生成矩阵的行运算,可以产生一组新的基底。
利用这点可使生成矩阵具有如下的“系统形式”:
这里是矩阵;是单位矩阵,从而保证了矩阵的秩是。
与任何一个分组线性码的码空间相对应,一定存在一个对偶空间。
事实上,码空间基底数只是维重空间全部个基底的一部分,若能找出另外个基底,也就找到了对偶空间。
既然用个基底能产生一个分组线性码,那么也就能用个基底产生包含个码字的分组线性码,称码是码的对偶码。
将空间的个基底排列起来可构成一个矩阵,将这个矩阵称为码空间的校验矩阵,而它正是对偶码的生成矩阵,它的每一行是对偶码的一个码字。
和的对偶是互相的,是的生成矩阵又是的校验矩阵,而是的生成矩阵,又是的校验矩阵。
由于的基底和的基底正交,空间和空间也正交,它们互为零空间。
因此,线性码的任意码字一定正交于其对偶码的任意一个码字,也必定正交于校验矩阵的任意一个行矢量,即。
由于生成矩阵的每个行矢量都是一个码字,因此必有。
对于生成矩阵符合“系统形式”的系统码,其校验矩阵也是规则的,必为:
上式中的负号在二进制码情况下可以省略,因为模2减法和模2加法是等同的。
(3)信息码元及对应码字的关系
(n,k)码字中的任一码字,均可以由这组基底的线性组合生成,即
式中的是个信息元组的信息组,因此其信息码元及对应码字的关系如表一所示:
信息组
码字
000
0000000
001
0011101
010
0100111
011
0111010
100
1001110
101
1010011
110
1101001
111
1110100
表一信息码元及对应码字关系
2.线性分组码的伴随式与译码
(2)码的距离及检错能力
两个码字之间,对应位取之不同的个数,称为汉明距离,用d表示。
一个码的最小距离定义为,两个码字之间的距离表示了它们之间差别的大小。
距离越大,两个码字的差别越大,则传送时从一个码字错成另一码字的可能性越小。
码的最小距离愈大,其抗干扰能力愈强。
任何最小距离的线性分组码,其检错能力为纠错能力t为
最小距离表明码集中各码字差异的程度,差异越大越容易区分,抗干扰能力自然越强,因此成了衡量分组码性能最重要的指标之一。
估算最小距离是纠错码设计的必要步骤,最原始的方法是逐一计算两两码字间距离,找到其中最小者。
含个码字的码集需计算个距离后才能找出,费时太多,实用中还有一些更好更快的方法。
线性分组码的最小距离等于码集中时非零码字的最小重量,即
这里利用了群的封闭性,由于分组码是群码,任意两码字之和仍是码字,即。
因此任意两码字间的汉明距离其实必是另一码字的重量,表示为。
于是可将最小距离问题转化为寻找最轻码字问题,含个码字的码集仅需计算次。
码的检错能力取决于码的最小距离,但还需说明的另一点是码的总体检错能力不仅仅与有关。
检错能力只是说明距离的差错一定能纠,并非说距离大于的差错一定不能纠。
事实上,如果有个码子,就存在个距离,这并非相等的。
比如最小距离,检错力,是由码的距离决定,
只要朝方向偏差大于1就会出现译码差错;然而若朝方向偏差3,译码时仍可正确地判断为而非。
可见,总体的、平均的纠错能力不但与最小距离有关,而且与其余码距离或者说与码子的重量分布特性有关,把码距(码重)的分布特性称为距离(重量)谱,其中最小的重量就是。
正如信息论各符号等概时熵最大一样,从概念上可以想象到:
当所有码距相等时是(重量谱为线谱)码的性能应该最好;或者退一步说,当各码距相当不大时(重量谱为窄谱)性能应该叫好。
事实证明确实如此,在同样的条件下,窄谱的码一般比宽谱的码更优。
纠错重量谱的研究具有理论与现实意义,不仅仅是计算各种译码差错概率的主要依据,也是研究码的结构、改善码集内部关系从而发现新的好码的重要工具。
但目前除了少数几类码如汉明码、极长码等的重量分布已知外,还有很多码的重量分布并不知道,距离分布与性能之间确切的定量关系对于大部分码而言尚在进一步研究当中,特别当和较大时,要得出码重分布是非常困难的。
重量谱可以如下多项式来表示,称为重量算子,即
式中的含义:
在码长的码集里,包括重量为0的码子个(线性码一定包含一个重量为0的全0码),码重为1的码字个,,重量为n的码字个。
(2)伴随式与译码
码字在传输过程中受到各种干扰,接收端收码已不一定等于发码,两者间的差异就是差错,差错是多样化的,我们定义差错的式样为差错图样,即
对于二进制码,模2减等同模2加,因此有
利用码字与校验矩阵的正交性,可检验收码是否错误,即
定义运算结果为伴随式,即
可见,虽然本身与发码有关,但乘以后的伴随式仅与差错图有关,只反映信道对码字造成怎样的干扰而与发什么码无关了。
于是可以先利用收码和已知的算出的伴随式;再利用算出差错图样。
这种思路下的编译码过如图一框图所示。
图一编译码过程的框图
在此过程中,和的计算都是确定性的,而从计算却带有随机性。
这是因为伴随式是一个重失量,二进制时只有种肯那个的组合,而差错图样是重失量,有种可能的组合,因此与不存在一一对应关系。
假设接收端收到的码字为,那么它和原来发送端发送的码字之间就有可能存在着误差。
即在码组中的任意一位就有可能出错。
这样我们在接收端接收到一个码组是就有可能判断错发送端原来应该要表达的意思。
为了描述数据在传输信道中出现错误的情况,引入了错误图样,在错误图样中,0代表对应位没有传错,1代表传输错误。
实际上错误图样就是收序列与发送序列的差。
所以在译码中用接收到的码字模尔加错误图样就可以得到发送端的正确码字。
因此译码的过程就是要找到错误图样E。
定义:
校正子
因为是编得的正确码字。
根据前面所叙述,它和监督矩阵的转置相乘为0。
显然,仅与错误图样有关,它们之间是一一对应的关系。
找到了校正子,也就可以找到。
而与发送的码字无关。
若,则;因此根据是否为0可进行码字的检错。
如果接收码字中只有一位码元发生错误,又设错误在第位。
即,其他的均为0。
在后面的译码程序中,建立了一个校正子与错误图样对应的表。
也就是收到一个序列,就可以通过计算得到一个校正子,而每一个校正子都对应着一个错误图样,再通过模尔加上,就可以得到正确的码字。
因为在不同的错误序列中,同一位码元错误时对应的是一样的,所以可以利用0000000这个正确的码字让它每位依次错误,来求得它的八个校正子。
而这时的矩阵就是错误图样。
2.2设计步骤
1.编码过程
监督矩阵和生成矩阵的关系:
已知给出的(6,3)线性分组码的矩阵:
则可以根据,求出生成矩阵:
由可求出监督矩阵为:
有了生成矩阵后则可以根据输入的四位信息位和生成矩阵相乘得到编码矩阵,即MATLAB函数为:
,其中为编码后的结果,为信息矩阵,为生成矩阵。
则编码的所有情况为:
编码序列:
信息位||监督位
2.译码过程
对于译码过程来说,同样由上知道监督矩阵:
矩阵与码的任何一个许用码字进行相乘的结果必等于0,即若是任一码字,则必有。
若不属于许用码字,或有传输差错,且差错位数在码纠错能力内,则运算结果将为非0值,此时,可以纠错或检错重发。
(1)当接受码字为时:
伴随式
所以此时接受编码无错误。
(2)当接受码字为时:
伴随式
所以,此时接受编码第一位发生错误,纠错后的正确译码为。
(3)当接受码字为时:
伴随式
所以,此时接受编码第二位发生错误,纠错后的正确译码为。
(4)当接受码字为时:
伴随式
所以,此时接受编码第三位发生错误,纠错后的正确译码为。
(5)当接受码字为时:
伴随式
所以,此时接受编码第四位发生错误,纠错后的正确译码为。
(6)当接受码字为时:
伴随式
所以,此时接受编码第五位发生错误,纠错后的正确译码为。
(7)当接受码字为时:
伴随式
所以,此时接受编码第