汉明码和Golay码的基本原理相同。它们都是将q元符号按每k个分为一 组.然后通过编码得到-k个q元符号作为冗余校验符号,最后由校验符 号和信息符号组成有个q元符号的码字符号。得到的码字可以纠正t个 错误,编码码率为为k。这种类型的码字称为分组码,一般记为 (q,n,k,)码,二元分组码可以简记为(n,k,)码或者(n,k)码。汉明码和 Golay?码都是线性的,任何两个码字经过模q的加操作之后,得到的码字 仍旧是码集合中的一个码字。 在Golay码提出之后最主要的一类分组码就是Reed-Muller码。它是 Muller在1954年提出的,此后Reed在Muller提出的分组码的基础上得 到了一种新的分组码,称为Reed-Muller码,简记为RM码。在1969年 到1977年之间,RM码在火星探测方面得到了极为广泛的应用。即使 在今天,RM码也具有很大的研究价值,其快速的译码算法非常适合 于光纤通信系统。 11
11 汉明码和Golay码的基本原理相同。它们都是将q元符号按每k个分为一 组.然后通过编码得到n-k个q元符号作为冗余校验符号,最后由校验符 号和信息符号组成有n个q元符号的码字符号。得到的码字可以纠正t个 错误,编码码率为为k/n。这种类型的码字称为分组码,一般记为 (q,n,k,t)码,二元分组码可以简记为(n,k,t)码或者(n,k)码。汉明码和 Golay码都是线性的,任何两个码字经过模q的加操作之后,得到的码字 仍旧是码集合中的一个码字。 在Golay码提出之后最主要的一类分组码就是Reed-Muller码。它是 Muller在1954年提出的,此后Reed在Muller提出的分组码的基础上得 到了一种新的分组码,称为Reed-Muller码,简记为RM码。在1969年 到1977年之间,RM码在火星探测方面得到了极为广泛的应用。即使 在今天,RM码也具有很大的研究价值,其快速的译码算法非常适合 于光纤通信系统
在RM码提出之后人们又提出了循环码的概念。循环码实际上也是一类分 组码,但它的码字具有循环移位特性,即码字比特经过循环移位后仍然是 码字集合中的码字。这种循环结构使码字的设计范围大大增加,同时大大 简化了编译码结构。循环码的另一个特点就是它可以用一个幂次为-k的 多项式来表示,这个多项式记为gD),称为生成多项式,其中D为延迟算 子。循环码也称为循环冗余校验(CRC,Cyclic Redundancy Check)码,并 且可以用Meggitt译码器来实现译码。由于Meggitti译码器的译码复杂性随 着纠错能力的增加而呈指数形式的增加,因此通常CRC码用于纠正只有 单个错误的应用情况,常用做检错码而非纠错码。 循环码的一个非常重要的子集就是分别由Hocquenghem在1959年、Bose 和Ray-Chaudhuri研究组在1960年几乎同时提出的BCH码(BCH,Bose Chaudhuri Hocquenghem),BCH码的码字长度为n=qm-l,其中m为一个 整数。二元BCH码(q=2)的纠错能力限为t长(2m-1)/2.1960年,Reed和 Solomon将BCH码扩展到非二元(q>2)的情况,得到了RS(Reed- Solomon)码。1967年,Berlekamp给出了一个非常有效的译码算法后, RS码得到了广泛的应用。此后,RS码在CD播放器、DVD播放器中得到 了很好的应用
12 在RM码提出之后人们又提出了循环码的概念。循环码实际上也是一类分 组码,但它的码字具有循环移位特性,即码字比特经过循环移位后仍然是 码字集合中的码字。这种循环结构使码字的设计范围大大增加,同时大大 简化了编译码结构。循环码的另一个特点就是它可以用一个幂次为n-k的 多项式来表示,这个多项式记为g(D),称为生成多项式,其中D为延迟算 子。循环码也称为循环冗余校验(CRC,Cyclic Redundancy Check)码,并 且可以用Meggitt译码器来实现译码。由于Meggitt译码器的译码复杂性随 着纠错能力t的增加而呈指数形式的增加,因此通常CRC码用于纠正只有 单个错误的应用情况,常用做检错码而非纠错码。 循环码的一个非常重要的子集就是分别由Hocquenghem在1959年、Bose 和Ray-Chaudhuri研究组在1960年几乎同时提出的BCH码(BCH,Bose Chaudhuri Hocquenghem),BCH码的码字长度为n=qm-1,其中m为一个 整数。二元BCH码(q=2)的纠错能力限为t<(2m-1)/2。1960年,Reed和 Solomon将BCH码扩展到非二元(q>2)的情况,得到了RS(ReedSolomon)码。1967年,Berlekamp给出了一个非常有效的译码算法后, RS码得到了广泛的应用。此后,RS码在CD播放器、DVD播放器中得到 了很好的应用
。虽然分组码在理论分析和数学描述方面已经非常成熟,并且在实际的通 信系统中也已经得到了广泛的应用,但分组码固有的缺陷大大限制了它 的进一步发展。首先,由于分组码是面向数据块的,因此,在译码过程 中必须等待整个码字全部接收到之后才能开始进行译码。在数据块长度 较大时,引入的系统延时是非常大的。分组码的第二个缺陷是它要求精 确的帧同步,即需要对接收码字或帧的起始符号时间和相位精确同步。 另外,大多数基于代数的分组码的译码算法都是硬判决算法,而不是对 解调器输出未量化信息的软译码,从而造成了一定程度的增益损失。 13
13 虽然分组码在理论分析和数学描述方面已经非常成熟,并且在实际的通 信系统中也已经得到了广泛的应用,但分组码固有的缺陷大大限制了它 的进一步发展。首先,由于分组码是面向数据块的,因此,在译码过程 中必须等待整个码字全部接收到之后才能开始进行译码。在数据块长度 较大时,引入的系统延时是非常大的。分组码的第二个缺陷是它要求精 确的帧同步,即需要对接收码字或帧的起始符号时间和相位精确同步。 另外,大多数基于代数的分组码的译码算法都是硬判决算法,而不是对 解调器输出未量化信息的软译码,从而造成了一定程度的增益损失
分组码所存在的固有缺点可以通过采用其他的编码方法来改善,这种编码 方法就是卷积码,是Eas等人在1955年提出的。卷积码与分组码的不同在 于分组码在编码之前先将信息序列按照一定的数据块长度分组,然后对每 一 组信息进行独立编码,即对于(n,k)分组码来说,码字中的-k个检验元仅 与本码字的k个信息元有关,而与其他码字的信息元无关。同样,在分组 码的译码时也是针对每一个接收码字进行独立译码的,在一个接收码字内 部提取译码相关信息,与其他码字无关。而在卷积编码中则充分利用了各 个信息块之间的相关性。通常卷积码记为(,k,N)码。卷积码的编码过 程是连续进行的,依次连续将每k个信息元输入编码器,得到个码元,得 到的码元中的检验元不仅与本码的信息元有关,还与以前时刻输入到编码 器的信息元(反映在编码寄存器的内容上)有关。同样,在卷积码的译码过 程中,不仅要从本码中提取译码信息,还要充分利用以前和以后时刻收到 的码组.从这些码组中提取译码相关信息,而且译码也是可以连续进行的 ,这样可以保证卷积码的译码延时相对比较小。通常,在系统条件相同的 条件下,在达到相同译码性能时,卷积码的信息块长度和码字长度都要比 分组码的信息块长度和码字长度小,相应译码复杂性也小一些
14 分组码所存在的固有缺点可以通过采用其他的编码方法来改善,这种编码 方法就是卷积码,是Elias等人在1955年提出的。卷积码与分组码的不同在 于分组码在编码之前先将信息序列按照一定的数据块长度分组,然后对每 一组信息进行独立编码,即对于(n,k)分组码来说,码字中的n-k个检验元仅 与本码字的k个信息元有关,而与其他码字的信息元无关。同样,在分组 码的译码时也是针对每一个接收码字进行独立译码的,在一个接收码字内 部提取译码相关信息,与其他码字无关。而在卷积编码中则充分利用了各 个信息块之间的相关性。通常卷积码记为(n,k,N)码。卷积码的编码过 程是连续进行的,依次连续将每k个信息元输入编码器,得到n个码元,得 到的码元中的检验元不仅与本码的信息元有关,还与以前时刻输入到编码 器的信息元(反映在编码寄存器的内容上)有关。同样,在卷积码的译码过 程中,不仅要从本码中提取译码信息,还要充分利用以前和以后时刻收到 的码组.从这些码组中提取译码相关信息,而且译码也是可以连续进行的 ,这样可以保证卷积码的译码延时相对比较小。通常,在系统条件相同的 条件下,在达到相同译码性能时,卷积码的信息块长度和码字长度都要比 分组码的信息块长度和码字长度小,相应译码复杂性也小一些
卷积码的译码通常有如下几个比较流行的译码算法: ■由Wozencraft和Reiffen在1961年提出、Fano和Jelinek分别在1963年 和1969年进行改进了的序贯译码算法。该算法是基于码字树图结构的 一种次最优概率译码算法。 由Massey在1963年提出的门限译码算法。这个算法利用码字的代数 结构进行代数译码。 ■由Viterbi在1967年提出的Viterbi算法。该算法是基于码字格图结构 的一种最大似然译码算法,是一种最优译码算法。 在Viterbi译码算法提出之后,卷积码在通信系统中得到了极为广泛的应 用。如GSM、3G、商业卫星通信系统等。 15
15 卷积码的译码通常有如下几个比较流行的译码算法: 由Wozencraft和Reiffen在1961年提出、Fano和Jelinek分别在1963年 和1969年进行改进了的序贯译码算法。该算法是基于码字树图结构的 一种次最优概率译码算法。 由Massey在1963年提出的门限译码算法。这个算法利用码字的代数 结构进行代数译码。 由Viterbi在1967年提出的Viterbi算法。该算法是基于码字格图结构 的一种最大似然译码算法,是一种最优译码算法。 在Viterbi译码算法提出之后,卷积码在通信系统中得到了极为广泛的应 用。如GSM、3G、商业卫星通信系统等