一种rs码与删余卷积码级联码的参数盲识别方法

文档序号:7527509阅读:392来源:国知局
一种rs码与删余卷积码级联码的参数盲识别方法
【专利摘要】一种RS码与删余卷积码级联码的参数盲识别方法,属信道编码盲识别【技术领域】。首先采用基于Walsh-Hadamard算法(简称WH算法)的删余卷积码参数盲识别方法识别删余卷积码的码长、起点、删余模式以及生成矩阵,然后使用维特比译码算法进行译码;再根据译码后的序列采用矩阵分析法识别交织宽度和交织长度,并根据交织参数进行解交织;最后根据解交织后的序列采用遍历法和伽罗华域的快速傅里叶变换的方法识别RS码的参数。本发明给出了解决RS码与删余卷积码级联码参数的盲识别问题的方法,并且在降低识别数据量的同时提高了RS码小阶数时的识别率。
【专利说明】一种RS码与删余卷积码级联码的参数盲识别方法

【技术领域】
[0001] 本发明涉及数字通信系统中的一种RS码与删余卷积码级联码的参数盲识别方 法,属于信道编码盲识别【技术领域】。

【背景技术】
[0002] 级联编码是一种通过短分量码构造强纠错能力的长码的有效技术。使用非二进制 码作为外码、二进制码作为内码的级联码已广泛应用于通信和数据存储系统中,大多数应 用中,使用RS码或BCH码作为外码,卷积码作为内码。
[0003] 由于级联码较好的编码增益和较低的实现复杂度在各种通信场合中得到了广泛 的应用。张永光、楼才义著的《信道编码及其识别分析》中分别给出了的单独识别删余卷积 码参数和交织参数的方法;且专利号为201310352227. 8、发明人马丕明、黎靖、专利名称为 【一种基于伽罗华域傅里叶变换的RS码编码参数盲识别方法】的专利给出了一种识别RS码 参数的方法,但是该方法在码字个数较少且RS码阶数较小时,识别率会降低。并且现在还 没有给出将这三种码级联在一起的参数盲识别方法。


【发明内容】

