宽带无线接入系统中里德索洛门卷积级联码的实现方法

文档序号:7506521阅读:299来源:国知局
专利名称:宽带无线接入系统中里德索洛门卷积级联码的实现方法
技术领域
本发明涉及一种特别用于802.16a宽带无线接入网中里德索洛门卷积级联码(RS-CC)的DSP实现方案,属于通信技术领域。
背景技术
802.16a是于2003年1月由IEEE颁布的一种先进的无线宽带接入技术,它采用OFDM技术作为系统的主要传输方式,具有具有抗干扰能力强、频率利用率高等优点,因而也越来越得到广泛的关注。802.16a系统通常工作在“非视线”传输环境下,信道为多径衰落信道,这就意味着即使在大的平均信噪比情况下,仍有一些子载波会遭到严重的衰落,出现比较严重的误码。因此信道编码对于OFDM系统来说是至关重要的。在这种情况下,通过有效的信道编码技术,将会极大地改善OFDM子载波的误码情况,提高系统性能。
针对IEEE 802.16a系统所面临的实际信道具有突发性和随机性的特点,802.16a协议采用一个具有极强随机误码纠错能力的卷积码(Convolutionalcode)为内码和一个具有极强突发误码纠错能力的里德索洛门(Reed-Solomon)的RS码为外码,构成里德索洛门卷积(RS-CC)级联码方案。但802.16a协议并没规定具体的编解码方法和具体的实现方案。
RS是重要的循环码,是分组码中纠错能力最强的纠错码,具有极强的纠正突发差错能力,而维特比译码具有极强的纠正随机差错的能力,两种结合就可构成一种优秀的前向纠错码。然而,由于RS译码方法一般比较复杂,经典的迭代译码方案需要进行多次复杂的多项式迭代,而用于卷积码的维特比译码运算量也随着约束长度L的增加而呈指数增长,在约束长度仅仅为7时其运算量就已经相当惊人。因此,在信号处理器运算能力并不富余的条件下,无论是用硬件方案还是软件方案,RS-CC的解码都要占用相当多的资源。

发明内容
技术问题本发明的目的是提供一种利用TMS320C6201 DSP实现适用于802.16a系统的,占用资源少、具有极强的纠正随机差错的能力的宽带无线接入系统中里德索洛门卷积级联码的实现方法。
技术方案根据802.16a系统的RS-CC级联码编解码要求,用TMS320C6201 DSP实现RS-CC级联码的编解码。技术方案在系统设计上对传统的RS译码方案进行了改进,在确定错误位置多项式σ(x)过程中,采用辗转除法,并结合DSP的运算特点进行简化,同时还提出了一种任意码率任意参数的通用维特比译码方法。
本发明的RS-CC级联编码的方法为先进行RS编码,再进行卷积码编码。其中RS编码方法就是根据按802.16a协议规定的不同映射方式下要求的RS-CC参数,在GF(28)(伽罗华域)上对(255,239)码截断或删余得到的系统码。该编码过程包括编码器初始化和多项式除法两个部分。初始化部分包括GF(28)域元素的幂表示法和8维二进制表示法表格的生成。多项式除法就是通过除数多项式、被除数多项式除法运算获取余式,即校验符号。然后将校验符号直接加在信息符号后就可得到RS的系统码码字。
卷积码编码方法首先对输入卷积码编码器信息数据序列加上一个字节尾比特,迫使编码器状态归零。然后根据删余矩阵P1、P2,对由生成多项式“171,133”形成的原始卷积码进行删余,最终获得满足802.16a协议要求的卷积编码器。
本发明的RS-CC级联译码的方法为先进行维特比译码,再进行RS译码。
其中维特比译码方法就是首先进行译码器初始化和设置译码所需相关参数,然后根据删余信息,计算接收信息数据与网格图中期望数据之间的汉明距离,完成支路度量的计算,接着进行距离数据累加,输入路径的比较和最大似然路径的选择,完成路径度量的更新。最后根据最小路径度量和已保存的路径转移进行回溯,完成译码输出。
RS译码方法为首先进行多项式除法器初始化,然后对接收的维特比译码信息R(x)多项式求取伴随式S(x),查看接收信息是否存在差错。如有差错,则采用辗展除法计算差错位置多项式σ(x)和ω(x)。接着用钱氏搜索法计算差错位置Y和差错多项式的根,最后求取相关的差错值,对错误位置及错误值进行纠正,完成RS译码。
有益效果本发明基于802.16a系统信道编码要求,对RS码的解码方案进行了改进。使改进后译码方法可在v个传输差错的情况下,至多进行v+1次多项式的乘除法即可实现纠错,大大提高译码速度。同时本发明还采用了通用维特比译码方法,可适用于任意码率任意参数的系统,可使系统在不改变译码程序的基础上仅需相关参数的传递即可灵活实现各种卷积码编译码。本发明根据DSP的特点提出了一套RS-CC的编解码设计方案,并采用TMS320C6201实现了该方案。该方案具有强大的突发差错纠错能力和随机差错纠错能力,可完成普通的语音通信和中高速率的数据通信,可适用于宽带无线接入网的各种无线环境。


