2.1 纠错编码的基本概念和分类
1949年戈莱(M.J. E. Go lay)发表了《评论数字编码》一文,次年汉明(R.W .Hamming)又发表了《检错和纠错码》,这两篇文章被认为是研究纠错编码的发端。至今纠错编码的发展历史大致可以分为以下三个阶段:
第一阶段 (1949- 60年代初):这一阶段的研究奠定了线性分组码的理论基础:提出了纠正多个随机错误的BCH码;提出了卷积码的序列译码;代表性著作有彼得森(W.W .Peterson)的 《纠错码》(1961年第一版)。
第二阶段 (60年代初—60年代末):这一时期代数编码理论日趋完善,其中具有代表性的著作有伯利坎普(E.R .Berlekamp)的《代数编码理论》(1968年);提出了门限译码(即二进制情况的大数逻辑译码);提出了BCH码所用的迭代译码算法:提出了卷积码所用的序列译码和文特比(Viterbi)译码算法。
第三阶段 (70年代初—现在):这是实用的编、译码技术迅速发展的阶段,例如:快速译码,用软判决对分组码进行译码,多址信道编码及信道模化,编、译码器的计算机模拟,等等;发现了一类渐进性能很好的分组码,如戈帕(Goppa)码和贾斯特西(Justesen)码;同时出版的著作较多。
由此可见,随着计算机和数字通信技术的飞速发展,纠错编码必将得到更加广泛的应用,其发展前景是广阔的。在编码过程中,通过给所传输的信息设置附加的校验位,即增加其冗余度,使原来无规律或规律性不强的一组信息具有了某种相关性,接收信息时再依据这种相关性译码,从而检错或纠错,这就是纠错编码的荃本思想。用来检测或纠正错误的冗余码就是所谓的纠错码。
一般地,设信源的原始数字信息的集合是 ,q是一个素数的幂,n是大于k的一个整数。如果a是从 映入 的一个一映射,a: → ,记C=a( )则C∈ ,称C为码,C中的向量为码字或码组,码字的分量为码元。若码元在二元域F2中取值,则称码为二元码。称n为码长, 中的向量为字。显然,所有的码字的集合是 的子集。
如果在发送一个码字后,传输过程中有≤t个位置的码元或分量出错,而接收译码时可以判断出这种错误,则称C为码长为n的可检测t个差错的检错码,a为检错编码;若接收时还可以正确译出原来发送的码字,则称C为码长为n的可纠正t个差错的纠错码,而a为纠错编码。检错编码和纠错编码有时统称为纠错编码。
纠错编码是十分活跃的学科,在信息、通信和计算机领域中广为应用。除了根据纠错能力分为检错码和纠错码外,还可以从不同角度对纠错编码进行分类:
(1)根据校验元与信息元之间的关系,可以分为线性码和非线性码。若校验元与信息元之间呈线性关系,即校验规则可以用线性方程组表示的,叫做线性码(Linear Code), BCH码和RS码都属于线性码;若二者之间不存在线性关系,则叫做非线性码(Nonlinear Code)。
(2)按照对信源输出的信号序列处理方式的不同,可以分为分组码和卷积码。对信源输出的序列,按k个信息元进行分组,每组设置r个校验元,形成一个长度为n=k+r的码字 (组),该码字的校验元仅与本码字的k个信息元有关,与别的码字无关,这样按组分别处理的编码 是分组码(Block Codes),BCH码和RS码都属于分组码。若码长为N,校验元为r位,这r个校验元不仅与本组的B个信息元有关,还与前面m组的信息元有关,则称之为卷积码(Convolutional Codes)或连环码(Recurrent Code)。
(3)按照码字的循环结构,可以分为循环码和非循环码。在循环码中,任一码字循环移位得到的仍是其中的一个码字,BCH码和RS码都属于循环码。而在非循环码中,一个码字循环移位后所得到的不一定是该码的码字。 Matlab的线性分组码及其子码的设计与仿真(3):http://www.youerw.com/tongxin/lunwen_2568.html