[0004] 为了克服现有技术存在的缺陷和不足,本发明提供了一种RS码与删余卷积码级 联码参数盲识别方法,以解决RS码与删余卷积码级联码的参数盲识别问题。(本文中删余 卷积码是由(2,l,m)卷积码进行删余而得到的)
[0005] 本发明的技术方案如下:
[0006] -种RS码与删余卷积码级联码参数盲识别方法,通过计算机进行数据读入、分析 及计算处理,该方法步骤如下:
[0007] (1)由计算机从待识别数据读入部分待识别的数据,读入数据长度为Lr,Lr应大 于 35000 ;
[0008] (2)设读入数据的起点Indent的初始值为0,对码长和起点进行多次识别,设变量 Index为码长和起点的识别次数,初值为0 ;设两个数组:分别为存储多次识别的码长数组 Nnum和存储多次识别的起点数组BN;
[0009] (3)判断Indent+26000是否小于Lr,若小于则转入步骤(4),否则识别出错,整体 识别过程结束;
[0010] ⑷识别此时的码长,将识别出的码长存入数组Nnum中的第Index个位置;识别 码长的方法如下:
[0011] (a)用读入数据的第Indent个数据以后的数据建立一个pXq大小的矩阵,其中 P为行数,q为列数,q的范围为[2, 100],且p>q;
[0012] (b)对建立的矩阵进行化简,化简过程如下:对所建立的矩阵从左到右按列化简, 若对角线上元素为1,则将此行依次与其下方每一行进行模二加运算,如果对角线元素为 〇,则寻找该列对角线下方的非零元素所在行,将非零元素所在行与当前行互换,再执行上 述化简,如果对角线下方元素全为0,则不再化简;计算化简后的矩阵的秩,当矩阵不是满 秩矩阵时,则统计矩阵左上角单位阵的维数,记录下此时的矩阵列数和单位阵的维数; [0013] (c)将列数q加1,若q>100则转入⑷,否则则转入(b);
[0014] (d)比较所有的记录下的单位阵的维数,找到出现概率最大的值z,然后统计所有 满足单位阵维数等于z时的列数,求其最大公约数,即为所求的码长;
[0015] (5)识别此时的起点,将识别出的起点存入数组BN中的第Index个位置,识别起点 的方法如下:
[0016] (e)在得到码长值后,使用读入数据的第Indent个数据以后的数据重新建立一个 P'Xq'大小的矩阵,其中p'为行数,q'为列数,q'的值为步骤⑷中所求码长的20倍, 同时使P' >q' ;
[0017] (f)按步骤(b)中行化简的方法对(e)中建立的矩阵的行进行化简,化简完成后, 分析得到的识别矩阵的对角线元素,找到规律矩阵的起点位置,推算出起点;
[0018] (6)判断数组Nnum中第Index个数是否在区间[2, 8]中,若在区间[2, 8]中则使 Index加1,Indent加840,转入步骤(3),否则仅使Indent加840,转入步骤(3);
[0019] (7)找到数组Nnum中出现次数最多的数值即为最终识别出的删余卷积码的码长 PuncNum;找到数组BN中出现次数最多的数值即为最终识别出的删余卷积码的起点,转入 步骤(8);
[0020] (8)设循环变量WHNRec表示约束长度,初值为3 ;
[0021] (9)判断WHNRec是否小于等于12,若WHNRec小于等于12转入步骤(10),否则识 别出错,整体识别过程结束;
[0022] (10)识别此时的校验矩阵,具体识别步骤如下:
[0023] (g)将lX22_Kee+1)维数的码字个数向量与lX22_Kee+1)阶的Hadamard矩阵相 乘,得到1X22(?^+1)维的解向量,我们不直接采用矩阵相乘的方式,而是按照2 (?^+1)阶 Hadamard矩阵扩展为22(WHNRee+1)阶Hadamard矩阵的方法,先替换为22(WHNRee+1)阶Hadamard矩 阵相应位置的数据,再做乘法,其中矩阵扩展的方法为将2(_^+1)阶Hadamard矩阵的每个 位置的变量置换为2_Kee+1)阶Hadamard矩阵并乘以2_Kee+1)阶Hadamard矩阵相应位置的 数值,得到22(WHNKee+1)阶的Hadamard矩阵;
[0024] (h)求Hadamard矩阵的解即可得到校验矩阵H(D);
[0025] (11)定义变量deg为初始化生成多项式的阶数,其初值等于步骤(9)中WHNRec的 值;
[0026] (12)判断deg是否小于码长减1的差与(WHNRec+1)的乘积,即是否为 deg〈(PuncNum-l)*(WHNRec+l),若小于则转入步骤(13),否则WHNRec加1,转入步骤(9);
[0027] (13)识别生成矩阵和删余模式,具体步骤如下:
[0028] (i)设变量Pindex为删余模式序号,初值为0 ;
[0029] (j)由删余模式序号Pindex计算得到删余模式,计算公式为Pindex/2pn2,删 余模式由多个组数组成,每个组数包括两个二进制数,由上式得到商和余数,将余数转换 为二进制数,所得的商是几则对应的数组就是几,且这一组数的值规定为11,如得到的商为 1,则第一组数为11 ;如得到的商为2,则第二组数为11,而转化为二进制的余数则按照从高 位到低位的顺序依次排在删余模式中除了商所对应的数组之外的其它数组中,且余数中的 位对应是1时其值规定为10,余数中的位对应是0时其值规定为01,这样根据商和余数按 照上述规则即得到删余模式,如:删余码长为4,Pindex为6时,则6/4 = 1余2,其中商为1 表示删余模式第一组数为11,再将余数2转换为二进制数为10,分别排在第零组位置和第 二组位置,则第零组位对应余数中的1表示删余模式第零组数为10,第二组位对应余数中 的0表示删余模式第二组为01,所以得到删余模式为10, 11,01 ;
[0030] (k)由识别得到校验矩阵H(D)其维数为l*PunCNum,根据(j)中求出的删余模式 补充零得到一个针对删余之前的校验多项式M(D),维数为1*2L,L= (PuncNum-1);例如: 删余模式为尸=(丨,〇,丨,〇,…丄〇,丨,丨)eZfWN',h,其中P中含有PuncNum个1和(PuncNum-2) 个零,对于删余模式中含1的位置由校验矩阵H(D)中的各个对应分量替补上,从而得到删 余之前的校验多项式M(D);
[0031] (1)设Gp(D)为删余卷积码的生成多项式,根据生成矩阵和校验矩阵的正交性建 立方程组Gp(D)H(D)T = 0,其中H(D)T为矩阵H(D)的转置,解线性方程组,若存在不唯一的 解向量,则转入步骤(m),否则将得到的解向量分别进行处理,处理方法如下:对每个解向 量按奇偶位置进行抽取,得到两个解向量组,由两个解向量组得到两个多项式,计算两多项 式的公因式,若两多项式不含公因式,则此时删余模式序号Pindex所代表的删余模式即为 所识别出的删余模式,转入步骤(14),否则转入步骤(m);
[0032] (14)根据识别出的删余模式,将删余卷积码编码时删掉的码补零,得到需要译码 的序列;
[0033] (15)根据之前识别出的删余卷积码参数:码长、起点、删余模式以及校验矩阵对 待识别数据进行译码,使用维特比译码算法得到解删余卷积码后的序列;
[0034] (16)识别交织长度,具体步骤如下:
[0035] (m)设变量q_max,取值为 100 ;
[0036] (n)用解删余卷积码后的序列重新建立一个PlXqi大小的矩阵,其中Pl是行数,qi 是列数,范围为[20,q_max],且Pl >qi ;对这个矩阵进行步骤(b)的过程,得到当秩不 等于列数时的所有列数,求这些列数的最大公约数,若求出的最大公约数大于〇,则此时的 最大公约数即为识别出的交织长度,转入步骤(17);否则转入步骤(q);
[0037] (o)q_max加 50,转入步骤(p);
[0038] (17)识别交织起点,具体算法如下:
[0039] (p)使用解删余卷积码后的序列重新建立一个p2Xq2大小的矩阵,其中p2是行数, q2是列数,设q2的初值为〇,且p2Xq2 ;对这个矩阵进行步骤(b)中的化简过程,保存下此时 矩阵的秩;
[0040] (q)q2加1,判断q2是否小于识别出的交织长度,若q2小于交织长度,转入步骤 (r),否则转入下一步;
[0041] (r)求(r)中保存下的所有秩中秩最小的位置即为识别出的交织起点;
[0042] (18)识别交织宽度,具体算法如下:
[0043] (s)求出交织长度的所有因子,得到因子的个数为yznum,并将这些因子存在数组 yz中,其中72(|表示因子数组中第一个因子,yZl表示因子数组中第二个因子? --以此类 推;
[0044] (t)设循环变量ii的初值为0 ;
[0045] (u)假设yzn是交织宽度,(如果ii = 1,则yzu表示步骤(s)中的yzp)对解删 余卷积码后的序列进行解交织,将解交织后序列排成列数为交织长度除以yZii的商的矩阵 并计算其秩,并存储下此时的秩乘以yZii再除以交织长度的值,放在数组zl中;
[0046] (v)ii加1,若ii小于yznum则转入步骤(u),否则转入步骤(w);
[0047] (w)求数组zl中最小值,对应的因子即为识别出的交织宽度;
[0048] (19)解交织的具体方法如下:
[0049] (X)将解删余卷积码后的序列删掉前面交织起点个数的码字,得到待解交织序 列;
[0050] (y)建立一个列数为交织长度除以交织宽度商的矩阵,将步骤(15)中得到的解 删余卷积码后的序列即待解交织序列放入建立的矩阵中,然后按照列数的顺序读取出每一 列的数据加以排列,直到读完最后一列数据,即可得到解交织后的序列;如序列011001010 为待解交织序列,设交织宽度为3,交织长度为9,则将序列放入列数为9/3 = 3的矩阵 中,即

【权利要求】
1. 一种RS码与删余卷积码级联码参数盲识别方法,通过计算机进行数据读入、分析及 计算处理,该方法步骤如下: (1) 由计算机从待识别数据读入部分待识别的数据,读入数据长度为Lr,Lr应大于 35000 ; (2) 设读入数据的起点Indent的初始值为0,对码长和起点进行多次识别,设变量 Index为码长和起点的识别次数,初值为0 ;设两个数组:分别为存储多次识别的码长数组 Nnum和存储多次识别的起点数组BN; (3) 判断Indent+26000是否小于Lr,若小于则转入步骤(4),否则转入步骤(7); (4) 识别此时的码长,将识别出的码长存入数组Nnum中的第Index个位置;识别码长 的方法如下: (a) 用读入数据的第Indent个数据以后的数据建立一个pXq大小的矩阵,其中p为 行数,q为列数,q的范围为[2, 100],且p>q; (b) 对建立的矩阵进行化简,化简过程如下:对所建立的矩阵从左到右按列化简,若对 角线上元素为1,则将此行依次与其下方每一行进行模二加运算,如果对角线元素为0,则 寻找该列对角线下方的非零元素所在行,将非零元素所在行与当前行互换,再执行上述化 简,如果对角线下方元素全为〇,则不再化简;计算化简后的矩阵的秩,当矩阵不是满秩矩 阵时,则统计矩阵左上角单位阵的维数,记录下此时的矩阵列数和单位阵的维数; (C)将列数q加1,若q>100则转入(d),否则则转入(b); (d) 比较所有的记录下的单位阵的维数,找到出现概率最大的值z,然后统计所有满足 单位阵维数等于z时的列数,求其最大公约数,即为所求的码长; (5) 识别此时的起点,将识别出的起点存入数组BN中的第Index个位置,识别起点的方 法如下: (e) 在得到码长值后,使用读入数据的第Indent个数据以后的数据重新建立一个 PiXq^大小的矩阵,其中P'为行数,q'为列数,q'的值为步骤⑷中所求码长的20倍, 同时使P' >q' ; (f) 按步骤(b)中行化简的方法对(e)中建立的矩阵的行进行化简,化简完成后,分析 得到的识别矩阵的对角线元素,找到规律矩阵的起点位置,推算出起点; (6) 判断数组Nnum中第Index个数是否在区间[2, 8]中,若在区间[2, 8]中则使Index 加1,Indent加840,转入步骤(3),否则仅使Indent加840,转入步骤(3); (7) 找到数组Nnum中出现次数最多的数值即为最终识别出的删余卷积码的码长 PuncNum;找到数组BN中出现次数最多的数值即为最终识别出的删余卷积码的起点,转入 步骤(8); (8) 设循环变量WHNRec表示约束长度,初值为3 ; (9) 判断WHNRec是否小于等于12,若WHNRec小于等于12转入步骤(10),否则识别出 错,整体识别过程结束; (10) 识别此时的校验矩阵,具体识别步骤如下: (g) 将1X22(wh^+1)维数的码字个数向量与1Χ2_Ν^+1)阶的Hadamard矩阵相乘,得到 1Χ2__+1)维的解向量,我们不直接采用矩阵相乘的方式,而是按照2(丽版+1)阶Hadamard 矩阵扩展为22_ee+1)阶Hadamard矩阵的方法,先替换为22(?ee+1)阶Hadamard矩阵相应位 置的数据,再做乘法,其中矩阵扩展的方法为将2(?^+1)阶Hadamard矩阵的每个位置的变 量置换为2(?ee+1)阶Hadamard矩阵并乘以2(?Kee+1)阶Hadamard矩阵相应位置的数值,得 到 22(_ee+1)阶的Hadamard矩阵; (h) 求Hadamard矩阵的解即可得到校验矩阵H(D); (11) 定义变量deg为初始化生成多项式的阶数,其初值等于步骤(9)中WHNRec的值; (12) 判断deg是否小于码长减1的差与(WHNRec+Ι)的乘积,即是否为 deg〈 (PuncNum-I) *(WHNRec+l),若小于则转入步骤(13),否则WHNRec加1,转入步骤(9); (13) 识别生成矩阵和删余模式,具体步骤如下: (i) 设变量Pindex为删余模式序号,初值为O; (j) 由删余模式序号Pindex计算得到删余模式,计算公式为PindeX/2Pmc^2,删余模式 由多个组数组成,每个组数包括两个二进制数,由上式得到商和余数,将余数转换为二进 制数,所得的商是几则对应的数组就是几,且这一组数的值规定为11,如得到的商为1,则 第一组数为11 ;如得到的商为2,则第二组数为11,而转化为二进制的余数则按照从高位到 低位的顺序依次排在删余模式中除了商所对应的数组之外的其它数组中,且余数中的位对 应是1时其值规定为10,余数中的位对应是〇时其值规定为01,这样根据商和余数按照上 述规则即得到删余模式,如:删余码长为4,Pindex为6时,则6/4 = 1余2,其中商为1表 示删余模式第一组数为11,再将余数2转换为二进制数为10,分别排在第零组位置和第二 组位置,则第零组位对应余数中的1表示删余模式第零组数为10,第二组位对应余数中的0 表示删余模式第二组为01,所以得到删余模式为10, 11,01 ; (k) 由识别得到校验矩阵H(D)其维数为l*PuncNum,根据(j)中求出的删余模式补充 零得到一个针对删余之前的校验多项式M(D),维数为1*2L,L= (PuncNum-I);例如:删余 模式为/> =(丨,〇,丨,〇/..,1,〇,1,])£222(|--|、其中?中含有?1 111(^11111个1和(?1111(^11111-2)个零, 对于删余模式中含1的位置由校验矩阵H(D)中的各个对应分量替补上,从而得到删余之前 的校验多项式M(D); (l) 设Gp(D)为删余卷积码的生成多项式,根据生成矩阵和校验矩阵的正交性建立方 程组Gp(D)H(D)τ = 0,其中H(D)τ为矩阵H(D)的转置,解线性方程组,若存在不唯一的解向 量,则转入步骤(m),否则将得到的解向量分别进行处理,处理方法如下:对每个解向量按 奇偶位置进行抽取,得到两个解向量组,由两个解向量组得到两个多项式,计算两多项式的 公因式,若两多项式不含公因式,则此时删余模式序号Pindex所代表的删余模式即为所识 别出的删余模式,转入步骤(14),否则转入步骤(m); (14) 根据识别出的删余模式,将删余卷积码编码时删掉的码补零,得到需要译码的序 列; (15) 根据之前识别出的删余卷积码参数:码长、起点、删余模式以及校验矩阵对待识 别数据进行译码,使用维特比译码算法得到解删余卷积码后的序列; (16) 识别交织长度,具体步骤如下: (m) 设变量q_max,取值为100 ; (η)用解删余卷积码后的序列重新建立一个P1Xq1大小的矩阵,其中P1是行数,Q1是 列数,Q1范围为[20,q_maX],且P1 >q1;对这个矩阵进行步骤(b)的过程,得到当秩不等 于列数时的所有列数,求这些列数的最大公约数,若求出的最大公约数大于〇,则此时的最 大公约数即为识别出的交织长度,转入步骤(17);否则转入步骤(q); (o)q_max加50,转入步骤(p); (17) 识别交织起点,具体算法如下: (P)使用解删余卷积码后的序列重新建立一个P2Xq2大小的矩阵,其中P2是行数,q2是 列数,设q2的初值为〇,且P2Xq2 ;对这个矩阵进行步骤(b)中的化简过程,保存下此时矩阵 的秩; (q) q2加1,判断q2是否小于识别出的交织长度,若q2小于交织长度,转入步骤(r),否 则转入下一步; (r) 求(r)中保存下的所有秩中秩最小的位置即为识别出的交织起点; (18) 识别交织宽度,具体算法如下: (s) 求出交织长度的所有因子,得到因子的个数为yznum,并将这些因子存在数组yz 中,其中yZ〇表示因子数组中第一个因子,721表示因子数组中第二个因子· --以此类推; (t) 设循环变量ii的初值为0 ; (u) 假设yz。是交织宽度,(如果ii= 1,则yz。表示步骤(s)中的yzp)对解删余卷 积码后的序列进行解交织,将解交织后序列排成列数为交织长度除以yZii的商的矩阵并计 算其秩,并存储下此时的秩乘以yZii再除以交织长度的值,放在数组zl中; (V)ii加1,若ii小于yznum则转入步骤(u),否则转入步骤(w); (w)求数组zl中最小值,对应的因子即为识别出的交织宽度; (19) 解交织的具体方法如下: (X)将解删余卷积码后的序列删掉前面交织起点个数的码字,得到待解交织序列; (y) 建立一个列数为交织长度除以交织宽度商的矩阵,将步骤(15)中得到的解删余 卷积码后的序列即待解交织序列放入建立的矩阵中,然后按照列数的顺序读取出每一列 的数据加以排列,直到读完最后一列数据,即可得到解交织后的序列;如序列011001010 为待解交织序列,设交织宽度为3,交织长度为9,则将序列放入列数为9/3 = 3的矩阵 0 1 1 中,即〇 〇 1,然后先读第一列为〇〇〇,第二列为101,第三列为110,则解交织后序列为 0 1 0 000101110; (20) RS码参数盲识别方法如下: (z) 选择构成RS码的有限域的阶m为2,每一个RS码的符号都属于有限域GF(2m)中 的一个元素,其中GF(2m)表示含有2m个元素的有限域; (aa)选择一个次数为m的本原多项式; (bb) 根据步骤(aa)中选择的本原多项式,将解交织后的数据每m个分成一组,转换为 有限域GF(2m)中的一个符号序列,令转换后的符号序列为(Ctl,C1,…,cn,…); (cc)令("2?_2,…,《1,《。)表不RS码的一个码字,该码字用多项式 iKx) =iV' +"'V+A表示,式中各项为¥」,〇彡J·彡2m_2,x为变量;a(x)的 伽罗华域傅里叶变换为一与a(x)次数相同的多项式,用A(Z)表示该多项式,则 = 2z2^2+…4z+ 4),式中各项为AjZj,0彡j彡2m-2,Z为变量,Zj的系数为 2m-2 Aj=ZaJaffα是生成该RS码的本原多项式的根,a」是多项式a(X)中d的系数;如果aj , 是码字多项式a(x)的一个根,则其伽罗华域傅里叶变换中d的系数?=O;RS码生成多项 式的根一定也是码字多项式的根,且其生成多项式g(x) = (Χ+0(Χ+?+1)···(Χ+α?+2Η), 其中t是纠错容量,i是一整数,因此对RS码的码字多项式进行伽罗华域傅里叶变换,存在 一个整数i,使得A^1,…,Ai+1,Ai为O;将符号序列(C(l,C1,…,cn,…)从第一个位置开始, 依次将每2m-l个连续的符号分为一组,共分成N组,每组都当成RS码的一个码字,对其计 算伽罗华域傅里叶变换,统计多项式A(z)中各系数为O的次数;令& =(Λ「2"·_2,···,Μ,Λ^\式 中% (0 <j< 2m-2)是从右向左数N中的第j个分量,表示对这N组码字多项式计算伽罗 华域傅里叶变换,有%个码字使得其伽罗华域傅里叶变换A(z)中d系数?=0 ; (dd)分析步骤(cc)中统计的结果;根据阶数m设置阈值threshold,如果m< 6,设置threshold= 35,否则设置threshold= 10 ;若有偶数个元素大于threshold,并且这偶数 个元素在位置上连续,则RS码的码长为2m-l;令Ni+^,…,Ni+1,Ni是N中大于threshold的 元素,则该RS码的纠错容量为t,生成多项式g(X) = (X+α〇 (X+ai+1)…(X+ai+2W),至此 已完成了RS码的识别,识别终止,否则转到下一步; (ee)如果还有没有遍历的次数为m的本原多项式,选择下一个次数为m的本原多项式, 回到第(cc)步;否则m加1,回到第(cc)步。
【文档编号】H03M13/23GK104467875SQ201410747946
【公开日】2015年3月25日 申请日期:2014年12月9日 优先权日:2014年12月9日
【发明者】马丕明, 张丽媛, 杨勇 申请人:山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1