图1是本发明的RS-CC编码示意图。
图2是本发明的RS-CC译码示意图。
图3是本发明的删余维特比译码流程图。
图4是本发明的RS译码程序流程图。
具体实施例方式
该实现方法包括编码和译码两部分;里德索洛门卷积级联编码的方法为对宽带无线接入信号先进行里德索洛门编码,再进行卷积码编码;其中,里德索洛门编码方法为根据802.16a协议规定的不同映射方式下要求的里德索洛门码参数,在GF(28)(伽罗华域)上先对(255,239)码进行截断,然后根据相应的纠错能力进行删余,从而得到RS系统码。截断就是将不足239个符号的信息数据块前填零直至数据块长度为239个符号。截断后的数据块进行编码后再根据纠错要求对形成的16位校验位进行删余,即当纠错能力为T符号时,则只取16个校验符号的前2T个作为实际校验位。编码过程包括编码器初始化和多项式除法两个部分,初始化部分包括GF(28)域元素的幂表示法和8维二进制表示法表格的生成;多项式除法就是通过除数多项式、被除数多项式除法运算获取余式,即校验符号,然后将校验符号直接加在信息符号后就可得到RS的系统码码字,卷积码编码方法为首先对输入卷积码编码器信息数据序列加上一个字节尾比特,迫使编码器状态归零;然后根据表2所示的删余矩阵P1、P2,对由生成多项式“171,133”形成的原始卷积码进行删余,最终获得满足802.16a协议要求的卷积编码器。
里德索洛门卷积级联译码的方法为先进行维特比译码,再进行里德索洛门译码译码;其中维特比译码方法就是首先进行译码器初始化和设置译码所需相关参数,其中包括码率、网格图参数及译码深度并按表2设置删余矩阵P1、P2元素。然后根据P1、P2提供的删余信息,计算接收信息数据与网格图中期望数据之间的汉明距离,完成支路度量的计算,接着进行距离数据累加,输入路径的比较和最大似然路径的选择,完成路径度量的更新;最后根据最小路径度量和已保存的路径转移进行回溯,完成译码输出;里德索洛门译码方法为首先进行多项式除法器初始化,然后对接收的信息R(x)多项式求取伴随式S(x),查看接收信息是否存在差错;如有差错,则采用辗展除法计算差错位置多项式σ(x)和ω(x);接着用钱氏搜索法计算差错位置Y和差错多项式的根,最后求取相关的差错值,对错误位置及错误值进行纠正,完成RS译码。
一、RS-CC级联码编码方案宽带无线接入网中的RS-CC编码方法为对输入的信息先进行RS编码,再进行卷积码编码,具体编码方案示意图如图1所示。
1.RS编码RS编码方法就是根据802.16a协议要求的RS-CC参数,在伽罗华域GF(28)上对(255,239)码截断或删余得到的系统码。RS编码过程包括编码器初始化和多项式除法两个部分。初始化部分包括GF(28)域元素的幂表示法(程序中表格名为a_n)和8维二进制表示法表格(程序中表格名为H)的生成。初始化时就是根据设置的参数以H里的二进制值对应的十进制值为下标查找a_n,得到的是幂次表示法的幂。多项式除法就是通过除数多项式、被除数多项式除法运算获取余式,即校验符号。然后将校验符号直接加在信息符号后就可得到RS的系统码码字。
根据802.16a协议,RS编码器是一个GF(28)上的系统码,输入信息符号(K)为239个,校验符号(2t)为16个,此RS系统码可表示成(N,K,2t)=(255,239,16)。符号均为GF(28)域内的元素。此处N是编码后的符号数。t就是该RS码可纠正的差错符号数。
域生成多项式(本原多项式)为p(x)=x8+x4+x3+x2+x+1(1)码生成多项式为g(x)=(x+α)(x+α1)(x+α2)...(x+α2t)(2)其中α为GF(28)域的本原元。
因为实际数据块的大小不同和要求的纠错能力的不同,协议中所采用的RS编码并不是如上的N和K,即(255,239),而是采用由此而来的截断码和删余码。
按协议规定,在不同映射方式下,RS-CC共有六种参数,见下表。
表1不同映射方式下的信道编码参数

