留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

(41,21,9) 二次剩余码的快速译码

上一篇

下一篇

武登杰, 包小敏, 瞿云云, 等. (41,21,9) 二次剩余码的快速译码[J]. 西南大学学报(自然科学版), 2017, 39(1): 103-108. doi: 10.13718/j.cnki.xdzk.2017.01.016
引用本文: 武登杰, 包小敏, 瞿云云, 等. (41,21,9) 二次剩余码的快速译码[J]. 西南大学学报(自然科学版), 2017, 39(1): 103-108. doi: 10.13718/j.cnki.xdzk.2017.01.016
Deng-jie WU, Xiao-min BAO, Yun-yun QU, et al. On Fast Decoding of (41, 21, 9) Quadratic Residue Code[J]. Journal of Southwest University Natural Science Edition, 2017, 39(1): 103-108. doi: 10.13718/j.cnki.xdzk.2017.01.016
Citation: Deng-jie WU, Xiao-min BAO, Yun-yun QU, et al. On Fast Decoding of (41, 21, 9) Quadratic Residue Code[J]. Journal of Southwest University Natural Science Edition, 2017, 39(1): 103-108. doi: 10.13718/j.cnki.xdzk.2017.01.016

(41,21,9) 二次剩余码的快速译码

  • 基金项目: 国家自然科学基金项目(61462016);贵州省教育厅青年科技人才成长项目(黔教合KY字[2016]130)
详细信息
    作者简介:

    武登杰(1989-),山西运城人,硕士研究生,主要从事编码理论、密码学的研究 .

    通讯作者: 包小敏,博士,教授; 
  • 中图分类号: O211.4

