物理层编码的编译码原理

180 阅读4分钟

基础知识

  1. 线性码、非线性码

    假设Ci,  CjC_i ,{\;C}_j是某(n, k)分组码的两个码字;α1,α2\alpha_1 ,\alpha_2是码元字符集内的任意两个元素,那么当且仅当对于任意αi=α1Ci+α2Cj\alpha_i =\alpha_1 C_i +\alpha_2 C_j也是码字时,称该码为线性码。否则为非线性码。

  2. 分组码、卷积码

    按监督位与信息位之间的约束关系,分为分组码与卷积码两大类。分组码编码的规则仅局限于本码组之内,本码组的监督(校验)元仅和本码组的信息元相关。卷积码在本码组的监督元不仅和本码组的信息元相关,而且还与本码组相邻的前n-1个码组的信息元相关。

  3. 检错码、纠错码

    按信道编码的目的来分,可将信道编码分为检错码和纠错码。对只能够发现错误但没有纠正错误能力的码称为检错码。有发现错误并能纠正错误能力的码称为纠错码。

常用编码的原理

  1. Hamming码

    Hamming码是一类完备码、线性分组码,其纠错能力t=1t=1,对于二进制汉明码,其码长n与信息位k之间满足

    (n,k)=(2m1,2m1m)\left(n,k\right)=\left(2^m -1,2^m -1-m\right)

    其中m=nkm=n-k为正整数。

    对于一个(n, k)分组码,有n-k位校验元。在二进制码情况下,二元(n,k)线性码能纠2nk2^{n-k}个错误图样(包括0矢量在内)。即n-k个校验位能组成2n-k列不同的n-k重,其中有2nk12^{n-k} -1列不全为 0。

    若用这2nk12^{n-k} -1列作为HH矩阵的每一列,则由此HH就产生了一个纠正单个错误的(n, k)码。通过列变换将矩阵HH变为系统形式,即可进一步得到相应的生成矩阵GG,此即Hamming码的编译码原理。

  2. 循环码

    循环码满足循环移位特性:即对于码字C中任何一个码字的循环移位仍是码字。一个(n,k)线性分组码的k个基底之间不存在规则的联系,因此可用k个基底组成生成矩阵来表示一个码的特征,而循环码的k个基底可以是同一个基底循环k次得到的。

    由是,只需要一个基底即可表示一个码的特征,则可通过码多项式与码字联系起来。循环码的译码与线性码的译码步骤基本一致,不过由于循环码的循环特性使译码电路大为简化。

    译码过程仍为:接收多项式的伴随式计算、求伴随式对应的错误图样、用错误图样纠错。由于码多项式和伴随式的循环移位特性,纠错电路可设计成只纠最高阶位上的错误,对于码组中其他位置上的错误,则利用它的循环特性能使可纠错误图样中的全部错误都得到纠正。

  3. BCH 码

    BCH 码是一类循环码,其生成多项式 g(x)包含2t个连续幂次的根,由该g(x)生成的循环码,其纠错能力不小于t,其译码过程同循环码。对于二进制本原BCH码,其具有下列参数

    n=2m1;nk=mt;dmin=2t+1n=2^m -1;n-k=\mathrm{mt};d_{\mathrm{min}} =2t+1

    其中,m(≥3)和纠错能力t(<2m12^{m-1})是正整数,n为码长。

  4. RS码

    RS码是特殊的、非二进制BCH码。在(n, k) RS 码中,输入信号分成k ⋅ m比特一组,每组包括k个符号,每个符号由m 比特组成(而不是前面介绍的二元BCH码中的一个比特)。RS码的编码过程与BCH码一样,不同的是,在编码电路中,所有数据通道都是m比特宽,即移位寄存器为m级并联工作的,每个反馈连接必须乘以生成多项式中相应的系数。

  5. CRC

    CRC即循环冗余校验码(Cyclic Redundancy Check),在数据通信中,信息都是先划分成小块再组装成帧后(或叫分组、包、信元)在线路上统计复用传送或存入共同物理介质的,帧尾一般都留有8,12,16或32位用作差错校验。

    如把一帧视为一个码字,则其校验位长度n-k不变而信息位k和码长n是可变的,这正符合(n-i, k-i)缩短循环码的特点。 故而在CRC码的编码过程仍同循环码编码,即通过生成多项式g(x)建立。在译码中,仍是通过将接收到的二进制序列除以多项式g(x),而查看余数情况实现。