根据表1,在GF(28)域上先对(255,239)码进行截断,然后根据相应的纠错能力进行删余,从而得到RS系统码。截断就是将不足239个符号的信息数据块前填零直至数据块长度为239个符号。截断后的数据块进行编码后再根据纠错要求对形成的16位校验位进行删余,即当纠错能力为T符号时,则只取16个校验符号的前2T个作为实际校验位。
2.卷积码编码卷积码编码方法就是首先对RS编码后输出的码元序列加上一个字节尾比特,迫使编码器状态归零。然后根据表2所示的删余矩阵P1、P2,对由生成多项式“171,133”形成的原始卷积码进行删余,最终获得满足802.16a协议要求的卷积编码器。
每个RS编码后的数据块送入一个约束长度L为7,原始码率为1/2的二进制卷积码编码器。根据协议要求的卷积码编码器编码生成多项式G1=171OCT和G2=133OCT,分别编码输出X、Y两路码字。
编码的码字再用不同的删余模式和序列化顺序可以得到不同码率的卷积码编码器。表2所示为不同码率下的删余模式。表中的P1和P2表示X路和Y路删余矩阵[P1;P2]的元素,其中“1”表示传输该比特,“0”表示删去该比特,而X、Y输出比特依表2中所设顺序依次输出。通过选择不同的删余矩阵达到不同码率的编码效率要求。
表2有删余配置的内卷积码

