位置:51电子网 » 技术资料 » 嵌入式系统

Viterb译码RS编码

发布时间:2008/12/17 0:00:00 访问次数:762

  rs码是一种非分组的有记忆编码,因编码规则遵从卷积运算而得名,可记为(n,k,m)码,其中k表示输入信息 的路数,n表示码元输出的路数,码表示编码器中寄存器的节数。输出码元n不仅与输入信息位k有关,而且与编 码器中记忆的m位有关,通常称l=m+1为约束长度(记忆长度)。其译码既可采用传统的代数方法,也可采用概率 方法,而常用的是概率方法。rs码一般使用(n,k)表示,输入信号分成k×mbit一组,每组包括k个符号,每个 符号由m bit组成。一个可以纠错t个符号的rs码具有如下参数。

  rs码都是在伽罗华域(galois field,gf)中运算的,因此了解伽罗华域的数据运算是rs编码的前提。无线通 信中的数据、地址、校验码等都可以看成是属于gf(2)=gf(28)中的元素或称符号。gf(28)表示域中有256 个元素,除0、1之外的254个元素由本原多项式p(x)生成。本原多项式p(x)的特性是p(x)得到的佘式等于0。无线通信中用来构造gf(28)域的p(x)是p(x)= x8+x4+x3+x2+1,而gf(28)域中的本原元素为α=(00000010)。

  下面以一个较简单例子说明域的构造。构造gf(23)域的本原多项式假定为p(x)=x3+x+1。α定义为p(x)=0的根, 即α3+α+1=0和α3=α+1。gf(23)中的元素计算如表1所示。

  表1 gf(23)中的元素计算

  用二进制数表示域元素得到如表2所示的对照表。

  表2 二进制数表示域元素

  

这样一来就建立了gf(23)域中的元素与3位二进制数之间的一一对应关系。用同样的方法可建立gf(28)域中的256个元素与8位二进制数之间一一对应关系。在纠错编码运算过程中,加、减、乘和除的运算是伽罗华域中进行的。现在以gf(23)域中的运算为例。

  这些运算的结果仍然在gf(23)域中。

  gf域的加法和减法采样异或可以方便地实现,但gf域的乘法和除法计算则十分复杂。在rs码中gf域的除法使用较少,而 乘法使用较多,以下详细介绍gf域的乘法运算。

  在c6x序列dsp中,c64x中有专门的gf域的乘法指令。这样,可以快速实现gf域的乘法。该指令为gmpy4,可以一次实现4 个8位gf域的乘法。如果条件满足,该指令执行如下运算,其中src1和src2为操作数,ubyte表示无符号的字节数,dst为 目的单元。

  使用该指令的例子如图1所示。


图1 gmpy4的运行结果

  gmpy4指令默认使用gf(256)域乘法,其生成多项式为g(x)=1+x2+x3+x4+x8。可以通过gfpgfr寄存器设置用户的生成 多项式。gfpgfr寄存器各位的定义如图2所示。