On Fast Decoding of (41, 21, 9) Quadratic Residue Code

  • 摘要: 针对(41,21,9) 二次剩余码,提出了一种快速的基于校验子重量的译码算法(FSWDA).这种译码算法结合了循环码的性质,又巧用了校验子的汉明重量,其最大优点是不需要存储校验子和相应的错误模式构成的表,却能达到查表译码的效果.另外,本算法还可以用于其它纠错能力为4的二次剩余码.
  • 加载中
  • 表 1  (41,21,9) QR码的错误情况及相应的错误模式数量

    步骤错误情况错误模式数量错误情况错误模式数量
    1P $\left( \begin{array}{l} 20\\ 1 \end{array} \right)$ =20PP $\left( \begin{array}{1} 20\\ 2 \end{array} \right)$ =190
    PPP $\left( \begin{array}{1} 20\\ 3 \end{array} \right)$ =1140PPPP $\left( \begin{array}{1} 20\\ 4 \end{array} \right)$ =4845
    2M $\left( \begin{array}{1} 20\\ 1 \end{array} \right)$ =20MM $\left( \begin{array}{1} 20\\ 2 \end{array} \right)$ =190
    MMM $\left( \begin{array}{1} 20\\ 3 \end{array} \right)$ =1140MMMM $\left( \begin{array}{1} 20\\ 4 \end{array} \right)$ =4845
    3F1FP $\left( \begin{array}{1} 20\\ 1 \end{array} \right)$ =20
    MP $\left( \begin{array}{l} 20\\ 1 \end{array} \right)\left( \begin{array}{l} 20\\ 1 \end{array} \right)$ =400FPP $\left( \begin{array}{1} 20\\ 2 \end{array} \right)$ =190
    MPPP $\left( \begin{array}{l} 20\\ 1 \end{array} \right)\left( \begin{array}{l} 20\\ 2 \end{array} \right)$ =3800FPPP $\left( \begin{array}{1} 20\\ 3 \end{array} \right)$ =1140
    MPPP $\left( \begin{array}{l} 20\\ 1 \end{array} \right)\left( \begin{array}{l} 20\\ 3 \end{array} \right)$ =22800
    4FM $\left( \begin{array}{1} 20\\ 1 \end{array} \right)$ =20FMM $\left( \begin{array}{1} 20\\ 2 \end{array} \right)$ =190
    MMP $\left( \begin{array}{l} 20\\ 2 \end{array} \right)\left( \begin{array}{l} 20\\ 1 \end{array} \right)$ =3800FMMM $\left( \begin{array}{1} 20\\ 3 \end{array} \right)$ =1140
    MMMP $\left( \begin{array}{l} 20\\ 3 \end{array} \right)\left( \begin{array}{l} 20\\ 1 \end{array} \right)$ =22800
    5FMP $\left( \begin{array}{l} 20\\ 1 \end{array} \right)\left( \begin{array}{l} 20\\ 1 \end{array} \right)$ =400FMPP $\left( \begin{array}{l} 20\\ 1 \end{array} \right)\left( \begin{array}{l} 20\\ 2 \end{array} \right)$ =3800
    MMPP $\left( \begin{array}{l} 20\\ 2 \end{array} \right)\left( \begin{array}{l} 20\\ 2 \end{array} \right)$ =36100
    6FMMP $\left( \begin{array}{l} 20\\ 1 \end{array} \right)\left( \begin{array}{l} 20\\ 2 \end{array} \right)$ =3800
    下载: 导出CSV
  • [1] PRANGE E. Some Cyclic Error-Correcting Codes with Simple Decoding Algorithms [R]. Cambridge: Air Force Cambridge Research Center, 1958.
    [2] WICKER S B. Error Control Systems for Digital Communication and Storage [M]. New Jersey: Prentice Hall, 1995.
    [3] MCELIECE R J. The Theory of Information and Coding [M]. 2nd ed.北京:电子工业出版社, 2002.
    [4] doi: https://www.computer.org/csdl/proceedings/apscc/2008/3473/00/3473a128-abs.html CHEN Y H, CHIEN C H, HUANG C H, et al. Efficient Decoding of Systematic (23, 12, 7) and (41, 21, 9) Quadratic Residue Codes [J]. Journal of Information Science and Engineering, 2010, 26: 1831-1843.
    [5] LIN T C, LEE H P, CHANG H C, et al. High Speed Decoding of the Binary (47, 24, 11) Quadratic Residue Code [J]. Information Sciences, 2010, 180: 4060-4068. doi: 10.1016/j.ins.2010.06.022
    [6] doi: https://www.researchgate.net/publication/272912461_A_Memory_Improvement_on_Decoding_of_the_41_21_9_Quadratic_Residue_Code LEE H P, CHANG H C. A Memory Improvement on Decoding of the (41, 21, 9) Quadratic Residue Code [J]. International Journal of Computer Theory and Engineering, 2012, 4: 590-594.
    [7] ELIA M. Algebraic Decoding of the (23, 12, 7) Golay Codes [J]. IEEE Transactions on Information Theory, 1987, 33: 150-151. doi: 10.1109/TIT.1987.1057262
    [8] WOLFMANN J. A Permutation Decoding of the (24, 12, 8) Golay code [J]. IEEE Transactions on Information Theory, 1983, 29: 748-750. doi: 10.1109/TIT.1983.1056726
    [9] HE R, REED I S, TRUONG T K, et al. Decoding the (47, 24, 11) Quadratic Residue Code [J]. IEEE Transactions on Information Theory, 2001, 47: 1181-1186. doi: 10.1109/18.915677
  • 加载中
表( 1)
计量
  • 文章访问数:  738
  • HTML全文浏览数:  460
  • PDF下载数:  12
  • 施引文献:  0
出版历程
  • 收稿日期:  2015-09-28
  • 刊出日期:  2017-01-20

(41,21,9) 二次剩余码的快速译码

    通讯作者: 包小敏,博士,教授; 
    作者简介: 武登杰(1989-),山西运城人,硕士研究生,主要从事编码理论、密码学的研究
  • 1. 西南大学 数学与统计学院,重庆 400715
  • 2. 贵州师范大学 数学科学学院,贵阳 550001
基金项目:  国家自然科学基金项目(61462016);贵州省教育厅青年科技人才成长项目(黔教合KY字[2016]130)

摘要: 针对(41,21,9) 二次剩余码,提出了一种快速的基于校验子重量的译码算法(FSWDA).这种译码算法结合了循环码的性质,又巧用了校验子的汉明重量,其最大优点是不需要存储校验子和相应的错误模式构成的表,却能达到查表译码的效果.另外,本算法还可以用于其它纠错能力为4的二次剩余码.

