专利名称:基于和积算法的汉明码迭代译码方法
技术领域:
本发明属于通信系统技术领域,具体涉及一种应用于蓝牙(bluetooth)系统等、计算机存储系统、移动式存储系统、DVD系统等中的基于和积算法的汉明码迭代译码方法。
背景技术:
1948年Shannon在他的奠基性论文《通信的数学原理》中,首次提出了著名的信道编码理论对任意信道容量为C的通信信道,如果通信系统所要求的传输速率R小于C,则存在一个编码方法,当码长n充分大并应用最大似然译码时,系统的错误率可以达到任意小。他在定理中应用了三个基本条件1)采用随机编码;2)编码长度n→∞,即编码长度趋于无限;3)译码采用最佳的最大似然(ML)方法。
在信道编码的研究和发展过程中,基本上是以后两个条件为主要发展方向的。由于在实际中难以实现随机性编码方法,且当编码长度很大时,采用最大似然译码算法难以实现,而在1993年由Berrou C,Glavieux A,Thitimajshima提出新的信道编码方案Turbo码,则很好地应用了迭代译码从而获得几乎接近Shannon理论极限的译码性能。有关Turbo码迭代译码的研究很快就成为信道编码理论研究的热点课题[2][3][4],并在3GPP中得到应用。
迭代译码算法在降低了复杂度的同时又具有较好性能,其原理就是通过外信息的迭代直至满足条件后进行硬判决。
纠错码理论发展到今天,特别是90年代以后,以迭代译码为基础的高效纠错码成为了业界的主要研究对象,以图论为基础的新的纠错方式蓬勃发展,这就是以tanner图为基础发展起来的码的可视化方法因子图,基于图中边上信息传递的和积算法。
汉明码是1948年由汉明首次构造,用以纠正单个错误的线性分组码。由于它的编译码简单,很容易实现,因此用得很普遍,特别是在计算机的存储和运算系统中更常用到。此外,它的某些码类如扩展汉明码、缩短汉明码均是引人注意的码型。目前研究热点的蓝牙技术就是采用一种2/3码率的缩短汉明码。
我们希望汉明码的译码算法能够既准确又简单,最大似然(ML)方法虽然是最优的译码方式,但编码长度很大时,采用最大似然译码算法难以实现的。因此需要引入一种性能次优但译码复杂度简单的译码算法。基于和积算法的迭代译码算法正好具有这些特征。
发明内容
本发明基于和积算法的迭代译码的优越性能的认识,目的是提出将基于和积算法的迭代译码引用进汉明码中,有效解决译码复杂度和性能折中的问题。
由于迭代译码的优越性能引起我们的密切关注,而汉明码的最优译码方式是枚举法,迭代译码的译码性能与这种最优译码方式很接近,因此,我们将迭代译码引入进汉明码中,发现,结合基于因子图的和积算法施行迭代译码其对于古典汉明码译码性能同样有着很大的改进,由图1可见,在AWGN信道下,最大迭代次数一定迭代译码与同样条件下汉明码的古典译码方式在误码率为10-3时有大约3db的编码增益,迭代译码的优越性就可见一斑。
本发明的技术方案采用以下步骤来实现(1)初始化我们假设初始的码字ci=0或者1,经过一个基本的变化xi=(-1)ci.]]>其中qij(k)(b=0,1)表示第i个变量节点在接受为yi时,传输的原始码字为k的概率。
下面我们把LLR(x)全部简写成王L(x)。
L(qij)=L(ci)=2yi/σ2(2)计算校验点当前的似然信息,即校验节点传给信息节点的信息为L(rji)=(Πi′∈Rj\iαi′j)·φ(Σi′∈Rj\iφ(βi′j))]]>其中αi′j=sign(L(qij))βij=|L(qij)|φ(x)=-logtanh(x/2)=logex+1ex-1]]>这里rji(b)表示i节点为b(b=±1)时候满足校验方程j的概率。(3)计算变量点当前的似然信息,即从变量节点传给校验节点的外信息为L(qij)=L(ci)+Σj′∈ci\jL(rj′i)]]>这里qij(b)表示当通过从校验节点传来的外信息计算以后,变量节点为b的概率。(4)每次迭代完成之后,计算变量点总的似然信息L(Qi)=L(ci)+Σj∈ciL(rji)]]>这样就算进行完一次迭代了,每迭代一次我们就判断一次。(5)进行判断, a)我们判断得出的 是否满足c‾^HT=0‾]]>(其中 为 组成的码字序列)。如果满足,则停止迭代输出结果。如果不满足则b)检验迭代次数是否已经到了我们设定的最大值,如果是停止迭代如果不是我们把L(qij)代回(1)中重新迭代,直到满足上述条件之一停止迭代。
上述步骤清晰的描述了外信息是怎样在因子图的边上进行传递的,从变量点(初始化)到校验点,在再从校验点到变量点就等于完成了一次迭代,如果条件不满足则再次迭代,直到满足条件为止。通过迭代,似然比渐进值逼近近于整个码的最大似然译码。
图1、图2和图3是枚举法和迭代译码方法在两种汉明码与缩短汉明码中的误码率性能图,从图中可比较得出,迭代译码性能与最优的枚举法性能很相近,但译码时间和硬件复杂度有明显下降,仿真显示,在信道条件更好的时候,即当信噪比更高一些的时候,迭代所需要的时间只有枚举的1/20甚至1/40。这是因为迭代译码所需的时间是随信道条件而改变的,也就是说在信道条件差时所需的时间长,而信道条件越好时所需的译码时间就越少,有自适应性。从以上的分析我们可以看出,用迭代译码方式比用最优的枚举方式有优势。迭代译码算法在降低了复杂度的同时又具有较好性能,对于汉明码的译码性能有着相当的改善。
基于迭代译码在汉明码中的优越性能,采用这种基于图模型及其和积算法迭代译码的译码方式将对现代的蓝牙技术产生重要影响。
为了进一步比较汉明码硬判决、最大枚举法和迭代译码三种译码方式的性能,我们搭建了汉明码仿真平台,图1,图2,图3是在比特数为2.5×10e006,AWGN信道下,分别对(7,4)与(15,11)汉明码以及(12,8)与(15,10)缩短汉明码的三种译码进行比较。
迭代译码是利用外信息在因子图上传递,对信息进行更新的一种译码方式,比起传统的译码方式它有以下几个优点1迭代译码方式属于软判决方式,利用因子图可用可视化的方式对其译码过程进行分析。
2迭代译码方式具有可适应性,在最大迭代次数一定的情况下,增加信噪比可以很大程度上改善系统性能,大大降低平均迭代次数。
3迭代译码方式是一种次优译码方式,可以通过合理的布置因子图,尽量减少长度为4的环,可以使迭代译码接近最优的译码方式。
通过大量的计算机仿真实验和理论分析证实,迭代译码技术在hamming码中的应用能够显著的改善hamming码的误码率性能,并且性能复杂度在可以接受范围内。它比常规的硬判决的译码性能有着极大的改善,比起最优的枚举方式译码,其译码复杂性要低得多。
在信道条件好的情况下,迭代译码的译码时间极大低于最优的枚举法算法译码时间,且系统性能相当。而且这种优越性能随着码长的增加而显得更加有优势。这表明采用汉明码及其类码的实际系统中运用迭代译码具有重要的现实意义。
图1是本发明的汉明码硬判决,枚举法和迭代译码的BER曲线比较图;图2是汉明码硬判决,枚举法和迭代译码的BER曲线比较图;图3是缩短汉明码的枚举译码与迭代译码BER曲线比较图;图4是AWGN信道下汉明码与其和积算法译码框图;图5是(7,4)汉明码因子图;图6是校验位传递外信息给信息位;图7是信息位传递外信息给校验位;具体实施方式
下面给出(7,4)汉明码经过BPSK调制,在AWGN信道下,实现和积算法的一个具体实例。
1、(7,4)汉明码的编码。
通过对(7,4)汉明码的校验矩阵H转换成生成矩阵G。把信息源通过生成矩阵G
把mi进行编码成ci。
2、BPSK调制把ci(0或者)通过BPSK调制成±1,即xi。
3、信道调制以后的基带信号xi通过AWGN信道,加上高斯噪声。
4、接收接收到yi以后,进行汉明码的和积算法的迭代译码。
5、译码步骤给出(7,4)汉明码的双边图如图5,其中f指的是校验点,而x指变量点。接收到的码字yi=xi+ni,其中ni~N(0,σ2),满足高斯分布。并且pr(xi=1)=Pr(xi=-1)=1/2,则pr(xi=x|yi)=11+e-2xri/σ2]]>(1)、初始化我们用qij表示从信息位传递给校验位的外信息。初始的时候qij是信道信息。
qij(0)=pr(xi=+1|ri)=11+e-2ri/σ2]]>qij(1)=pr(xi=-1|ri)=11+e2ri/σ2]]>初始信息的对数形式可以写出L(ci)=L(qij)=11+e-2ri/σ211+e2ri/σ2=2ri/σ2]]>(2)计算校验点当前的似然信息,即此时校验节点传给信息节点的信息为,rji(b)指的是当xi=b的时候,第j行校验方程满足的概率。
rji(0)=12+12Πi′∈Rj\i(1-2pi′j)]]>rji(1)=12-12Πi′∈Rj\i(1-2pi′j)]]>L(rji)=logrji(0)rji(1)=log12+12Πi′∈Rj\i(1-2pi′j)12-12Πi′∈Rj\i(1-2pi′j)]]>tanh(12L(rji))=Πi′∈Rj\itanh(12L(qi′j))=Πi′∈Rj\itanh(12αij·βi′j)=Πi′αij·Πi′tanh(12βi′j)]]>L(rji)=(Πi′∈Rj\iαi′j)·φ-1(Σi′∈Rj\iφ(βi′j))]]>
其中αi′j=sign(L(qij))βij=|L(qij)|φ(x)=-logtanh(x/2)=logex+1ex-1]]>(3)计算变量点当前的似然信息,即从变量节点传给校验节点的外信息为L(qij)=L(ci)+Σj′∈ci\jL(rj′i)]]>这里qij(b)表示当通过从校验节点传来的外信息计算以后,变量节点为b的概率;(4)每次迭代完成之后,计算变量点总的似然信息L(Qi)=L(ci)+Σj∈ciL(rji)]]>这样就进行完一次迭代,每迭代一次就判断一次(5)进行判断 判断得出的 是否满足c‾^HT=0‾]]>(其中 为 组成的码字序列),如果满足,则停止迭代输出结果;如果不满足则检验迭代次数是否已经到了设定的最大值,如果是,停止迭代;如果不是,把L(qij)代回(2)中重新迭代,直到满足上述条件之一,最后停止迭代。
(6)判决输出满足条件的判决值。在迭代译码中,由于译码是迭代的进行的,一旦满足条件就输出判决值,所以在这里判决是多余的,但是为了叙述的需要,我们单独把它列为一个步骤。
权利要求
1.基于和积算法的汉明码迭代译码方法,包括以下步骤(0)初始化设初始的码字ci=0或者1,经过一个基本的变化xi=(-1)cj]]>,其中qij(k)(b=0,1)表示第i个变量节点在接受为yi时,传输的原始码字为k的概率,以下我们把LLR(x)全部简写成L(x),L(qij)=L(ci)=2yi/σ2(2)计算校验点当前的似然信息,即此时校验节点传给信息节点的信息为,L(rji)=(Πi′∈Rj\iαi′j)·φ(Σj′∈Rj\iφ(βi′j))]]>其中αi′j=sign(L(qij))βij=|L(qij)|φ(x)=-logtanh(x/2)=logex+1ex-1]]>这里rji(b)表示i节点为b(b=±1)时候满足校验方程j的概率;(3)计算变量点当前的似然信息,即从变量节点传给校验节点的外信息为L(qij)=L(ci)+Σj′∈ci\jL(rj′i)]]>这里qij(b)表示当通过从校验节点传来的外信息计算以后,变量节点为b的概率;(4)每次迭代完成之后,计算变量点总的似然信息L(Qi)=L(ci)+Σj∈ciL(rji)]]>这样就进行完一次迭代,每迭代一次就判断一次;(5)进行判断 a)判断得出的 是否满足c‾^HT=0‾,]]>其中 为 组成的码字序列,如果满足,则停止迭代输出结果;如果不满足则b)检验迭代次数是否已经到了设定的最大值,如果是,停止迭代;如果不是,把L(qij)代回(2)中重新迭代,直到满足上述条件之一,最后停止迭代。
全文摘要
本发明属于通信系统技术领域,具体涉及一种应用于蓝牙(bluetooth)系统等、计算机存储系统、移动式存储系统、DVD系统等中的基于和积算法的汉明码迭代译码方法,它是将基于和积算法的迭代译码引用进汉明码中,有效解决译码复杂度和性能折中的问题,在降低了复杂度的同时又具有较好性能,对于汉明码的译码性能有着相当的改善。
文档编号H03M13/19GK1558557SQ20041002172
公开日2004年12月29日 申请日期2004年1月30日 优先权日2004年1月30日
发明者王琳, 王丹, 徐位凯, 王 琳 申请人:王琳, 王 琳