进行卷积码编码时要注意编码器需要从零状态出发,最后必须回到全零状态,因此,送完信息比特后,还要L-1个零,以迫使编码器回到全零状态。而协议因伽罗华域GF(28)而加8个比特的零,完全可以迫使所用的编码器回到全零状态。
编码器采用TMS320C6201 DSP实现时,由于TMS320C6201是按字(32bits)访问存储器,可以进行程序结构优化,可将32次信息比特读取合并为依次读取,与C语言编程相比大大减少了外循环次数,同时也大大减少存储器的访问次数。
二、RS-CC级联码译码方案宽带无线接入网中的RS-CC级联解码方法为先根据删余参数对接收的信息进行维特比解码,然后删除尾比特,再进行RS解码。解码方案如图2所示。
1.维特比译码维特比译码方法就是首先进行译码器初始化和设置译码所需相关参数,然后根据删余信息,计算接收信息数据与网格图中期望数据之间的汉明距离,完成支路度量的计算,接着进行距离数据累加,输入路径的比较和最大似然路径的选择,完成路径度量的更新。最后根据最小路径度量和幸存路径转移进行回溯,完成译码输出。根据删余信息进行维特比译码流程如图3所示。
译码器初始化工作包括DSP设置内存区存储删余矩阵相关元素、用于解码的网格图参数及译码深度参数等。为了满足不同码率的通用维特比译码的要求,采用母码码率(1/2)的网格图。系统译码深度为5×L~10×L5。
然后根据表2所示的P1,P2删余矩阵元素和接收的输入比特进行支路度量(BM)计算。图3虚线中所示的流程说明了该计算过程。当第l步的接收码组为Rl,BM的计算就是求取汉明距离BMl(i,j)=w[c(i,j)Rl](3)式中,w[c(i,j)Rl]表示第l时刻接收码字Rl与到达i状态的第j个转移所对应码字的最小距离。
在译码时,不论用的删余矩阵是什么,译码还是按照原来母码的码率(1/2码率)进行维特比译码,只是在计算度量值时不能计算删余比特,只计算该组另外的码元与网格图中相应位置上的支路输出比特之间的汉明距离。因此,删余卷积码的译码同步一定不能错。
在计算了所有i状态对应的所有转移j,开始确定第l时刻到达状态i的最大似然路径。在该阶段进行距离数据累加,输入路径的比较和最大似然路径的选择,完成路径度量PM的计算与更新。l时刻状态i的路径度量PMl(i)是将上一时刻的路径度量PMl-1与本时刻支路度量BMl相加后,选择其中的相似度最大者,即选择汉明距离最小的路径度量PMl(i)=minj{PMl-1[p(i,j)]+BMl(i,j)}---(4)]]>当确定了最大似然路径,则DSP存储该路径为幸存路径,从而完成路径度量PM的更新。
译码输出就是回溯和判决的过程,DSP根据最小度量地址和已保存的输出幸存路径转移进行回溯,找出前L步的路径值作为判决输出。DSP根据幸存路径转移的指针和最小度量地址进行回溯形成前一步存储的回溯地址,按此步骤回溯L步可得存储的最高位译码比特。
以上卷积码路径度量更新需要解决两个关键问题一是如何确定汇聚到某节点的两条支路分别来自哪两个节点,也就是状态转移规律的问题;二是怎样确定各支路的输出比特,从而与编码输出序列进行比较。正是由于这两个基本问题随着卷积码的码型不同而有所差异,才使得不能像分组码那样由同一个程序来完成各种不同卷积码的码型的译码过程。
为了便于宽带无线接入系统实现自适应调制的信道编码要求,满足802.16a协议的(2,1,L)卷积码通用译码的目的,需根据(2,1,L)系列卷积码推出N(2,1,L)卷积码的规律,以便在L变化时能正确解决路径度量更新所面临的问题。对(2,1,N)卷积码存在着如下规律。
若设i=0,1,2,...,2L-1-1为第k级各节点,j=0,1,2,...,2L-1-1为第k+1级各节点,且汇聚于第j个节点的两条支路来自节点i1和i2,则对第j个节点,其输入比特m的规律为i1=2j,i2=2j+1,j=0,1,2,...,2L-1-1(5)将节点序号j=0,1,2,...,2L-1-1所对应的二进制数值赋予编码器,并令信源s等于j所对应的输入信息m,然后运行编码程序,则此时编码器的输出x1,x2就是对应状态转移至本节点时的输出比特,从而可以进行支路度量计算。
根据状态转移和输出比特的规律,程序设计时用一个模块生成前一状态表和输出码字,可使程序做到通用于生成矩阵为G的(n,k,L)卷积码。
由于程序是通用输入参数的,因此,只要给出删余矩阵P、生成矩阵G、以及(n,k,L)就可以做到任意码率任意参数的卷积码编码和维特比译码。
2.RS解码RS解码方法就是首先进行多项式除法器初始化,然后对接收的信息R(x)多项式求取伴随式S(x),查看接收信息是否存在差错。如有差错,则采用辗展除法计算差错位置多项式σ(x)和ω(x)。接着用钱氏搜索法计算差错位置Y和差错多项式的根,最后求取相关的差错值,对错误位置及错误值进行纠正,完成RS译码。图4为本发明RS码解码过程示意图。
设计距离为2t+1的RS码的生成多项式如式(6)所示,其中α为有限域GF(2m)(m为有限域的维数)的本原元g(x)=(x+α)(x+α2)...(x+α2d-1) (6)
RS译码通常采用五个步骤(1)求伴随式,(2)确定差错位置多项式,(3)确定错误位置,(4)计算错误值,(5)对错误位置及错误值进行纠正。其中主要是(2),(3),(4)三个步骤。不同的RS解码方法就在于这三个步骤的方法不同。经典的迭代解码方法(BM)需要进行t次复杂的多项式迭代。本发明采用多项式的辗转除法进行译码,则在存在v个差错的情况下,至多只需要v+1次乘除运算即可实现纠错。
(1)求伴随式设C(x)是被传送的码字多项式,R(x)=rn-1xn-1+...+r0为相应的接收码多项式,则由信道引起的错误图样为e(x)=R(x)-c(x)=en-1xn-1+...+e0(7)设差错数达到最大纠错能力d,错误图样e(x)含有v个错误(非零元素)分别位于n1,n2,...,nv,即v=d,则e(x)=e1xn1+e2xn2+···+evxnv---(8)]]>为决定e(x),我们需要知道错误位置ni及错误值ei。2v个伴随式元素是通过把αi代入接收多项式R(x)而得到。如果sk=0,k=1,2,...,v,认为接收无误;若任一sk≠0,k∈(1,2,...,v),则由sk找出错误图样。
因为R(αi)=e(αi)+c(αi)=e(αi)(因c(αi)=0),因此可得伴随式S(x)如下s1=R(α)=e1αn1+...+evαn1]]>s2=R(α2)=e1(αn1)2+...+ev(αn1)2---(9)]]>…s2v=R(α2v)=e1(αn1)2v+...+ev(αn1)2v]]>(2)确定差错位置多项式和差错个数确定错位多项式中,由式(8)可知,错误位置多项式σ(x)=(x-x1)(x-x2)...(x-xy)=xv-σ1xv-1...σv-1x-σv(10)
由式(9)和差分方程理论,si满足差分方程si=σ1si-1+σ2si-2+...+σvsi-v(v<i≤2d) (11)下面令r0(x)=s1x2t-1+s2x2t-2+...+s2t,对x2t和r0(x)用列竖式的方法作辗转除法得到 rk-1(x)=rk(x)qk+1(x)+rk+1(x)上式中,0()表示求函数的最高幂次数,k满足0(Qk(x))=mk≤t,0(Qk+1(x))=mk+1>t,则σ(x)=Qk(x),从而mk=0(q1(x))+0(q2(x))+...+0(qk(x))就是发生差错的个数v。
然后根据辗转除法所得的q1(x),q2(x),...,qk(x)构成形式幂级数的连分式形式E(x)=ω(x)σ(x)=1q1(x)+1q2(x)+...+1qk(x)---(13)]]>根据q1(x),q2(x),...,qk(x)可得到差错位置多项式σ(x)和差错位置伴随多项式ω(x)。因此这种展转除法的解码方法只需进行v+1(错了v个)次乘除法即可确定差错位置多项式,从而完成纠错功能。
式(13)为有理式形式,需进行有理式化简,以适合于DSP实现RS译码。设εk=qk,则可得到以下递推式
最后可得,E(x)=ω(x)σ(x)=ϵk-(k-2)ϵk-(k-1),]]>可得差错位置多项式σ(x)和差错位置伴随多项式ω(x)为ω(x)=εk-(k-2),σ(x)=εk-(k-1)(15)(3)确定差错位置多项式的根差错多项式的根的求取采用钱氏搜索法,即采用验根的办法。假设接收码字多项式为R(x)=rn-1xn-1+...+r0,我们依次将α0,α1,...,αn-1逐一代入式(15)得出的差错位置多项式σ(x)中进行检验,判断它是否为其的一个根。如是其根则表示该位置没有错,反之则为有错,也因而决定了其差错位置。
如要检验rn-l是否有错,只要检验σ1αl+σ2(αl)2+...+σv(αl)v=-1(v≤t) (16)是否成立。
(4)确定差错值确定了差错位置后,则可由σ(x)的v个根,依照式(17)可求出差错值eiei=ω(xi)xiσ′(xi)---(17)]]>式中,σ′(xi)为σ(x)的导数。
(5)纠错及译码输出当确定了指定差错位置上的差错值,即可得到如式(8)所示的差错位置多项式E(x)。由于接收多项式R(x)是码字多项式C(x)与差错多项式E(x)之和,因此在已知差错多项式E(x)后,即可与接收多项式相减,完成RS译码过程。
在DSP实现的译码程序中,采用模块化编程,RS解码程序包括计算伴随式S(x)多项式模块,计算ω(x)和σ(x)模块,计算差错位置Y(输出差错位置数组)和差错值模块(对应差错位置的差错值数组)。在求q1...qk时,由于算法的特点和DSP汇编语言自身的特点,可以将q1...qk依次压入堆栈,等完全算完了q1...qk,再从高到低依次弹出qk...q1,这样可以节约计算ω(x)和σ(x)的时间。
为使RS-CC译码器能够连续的接收译码,在TMS320C6201上采用DMA将数据从MCBSP接口搬移到缓存区。缓存区定义成一块两帧的结构,每一帧对应数据帧。当第一帧接收完毕,调用中断函数处理第一缓冲区上的数据,与此同时DMA开始接收第二帧数据;第二帧数据接收完即块结束,进行DMA自动初始化,使DMA自动转到第一帧数据的接收,同时帧中断再次发生,处理缓冲区里新的数据。这样使得数据得以连续的接收译码。
设计时要注意的是中断处理程序必须在DMA传输一帧的时间内完成。按协议要求的编码第一组参数RS(32,24),CC(48,32),viterbi译码深度采用64时,完成一帧译码需要大概5万CPU周期,而TMS320C6201时钟为160MHz,因此可处理信息速率约为600kbit/s,完全可以满足中高速信息处理的要求。
权利要求
1.一种宽带无线接入系统中里德索洛门卷积级联码的实现方法,其特征在于该实现方法包括编码和译码两部分;里德索洛门卷积级联编码的方法为对宽带无线接入信号先进行里德索洛门编码,再进行卷积码编码;其中,里德索洛门编码方法为根据按802.16a协议规定的不同映射方式下要求的里德索洛门卷积参数,在伽罗华域GF(28)上先对“255,239”码进行截断,然后根据相应的纠错能力进行删余,从而得到RS系统码。截断就是将不足239个符号的信息数据块前填零直至数据块长度为239个符号。截断后的数据块进行编码后再根据纠错要求对形成的16位校验位进行删余,即当纠错能力为T符号时,则只取16个校验符号的前2T个作为实际校验位。编码过程包括编码器初始化和多项式除法两个部分,初始化部分包括GF(28)域元素的幂表示法和8维二进制表示法表格的生成;多项式除法就是通过除数多项式、被除数多项式除法运算获取余式,即校验符号,然后将校验符号直接加在信息符号后就可得到RS的系统码码字,卷积码编码方法为首先对输入卷积码编码器信息数据序列加上一个字节尾比特,迫使编码器状态归零;然后根据删余矩阵P1、P2,对由生成多项式“171,133”形成的原始卷积码进行删余,最终获得满足802.16a协议要求的卷积编码器;里德索洛门卷积级联译码的方法为先进行维特比译码,再进行里德索洛门译码译码;其中维特比译码方法就是首先进行译码器初始化和设置译码所需相关参数,其中包括码率、网格图参数及译码深度并按表2设置删余矩阵P1、P2元素。然后按P1、P2提供的删余信息,计算接收信息数据与网格图中期望数据之间的汉明距离,完成支路度量的计算,接着进行距离数据累加,输入路径的比较和最大似然路径的选择,完成路径度量的更新;最后根据最小路径度量和已保存的路径转移进行回溯,完成译码输出;里德索洛门译码方法为首先进行多项式除法器初始化,然后对接收的信息R(x)多项式求取伴随式S(x),查看接收信息是否存在差错;如有差错,则采用辗展除法计算差错位置多项式σ(x)和ω(x);接着用钱氏搜索法计算差错位置Y和差错多项式的根,最后求取相关的差错值,对错误位置及错误值进行纠正,完成RS译码。
全文摘要
宽带无线接入系统中里德索洛门卷积级联码的实现方法是一种用于802.16a宽带无线接入网中里德索洛门卷积级联码(RS-CC)的DSP实现方案,该方法包括编码和译码两部分;里德索洛门卷积级联编码的方法为对接入信号先进行里德索洛门编码,再进行卷积码编码;里德索洛门卷积级联译码的方法为先进行维特比译码,再进行里德索洛门译码译码;其中维特比译码方法就是首先进行译码器初始化,然后根据删余信息,计算接收数据与网格图数据之间的汉明距离,里德索洛门译码方法为首先进行初始化,然后对接收的信息多项式求取伴随式,并采用辗展除法计算差错位置多项式,最后计算差错位置Y和差错多项式的根,求取差错值进行差错纠正。
文档编号H03M13/41GK1599262SQ20041004162
公开日2005年3月23日 申请日期2004年8月6日 优先权日2004年8月6日
发明者酆广增, 邵世祥, 朱琦, 赵夙, 吴蒙, 谷坊祝 申请人:南京邮电学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1