English Abstract

  • 二次剩余码(简称QR码)是文献[1]提出的一类循环BCH码.由于这类码的码率都大于或等于1/2,所以大部分QR码都是比较好的纠错码.例如(24,12,8) QR码已被用于航海通信[2].

    在过去的几十年里,关于QR码的译码方法已经提出很多种[3-9],但这些译码方法很多都采用了一些代数工具,需要比较复杂的有限域中的计算,从而延长了译码时间.为减少译码复杂性,查表译码就成为一个比较好的选择.查表译码需要预先存储由校验子和相应的错误模式构成的表.对于纠错能力为4的(41,21,9) QR码,它需要存储 $\sum _{i = 1}^4\left( \begin{array}{l} 41\\ i \end{array} \right) = 112\,791$ 个校验子和相应的错误模式,存储大小为112 791×(6bytes+3bytes)≈991.3 Kbytes.文献[4]经过改善,提出的算法需要存储101.26 Kbytes.事实上,考虑循环码的特性,只需存储 $\sum _{i = 1}^4\left( \begin{array}{l} 41\\ i \end{array} \right)/41 = 2751$ 个校验子和相应的错误模式即可,此时存储大小仅为24.18 Kbytes[2].而文献[5]和文献[6]又进一步优化,分别将存储大小减少到2.47 Kbytes和2.03 Kbytes,大大节省了存储空间.

    本文继续沿用查表译码的思想,同时又利用校验子与校验矩阵之间的关系,提出了一种基于校验子重量的快速译码算法(fast syndrome-weight decoding algorithm,FSWDA).这个算法具有运算简单、存储量小的特点,而且可以用于其它纠错能力小于或等于4的QR码.

  • 二次剩余码是由域GF(2) 上的生成多项式g(x)=g0+g1x+…+gn-kxn-k生成的一类线性循环码,用(nkd)来表示,其中n=8l±1(l为正整数)为码长,k为信息长度,d为码的最小汉明距离. (41,21,9) QR码就是其中一种. m是能满足n整除2m-1的最小正整数.设Qn={j|jx2mod n,1≤x≤(n-1)/2}.当n=41时,m=20,且Q41={1,2,4,5,8,9,10,16,18,20,21,23,25,31,32,33,36,37,39,40}. α是本原多项式p(x)=x20+x3+1的一个根.因此,β=αuu=(2m-1) /n=(220-1)/41=25 575,是域GF(220)上一个41阶本原根.生成多项式g(x)通过

    可以得到.

    由(41,21,9) QR码的最小汉明距离d=9,可知它的纠错能力 $t=\left\lfloor \frac{d-1}{2} \right\rfloor =4$ (41,21,9) QR码的码字可用多项式c(x)=c0+c1x+…+c40x40来表示,其中c(x)是g(x)的倍式,即c(x)=m(x)g(x),这里m(x)=m0+m1x+…+m20x20为码的信息多项式.当码字通过一个有噪音的信道,接收到的多项式r(x)=r0+r1x+…+r40x40c(x)与错误多项式e(x)=e0+e1x+…+e40x40的和.为简单起见,信息、码字、错误模式、接收量和校验子分别用向量m=[m0m1,…,mk-1],c=[c0c1,…,cn-1],e=[e0e1,…,en-1],r=[r0r1,…,rn-1]和s=[s0s1,…,sn-k-1]来表示.

    QR码作为循环码,按下列方法可得它的一个生成多项式G1[3]

    G1进行行初等变换,可以得到形式为G=[IkA]的生成矩阵,其中Ik是一个k×k单位矩阵,A是一个k×(n-k)矩阵.由G可得形如H=[-ATIn-k]的一个校验矩阵.用Hi表示HT的第i行向量,即

    对于(41,21,9) QR码,矩阵A

    当给定信息向量m=[m0m1,…,mk-1],码字c通过

    进行编码得到.向量[m0m1,…,mk-1]和[p0p1,…,pn-k-1]分别为码字c的信息部分和校验部分.另外,对于接收向量r,它的校验子s=rHT.

  • 为了更好了解FSWDA算法,我们先给出相关的定义和结论.需要注意的是这些结论都是针对(nkd)二进制循环码,所有计算都在域GF(2) 上进行,而H=[ATI]是它的一个校验矩阵.

    定义1 一个向量z的非零分量的个数称为向量z的汉明重量,记为w(z).向量a-b的汉明重量w(a-b)表示向量a和向量b的不同分量的个数,又称为向量a和向量b的汉明距离.

    e是错误向量e=[eMeP]=[e0e1,…,en-1],其中eM=[e0e1,…,ek-1]是信息部分,eP=[ekek+1,…,en-1]是校验部分,w(e)≤t,s=eHT.

    下面这个结论在后面的证明中多次用到:

    定理1 若H=[ATI],e=[eM01×(n-k)]≠0n,则w(eHT)≥d-w(eM).

     因为码字的重量至少是deM[IA]=[eMeMA]是码字,所以w(eM)+w(eMA)≥d.而

    w(eHT)=w(eMA)≥d-w(eM).

    在纠错范围内,定理2和定理3确定何时错误只出现在校验部分.

    定理2 若e=[0keP],其中w(eP)≤t,则w(s)=w(eHT)≤t.

     由H=[ATI]的结构可得

    w(s) =w(eP)≤t.

    定理3 若e=[eMeP],其中w(eM)≥1,w(eM)+w(eP)≤t,则w(s)=w(eHT)≥t+1.

     此时

    故结论成立.

    推论1 若w(e)≤t,则w(eHT)≤t当且仅当e=[0keHT].

    e=[eMeP]时,下面的定理给出了ePe的伴随式和eM的伴随式之间的一个关系.

    定理4 设e=[eMeP].若[eM01×(n-k)]HT=sM,则eP=eHT-sM.

     因为w(eP)≤w(e)≤t,所以

    结论得证.

    下面的定理是我们的查表译码算法正确性的理论基础.

    定理5 设w(e)≤te=[eMeP],w(eM)≥1.若eHT=s,则存在唯一一个 $\mathit{\boldsymbol{\hat e}}{\rm{ = }}\left[ {{{\mathit{\boldsymbol{\hat e}}}_{M,}}{\bf{0}}} \right]$ 及相应的校验子 ${\mathit{\boldsymbol{\hat s}}}$ ,使得 $w\left( {\mathit{\boldsymbol{s}} - \mathit{\boldsymbol{\hat s}}} \right) = w\left( {{{{\bf{\hat e}}}_M}} \right) \le t$ .此时一定有 $\mathit{\boldsymbol{e = }}\left[ {\mathit{\boldsymbol{\hat e}},\mathit{\boldsymbol{s - \hat s}}} \right].$ .

     当 ${{\mathit{\boldsymbol{\hat e}}}_M} = {\mathit{\boldsymbol{e}}_M}$ 时,由定理4知eP=s- ${\mathit{\boldsymbol{\hat s}}}$ ,故w(s- ${\mathit{\boldsymbol{\hat s}}}$ )+w( ${\mathit{\boldsymbol{\hat e}}}$ M)=w(ep)+w(eM)≤t,说明存在性成立.下面只需证当 ${\mathit{\boldsymbol{\hat e}}}$ MeM时必有w([s-sieMi])≥t+1,可证明唯一性也成立.实际上

    当得到接收向量r时,向右循环i个比特可以得到r(i)=[rn-i,…,rn-1r0,…,rn-i-1].通过s(i)=r(i)H可以得到r(i)的校验子.由r=c+e易得r(i)=c(i)+e(i).换句话说,如果r的错误模式是e,那么e(i)r(i)相应的错误模式.根据推论1,若1≤w(s)≤4,则错误仅出现在r的校验部分;若1≤w(s(n-k))≤4,则错误仅出现在r的信息部分.设e0=[1,0,…,0]是n维向量,ej为仅在下标为j的位置有错误的n维向量(除第j位为1外,其它位均为0),相应的校验子sj= ejHT=Hj,0≤jk-1.显然,在第i位和第j位比特发生错误可用ei+ej来表示,Hi+Hjei+ej的校验子,其中0≤ijk-1.在这里可以看出,校验子、校验矩阵和错误模式的紧密联系,这就是不需要存储校验子和错误模式构成的表却仍可查表译码的原因.设sdw为第w步校验子shi的差值,即s-hi,FSWDA算法通过sdw的汉明重量,能很快地确定错误模式.

    用大写字母F,M和P分别表示r的第一个信息比特、其余信息比特和校验比特.对于(41,21,9) QR码,共有24种错误情况(P,PP,PPP,PPPP,M,MM,MMM,MMMM,F,FP,MP,FPP,MPP,FPPP,MPPP,FM,FMM,MMP,FMMM,MMMP,FMP,FMPP,MMPP,FMMP),覆盖了所有 $\sum \begin{array}{l} 4\\ i = 1 \end{array} \left( \begin{array}{l} 41\\ i \end{array} \right) = 112791$ 个错误模式.如果w(s)=0,那么接收向量r没有错误.如果1≤w(s)≤4或者1≤w(s(20))≤4,那么可以解决8种错误情况(P,PP,PPP,PPPP,M,MM,MMM,MMMM).计算sd3=(s-hi),0≤i≤20.如果1≤w(sd3)≤3,那么又可解决7种错误情况(F,FP,MP,FPP,MPP,FPPP,MPPP).若还没解决,则继续计算sd4=(s(20)-hi),0≤i≤20.如果1≤w(sd4)≤3,那么又有5种错误情况(FM,FMM,MMP,FMMM,MMMP)被检测解决.若仍未解决,则再计算sd5=(s-hi-hj),0≤i≤19,i+1≤j≤20.如果1≤w(sd5)≤2,那么3种错误情况(FMP,FMPP,MMPP)能被检测解决.若上述还不能找到错误,则需要计算sd6=(s(20)-h20-hi),0≤i≤19.如果w(sd6)=2,那么一定属于(FMMP)这种错误情况. 表 1列出了FSWDA算法每一步能解决的错误情况及相应的错误模式数量. FSWDA算法具体译码步骤如下:

    1) 错误情况为(P,PP,PPP,PPPP).根据推论1,计算sw(s).如果0≤w(s)≤4,那么错误模式e=[01×21,s].跳至7);

    2) 错误情况为(M,MM,MMM,MMMM).根据推论1,计算w(s(20)).如果1≤w(s(20))≤4,那么错误模式e(20)=[01×21s(20)],也就是说,e=[01×1,s(20),01×20],跳至7);

    3) 错误情况为(F,FP,MP,FPP,MPP,FPPP,MPPP).计算sd3=(s-hi),0≤i≤20.如果0≤w(sd3)≤3,那么错误向量e=ei+[01×21sd3].跳至7);

    4) 错误情况为(FM,FMM,MMP,FMMM,MMMP).计算sd4=(s(20) -hi),0≤i≤20.如果1≤w(sd4)≤3,那么错误向量e(20)=ei+[01×21sd4],也就是说,e=e[i-20]+[01×1sd401×20],其中, e的下标[x]表示x模41.跳至7);

    5) 错误情况为(FMP,FMPP,MMPP).计算sd5=(s-hi-hj),0≤i≤19,i+1≤j≤20.如果1≤w(sd5)≤2,那么错误向量e=ei+ej+[01×21sd5].跳至7);

    6) 错误情况为(FMMP).计算sd6=(s(20)-h20-hi),0≤i≤19.如果1≤w(sd6)≤2,那么错误模式e(20)=e20+ei+[01×21sd6].也就是说,e=e0+e[i-20]+ [01×1sd601×20],跳至7);

    7) 计算c=r+e.跳至8);

    8) 结束.

    本文利用Matlab对(41,21,9) 码纠错范围内的所有112791种错误进行模拟测试,所需平均译码时间大约为3.062 0×10-4s,并与文献[5-6]中提出的算法进行对比,运算速度基本相当,但其突出特点是能够节省存储空间,对于存储能力有限的终端,特别是移动终端来说具有一定实际意义.

参考文献 (9)

目录

/

返回文章
返回