图2 gfpgfr寄存器各位的定义

  各位的意义分别如下。

  ● 第0~第7位。poly位,可读写位,复位值为ldh;存储生成多项式的系数。

  ● 第8~第23位。预留,只读位,复位值0。

  ● 第24~第26位。size位,可读写位,复位值07;该位值加1为gf域的位数。

  ● 第27~第31位。预留,只读位,复位值0。

  默认的多项式为g(x)=1+x2+x3+x4+x8,则poly中存储的数值为(1+4+8+16)=29,十六进制则为0xld。注意,其中 卢为默认带有1,所以poly的值虽然为0xld,但实际上表示生成多项式系数为0x11d。

  使用默认多项式做gf(256)的乘法的c程序如下,程序中使用_gmpy4函数的dsp的c编译器带有的内联函数。

  以上为直接使用默认的生成多项式,如果用户的生成多项式为g(x)=1+x3+x5+x6+x8,则poly中存储的数值为(1+8+32+64)=105,十六进制则为0x69。注意,其中x8为默认带有1,所以poly的值为0x69,设置新的poly值并进行gf(256) 的乘法程序如下:

  欢迎转载,信息来源维库电子市场网(www.dzsc.com)



  rs码是一种非分组的有记忆编码,因编码规则遵从卷积运算而得名,可记为(n,k,m)码,其中k表示输入信息 的路数,n表示码元输出的路数,码表示编码器中寄存器的节数。输出码元n不仅与输入信息位k有关,而且与编 码器中记忆的m位有关,通常称l=m+1为约束长度(记忆长度)。其译码既可采用传统的代数方法,也可采用概率 方法,而常用的是概率方法。rs码一般使用(n,k)表示,输入信号分成k×mbit一组,每组包括k个符号,每个 符号由m bit组成。一个可以纠错t个符号的rs码具有如下参数。

  rs码都是在伽罗华域(galois field,gf)中运算的,因此了解伽罗华域的数据运算是rs编码的前提。无线通 信中的数据、地址、校验码等都可以看成是属于gf(2)=gf(28)中的元素或称符号。gf(28)表示域中有256 个元素,除0、1之外的254个元素由本原多项式p(x)生成。本原多项式p(x)的特性是p(x)得到的佘式等于0。无线通信中用来构造gf(28)域的p(x)是p(x)= x8+x4+x3+x2+1,而gf(28)域中的本原元素为α=(00000010)。

  下面以一个较简单例子说明域的构造。构造gf(23)域的本原多项式假定为p(x)=x3+x+1。α定义为p(x)=0的根, 即α3+α+1=0和α3=α+1。gf(23)中的元素计算如表1所示。

  表1 gf(23)中的元素计算

  用二进制数表示域元素得到如表2所示的对照表。

  表2 二进制数表示域元素

  

这样一来就建立了gf(23)域中的元素与3位二进制数之间的一一对应关系。用同样的方法可建立gf(28)域中的256个元素与8位二进制数之间一一对应关系。在纠错编码运算过程中,加、减、乘和除的运算是伽罗华域中进行的。现在以gf(23)域中的运算为例。

  这些运算的结果仍然在gf(23)域中。

  gf域的加法和减法采样异或可以方便地实现,但gf域的乘法和除法计算则十分复杂。在rs码中gf域的除法使用较少,而 乘法使用较多,以下详细介绍gf域的乘法运算。

  在c6x序列dsp中,c64x中有专门的gf域的乘法指令。这样,可以快速实现gf域的乘法。该指令为gmpy4,可以一次实现4 个8位gf域的乘法。如果条件满足,该指令执行如下运算,其中src1和src2为操作数,ubyte表示无符号的字节数,dst为 目的单元。

  使用该指令的例子如图1所示。


图1 gmpy4的运行结果

  gmpy4指令默认使用gf(256)域乘法,其生成多项式为g(x)=1+x2+x3+x4+x8。可以通过gfpgfr寄存器设置用户的生成 多项式。gfpgfr寄存器各位的定义如图2所示。


图2 gfpgfr寄存器各位的定义

  各位的意义分别如下。

  ● 第0~第7位。poly位,可读写位,复位值为ldh;存储生成多项式的系数。

  ● 第8~第23位。预留,只读位,复位值0。

  ● 第24~第26位。size位,可读写位,复位值07;该位值加1为gf域的位数。

  ● 第27~第31位。预留,只读位,复位值0。

  默认的多项式为g(x)=1+x2+x3+x4+x8,则poly中存储的数值为(1+4+8+16)=29,十六进制则为0xld。注意,其中 卢为默认带有1,所以poly的值虽然为0xld,但实际上表示生成多项式系数为0x11d。

  使用默认多项式做gf(256)的乘法的c程序如下,程序中使用_gmpy4函数的dsp的c编译器带有的内联函数。

  以上为直接使用默认的生成多项式,如果用户的生成多项式为g(x)=1+x3+x5+x6+x8,则poly中存储的数值为(1+8+32+64)=105,十六进制则为0x69。注意,其中x8为默认带有1,所以poly的值为0x69,设置新的poly值并进行gf(256) 的乘法程序如下:

  欢迎转载,信息来源维库电子市场网(www.dzsc.com)



上一篇:Viterbi译码

上一篇:Viterb译码概述

相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!