CN104467875A - 一种rs码与删余卷积码级联码的参数盲识别方法 - Google Patents
一种rs码与删余卷积码级联码的参数盲识别方法 Download PDFInfo
- Publication number
- CN104467875A CN104467875A CN201410747946.4A CN201410747946A CN104467875A CN 104467875 A CN104467875 A CN 104467875A CN 201410747946 A CN201410747946 A CN 201410747946A CN 104467875 A CN104467875 A CN 104467875A
- Authority
- CN
- China
- Prior art keywords
- code
- matrix
- proceed
- whnrec
- length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
一种RS码与删余卷积码级联码的参数盲识别方法,属信道编码盲识别技术领域。首先采用基于Walsh-Hadamard算法(简称WH算法)的删余卷积码参数盲识别方法识别删余卷积码的码长、起点、删余模式以及生成矩阵,然后使用维特比译码算法进行译码;再根据译码后的序列采用矩阵分析法识别交织宽度和交织长度,并根据交织参数进行解交织;最后根据解交织后的序列采用遍历法和伽罗华域的快速傅里叶变换的方法识别RS码的参数。本发明给出了解决RS码与删余卷积码级联码参数的盲识别问题的方法,并且在降低识别数据量的同时提高了RS码小阶数时的识别率。
Description
技术领域
本发明涉及数字通信系统中的一种RS码与删余卷积码级联码的参数盲识别方法,属于信道编码盲识别技术领域。
背景技术
级联编码是一种通过短分量码构造强纠错能力的长码的有效技术。使用非二进制码作为外码、二进制码作为内码的级联码已广泛应用于通信和数据存储系统中,大多数应用中,使用RS码或BCH码作为外码,卷积码作为内码。
由于级联码较好的编码增益和较低的实现复杂度在各种通信场合中得到了广泛的应用。张永光、楼才义著的《信道编码及其识别分析》中分别给出了的单独识别删余卷积码参数和交织参数的方法;且专利号为201310352227.8、发明人马丕明、黎靖、专利名称为【一种基于伽罗华域傅里叶变换的RS码编码参数盲识别方法】的专利给出了一种识别RS码参数的方法,但是该方法在码字个数较少且RS码阶数较小时,识别率会降低。并且现在还没有给出将这三种码级联在一起的参数盲识别方法。
发明内容
为了克服现有技术存在的缺陷和不足,本发明提供了一种RS码与删余卷积码级联码参数盲识别方法,以解决RS码与删余卷积码级联码的参数盲识别问题。(本文中删余卷积码是由(2,1,m)卷积码进行删余而得到的)
本发明的技术方案如下:
一种RS码与删余卷积码级联码参数盲识别方法,通过计算机进行数据读入、分析及计算处理,该方法步骤如下:
(1)由计算机从待识别数据读入部分待识别的数据,读入数据长度为Lr,Lr应大于35000;
(2)设读入数据的起点Indent的初始值为0,对码长和起点进行多次识别,设变量Index为码长和起点的识别次数,初值为0;设两个数组:分别为存储多次识别的码长数组Nnum和存储多次识别的起点数组BN;
(3)判断Indent+26000是否小于Lr,若小于则转入步骤(4),否则识别出错,整体识别过程结束;
(4)识别此时的码长,将识别出的码长存入数组Nnum中的第Index个位置;识别码长的方法如下:
(a)用读入数据的第Indent个数据以后的数据建立一个p×q大小的矩阵,其中p为行数,q为列数,q的范围为[2,100],且p>q;
(b)对建立的矩阵进行化简,化简过程如下:对所建立的矩阵从左到右按列化简,若对角线上元素为1,则将此行依次与其下方每一行进行模二加运算,如果对角线元素为0,则寻找该列对角线下方的非零元素所在行,将非零元素所在行与当前行互换,再执行上述化简,如果对角线下方元素全为0,则不再化简;计算化简后的矩阵的秩,当矩阵不是满秩矩阵时,则统计矩阵左上角单位阵的维数,记录下此时的矩阵列数和单位阵的维数;
(c)将列数q加1,若q>100则转入(d),否则则转入(b);
(d)比较所有的记录下的单位阵的维数,找到出现概率最大的值z,然后统计所有满足单位阵维数等于z时的列数,求其最大公约数,即为所求的码长;
(5)识别此时的起点,将识别出的起点存入数组BN中的第Index个位置,识别起点的方法如下:
(e)在得到码长值后,使用读入数据的第Indent个数据以后的数据重新建立一个p′×q′大小的矩阵,其中p’为行数,q’为列数,q’的值为步骤(d)中所求码长的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)将1×22(WHNRec+1)维数的码字个数向量与1×22(WHNRec+1)阶的Hadamard矩阵相乘,得到1×22(WHNRec+1)维的解向量,我们不直接采用矩阵相乘的方式,而是按照2(WHNRec+1)阶Hadamard矩阵扩展为22(WHNRec+1)阶Hadamard矩阵的方法,先替换为22(WHNRec+1)阶Hadamard矩阵相应位置的数据,再做乘法,其中矩阵扩展的方法为将2(WHNRec+1)阶Hadamard矩阵的每个位置的变量置换为2(WHNRec+1)阶Hadamard矩阵并乘以2(WHNRec+1)阶Hadamard矩阵相应位置的数值,得到22(WHNRec+1)阶的Hadamard矩阵;
(h)求Hadamard矩阵的解即可得到校验矩阵H(D);
(11)定义变量deg为初始化生成多项式的阶数,其初值等于步骤(9)中WHNRec的值;
(12)判断deg是否小于码长减1的差与(WHNRec+1)的乘积,即是否为deg<(PuncNum-1)*(WHNRec+1),若小于则转入步骤(13),否则WHNRec加1,转入步骤(9);
(13)识别生成矩阵和删余模式,具体步骤如下:
(i)设变量Pindex为删余模式序号,初值为0;
(j)由删余模式序号Pindex计算得到删余模式,计算公式为Pindex/2PuncNum-2,删余模式由多个组数组成,每个组数包括两个二进制数,由上式得到商和余数,将余数转换为二进制数,所得的商是几则对应的数组就是几,且这一组数的值规定为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;
(k)由识别得到校验矩阵H(D)其维数为1*PuncNum,根据(j)中求出的删余模式补充零得到一个针对删余之前的校验多项式M(D),维数为1*2L,L=(PuncNum-1);例如:删余模式为其中P中含有PuncNum个1和(PuncNum-2)个零,对于删余模式中含1的位置由校验矩阵H(D)中的各个对应分量替补上,从而得到删余之前的校验多项式M(D);
(l)设Gp(D)为删余卷积码的生成多项式,根据生成矩阵和校验矩阵的正交性建立方程组Gp(D)H(D)T=0,其中H(D)T为矩阵H(D)的转置,解线性方程组,若存在不唯一的解向量,则转入步骤(m),否则将得到的解向量分别进行处理,处理方法如下:对每个解向量按奇偶位置进行抽取,得到两个解向量组,由两个解向量组得到两个多项式,计算两多项式的公因式,若两多项式不含公因式,则此时删余模式序号Pindex所代表的删余模式即为所识别出的删余模式,转入步骤(14),否则转入步骤(m);
(14)根据识别出的删余模式,将删余卷积码编码时删掉的码补零,得到需要译码的序列;
(15)根据之前识别出的删余卷积码参数:码长、起点、删余模式以及校验矩阵对待识别数据进行译码,使用维特比译码算法得到解删余卷积码后的序列;
(16)识别交织长度,具体步骤如下:
(m)设变量q_max,取值为100;
(n)用解删余卷积码后的序列重新建立一个p1×q1大小的矩阵,其中p1是行数,q1是列数,q1范围为[20,q_max],且p1>q1;对这个矩阵进行步骤(b)的过程,得到当秩不等于列数时的所有列数,求这些列数的最大公约数,若求出的最大公约数大于0,则此时的最大公约数即为识别出的交织长度,转入步骤(17);否则转入步骤(q);
(o)q_max加50,转入步骤(p);
(17)识别交织起点,具体算法如下:
(p)使用解删余卷积码后的序列重新建立一个p2×q2大小的矩阵,其中p2是行数,q2是列数,设q2的初值为0,且p2×q2;对这个矩阵进行步骤(b)中的化简过程,保存下此时矩阵的秩;
(q)q2加1,判断q2是否小于识别出的交织长度,若q2小于交织长度,转入步骤(r),否则转入下一步;
(r)求(r)中保存下的所有秩中秩最小的位置即为识别出的交织起点;
(18)识别交织宽度,具体算法如下:
(s)求出交织长度的所有因子,得到因子的个数为yznum,并将这些因子存在数组yz中,其中yz0表示因子数组中第一个因子,yz1表示因子数组中第二个因子···以此类推;
(t)设循环变量ii的初值为0;
(u)假设yzii是交织宽度,(如果ii=1,则yzii表示步骤(s)中的yz1,)对解删余卷积码后的序列进行解交织,将解交织后序列排成列数为交织长度除以yzii的商的矩阵并计算其秩,并存储下此时的秩乘以yzii再除以交织长度的值,放在数组zl中;
(v)ii加1,若ii小于yznum则转入步骤(u),否则转入步骤(w);
(w)求数组zl中最小值,对应的因子即为识别出的交织宽度;
(19)解交织的具体方法如下:
(x)将解删余卷积码后的序列删掉前面交织起点个数的码字,得到待解交织序列;
(y)建立一个列数为交织长度除以交织宽度商的矩阵,将步骤(15)中得到的解删余卷积码后的序列即待解交织序列放入建立的矩阵中,然后按照列数的顺序读取出每一列的数据加以排列,直到读完最后一列数据,即可得到解交织后的序列;如序列011001010为待解交织序列,设交织宽度为3,交织长度为9,则将序列放入列数为9/3=3的矩阵中,即 然后先读第一列为000,第二列为101,第三列为110,则解交织后序列为000101110;
(20)RS码参数盲识别方法如下:
(z)选择构成RS码的有限域的阶m为2,每一个RS码的符号都属于有限域GF(2m)中的一个元素,其中GF(2m)表示含有2m个元素的有限域;
(aa)选择一个次数为m的本原多项式;
(bb)根据步骤(aa)中选择的本原多项式,将解交织后的数据每m个分成一组,转换为有限域GF(2m)中的一个符号序列,令转换后的符号序列为(c0,c1,…,cn,…);
(cc)令(a2m-2,…,a1,a0)表示RS码的一个码字,该码字用多项式表示,式中各项为ajxj,0≤j≤2m-2,x为变量;a(x)的伽罗华域傅里叶变换为一与a(x)次数相同的多项式,用A(z)表示该多项式,则式中各项为Ajzj,0≤j≤2m-2,z为变量,zj的系数为α是生成该RS码的本原多项式的根,aj是多项式a(x)中xj的系数;如果αj是码字多项式a(x)的一个根,则其伽罗华域傅里叶变换中zj的系数Aj=0;RS码生成多项式的根一定也是码字多项式的根,且其生成多项式g(x)=(x+αi)(x+αi+1)…(x+αi+2t-1),其中t是纠错容量,i是一整数,因此对RS码的码字多项式进行伽罗华域傅里叶变换,存在一个整数i,使得Ai+2t-1,…,Ai+1,Ai为0;将符号序列(c0,c1,…,cn,…)从第一个位置开始,依次将每2m-1个连续的符号分为一组,共分成N组,每组都当成RS码的一个码字,对其计算伽罗华域傅里叶变换,统计多项式A(z)中各系数为0的次数;令式中Nj(0≤j≤2m-2)是从右向左数中的第j个分量,表示对这N组码字多项式计算伽罗华域傅里叶变换,有Nj个码字使得其伽罗华域傅里叶变换A(z)中zj系数Aj=0;
(dd)分析步骤(cc)中统计的结果;根据阶数m设置阈值threshold,如果m<6,设置threshold=35,否则设置threshold=10;若有偶数个元素大于threshold,并且这偶数个元素在位置上连续,则RS码的码长为2m-1;令Ni+2t-1,…,Ni+1,Ni是中大于threshold的元素,则该RS码的纠错容量为t,生成多项式g(x)=(x+αi)(x+αi+1)…(x+αi+2t-1),至此已完成了RS码的识别,识别终止,否则转到下一步;
(ee)如果还有没有遍历的次数为m的本原多项式,选择下一个次数为m的本原多项式,回到第(cc)步;否则m加1,回到第(cc)步。
本发明可以解决RS码与删余卷积码级联码的参数盲识别的问题,同时可以提高在码字个数较少且RS码阶数较小时RS码参数识别的正确率。
具体实施方式
下面结合实施例对本发明作进一步说明,但不限于此。
实施例:
本发明实施例如下,一种RS码与删余卷积码级联码参数盲识别方法,通过计算机进行数据读入、分析及计算处理,该方法步骤如下:
(1)由计算机从待识别数据读入部分待识别的数据,读入数据长度为Lr,Lr应大于35000;
(2)设读入数据的起点Indent的初始值为0,对码长和起点进行多次识别,设变量Index为码长和起点的识别次数,初值为0;设两个数组:分别为存储多次识别的码长数组Nnum和存储多次识别的起点数组BN;
(3)判断Indent+26000是否小于Lr,若小于则转入步骤(4),否则转入步骤(7);
(4)识别此时的码长,将识别出的码长存入数组Nnum中的第Index个位置;识别码长的方法如下:
(a)用读入数据的第Indent个数据以后的数据建立一个p×q大小的矩阵,其中p为行数,q为列数,q的范围为[2,100],且p>q;
(b)对建立的矩阵进行化简,化简过程如下:对所建立的矩阵从左到右按列化简,若对角线上元素为1,则将此行依次与其下方每一行进行模二加运算,如果对角线元素为0,则寻找该列对角线下方的非零元素所在行,将非零元素所在行与当前行互换,再执行上述化简,如果对角线下方元素全为0,则不再化简;计算化简后的矩阵的秩,当矩阵不是满秩矩阵时,则统计矩阵左上角单位阵的维数,记录下此时的矩阵列数和单位阵的维数;
(c)将列数q加1,若q>100则转入(d),否则则转入(b);
(d)比较所有的记录下的单位阵的维数,找到出现概率最大的值z,然后统计所有满足单位阵维数等于z时的列数,求其最大公约数,即为所求的码长;
(5)识别此时的起点,将识别出的起点存入数组BN中的第Index个位置,识别起点的方法如下:
(e)在得到码长值后,使用读入数据的第Indent个数据以后的数据重新建立一个p′×q′大小的矩阵,其中p’为行数,q’为列数,q’的值为步骤(d)中所求码长的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)将1×22(WHNRec+1)维数的码字个数向量与1×22(WHNRec+1)阶的Hadamard矩阵相乘,得到1×22(WHNRec+1)维的解向量,我们不直接采用矩阵相乘的方式,而是按照2(WHNRec+1)阶Hadamard矩阵扩展为22(WHNRec+1)阶Hadamard矩阵的方法,先替换为22(WHNRec+1)阶Hadamard矩阵相应位置的数据,再做乘法,其中矩阵扩展的方法为将2(WHNRec+1)阶Hadamard矩阵的每个位置的变量置换为2(WHNRec+1)阶Hadamard矩阵并乘以2(WHNRec+1)阶Hadamard矩阵相应位置的数值,得到22(WHNRec+1)阶的Hadamard矩阵;
(h)求Hadamard矩阵的解即可得到校验矩阵H(D);
(11)定义变量deg为初始化生成多项式的阶数,其初值等于步骤(9)中WHNRec的值;
(12)判断deg是否小于码长减1的差与(WHNRec+1)的乘积,即是否为deg<(PuncNum-1)*(WHNRec+1),若小于则转入步骤(13),否则WHNRec加1,转入步骤(9);
(13)识别生成矩阵和删余模式,具体步骤如下:
(i)设变量Pindex为删余模式序号,初值为0;
(j)由删余模式序号Pindex计算得到删余模式,计算公式为Pindex/2PuncNum-2,删余模式由多个组数组成,每个组数包括两个二进制数,由上式得到商和余数,将余数转换为二进制数,所得的商是几则对应的数组就是几,且这一组数的值规定为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;
(k)由识别得到校验矩阵H(D)其维数为1*PuncNum,根据(j)中求出的删余模式补充零得到一个针对删余之前的校验多项式M(D),维数为1*2L,L=(PuncNum-1);例如:删余模式为其中P中含有PuncNum个1和(PuncNum-2)个零,对于删余模式中含1的位置由校验矩阵H(D)中的各个对应分量替补上,从而得到删余之前的校验多项式M(D);
(l)设Gp(D)为删余卷积码的生成多项式,根据生成矩阵和校验矩阵的正交性建立方程组Gp(D)H(D)T=0,其中H(D)T为矩阵H(D)的转置,解线性方程组,若存在不唯一的解向量,则转入步骤(m),否则将得到的解向量分别进行处理,处理方法如下:对每个解向量按奇偶位置进行抽取,得到两个解向量组,由两个解向量组得到两个多项式,计算两多项式的公因式,若两多项式不含公因式,则此时删余模式序号Pindex所代表的删余模式即为所识别出的删余模式,转入步骤(14),否则转入步骤(m);
(14)根据识别出的删余模式,将删余卷积码编码时删掉的码补零,得到需要译码的序列;
(15)根据之前识别出的删余卷积码参数:码长、起点、删余模式以及校验矩阵对待识别数据进行译码,使用维特比译码算法得到解删余卷积码后的序列;
(16)识别交织长度,具体步骤如下:
(m)设变量q_max,取值为100;
(n)用解删余卷积码后的序列重新建立一个p1×q1大小的矩阵,其中p1是行数,q1是列数,q1范围为[20,q_max],且p1>q1;对这个矩阵进行步骤(b)的过程,得到当秩不等于列数时的所有列数,求这些列数的最大公约数,若求出的最大公约数大于0,则此时的最大公约数即为识别出的交织长度,转入步骤(17);否则转入步骤(q);
(o)q_max加50,转入步骤(p);
(17)识别交织起点,具体算法如下:
(p)使用解删余卷积码后的序列重新建立一个p2×q2大小的矩阵,其中p2是行数,q2是列数,设q2的初值为0,且p2×q2;对这个矩阵进行步骤(b)中的化简过程,保存下此时矩阵的秩;
(q)q2加1,判断q2是否小于识别出的交织长度,若q2小于交织长度,转入步骤(r),否则转入下一步;
(r)求(r)中保存下的所有秩中秩最小的位置即为识别出的交织起点;
(18)识别交织宽度,具体算法如下:
(s)求出交织长度的所有因子,得到因子的个数为yznum,并将这些因子存在数组yz中,其中yz0表示因子数组中第一个因子,yz1表示因子数组中第二个因子···以此类推;
(t)设循环变量ii的初值为0;
(u)假设yzii是交织宽度,(如果ii=1,则yzii表示步骤(s)中的yz1,)对解删余卷积码后的序列进行解交织,将解交织后序列排成列数为交织长度除以yzii的商的矩阵并计算其秩,并存储下此时的秩乘以yzii再除以交织长度的值,放在数组zl中;
(v)ii加1,若ii小于yznum则转入步骤(u),否则转入步骤(w);
(w)求数组zl中最小值,对应的因子即为识别出的交织宽度;
(19)解交织的具体方法如下:
(x)将解删余卷积码后的序列删掉前面交织起点个数的码字,得到待解交织序列;
(y)建立一个列数为交织长度除以交织宽度商的矩阵,将步骤(15)中得到的待解交织序列(待解交织序列就是解删余卷积码后的序列)放入建立的矩阵中,然后按照列数的顺序读取出每一列的数据加以排列,直到读完最后一列数据,即可得到解交织后的序列;如序列011001010为待解交织序列,设交织宽度为3,交织长度为9,则将序列放入列数为9/3=3的矩阵中,即 然后先读第一列为000,第二列为101,第三列为110,则解交织后序列为000101110;
(20)RS码参数盲识别方法如下:
(z)选择构成RS码的有限域的阶m为2,每一个RS码的符号都属于有限域GF(2m)中的一个元素,其中GF(2m)表示含有2m个元素的有限域;
(aa)选择一个次数为m的本原多项式;
(bb)根据步骤(aa)中选择的本原多项式,将解交织后的数据每m个分成一组,转换为有限域GF(2m)中的一个符号序列,令转换后的符号序列为(c0,c1,…,cn,…);
(cc)令表示RS码的一个码字,该码字用多项式表示,式中各项为ajxj,0≤j≤2m-2,x为变量;a(x)的伽罗华域傅里叶变换为一与a(x)次数相同的多项式,用A(z)表示该多项式,则式中各项为Ajzj,0≤j≤2m-2,z为变量,zj的系数为α是生成该RS码的本原多项式的根,aj是多项式a(x)中xj的系数;如果αj是码字多项式a(x)的一个根,则其伽罗华域傅里叶变换中zj的系数Aj=0;RS码生成多项式的根一定也是码字多项式的根,且其生成多项式g(x)=(x+αi)(x+αi+1)…(x+αi+2t-1),其中t是纠错容量,i是一整数,因此对RS码的码
字多项式进行伽罗华域傅里叶变换,存在一个整数i,使得Ai+2t-1,…,Ai+1,Ai为0;将符号序列(c0,c1,…,cn,…)从第一个位置开始,依次将每2m-1个连续的符号分为一组,共分成
N组,每组都当成RS码的一个码字,对其计算伽罗华域傅里叶变换,统计多项式A(z)中各系数为0的次数;令式中Nj(0≤j≤2m-2)是从右向左数中的第j个分量,表示对这N组码字多项式计算伽罗华域傅里叶变换,有Nj个码字使得其伽罗华域傅里叶变换A(z)中zj系数Aj=0;
(dd)分析步骤(cc)中统计的结果;根据阶数m设置阈值threshold,如果m<6,设置threshold=35,否则设置threshold=10;若有偶数个元素大于threshold,并且这偶数个元素在位置上连续,则RS码的码长为2m-1;令Ni+2t-1,…,Ni+1,Ni是中大于threshold的元素,则该RS码的纠错容量为t,生成多项式g(x)=(x+αi)(x+αi+1)…(x+αi+2t-1),至此已完成了RS码的识别,识别终止,否则转到下一步;
(ee)如果还有没有遍历的次数为m的本原多项式,选择下一个次数为m的本原多项式,回到第(cc)步;否则m加1,回到第(cc)步。
Claims (1)
1.一种RS码与删余卷积码级联码参数盲识别方法,通过计算机进行数据读入、分析及计算处理,该方法步骤如下:
(1)由计算机从待识别数据读入部分待识别的数据,读入数据长度为Lr,Lr应大于35000;
(2)设读入数据的起点Indent的初始值为0,对码长和起点进行多次识别,设变量Index为码长和起点的识别次数,初值为0;设两个数组:分别为存储多次识别的码长数组Nnum和存储多次识别的起点数组BN;
(3)判断Indent+26000是否小于Lr,若小于则转入步骤(4),否则转入步骤(7);
(4)识别此时的码长,将识别出的码长存入数组Nnum中的第Index个位置;识别码长的方法如下:
(a)用读入数据的第Indent个数据以后的数据建立一个p×q大小的矩阵,其中p为行数,q为列数,q的范围为[2,100],且p>q;
(b)对建立的矩阵进行化简,化简过程如下:对所建立的矩阵从左到右按列化简,若对角线上元素为1,则将此行依次与其下方每一行进行模二加运算,如果对角线元素为0,则寻找该列对角线下方的非零元素所在行,将非零元素所在行与当前行互换,再执行上述化简,如果对角线下方元素全为0,则不再化简;计算化简后的矩阵的秩,当矩阵不是满秩矩阵时,则统计矩阵左上角单位阵的维数,记录下此时的矩阵列数和单位阵的维数;
(c)将列数q加1,若q>100则转入(d),否则则转入(b);
(d)比较所有的记录下的单位阵的维数,找到出现概率最大的值z,然后统计所有满足单位阵维数等于z时的列数,求其最大公约数,即为所求的码长;
(5)识别此时的起点,将识别出的起点存入数组BN中的第Index个位置,识别起点的方法如下:
(e)在得到码长值后,使用读入数据的第Indent个数据以后的数据重新建立一个p′×q′大小的矩阵,其中p’为行数,q’为列数,q’的值为步骤(d)中所求码长的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)将1×22(WHNRec+1)维数的码字个数向量与1×22(WHNRec+1)阶的Hadamard矩阵相乘,得到1×22(WHNRec+1)维的解向量,我们不直接采用矩阵相乘的方式,而是按照2(WHNRec+1)阶Hadamard矩阵扩展为22(WHNRec+1)阶Hadamard矩阵的方法,先替换为22(WHNRec+1)阶Hadamard矩阵相应位置的数据,再做乘法,其中矩阵扩展的方法为将2(WHNRec+1)阶Hadamard矩阵的每个位置的变量置换为2(WHNRec+1)阶Hadamard矩阵并乘以2(WHNRec+1)阶Hadamard矩阵相应位置的数值,得到22(WHNRec+1)阶的Hadamard矩阵;
(h)求Hadamard矩阵的解即可得到校验矩阵H(D);
(11)定义变量deg为初始化生成多项式的阶数,其初值等于步骤(9)中WHNRec的值;
(12)判断deg是否小于码长减1的差与(WHNRec+1)的乘积,即是否为deg<(PuncNum-1)*(WHNRec+1),若小于则转入步骤(13),否则WHNRec加1,转入步骤(9);
(13)识别生成矩阵和删余模式,具体步骤如下:
(i)设变量Pindex为删余模式序号,初值为0;
(j)由删余模式序号Pindex计算得到删余模式,计算公式为Pindex/2PuncNum-2,删余模式由多个组数组成,每个组数包括两个二进制数,由上式得到商和余数,将余数转换为二进制数,所得的商是几则对应的数组就是几,且这一组数的值规定为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;
(k)由识别得到校验矩阵H(D)其维数为1*PuncNum,根据(j)中求出的删余模式补充零得到一个针对删余之前的校验多项式M(D),维数为1*2L,L=(PuncNum-1);例如:删余模式为其中P中含有PuncNum个1和(PuncNum-2)个零,对于删余模式中含1的位置由校验矩阵H(D)中的各个对应分量替补上,从而得到删余之前的校验多项式M(D);
(l)设Gp(D)为删余卷积码的生成多项式,根据生成矩阵和校验矩阵的正交性建立方程组Gp(D)H(D)T=0,其中H(D)T为矩阵H(D)的转置,解线性方程组,若存在不唯一的解向量,则转入步骤(m),否则将得到的解向量分别进行处理,处理方法如下:对每个解向量按奇偶位置进行抽取,得到两个解向量组,由两个解向量组得到两个多项式,计算两多项式的公因式,若两多项式不含公因式,则此时删余模式序号Pindex所代表的删余模式即为所识别出的删余模式,转入步骤(14),否则转入步骤(m);
(14)根据识别出的删余模式,将删余卷积码编码时删掉的码补零,得到需要译码的序列;
(15)根据之前识别出的删余卷积码参数:码长、起点、删余模式以及校验矩阵对待识别数据进行译码,使用维特比译码算法得到解删余卷积码后的序列;
(16)识别交织长度,具体步骤如下:
(m)设变量q_max,取值为100;
(n)用解删余卷积码后的序列重新建立一个p1×q1大小的矩阵,其中p1是行数,q1是列数,q1范围为[20,q_max],且p1>q1;对这个矩阵进行步骤(b)的过程,得到当秩不等于列数时的所有列数,求这些列数的最大公约数,若求出的最大公约数大于0,则此时的最大公约数即为识别出的交织长度,转入步骤(17);否则转入步骤(q);
(o)q_max加50,转入步骤(p);
(17)识别交织起点,具体算法如下:
(p)使用解删余卷积码后的序列重新建立一个p2×q2大小的矩阵,其中p2是行数,q2是列数,设q2的初值为0,且p2×q2;对这个矩阵进行步骤(b)中的化简过程,保存下此时矩阵的秩;
(q)q2加1,判断q2是否小于识别出的交织长度,若q2小于交织长度,转入步骤(r),否则转入下一步;
(r)求(r)中保存下的所有秩中秩最小的位置即为识别出的交织起点;
(18)识别交织宽度,具体算法如下:
(s)求出交织长度的所有因子,得到因子的个数为yznum,并将这些因子存在数组yz中,其中yz0表示因子数组中第一个因子,yz1表示因子数组中第二个因子···以此类推;
(t)设循环变量ii的初值为0;
(u)假设yzii是交织宽度,(如果ii=1,则yzii表示步骤(s)中的yz1,)对解删余卷积码后的序列进行解交织,将解交织后序列排成列数为交织长度除以yzii的商的矩阵并计算其秩,并存储下此时的秩乘以yzii再除以交织长度的值,放在数组zl中;
(v)ii加1,若ii小于yznum则转入步骤(u),否则转入步骤(w);
(w)求数组zl中最小值,对应的因子即为识别出的交织宽度;
(19)解交织的具体方法如下:
(x)将解删余卷积码后的序列删掉前面交织起点个数的码字,得到待解交织序列;
(y)建立一个列数为交织长度除以交织宽度商的矩阵,将步骤(15)中得到的解删余卷积码后的序列即待解交织序列放入建立的矩阵中,然后按照列数的顺序读取出每一列的数据加以排列,直到读完最后一列数据,即可得到解交织后的序列;如序列011001010为待解交织序列,设交织宽度为3,交织长度为9,则将序列放入列数为9/3=3的矩阵中,即 然后先读第一列为000,第二列为101,第三列为110,则解交织后序列为000101110;
(20)RS码参数盲识别方法如下:
(z)选择构成RS码的有限域的阶m为2,每一个RS码的符号都属于有限域GF(2m)中的一个元素,其中GF(2m)表示含有2m个元素的有限域;
(aa)选择一个次数为m的本原多项式;
(bb)根据步骤(aa)中选择的本原多项式,将解交织后的数据每m个分成一组,转换为有限域GF(2m)中的一个符号序列,令转换后的符号序列为(c0,c1,…,cn,…);
(cc)令表示RS码的一个码字,该码字用多项式表示,式中各项为ajxj,0≤j≤2m-2,x为变量;a(x)的伽罗华域傅里叶变换为一与a(x)次数相同的多项式,用A(z)表示该多项式,则式中各项为Ajzj,0≤j≤2m-2,z为变量,zj的系数为α是生成该RS码的本原多项式的根,aj是多项式a(x)中xj的系数;如果αj是码字多项式a(x)的一个根,则其伽罗华域傅里叶变换中zj的系数Aj=0;RS码生成多项式的根一定也是码字多项式的根,且其生成多项式g(x)=(x+αi)(x+αi+1)…(x+αi+2t-1),其中t是纠错容量,i是一整数,因此对RS码的码字多项式进行伽罗华域傅里叶变换,存在一个整数i,使得Ai+2t-1,…,Ai+1,Ai为0;将符号序列(c0,c1,…,cn,…)从第一个位置开始,依次将每2m-1个连续的符号分为一组,共分成N组,每组都当成RS码的一个码字,对其计算伽罗华域傅里叶变换,统计多项式A(z)中各系数为0的次数;令式中Nj(0≤j≤2m-2)是从右向左数中的第j个分量,表示对这N组码字多项式计算伽罗华域傅里叶变换,有Nj个码字使得其伽罗华域傅里叶变换A(z)中zj系数Aj=0;
(dd)分析步骤(cc)中统计的结果;根据阶数m设置阈值threshold,如果m<6,设置threshold=35,否则设置threshold=10;若有偶数个元素大于threshold,并且这偶数个元素在位置上连续,则RS码的码长为2m-1;令Ni+2t-1,…,Ni+1,Ni是中大于threshold的元素,则该RS码的纠错容量为t,生成多项式g(x)=(x+αi)(x+αi+1)…(x+αi+2t-1),至此已完成了RS码的识别,识别终止,否则转到下一步;
(ee)如果还有没有遍历的次数为m的本原多项式,选择下一个次数为m的本原多项式,回到第(cc)步;否则m加1,回到第(cc)步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410747946.4A CN104467875A (zh) | 2014-12-09 | 2014-12-09 | 一种rs码与删余卷积码级联码的参数盲识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410747946.4A CN104467875A (zh) | 2014-12-09 | 2014-12-09 | 一种rs码与删余卷积码级联码的参数盲识别方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104467875A true CN104467875A (zh) | 2015-03-25 |
Family
ID=52913339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410747946.4A Pending CN104467875A (zh) | 2014-12-09 | 2014-12-09 | 一种rs码与删余卷积码级联码的参数盲识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104467875A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106533453A (zh) * | 2015-09-15 | 2017-03-22 | 中兴通讯股份有限公司 | 一种译码方法及译码器 |
CN107342775A (zh) * | 2017-07-07 | 2017-11-10 | 西安电子科技大学 | 删余卷积码的维特比译码方法 |
CN107370566A (zh) * | 2017-07-28 | 2017-11-21 | 西安电子科技大学 | 一种误码条件下的删余Turbo码盲识别方法 |
CN108512555A (zh) * | 2018-03-13 | 2018-09-07 | 中国工程物理研究院电子工程研究所 | 一种系统rs码阶数及本原多项式的识别方法 |
CN109450460A (zh) * | 2018-10-29 | 2019-03-08 | 电子科技大学 | 一种rs码与卷积码的级联码的参数识别方法 |
CN112332866A (zh) * | 2020-10-28 | 2021-02-05 | 成都海擎科技有限公司 | 一种基于dvb-s与dvb-s2信号的级联码参数识别方法 |
CN114416424A (zh) * | 2022-03-30 | 2022-04-29 | 苏州浪潮智能科技有限公司 | 一种raid编解码方法、装置、设备及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000036764A2 (en) * | 1998-12-15 | 2000-06-22 | Nokia Networks Oy | Method and radio system for digital signal transmission |
US20050003769A1 (en) * | 2003-07-02 | 2005-01-06 | Foerster Jeffrey R. | Ultra-wideband transceiver architecture and associated methods |
US7293223B2 (en) * | 1999-12-24 | 2007-11-06 | Alok Kumar Gupta | Method and apparatus for concatenated channel coding with variable code rate and coding gain in a data transmission system |
CN103236900A (zh) * | 2013-04-07 | 2013-08-07 | 电子科技大学 | 一种串行级联Turbo码交织器参数盲估计方法 |
CN103401568A (zh) * | 2013-08-14 | 2013-11-20 | 山东大学 | 基于伽罗华域傅里叶变换的rs码编码参数盲识别方法 |
CN104009826A (zh) * | 2014-06-18 | 2014-08-27 | 西安电子科技大学 | 基于纠错纠删RS-Turbo级联码的跳频抗干扰方法 |
-
2014
- 2014-12-09 CN CN201410747946.4A patent/CN104467875A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000036764A2 (en) * | 1998-12-15 | 2000-06-22 | Nokia Networks Oy | Method and radio system for digital signal transmission |
US7293223B2 (en) * | 1999-12-24 | 2007-11-06 | Alok Kumar Gupta | Method and apparatus for concatenated channel coding with variable code rate and coding gain in a data transmission system |
US20050003769A1 (en) * | 2003-07-02 | 2005-01-06 | Foerster Jeffrey R. | Ultra-wideband transceiver architecture and associated methods |
CN103236900A (zh) * | 2013-04-07 | 2013-08-07 | 电子科技大学 | 一种串行级联Turbo码交织器参数盲估计方法 |
CN103401568A (zh) * | 2013-08-14 | 2013-11-20 | 山东大学 | 基于伽罗华域傅里叶变换的rs码编码参数盲识别方法 |
CN104009826A (zh) * | 2014-06-18 | 2014-08-27 | 西安电子科技大学 | 基于纠错纠删RS-Turbo级联码的跳频抗干扰方法 |
Non-Patent Citations (2)
Title |
---|
LU PEIZHONG ET AL.: "Blind recognition of punctured convolutional codes", 《INFORMATION THEORY,2004.ISIT 2004. PROCEEDINGS. INTERNATIONAL SYMPOSIUM ON》 * |
刘健: "基于Walsh-hadamard变换的卷积码盲识别", 《电子与信息学报》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106533453A (zh) * | 2015-09-15 | 2017-03-22 | 中兴通讯股份有限公司 | 一种译码方法及译码器 |
CN106533453B (zh) * | 2015-09-15 | 2020-12-22 | 上海中兴软件有限责任公司 | 一种译码方法及译码器 |
CN107342775A (zh) * | 2017-07-07 | 2017-11-10 | 西安电子科技大学 | 删余卷积码的维特比译码方法 |
CN107342775B (zh) * | 2017-07-07 | 2020-04-07 | 西安电子科技大学 | 删余卷积码的维特比译码方法 |
CN107370566A (zh) * | 2017-07-28 | 2017-11-21 | 西安电子科技大学 | 一种误码条件下的删余Turbo码盲识别方法 |
CN107370566B (zh) * | 2017-07-28 | 2020-07-14 | 西安电子科技大学 | 一种误码条件下的删余Turbo码盲识别方法 |
CN108512555A (zh) * | 2018-03-13 | 2018-09-07 | 中国工程物理研究院电子工程研究所 | 一种系统rs码阶数及本原多项式的识别方法 |
CN108512555B (zh) * | 2018-03-13 | 2021-09-24 | 中国工程物理研究院电子工程研究所 | 一种系统rs码阶数及本原多项式的识别方法 |
CN109450460A (zh) * | 2018-10-29 | 2019-03-08 | 电子科技大学 | 一种rs码与卷积码的级联码的参数识别方法 |
CN112332866A (zh) * | 2020-10-28 | 2021-02-05 | 成都海擎科技有限公司 | 一种基于dvb-s与dvb-s2信号的级联码参数识别方法 |
CN112332866B (zh) * | 2020-10-28 | 2024-04-30 | 成都海擎科技有限公司 | 一种基于dvb-s与dvb-s2信号的级联码参数识别方法 |
CN114416424A (zh) * | 2022-03-30 | 2022-04-29 | 苏州浪潮智能科技有限公司 | 一种raid编解码方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104467875A (zh) | 一种rs码与删余卷积码级联码的参数盲识别方法 | |
CN101039119B (zh) | 编码与解码的方法及系统 | |
CN107370560B (zh) | 一种极化码的编码和速率匹配方法、装置及设备 | |
JP3923617B2 (ja) | 誤り訂正符号を有する情報ビットの変換方法およびこの方法を実行する符号化器と復号化器 | |
EP2068449B1 (en) | Shortening and puncturing of low-density parity-check (LDPC) codes for channel encoding and decoding | |
US20150295593A1 (en) | Apparatus and method for encoding and decoding data in twisted polar code | |
CN101656541B (zh) | Rs码的译码方法和装置 | |
EP0973268B1 (en) | Method and device for coding and transmission using a sub-code of a product code | |
CN110999095B (zh) | 用于极化码的按块并行冻结位生成 | |
CN104025459A (zh) | 译码处理方法及译码器 | |
EP3648379A1 (en) | Design method and apparatus for quasi-cyclic low-density parity-check | |
CN104683072A (zh) | 一种删余turbo码分量编码器的参数盲识别方法 | |
BR112017018314B1 (pt) | Aparelho e método de puncionamento de paridade, e aparelho de puncionamento de paridade inverso | |
CN109644006B (zh) | 编码数据和解码数据的装置及方法 | |
Lenz et al. | Bounds and constructions for multi-symbol duplication error correcting codes | |
CN108282265A (zh) | 纠错编码方法、装置、设备及计算机可读存储介质 | |
CN103595423B (zh) | 一种Reed‑Solomon码纠错方法 | |
CN107196665B (zh) | 一种纠错纠删rs码的识别方法 | |
EP2226945A1 (en) | Generation of optimized exponent matrices for multi-rate LDPC codes | |
EP0962060B1 (en) | Improved five-error correction system | |
US7398456B2 (en) | Information encoding by shortened Reed-Solomon codes | |
US20170288697A1 (en) | Ldpc shuffle decoder with initialization circuit comprising ordered set memory | |
EP1612949B1 (en) | Method and system for correcting errors in electronic memory devices | |
KR20160105313A (ko) | 고정 길이 시그널링 정보 부호화를 위한 패리티 인터리빙 장치 및 이를 이용한 패리티 인터리빙 방법 | |
CN113659994B (zh) | 一种低复杂度的卷积码随机交织关系的估计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150325 |