一种基于[255,16,112]循环码的强纠错编码方法与流程

文档序号:17895664发布日期:2019-06-13 15:58阅读:168来源:国知局
本发明涉及数字信息传输领域,具体涉及一种基于[255,16,112]循环码的强纠错编码方法。
背景技术
::在数字通信系统中,特别是无线数字通信系统中,发射机与接收机之间的通信信道会受到随机噪声的干扰,这会在所传递的信息中引起错误。处理这个问题的一种方法是使用纠错编码。纠错编码是将冗余信息添加到消息传输中,使接收机能够在一定程度上纠正信息在信道上传输时发生的误码。常见的纠错编码方法包括bch码、rs码、低密度奇偶校验码、turbo码、卷积码等。不同的纠错编码方法具有不同的纠错性能,也有不同的适用场景。在具体应用中,需要根据应用场景选择适合的纠错编码方法,并进行具体的优化处理。技术实现要素:本发明要解决的技术问题是:提供一种基于[255,16,112]循环码的具有高纠错性能的编码方法。本发明是通过以下技术方案实现的:第一步,将信息数据分割为以16比特为长度的信息码字,每个信息码字对应的码多项式表示为m(x)=m15x15+m14x14+…+m0,其中多项式系数mi(i=0,1,…15)为信息码字相应比特位的值;第二步,确定循环码生成多项式g(x)为:g(x)=x239+x234+x231+x230+x229+x227+x226+x224+x220+x219+x218+x217+x213+x212+x210+x207+x202+x201+x197+x195+x194+x191+x187+x185+x184+x180+x178+x177+x174+x171+x170+x168+x167+x166+x162+x160+x159+x158+x157+x156+x154+x153+x152+x144+x143+x141+x140+x137+x136+x135+x134+x133+x129+x124+x120+x118+x110+x109+x107+x106+x102+x101+x100+x99+x98+x94+x93+x91+x88+x86+x83+x82+x81+x77+x75+x74+x73+x72+x71+x68+x67+x64+x61+x60+x58+x57+x55+x54+x52+x51+x47+x44+x43+x42+x40+x39+x37+x35+x33+x32+x31+x27+x22+x16+x13+x10+x9+x7+x6+x4+x3+1;第三步,通过计算x239m(x)除以g(x),得到相应的余式r(x)=x239m(x)mod(g(x));第四步,根据上述结果,得到纠错编码对应的码多项式c(x)=x239m(x)+r(x)。进一步,以上技术方案也可以通过[255,16,112]循环码生成矩阵g16×255实现编码,即[m15m14…m0]·g16×255=[c254c253…c0],其中[m15m14…m0]为16比特的输入信息码字,[c254c253…c0]为255比特的输出纠错编码码字。循环码生成矩阵g16×255由[255,16,112]循环码的典型生成矩阵g0经过模2线性行变换得到。[255,16,112]循环码的典型生成矩阵g0可表示为:g0=[i16q16×239],其中i16为16阶的单位矩阵,q16×239=(q1q2…q16)t,其中,q1=(10011011011001001000001000010001110101011011100100011011011011001001100111110100011100101001011000111110001101100000001010001000010001111100110110000000111011111010001110110010011010001101000100110100011000010010110001111000101101110010000),q2=(01001101101100100100000100001000111010101101110010001101101101100100110011111010001110010100101100011111000110110000000101000100001000111110011011000000011101111101000111011001001101000110100010011010001100001001011000111100010110111001000),q3=(00100110110110010010000010000100011101010110111001000110110110110010011001111101000111001010010110001111100011011000000010100010000100011111001101100000001110111110100011101100100110100011010001001101000110000100101100011110001011011100100),q4=(00010011011011001001000001000010001110101011011100100011011011011001001100111110100011100101001011000111110001101100000001010001000010001111100110110000000111011111010001110110010011010001101000100110100011000010010110001111000101101110010),q5=(00001001101101100100100000100001000111010101101110010001101101101100100110011111010001110010100101100011111000110110000000101000100001000111110011011000000011101111101000111011001001101000110100010011010001100001001011000111100010110111001),q6=(10011111101111111010011000000001010110110001010011010011101101111111110100111011110100010000001010001111110001111011001010011100000001011111001111101100111010001101111010101111111110111001011110111101110000100010010100011011011100101001100),q7=(01001111110111111101001100000000101011011000101001101001110110111111111010011101111010001000000101000111111000111101100101001110000000101111100111110110011101000110111101010111111111011100101111011110111000010001001010001101101110010100110),q8=(00100111111011111110100110000000010101101100010100110100111011011111111101001110111101000100000010100011111100011110110010100111000000010111110011111011001110100011011110101011111111101110010111101111011100001000100101000110110111001010011),q9=(10001000100100110111011011010001111111101101101110000001000110100110011001010011000010001011011001101111110011101111010011011011110001110111001111111101011100101011100001100111100101111010001111000011110110010110100011011011110110010111001),q10=(11011111001011010011100101111001001010101101010011011011111000011010101011011101111101101100110100001001110100010111100011100101101001000111010001111110010101101111111110000001101000110000000011010101100011011001100000010101010110111001100),q11=(01101111100101101001110010111100100101010110101001101101111100001101010101101110111110110110011010000100111010001011110001110010110100100011101000111111001010110111111111000000110100011000000001101010110001101100110000001010101011011100110),q12=(00110111110010110100111001011110010010101011010100110110111110000110101010110111011111011011001101000010011101000101111000111001011010010001110100011111100101011011111111100000011010001100000000110101011000110110011000000101010101101110011),q13=(10000000100000010010010100111110111100001110001110000000000100001010110010101111110011000100111110011111000011000010110110010100111100110100001100001111001001010111110001000010010111001011000100101110110100001001111101111010000111000101001),q14=(11011011001001000001000010001110101011011100100011011011011001001100111110100011100101001011000111110001101100000001010001000010001111100110110000000111011111010001110110010011010001101000100110100011000010010110001111000101101110010000100),q15=(01101101100100100000100001000111010101101110010001101101101100100110011111010001110010100101100011111000110110000000101000100001000111110011011000000011101111101000111011001001101000110100010011010001100001001011000111100010110111001000010),q16=(00110110110010010000010000100011101010110111001000110110110110010011001111101000111001010010110001111100011011000000010100010000100011111001101100000001110111110100011101100100110100011010001001101000110000100101100011110001011011100100001)。进一步,为了适合计算能力受限的设备进行编码,可以将65536个所有可能的码字存储于设备中,以16比特的信息码字为地址,通过查找表的方式进行编码。有益效果:本发明的有益效果是:本编码方法采用[255,16,112]循环码的重量分布为:循环码重量0112120128136出现次数11020040803085520400利用codetables(http://www.codetables.de)进行判断,本发明给出的[255,16,112]循环码属于最优循环码。同时,本纠错编码方法结合极大似然译码算法可以实现55位随机错码的纠错。具体实施方式以下结合优选实施例对本发明作具体的介绍。作为优选,在模2运算的前提下,采用信息码字与[255,16,112]循环码生成矩阵g进行矩阵相乘的方式进行编码。此编码方式易于编程实现,并且可以以典型生成矩阵g0为基础,通过模2线性行变换得到不同的生成矩阵g,从而得到纠错性能一致的不同编码方案。作为优选,以[255,16,112]循环码的典型生成矩阵g0为基础进行编码。输入信息数据分割为16比特的输入信息码字,表示为[m15m14…m0];典型生成矩阵可表示为g0=[i16q16×239],其中i16为16阶的单位矩阵,q16×239=(q1q2…q16)t,其中,q1=(10011011011001001000001000010001110101011011100100011011011011001001100111110100011100101001011000111110001101100000001010001000010001111100110110000000111011111010001110110010011010001101000100110100011000010010110001111000101101110010000),q2=(01001101101100100100000100001000111010101101110010001101101101100100110011111010001110010100101100011111000110110000000101000100001000111110011011000000011101111101000111011001001101000110100010011010001100001001011000111100010110111001000),q3=(00100110110110010010000010000100011101010110111001000110110110110010011001111101000111001010010110001111100011011000000010100010000100011111001101100000001110111110100011101100100110100011010001001101000110000100101100011110001011011100100),q4=(00010011011011001001000001000010001110101011011100100011011011011001001100111110100011100101001011000111110001101100000001010001000010001111100110110000000111011111010001110110010011010001101000100110100011000010010110001111000101101110010),q5=(00001001101101100100100000100001000111010101101110010001101101101100100110011111010001110010100101100011111000110110000000101000100001000111110011011000000011101111101000111011001001101000110100010011010001100001001011000111100010110111001),q6=(10011111101111111010011000000001010110110001010011010011101101111111110100111011110100010000001010001111110001111011001010011100000001011111001111101100111010001101111010101111111110111001011110111101110000100010010100011011011100101001100),q7=(01001111110111111101001100000000101011011000101001101001110110111111111010011101111010001000000101000111111000111101100101001110000000101111100111110110011101000110111101010111111111011100101111011110111000010001001010001101101110010100110),q8=(00100111111011111110100110000000010101101100010100110100111011011111111101001110111101000100000010100011111100011110110010100111000000010111110011111011001110100011011110101011111111101110010111101111011100001000100101000110110111001010011),q9=(10001000100100110111011011010001111111101101101110000001000110100110011001010011000010001011011001101111110011101111010011011011110001110111001111111101011100101011100001100111100101111010001111000011110110010110100011011011110110010111001),q10=(11011111001011010011100101111001001010101101010011011011111000011010101011011101111101101100110100001001110100010111100011100101101001000111010001111110010101101111111110000001101000110000000011010101100011011001100000010101010110111001100),q11=(01101111100101101001110010111100100101010110101001101101111100001101010101101110111110110110011010000100111010001011110001110010110100100011101000111111001010110111111111000000110100011000000001101010110001101100110000001010101011011100110),q12=(00110111110010110100111001011110010010101011010100110110111110000110101010110111011111011011001101000010011101000101111000111001011010010001110100011111100101011011111111100000011010001100000000110101011000110110011000000101010101101110011),q13=(10000000100000010010010100111110111100001110001110000000000100001010110010101111110011000100111110011111000011000010110110010100111100110100001100001111001001010111110001000010010111001011000100101110110100001001111101111010000111000101001),q14=(11011011001001000001000010001110101011011100100011011011011001001100111110100011100101001011000111110001101100000001010001000010001111100110110000000111011111010001110110010011010001101000100110100011000010010110001111000101101110010000100),q15=(01101101100100100000100001000111010101101110010001101101101100100110011111010001110010100101100011111000110110000000101000100001000111110011011000000011101111101000111011001001101000110100010011010001100001001011000111100010110111001000010),q16=(00110110110010010000010000100011101010110111001000110110110110010011001111101000111001010010110001111100011011000000010100010000100011111001101100000001110111110100011101100100110100011010001001101000110000100101100011110001011011100100001);输入信息码字[m15m14…m0]与典型生成矩阵g0进行模2乘运算得到255比特的纠错码字[c254c253…c0]。此编码过程以表达式表示为:[c254c253…c0]=[m15m14…m0]·g0。通过该纠错编码方法,信息数据被分割为以16比特为长度的信息码字,每个信息码字被编码为255比特的纠错码,接收端结合极大似然译码算法可以实现55位随机错码的纠错。对于本领域的普通技术人员而言,根据本发明的教导,在不脱离本发明的原理与精神的情况下,对实施方式所进行的改变、修改、替换和变型仍落入本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1