基础知识
-
线性码、非线性码
假设是某(n, k)分组码的两个码字;是码元字符集内的任意两个元素,那么当且仅当对于任意也是码字时,称该码为线性码。否则为非线性码。
-
分组码、卷积码
按监督位与信息位之间的约束关系,分为分组码与卷积码两大类。分组码编码的规则仅局限于本码组之内,本码组的监督(校验)元仅和本码组的信息元相关。卷积码在本码组的监督元不仅和本码组的信息元相关,而且还与本码组相邻的前n-1个码组的信息元相关。
-
检错码、纠错码
按信道编码的目的来分,可将信道编码分为检错码和纠错码。对只能够发现错误但没有纠正错误能力的码称为检错码。有发现错误并能纠正错误能力的码称为纠错码。
常用编码的原理
-
Hamming码
Hamming码是一类完备码、线性分组码,其纠错能力,对于二进制汉明码,其码长n与信息位k之间满足
其中为正整数。
对于一个(n, k)分组码,有n-k位校验元。在二进制码情况下,二元(n,k)线性码能纠个错误图样(包括0矢量在内)。即n-k个校验位能组成2n-k列不同的n-k重,其中有列不全为 0。
若用这列作为矩阵的每一列,则由此就产生了一个纠正单个错误的(n, k)码。通过列变换将矩阵变为系统形式,即可进一步得到相应的生成矩阵,此即Hamming码的编译码原理。
-
循环码
循环码满足循环移位特性:即对于码字C中任何一个码字的循环移位仍是码字。一个(n,k)线性分组码的k个基底之间不存在规则的联系,因此可用k个基底组成生成矩阵来表示一个码的特征,而循环码的k个基底可以是同一个基底循环k次得到的。
由是,只需要一个基底即可表示一个码的特征,则可通过码多项式与码字联系起来。循环码的译码与线性码的译码步骤基本一致,不过由于循环码的循环特性使译码电路大为简化。
译码过程仍为:接收多项式的伴随式计算、求伴随式对应的错误图样、用错误图样纠错。由于码多项式和伴随式的循环移位特性,纠错电路可设计成只纠最高阶位上的错误,对于码组中其他位置上的错误,则利用它的循环特性能使可纠错误图样中的全部错误都得到纠正。
-
BCH 码
BCH 码是一类循环码,其生成多项式 g(x)包含2t个连续幂次的根,由该g(x)生成的循环码,其纠错能力不小于t,其译码过程同循环码。对于二进制本原BCH码,其具有下列参数
其中,m(≥3)和纠错能力t(<)是正整数,n为码长。
-
RS码
RS码是特殊的、非二进制BCH码。在(n, k) RS 码中,输入信号分成k ⋅ m比特一组,每组包括k个符号,每个符号由m 比特组成(而不是前面介绍的二元BCH码中的一个比特)。RS码的编码过程与BCH码一样,不同的是,在编码电路中,所有数据通道都是m比特宽,即移位寄存器为m级并联工作的,每个反馈连接必须乘以生成多项式中相应的系数。
-
CRC
CRC即循环冗余校验码(Cyclic Redundancy Check),在数据通信中,信息都是先划分成小块再组装成帧后(或叫分组、包、信元)在线路上统计复用传送或存入共同物理介质的,帧尾一般都留有8,12,16或32位用作差错校验。
如把一帧视为一个码字,则其校验位长度n-k不变而信息位k和码长n是可变的,这正符合(n-i, k-i)缩短循环码的特点。 故而在CRC码的编码过程仍同循环码编码,即通过生成多项式g(x)建立。在译码中,仍是通过将接收到的二进制序列除以多项式g(x),而查看余数情况实现。