CN105099467A - Qc-ldpc码的编码方法及编码装置 - Google Patents
Qc-ldpc码的编码方法及编码装置 Download PDFInfo
- Publication number
- CN105099467A CN105099467A CN201410160885.1A CN201410160885A CN105099467A CN 105099467 A CN105099467 A CN 105099467A CN 201410160885 A CN201410160885 A CN 201410160885A CN 105099467 A CN105099467 A CN 105099467A
- Authority
- CN
- China
- Prior art keywords
- vector
- verification
- register
- information vector
- shift
- 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.)
- Granted
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明实施例公开了QC-LDPC码的编码方法及编码装置。其中,p(j)中m(i)Wi,j的编码过程包括:依据Wi,j对应的行移位向量对m(i)分别进行xi,j次循环右移,每一次循环右移对应一个循环右移结果;对xi,j个循环右移结果的进行累加,xi,j个循环右移结果的累加结果为m(i)Wi,j;xi,j次循环右移中的第a次循环右移包括:将m(i)循环右移ka i,j位。其中,Wi,j对应的行移位向量表示为Ki,j;Ki,j包含Wi,j的第一行行向量中、取值为1的元素的位置索引;xi,j为Ki,j包含的位置索引的数目;ka i,j为Ki,j中第a个位置索引;1≤a≤xi,j。可见,在本发明实施例中,可将信息段与循环子矩阵之间的相乘运算转化为循环右移和相加,从而降低了运算难度,减少了计算量。
Description
技术领域
本发明涉及通信技术领域,更具体地说,涉及QC-LDPC码的编码方法及编码装置。
背景技术
准循环低密度奇偶校验码(QC-LDPC)码的生成矩阵G(矩阵G的大小为kl×nl)可表示为:
其中,I和0分别是l阶的单位矩阵和零矩阵(l为正整数),Wi,j是l阶循环子矩阵(1≤i≤k,1≤j≤m),k=n-m。Wi,j中的元素取值可为1或0。
在对信息向量进行QC-LDPC编码后,得到的码字向量c可表示为c=[m|p]。其中,m为信息向量,p为校验向量。m可等分为k个信息段,每个信息段长lbit(比特),即m=[m(1)m(2)…m(k)]。p可等分为m个校验段,每个校验段长lbit,即p=[p(1)p(2)…p(m)]。
码字向量c可由下式得到:
也即,得到的码字向量中,前k×l比特是信息向量,后m×l比特是校验向量。并且,由上述公式可知,校验向量p可表示为:
或者说, 也即, j表示第j段。
在上述编码过程中包含了大量的信息段与循环子矩阵的相乘运算,计算量很大。
发明内容
有鉴于此,本发明实施例的目的在于提供循环右移和相加运算来实现相乘的QC-LDPC码的编码方法及编码装置,以有效减少计算量。
为实现上述目的,本发明实施例提供如下技术方案:
根据本发明实施例的第一方面,提供一种QC-LDPC码的编码方法,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段;所述信息向量中的第i个信息段表示为m(i);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j),1≤j≤m;所述p(j)中m(i)Wi,j的编码过程包括:
接收输入的所述m(i),所述Wi,j为与所述m(i)对应的循环子矩阵;
依据所述Wi,j对应的行移位向量,对所述m(i)分别进行xi,j次循环右移,每一次循环右移对应一个循环右移结果;所述Wi,j对应的行移位向量表示为Ki,j;所述Ki,j包含所述Wi,j的第一行行向量中、取值为1的元素的位置索引;所述xi,j为所述Ki,j包含的位置索引的数目;
对所述xi,j个循环右移结果的进行累加,所述xi,j个循环右移结果的累加结果为所述m(i)Wi,j;
其中,所述xi,j次循环右移中的第a次循环右移包括:
将所述m(i)循环右移ka i,j位,所述ka i,j为所述Ki,j中第a个位置索引;1≤a≤xi,j。
结合第一方面,在第一种可能的实现方式中,所述Wi,j对应的行移位向量记录在移位表中,或者,所述Wi,j对应的行移位向量由记录在移位表中的、所述Wi,j对应的行零位向量计算得到;所述Wi,j对应的行零位向量包含所述Wi,j的第一行行向量中、取值为0的元素的位置索引,或者,所述Wi,j对应的行移位向量由记录在移位表中的、所述Wi,j对应的列移位向量计算得到,所述Wi,j对应的列移位向量包含所述Wi,j的第一列列向量中、取值为1的元素的位置索引,或者,所述Wi,j对应的行移位向量可由所述移位表中的、所述Wi,j对应的列零位向量计算得到,所述Wi,j对应的列零位向量包含所述Wi,j的第一列列向量中、取值为0的元素的位置索引。
结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述Wi,j对应的列移位向量表示为Ji,j,所述Ki,j可通过如下公式计算得出:Ki,j=(l-Ji,j)modl,所述l为Wi,j行向量或列向量的长度。
根据本发明实施例的第二方面,提供一种QC-LDPC码的编码器,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段;所述信息向量中的第i个信息段表示为m(i);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j),1≤j≤m;
所述编码器包括:
m个校验段编码单元,其中,第j个校验段编码单元用于对信息向量进行编码,得到所述p(j);
所述第j个校验段编码单元包括输入模块、循环右移模块和累加模块,在对所述p(j)中m(i)Wi,j的编码过程中:
所述输入模块用于,接收输入的所述m(i),所述Wi,j为与所述m(i)对应的循环子矩阵;
所述循环右移模块用于,依据所述Wi,j对应的行移位向量,对所述m(i)分别进行xi,j次循环右移,每一次循环右移对应一个循环右移结果;所述Wi,j对应的行移位向量表示为Ki,j;所述Ki,j包含所述Wi,j的第一行行向量中、取值为1的元素的位置索引;所述xi,j为所述ki,j包含的位置索引的数目;
所述累加模块用于,对所述xi,j个循环右移结果的进行累加,所述xi,j个循环右移结果的累加结果为所述m(i)Wi,j;
其中,所述xi,j次循环右移中的第a次循环右移包括:
将所述m(i)循环右移ka i,j位,所述ka i,j为所述Ki,j中第a个位置索引;1≤a≤xi,j。
结合第一方面,在第一种可能的实现方式中,还包括:移位表存储单元,用于存储移位表;所述Wi,j对应的行移位向量记录在所述移位表中,或者,所述Wi,j对应的行移位向量由所述移位表中的、所述Wi,j对应的行零位向量计算得到;所述Wi,j对应的行零位向量包含所述Wi,j的第一行行向量中、取值为0的元素的位置索引,或者,所述Wi,j对应的行移位向量由所述移位表中的、所述Wi,j对应的列移位向量计算得到,所述Wi,j对应的列移位向量包含所述Wi,j的第一列列向量中、取值为1的元素的位置索引,或者,所述Wi,j对应的行移位向量可由所述移位表中的、所述Wi,j对应的列零位向量计算得到,所述Wi,j对应的列零位向量包含所述Wi,j的第一列列向量中、取值为0的元素的位置索引。
根据本发明实施例的第三方面,提供一种QC-LDPC码的编码器,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段;所述信息向量中的第i个信息段表示为m(i);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j),1≤j≤m;
所述编码器包括:
k个串行连接的信息向量寄存器;
m个校验段编码电路,所述m个校验段编码电路中的第j个校验段编码电路用于对信息向量进行编码,得到所述p(j);
任一校验段编码电路包括依次连接的循环右移寄存器、加法器和校验段寄存器;所述循环右移寄存器还与所述k个信息向量寄存器中的第1个信息向量寄存器相连接;
至少分别与所述k个信息向量寄存器和循环右移寄存器相连接的控制器;
所述第j个校验段编码电路中的第1个信息向量寄存器用于,响应于所述控制器的控制,向第2个信息向量寄存器输出所存储的数据,以及存储输入的m(i);所述m(i)为信息向量中的第i个信息段,所述信息向量等分为k个信息段;所述i初始为1,并在所述控制器的控制下逐1累加,直至i=k;
所述第j个校验段编码电路中的第Q个信息向量寄存器用于,响应于所述控制器的控制,向第Q+1个信息向量寄存器输出所存储的数据,以及存储第Q-1个信息向量寄存器输入的数据;2≤Q≤k-1;
所述第j个校验段编码电路中的循环右移寄存器用于,响应于所述控制器的控制,将所述m(i)循环右移ka i,j位,并输出所述m(i)循环右移ka i,j位得到的循环右移结果;所述ka i,j为Ki,j中的第a个位置索引;所述Ki,j为Wi,j对应的行移位向量,所述Ki,j包含所述Wi,j的第一行行向量中、取值为1的元素的位置索引;所述Wi,j为在生成p(j)的编码过程中与所述m(i)对应的循环子矩阵;所述ki,j包含的位置索引的数目为xi,j;所述a初始为1,并在所述控制器的控制下逐1累加,直至a=xi,j;所述m(i)循环右移ka i,j位得到的循环右移结果表示为上标r表示循环右移;
所述第j个校验段编码电路中的加法器用于,将所述循环右移寄存器输出的与所述j个校验段编码电路中的校验段寄存器中存储的数据相加,并将相加结果存回所述校验段寄存器;在将相加结果存回所述校验段寄存器后,所述校验段寄存器中存储的数据为
根据本发明实施例的第四方面,提供一种QC-LDPC码的编码器,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段;所述信息向量中的第i个信息段表示为m(i);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j),1≤j≤m;
所述编码器包括:
k个串行连接的信息向量寄存器;
m个校验段编码电路,所述m个校验段编码电路中的第j个校验段编码电路用于对信息向量进行编码,得到所述p(j);
任一校验段编码电路包括依次连接的循环右移寄存器、加法器和校验段寄存器;所述循环右移寄存器还与所述k个信息向量寄存器中的第1个信息向量寄存器相连接;
至少分别与所述k个信息向量寄存器和校验段编码电路中各器件相连接的控制器;
所述控制器配合协调所述k个信息向量寄存器和校验段编码电路中各器件完成如下操作:
接收输入的所述m(i),所述Wi,j为与所述m(i)对应的循环子矩阵;
依据所述Wi,j对应的行移位向量,对所述m(i)分别进行xi,j次循环右移,每一次循环右移对应一个循环右移结果;所述Wi,j对应的行移位向量表示为Ki,j;所述Ki,j包含所述Wi,j的第一行行向量中、取值为1的元素的位置索引;所述xi,j为所述Ki,j包含的位置索引的数目;
对所述xi,j个循环右移结果的进行累加,所述xi,j个循环右移结果的累加结果为所述m(i)Wi,j;
其中,所述xi,j次循环右移中的第a次循环右移包括:
将所述m(i)循环右移ka i,j位,所述ka i,j为所述Ki,j中第a个位置索引;1≤a≤xi,j。
根据本发明实施例的第五方面,提供一种QC-LDPC码的编码方法,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段,每一信息段长度为l;所述信息向量中的第i个信息段表示为m(i);所述信息向量中的第i-1个信息段表示为m(i-1);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j),1≤j≤m;所述p(j)的编码过程包括:
接收输入的所述m(i),所述m(i)对应的循环子矩阵表示为Wi,j;
依据差分移位向量中所述Wi,j对应的差分移位子向量,对所述m(i)进行xi,j次累加循环右移操作;
所述差分移位向量包含循环子矩阵W1,j至Wk,j对应的差分移位子向量,其中的Wi,j对应的差分移位子向量表示为fi,j,所述xi,j为所述fi,j所包含的差分移位元素的总数;所述fi,j中的第b个差分移位元素表示为1≤b≤xi,j;
所述xi,j次累加循环右移操作中的第b次累加循环右移操作包括:
将所述m(i)与上一次累加循环右移操作的操作结果相加,得到相加结果;
对所述相加结果循环右移位,得到循环右移结果,所述循环右移结果为本次累加循环右移操作的操作结果;
其中,当b=1并且i=1时,所述上一次累加循环右移操作的操作结果为0;当b=1并且i≠1时,所述上一次累加循环右移操作的操作结果为对所述m(i-1)进行的最后一次累加循环右移操作的操作结果。
结合第五方面,在第一种可能的实现方式中,所述差分移位向量表示为fj;所述fj包含的差分移位元素的数目为y;所述fj由行移位总向量计算得到;所述行移位总向量包含循环子矩阵W1,j至Wk,j对应的行移位向量,其中,Wi,j对应的行移位向量包含所述Wi,j的第一行行向量中、取值为1的元素的位置索引;所述Wi,j对应的行移位向量包含的位置索引的数目为xi,j。
结合第五方面第一种可能的实现方式,在第二种可能的实现方式中,所述fj的第e个差分移位元素表示为1≤e≤y;所述行移位总向量中的第e个移位元素表示为第e+1个移位元素表示为所述fj通过如下公式计算得到: 所述fi,j中的至分别对应所述fj中的至c=x1,j+...+xi-1,j。
根据本发明实施例的第六方面,提供一种QC-LDPC码的编码器,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段;所述信息向量中的第i个信息段表示为m(i);所述信息向量中的第i-1个信息段表示为m(i-1);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j),1≤j≤m;
所述编码器包括:
m个校验段编码单元,其中,第j个校验段编码单元用于对信息向量进行编码,得到所述p(j);
所述第j个校验段编码单元包括输入子单元和累加右移子单元;
所述输入子单元用于,接收输入的所述m(i),所述m(i)对应的循环子矩阵表示为Wi,j;
所述累加右移子单元用于,依据差分移位向量中所述Wi,j对应的差分移位子向量,对所述m(i)进行xi,j次累加循环右移操作;所述差分移位向量包含循环子矩阵W1,j至Wk,j对应的差分移位子向量,其中的Wi,j对应的差分移位子向量表示为fi,j,所述xi,j为所述fi,j所包含的差分移位元素的总数;所述fi,j中的第b个差分移位元素表示为1≤b≤xi,j;
其中,所述xi,j次累加循环右移操作中的第b次累加循环右移操作包括:
将所述m(i)与上一次累加循环右移操作的操作结果相加,得到相加结果;
对所述相加结果循环右移位,得到循环右移结果,所述循环右移结果为本次累加循环右移操作的操作结果;
其中,当b=1并且i=1时,所述上一次累加循环右移操作的操作结果为0;当b=1并且i≠1时,所述上一次累加循环右移操作的操作结果为对所述m(i-1)进行的最后一次累加循环右移操作的操作结果。
根据本发明实施例的第七方面,提供一种QC-LDPC码的编码器,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段;所述信息向量中的第i个信息段表示为m(i);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j);
所述编码器包括:
k个串行连接的信息向量寄存器;
m个校验段编码电路,所述m个校验段编码电路中的第j个校验段编码电路用于对信息向量进行编码,得到所述p(j);
任一校验段编码电路包括依次连接的加法器和循环右移校验段寄存器;所述加法器还与所述k个信息向量寄存器中的第1个信息向量寄存器相连接;
分别与所述k个信息向量寄存器、加法器和循环右移校验段寄存器相连接的控制器;
所述第j个校验段编码电路中的第1个信息向量寄存器用于,响应于所述控制器的控制,向第2个信息向量寄存器输出所存储的数据,以及存储输入的m(i);所述m(i)为信息向量中的第i个信息段,所述信息向量等分为k个信息段;所述i初始为1,并在所述控制器的控制下逐1累加,直至i=k;
所述第j个校验段编码电路中的第Q个信息向量寄存器用于,响应于所述控制器的控制,向第Q+1个信息向量寄存器输出所存储的数据,以及存储第Q-1个信息向量寄存器输入的数据;2≤Q≤k-1;
所述第j个校验段编码电路中的加法器用于,响应于所述控制器的控制,将所述j个校验段编码电路中的循环右移校验段寄存器中存储的数据与所述m(i)相加,并将相加结果存回所述循环右移校验段寄存器;所述m(i)对应的循环子矩阵表示为Wi,j;
所述第j个校验段编码电路中的循环右移校验段寄存器用于,响应于所述控制器的控制,依据差分移位向量中所述Wi,j对应的差分移位子向量,将存入的所述相加结果循环右移位,并存储得到的循环右移结果;
所述差分移位向量包含循环子矩阵W1,j至Wk,j对应的差分移位子向量,其中,所述Wi,j对应的差分移位子向量表示为fi,j,所述fi,j所包含的差分移位元素的总数为xi,j;所述为所述fi,j中的第b个差分移位元素;所述b初始为1,并在所述控制器的控制下逐1累加,直至b=xi,j。
根据本发明实施例的第八方面,提供一种QC-LDPC码的编码器,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段,每一信息段长度为l;所述信息向量中的第i个信息段表示为m(i);所述信息向量中的第i-1个信息段表示为m(i-1);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j);
所述编码器包括:
k个串行连接的信息向量寄存器;
m个校验段编码电路,所述m个校验段编码电路中的第j个校验段编码电路用于对信息向量进行编码,得到所述p(j);
任一校验段编码电路包括依次连接的加法器和循环右移校验段寄存器;所述加法器还与所述k个信息向量寄存器中的第1个信息向量寄存器相连接;
所述控制器配合协调所述k个信息向量寄存器和校验段编码电路中各器件完成所述p(j)的编码过程:
接收输入的所述m(i),所述m(i)对应的循环子矩阵表示为Wi,j;
依据差分移位向量中所述Wi,j对应的差分移位子向量,对所述m(i)进行xi,j次累加循环右移操作;
所述差分移位向量包含循环子矩阵W1,j至Wk,j对应的差分移位子向量,其中的Wi,j对应的差分移位子向量表示为fi,j,所述xi,j为所述fi,j所包含的差分移位元素的总数;所述fi,j中的第b个差分移位元素表示为1≤b≤xi,j;
所述xi,j次累加循环右移操作中的第b次累加循环右移操作包括:
将所述m(i)与上一次累加循环右移操作的操作结果相加,得到相加结果;
对所述相加结果循环右移位,得到循环右移结果,所述循环右移结果为本次累加循环右移操作的操作结果;
其中,当b=1并且i=1时,所述上一次累加循环右移操作的操作结果为0;当b=1并且i≠1时,所述上一次累加循环右移操作的操作结果为对所述m(i-1)进行的最后一次累加循环右移操作的操作结果。
可见,在本发明实施例中,可将信息段与循环子矩阵之间的相乘运算转化为循环右移和相加,从而降低了运算难度,减少了计算量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本发明实施例提供的现有的QC-LDPC串行编码器结构示意图;
图1b为本发明实施例提供的现有单个SRAA电路的功能框图;
图2为本发明实施例提供的m(i)Wi,j的编码过程流程图;
图3为本发明实施例提供的p(j)的生成流程图;
图4为本发明实施例提供的校验段编码子单元结构示意图;
图5为本发明实施例提供的编码器结构示意图;
图6为本发明实施例提供的编码器另一结构示意图;
图7为本发明实施例提供的p(j)编码过程流程图;
图8为本发明实施例提供的p(j)的另一生成流程图;
图9为本发明实施例提供的校验段编码单元结构示意图;
图10为本发明实施例提供的编码器又一结构示意图;
图11为本发明实施例提供的编码器又一结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
前已述及,p=[p(1)p(2)…p(m)],并且,
或者说, j表示第j段。
以l=5,k=4为例。
则
假定,m(1)=(m0,m1,m2,m3,m4,),
则
也即,m(1)与W1,1相乘结果对应的向量如下:
[m1+m3+m4,m0+m2+m4,m0+m1+m3,m1+m2+m4,m0+m2+m3]。
其他m(2)W2,1、m(3)W3,1、m(4)W4,1可类推。
可见,在编码过程中,校验向量的求取涉及大量的乘加。
为实现上述乘加,发明人发现了一种现有的QC-LDPC串行编码器,其采用移位寄存器加累加器(SRAA)电路的方案来实现编码。
图1a示出了上述QC-LDPC串行编码器的结构,其包括存储信息向量的k个寄存器(寄存器1至寄存器k)和m个SRAA电路(SRAA电路1至SRAA电路m)。其中,SRAA电路1用于得到p(1),SRAA电路2用于得到p(2),以此类推。
图1b是单个SRAA电路的功能框图。
上述k个寄存器串行连接。在编码过程中,信息向量逐比特位串行送入SRAA电路以及寄存器1至寄存器k。由于是逐比特位串行送入,上述m还可表示为m0,m1,…,mk×l-1。
Wi,j是循环子矩阵(方阵),每行或列都可由上一行或列的移位得到。因此,生成多项式查找表中存储的是每个循环子矩阵的第一行或第一列。
当用SRAA电路对检验段P(j)(1≤j≤m)进行编码时,累加器被清零初始化。当第0个时钟周期到来时,移位寄存器从生成多项式查找表加载其中表示w1,j循环右移0位,信息比特m0移入电路,并与移位寄存器的内容进行标量乘,乘积与累加器的内容0进行模2加,得到将存回累加器;当第1个时钟周期到来时,移位寄存器循环右移1位,内容变为(r(1)表示循环右移1位),信息比特m1移入,并与移位寄存器的内容进行标量乘,乘积与累加器的内容进行模2加,得到将存回累加器。
上述右移-乘-加-存储过程继续进行下去。当第l-1个时钟周期结束时,信息比特ml已经移入(也即m(1)信息段完全移入),此时第j个累加器存储的和为m(1)W1,j,这是信息段m(1)对检验段Pj的贡献。当第l个时钟周期到来时,移位寄存器从生成多项式查找表加载重复上述右移-乘-加-存储过程。
当信息段m(2)完全移入时,寄存器1存储的是信息段m(2),寄存器2存储的是信息段m(1),第j个累加器存储的是m(1)W1,j+m(2)W2,j。
重复上述过程,直至整个信息向量m全部串行移入电路,此时,寄存器1存储的是信息段m(k),寄存器2存储的是信息段m(k-1),寄存器k存储的是信息段m(1),而第j个累加器存储的是校验段P(j)。
在上述QC-LDPC串行编码器中,乘法器和模2加法器是为了实现编码过程中信息段与相应的循环子矩阵的乘加操作而设置的。
上述QC-LDPC串行编码器在k×l个时钟周期内可同时求出m个校验段。该方案需要(m+n)×l个寄存器,m×l个二输入与门,m×l个二输入异或门,还需要m×k×l比特ROM存储各循环子矩阵的第一行或第一列。可见,现有方式涉及大量的乘法操作,需要较多的乘法器,计算量很大。
为解决上述问题,本发明实施例提供QC-LDPC码的编码方法,以循环右移和相加运算来实现相乘,可有效减少计算量。
上述方法用于对信息向量进行编码,得到包含上述信息向量和校验向量的码字向量。
上述信息向量可等分为k个信息段,每个信息段长lbit。其中,第i个信息段可表示为m(i);1≤i≤k。
上述校验向量可等分为m个校验段,每个校验段长lbit。其中,第j个校验段可表示为p(j)(1≤j≤m)。
k、m均为正整数。
前已述及, 则请参见图2,p(j)中m(i)Wi,j的编码过程(求取过程)可包括如下步骤:
S1、接收输入的m(i);
需要注意的是,在本实施例中,是m(i)中的l个比特是同时输入的。而在现有方式中,则是一个比特一个比特输入。或者说,本实施例中,是以l个比特为单位输入信息向量的,而现有方式则是以1个比特为单位输入信息向量的。
S2、依据Wi,j对应的行移位向量,对m(i)分别进行xi,j次循环右移。
上述Wi,j是与m(i)对应的循环子矩阵,而Wi,j的行移位向量可表示为Ki,j。其中,Ki,j包含Wi,j的第一行行向量中、取值为1的元素的位置索引。ki,j包含的位置索引的数目可用xi,j表示。
以l=5,k=4为例,假定,循环子矩阵 W1,1第一行行向量为[01101],m(1)=(m0,m1,m2,m3,m4)。
在[01101]中有5个元素,分别称为第0-4个元素中,则可见,第1、2、4个元素的取值为1,则W1,1对应的行移位向量K1,1为[1,2,4],x1,1=3。
其中,xi,j次循环右移中的第a次循环右移(1≤a≤xi,j)可包括:
将m(i)循环右移ka i,j位,得到第a次循环右移结果,ka i,j为Ki,j中的第a个位置索引。
仍沿用前例(W1,1对应的行移位向量K1,1为[1,2,4],x1,1=3):
当a=1时,从而在第1次循环右移中,对m(1)右移1位,得到的循环右移结果为并且, 表示右移位。
当a=2时,从而在第2次循环右移中,对m(1)右移2位,得到的循环右移结果为并且, 表示右移位。
当a=3时,从而在第3次循环右移中,对m(1)右移4位,得到的循环右移结果为并且, 表示右移位。
S3、对xi,j个循环右移结果的进行累加。
每一次循环右移对应一个循环右移结果,而xi,j个循环右移结果的相加结果即为m(i)Wi,j。
仍沿用前例,将和相加,得到的结果是:
(m1+m3+m4,m0+m2+m4,m0+m1+m3,m1+m2+m4,m0+m2+m3)。
而前述也推导了,在使用乘加运算时,m(1)W1,1=[m1+m3+m4,m0+m2+m4,m0+m1+m3,m1+m2+m4,m0+m2+m3]。
由此可见,m(1)与W1,1之间的相乘运算,可转化为对m(1)进行循环右移运算和对循环右移结果的相加运算。
可用类似的方式得到p(1)中的m(2)W2,1、m(3)W3,1、m(4)W4,1。其他校验段也可采用类似的方式得到。
可见,在本发明实施例中,可将信息段与循环子矩阵之间的相乘运算转化为循环右移和相加,从而降低了运算难度,减少了计算量。
在本发明其他实施例中,请参见图3,p(j)的一种生成流程如下:
S300、初始化:令i=1,a=1,p(j)=0;
S301、输入m(i);
S302、将m(i)循环右移位,得到ka i,j为Ki,j中第a个位置索引;
S303、令
S304、令a=a+1;
S305、判断a是否大于xi,j;如果是,转步骤S306,否则,转步骤S302;
S306、令i=i+1;
S307、判断i是否大于k;如果是,转步骤308,否则转步骤S301;
S308、结束。此时,
为更清楚的了解本发明实施例“将信息段与循环子矩阵之间的相乘运算转化为循环右移和相加”的理念,下面将介绍相应的推导过程。
前已述及,QC-LDPC码的生成矩阵矩阵可表示为
I和0分别是l阶的单位矩阵和零矩阵(l为正整数),Wi,j是l阶循环子矩阵(1≤i≤k,1≤j≤m)。
l阶循环矩阵具有如下形式:
其中 (也即,取值可为1或0)。
为便于推导,引入l阶单位循环矩阵Ep。Ep是由单位矩阵I上的“1”循环右移p位得到的。
例如:
易知,E1,E2,…,El-1,El都是l阶单位循环矩阵,I是l阶单位矩阵。
m(i)乘以Ep可表示为:
m(i)·Ep=m(i)r(p)1≤i≤k,0≤p≤l-1
其中,m(i)r(p)表示向量m(i)中的元素循环向右移p位。
例如,
则m(i)E1=[m2,m0,m1]。
可见,m(i)E1=m(i)r(1),也即,m(i)中的元素循环向右移1位。
Wi,j的第一行行向量可表示为:其中,
任意一个l阶循环矩阵Wi,j可用E0,E,E2,…,El-1线性表示,即
例如:
则m(i)乘以Wi,j可表示为:
又由于当等于0时,可以不考虑。而等于1时, 因此, 可进一步简化。
简化过程如下:
取Wi,j的第一行行向量中元素为1的下角标。则Wi,j第一行行向量中1的位置可表示为:
其中,xi,j表示为Wi,j的第一行的1的个数。subscript表示下角标。
或者,xi,j也可表示为ki,j包含的位置索引的数目。
例如:向量[01101]对应Ki,j=[124]。
令为Ki,j中的第a个位置索引,则可简单化:
该公式即对应上述步骤S3中介绍的xi,j个循环右移结果的相加结果即为m(i)Wi,j。
进一步的,可类似推导出:
从而每一校验段都可用对各信息段循环右移再累加的方式得到。
在本发明实施例中,可采用移位表存储各个循环子矩阵的行移位向量(也即,存储每个循环子矩阵第一行行向量中“1”的位置索引)。移位表的形式可如下:
此外,在本发明其他实施例中,如果每个循环子矩阵的第一行行向量中“0”的数目小于“1”的数目,也可在移位表中存储每个循环子矩阵的行零位向量(行零位向量包含Wi,j的第一行行向量中、取值为0的元素的位置索引)。
以K1,1为[1,2,4]为例,则其对应的行零位向量是[0,3],在编码时,通过计算,就可以得到K1,1。
或者,在本发明其他实施例中,移位表中也可存储每个循环子矩阵的列移位向量。
Wi,j对应的列移位向量可表示为Ji,j。Ji,j包含Wi,j的第一列列向量中、取值为1的元素的位置索引。Ji,j中的第a个元素可表示为Ja i,j。
在编码时,可通过计算,由Ji,j得到Ki,j。
Ki,j可通过下式求取:
Ki,j=(l-Ji,j)modl,l为Wi,j行向量或列向量的长度。
例如:Wi,j为 其对应的Ki,j=[12],而其对应的Ji,j=[23]。
其中,
与之相对应,本发明实施例还要求保护QC-LDPC码的编码器,该QC-LDPC码的编码器用于对信息向量进行编码,得到包含信息向量和校验向量的码字向量。
其中,信息向量等分为k个信息段,第i个信息段可表示为m(i);1≤i≤k;而校验向量可等分为m个校验段,第j个校验段可表示为p(j),1≤j≤m。
上述编码器可包含m个校验段编码单元,其中的第j个校验段编码单元用于对信息向量进行编码,得到上述p(j)。
进一步的,请参见图4,第j个校验段编码子单元可包括输入模块j1、循环右移模块j2和累加模块j3。
在上述p(j)中m(i)Wi,j的编码过程中:
上述输入模块j1用于,接收输入的上述m(i),上述Wi,j为与上述m(i)对应的循环子矩阵。具体内容请参见本文前述记载,在此不作赘述。
上述循环右移模块j2用于,依据上述Wi,j对应的行移位向量,对上述m(i)分别进行xi,j次循环右移,每一次循环右移对应一个循环右移结果。
上述Wi,j对应的行移位向量表示为Ki,j;上述Ki,j包含上述Wi,j的第一行行向量中、取值为1的元素的位置索引;上述xi,j为上述ki,j包含的位置索引的数目。
具体内容请参见本文前述记载,在此不作赘述。
上述累加模块j3用于,对上述xi,j个循环右移结果的进行累加,上述xi,j个循环右移结果的累加结果为上述m(i)Wi,j。其中,上述xi,j次循环右移中的第a次循环右移包括:
将上述m(i)循环右移ka i,j位,上述ka i,j为上述Ki,j中第a个位置索引;1≤a≤xi,j。
具体内容请参见本文前述记载,在此不作赘述。
在本发明其他实施例中,上述所有实施例中的编码器还可包括:
移位表存储单元,用于存储移位表。
而Wi,j对应的行移位向量可记录在上述移位表中(也即,移位表记录了各个循环子矩阵对应的行移位向量)。
或者,Wi,j对应的行移位向量可由上述移位表中的、上述Wi,j对应的行零位向量计算得到。上述Wi,j对应的行零位向量包含上述Wi,j的第一行行向量中、取值为0的元素的位置索引。具体内容请参见本文前述记载,在此不作赘述。
或者,上述Wi,j对应的行移位向量可由上述移位表中的、上述Wi,j对应的列移位向量计算得到,上述Wi,j对应的列移位向量包含上述Wi,j的第一列列向量中、取值为1的元素的位置索引。具体内容请参见本文前述记载,在此不作赘述。
或者,上述Wi,j对应的行移位向量可由上述移位表中的、上述Wi,j对应的列零位向量计算得到,上述Wi,j对应的列零位向量包含上述Wi,j的第一列列向量中、取值为0的元素的位置索引。
可由列零位向量得到列移位向量,再由列移位向量计算得到行移位向量。
图5示出了上述编码器的另一种结构,其可包括:
k个串行连接的信息向量寄存器(信息向量寄存器1-k)。
m个校验段编码电路(校验段编码电路1-m),其中,第j个校验段编码电路(也即校验段编码电路j)用于对信息向量进行编码,得到校验向量中的第j个校验段(也即上述p(j))。
请参见图6,上述第j个校验段编码电路(也即任一个校验段编码电路)可包括依次连接(串行连接)的循环右移寄存器、加法器和校验段寄存器。
上述循环右移寄存器还与上述k个信息向量寄存器中的第1个信息向量寄存器(信息向量寄存器1)相连接。
为区分起见,将第1个校验段编码电路中的循环右移寄存器和校验段寄存器分别称为循环右移寄存器1和校验段寄存器1;将第2个校验段编码电路中的循环右移寄存和校验段寄存器分别称为循环右移寄存器2和校验段寄存器2;以此类推,在此不作赘述。
或者说,将第j个校验段编码电路中的循环右移寄存器和校验段寄存器分别称为循环右移寄存器j和校验段寄存器j。
循环右移寄存器j还与上述k个信息向量寄存器中的第1个信息向量寄存器(信息向量寄存器1)相连接。
至少分别与上述k个信息向量寄存器和校验段编码电路中各器件相连接的控制器(未示出)。
此外,还可包括存储器。
其中,存储器可用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器可能包含高速随机存取存储器(randomaccessmemory,简称RAM)存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
控制器可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
控制器和存储器可集成于同一芯片内,也可为独立的两个器件。
控制器执行上述存储器所存放的程序,配合协调上述k个信息向量寄存器和m个校验段编码电路中各器件完成如下操作:
接收输入的m(i);
依据Wi,j对应的行移位向量,对m(i)分别进行xi,j次循环右移,每一次循环右移对应一个循环右移结果;
对xi,j个循环右移结果的进行累加。
上述xi,j个循环右移结果的累加结果即为m(i)Wi,j。
其中,上述xi,j次循环右移中的第a次循环右移包括:
将m(i)循环右移ka i,j位(ka i,j为Ki,j中第a个位置索引;1≤a≤xi,j)。
具体内容可参见本文前述记载,在此不作赘述。
在本发明其他实施例中,上述所有实施例中的控制器可分别与上述k个信息向量寄存器,以及m个循环右移寄存器相连接,对其进行控制。
上述各器件作用如下:
信息向量寄存器1用于,响应于控制器的控制,向信息向量寄存器2输出所存储的数据,以及存储输入的m(i)。上述i初始为1,并在控制器的控制下逐1累加,直至i=k。
信息向量寄存器1可包含输入接口和输出接口(至少两个),其中一个输出接口与信息向量寄存器2的输入接口相连接,另一输出接口与下述循环右移寄存器1-m分别相连。信息向量寄存器1通过其输出接口向信息向量寄存器2输出所存储的数据,而m(i)则由输入接口输入。
信息向量寄存器Q用于,响应于控制器的控制,向信息向量寄存器Q+1输出所存储的数据,以及存储信息向量寄存器Q-1输入的数据;2≤Q≤k-1。
以信息向量寄存器2为例,信息向量寄存器2可包含输入接口和输出接口,该输出接口又与信息向量寄存器3的输入接口相连接,而输入接口则与信息向量寄存器1的输出接口相连。信息向量寄存器2通过其输出接口向信息向量寄存3输出所存储的数据,而信息向量寄存器2则通过信息向量寄存器2的输入接口输入数据。
其他信息向量寄存器的工作与之类似,在此不作赘述。
需要说明的是,在编码前,会进行清零。因此初始时,信息向量寄存器1至k、循环右移寄存器1至m、校验段寄存器1至m中存储的数据全为零。
在最开始时,信息向量寄存器1存储输入的m(1),向信息向量寄存器2输出全零;下一次时,信息向量寄存器1向信息向量寄存器2输出m(1)并存储输入的m(2);再下一次时,在控制器的控制下,信息向量寄存器1将向信息向量寄存器2输出m(2)并存储输入的m(3),而信息向量寄存器2则向信息向量寄存器3输出m(1)并存储输入的m(2);再下一次,在控制器的控制下,信息向量寄存器1向信息向量寄存器2输出m(3)并存储输入的m(4),而信息向量寄存器2则向信息向量寄存器3输出m(2)并存储输入的m(3),信息向量寄存器3则向信息向量寄存器4输出m(1)并存储输入的m(2)。以此类推。
循环右移寄存器j用于,响应于控制器的控制,将m(i)循环右移位,并输出m(i)循环右移位得到的循环右移结果。
上述为前述Ki,j中的第a个位置索引。m(i)循环右移位得到的循环右移结果为上标r表示循环右移。
需要说明的是,a初始为1,并在控制器的控制下逐1累加,直至a=xi,j。xi,j为Ki,j包含的位置索引的数目。
以循环右移寄存器j为例,其有两个输入接口和一个输出接口。两个输入接口的其中一个连接信息向量寄存器1,另一个输入接口用于获取行移位向量,其输出接口连接下述第j个校验段编码电路中的加法器。
循环右移寄存器通过输出接口向第j个校验段编码电路中的加法器输出
第j个校验段编码电路中的加法器用于,将与校验段寄存器j中存储的数据相加,并将相加结果存回上述校验段寄存器j。
在将相加结果存回校验段寄存器j后,校验段寄存器j中存储的数据为
加法器为二输入一输出,两个输入接口一个连接循环右移寄存器j,另一个连接校验段寄存器j,其输出接口也连接校验段寄存器j。
加法器通过两个输入接口分别获取和 将二者相加后,通过输出接口输出 给校验段寄存器j。
上述控制器在编码过程结束后,还会按照从第k个信息向量寄存器至第1个信息向量寄存器的顺序,控制上述k个信息向量寄存器依次输出所存储的信息段,以及,按照从第1个至第m个校验段编码电路的顺序,控制上述m个校验段编码电路中的校验段寄存器依次输出所存储的校验段。
需要说明的是,编码过程结束后,信息向量寄存器1中存储的是m(k),信息向量寄存器2中存储的是m(k-1),信息向量寄存器3中存储的是m(k-2),……,信息向量寄存器k中存储的是m(1)。
而校验段寄存器1存储的是p(1),校验段寄存器2存储的是p(2),……,校验段寄存器m存储的是p(m)。
又因为,码字向量c=[m|p]=[m(1)m(2)…m(k)p(1)…p(m)],也即,如欲实现输出码字向量,需先串行顺次输出m(1)至m(k),再串行顺次输出p(1)至p(m)。
按从第k个信息向量寄存器至第1个信息向量寄存器的顺序,依次输出所存储的信息段,可实现串行顺次输出m(1)至m(k)。而按照从第1个至第m个校验段编码电路的顺序,输出所存储的校验段,可实现串行顺次输出p(1)至p(m)。
在本发明其他实施例中,上述所有实施例中的编码器还可包括:
移位表存储器,用于存储移位表。
而Wi,j对应的行移位向量记录在上述移位表中(也即,移位表记录了各个循环子矩阵对应的行移位向量)。
或者,Wi,j对应的行移位向量由上述移位表中的、上述Wi,j对应的行零位向量计算得到;上述Wi,j对应的行零位向量包含上述Wi,j的第一行行向量中、取值为0的元素的位置索引。具体内容请参见本文前述记载,在此不作赘述。
或者,上述Wi,j对应的行移位向量由上述移位表中的、上述Wi,j对应的列移位向量计算得到,上述Wi,j对应的列移位向量包含上述Wi,j的第一列列向量中、取值为1的元素的位置索引。具体内容请参见本文前述记载,在此不作赘述。
此外,上述编码器还可包括时钟。
图5和图6所示编码器,可实现图3所示流程。
或者,使用图5和图6所示编码器所进行的步骤可如下所示(以获取校验段P(1)为例):
步骤0,初始化。
初始化包括清零(令信息向量寄存器1至k、循环右移寄存器1至m、校验段寄存器1至m中存储的数据全为零),以及,令i=1,a=1。
步骤1,当第1个时钟周期到来时,输入信息段m(1),根据移位表中存储的K1,1的第1个元素k1 1,1,将m(1)循环右移k1 1,1位,得到令与校验段寄存器1的内容进行模2加,将相加结果存回校验段寄存器1。
由于事先进行了清零,所以相加结果仍为
步骤2,当第2个时钟周期到来时,根据移位表中存储的K1,1的第2个元素将m(1)循环右移位,得到令与校验段寄存器1的内容(此时是)进行模2加,将相加结果(也即)存回校验段寄存器1。
……
步骤x1,1,当第x1,1个时钟周期到来时,根据移位表中存储的K1,1的最后一个元素将m(1)进行循环右移位,得到令与校验段寄存器1的内容进行模2加,将相加结果存回校验段寄存器1。
此时校验段寄存器1存储的是累加和:这是信息段m(1)对检验段P(1)的贡献。
步骤x1,1+1,当第x1,1+1个时钟周期到来时,输入信息段m(2),根据移位表中存储的K2,1的第1个元素k1 2,1,将m(2)循环右移k1 2,1位,得到令与校验段寄存器1的内容进行模2加,将相加结果存回校验段寄存器1。
此时,校验段寄存器1存储的是累加和:
……
步骤x1,1+x2,1,当第x1,1+x2,1个时钟周期到来时,根据移位表中存储的K2,1的最后一个元素将m(2)进行循环右移位,得到令与校验段寄存器1的内容进行模2加,将相加结果存回校验段寄存器1。
此时,校验段寄存器1存储的是累加和:
重复上述过程,直至整个信息向量m全部串行移入电路,此时,校验段寄存器1存储的是校验段P(1)。相应的,其他校验段也可获得。
需要说明的是,以获取P(1)和P(2)为例,在获取P(1)时m(1)对应K1,1,在获取P(2)时m(1)对应K1,2。K1,1包含的位置索引的数目与K1,2包含的位置索引的数目可能不相同。也即,x1,1≠x1,2。由于m个校验段编码电路并行编码,并且这m个校验段编码电路从同一信息向量寄存器(信息向量寄存器1)处获得信息段,因此,需要对信息段的输入予以控制。
控制的方式有多种。
一种控制方式是:由于循环子矩阵每行长度为l,可每隔l个时钟节拍,输入一个信息段。也即,第1个时钟周期到来时,输入信息段m(1),第l+1个时钟周期到来时,输入信息段m(2),第2l+1个时钟周期到来时,输入信息段m(3),以此类推。
如果l=5,而x1,1=3,则在第4和第5个时钟周期中,控制器可令循环右移寄存器1停止工作。相类似的,如x2,1=4,则在第5个时钟周期中,控制器可令循环右移寄存器2停止工作。以此类推,不再赘述。
另一种方式是:
控制器可在第x1+1个时钟周期到来时,控制输入信息段m(2)。x1=max(x1,j),也即,x1为x1,1至x1,m中的最大值。如果x1=4,而x1,1=3,则在第4个时钟周期中,控制器可令循环右移寄存器1停止工作。相类似的,如x2,1=2,则在第3-4个时钟周期中,控制器可令循环右移寄存器2停止工作。以此类推,不再赘述。
在第x1+x2+1个时钟周期到来时,控制器控制输入信息段m(3),x2=max(x2,j),也即,x2为x2,1至x2,m中的最大值。以此类推,不作赘述。
如使用上述方式,则本发明实施例所提供编码器的编码时间为:
传统使用SRAA电路的串行编码器与本发明实施例的资源消耗如下表1所示:
表1
在本发明其他实施例中,上述存储器还可存储信息向量(存储时机为进入信息向量寄存器之前)。或者,上述编码器还包括其他存储器来存储上述信息向量。
此外,编码器还可包括读写设备,控制器可控制读写设备从存储器中读取出信息段,并存入编码器内部的信息向量寄存器1。
除用于QC-LDPC码的编码外,本发明实施例所提供的技术方案还可应用于其他场景。例如,其可应用于802.11nLDPC码编码。
802.11nLDPC码(码长648,码率5/6)的基础校验矩阵,如下表所示:
表2
上表2中,i表示单位矩阵循环右移i位后的矩阵,例如,17表示单位矩阵右移17位后的矩阵,0表示单位矩阵右移0位后的矩阵,即单位矩阵本身;“-”表示全零矩阵。
根据信道编码原理可知H·cT=0(c=[m|p]),可得:
H·cT=[HaHb]·[mp]T=0
Hb·pT=Ha·mT
根据上式可得:
其中,H1iH2i、H3i、H4i表示Ha中所对应参数得到的循环矩阵。例如,表2中,第一行第一列的元素为17,H11表示为单位矩阵右移17位后的矩阵;第二行第九列的元素为0,H29表示为单位矩阵右移0位后的矩阵,即单位矩阵本身;第三行第十三列的元素为“-”,H313表示为全零矩阵。I1表示单位矩阵右移1位,I表示单位矩阵,0表示全零矩阵。p1 T表示p1的转置,p2 T表示p2的转置,p3 T表示p3的转置,p4 T表示p4的转置。
根据公式1,可得如下公式:
令公式2中的
则可得下式:
p2 T=I1·p1 T+q1 T(公式3)
p3 T=p2 T+q2 T
p4 T=I1·p1 T+q4 T
可先求出q1 T至q4 T,再求出p1 T至p4 T。
在求q1 T至q4 T,现有方式是计算m(i)T与H1i的乘法结果,再累加。
而采用本发明实施例的技术方案,可将乘法转化为循环右移和累加。采用本发明实施例的技术方案,可得到如下公式:
此外,采用本发明实施例的技术方案,公式3可化为:
p2 T=I1·p1 T+q1 T=(p1 r(1))T+q1 T
p3 T=p2 T+q2 T
p4 T=I1·p1 T+q4 T=(p1 r(1))T+q4 T。
传统的串行SRAA方式实现802.11nLDPC码编码,与本发明实施例技术方案来实现802.11nLDPC码编码的资源消耗如下表3所示。
编码方式 | 寄存器 | 二输入异或门 | 二输入与门 | 所需时钟周期 |
串行SRAA | 864 | 216 | 162 | 574 |
本发明编码器 | 864 | 216 | 0 | 27 |
表3
前述介绍的是,对信息段进行循环右移累加来实现相乘,本发明实施例下述将提供其他QC-LDPC码的编码方法来实现矩阵相乘。
上述方法用于对信息向量进行编码,得到包含上述信息向量和校验向量的码字向量。
上述信息向量可等分为k个信息段,每个信息段长lbit。其中,第i个信息段可表示为m(i);1≤i≤k。
上述校验向量可等分为m个校验段,每个校验段长lbit。其中,第j个校验段可表示为p(j)(1≤j≤m)。k、m均为正整数。
参见图7,上述编码方法在实现对上述p(j)的编码过程可包括如下步骤:
S1’:接收输入的m(i)。
需要注意的是,在本实施例中,是m(i)中的l个比特是同时输入的。而在现有方式中,则是一个比特一个比特输入。或者说,本实施例中,是以l个比特为单位输入信息向量的,而现有方式则是以1个比特为单位输入信息向量的。
S2’:依据差分移位向量中Wi,j对应的差分移位子向量,对上述m(i)进行xi,j次累加循环右移操作。
前已述及, 也即,对于求取p(j)而言,其所涉及的循环子矩阵包含W1,j至Wk,j。
上述差分移位向量则包含循环子矩阵W1,j至Wk,j对应的差分移位子向量,其中的Wi,j对应的差分移位子向量可表示为fi,j,而xi,j则为fi,j所包含的差分移位元素的总数(Wi,j对应的行移位向量包含的位置索引的数目也为xi,j)。
上述fi,j中的第b个差分移位元素可表示为1≤b≤xi,j,则上述xi,j次累加循环右移操作中的第b次累加循环右移操作可包括:
2A’:将上述m(i)与上一次累加循环右移操作的操作结果相加,得到相加结果。
上一次累加循环右移操作的操作结果可用pls表示。
2B’:对上述相加结果循环右移位,得到循环右移结果。
得到的循环右移结果为本次累加循环右移操作的操作结果;
其中,当b=1并且i=1时,上述上一次累加循环右移操作的操作结果为0(零向量);而当b=1并且i≠1时,“上一次累加循环右移操作的操作结果”则为对m(i-1)进行的最后一次累加循环右移操作的操作结果。
在本发明其他实施例中,上述差分移位向量可表示为fj。fj包含的差分移位元素的数目为y。y=x1,j+x2,j+...+xk,j。
fj可由行移位总向量计算得到。而行移位总向量包含循环子矩阵W1,j至Wk,j对应的行移位向量,其中,Wi,j对应的行移位向量包含上述Wi,j的第一行行向量中、取值为1的元素的位置索引。
前已述及,Wi,j第一行行向量中1的位置可表示为Ki,j,对于p(j)而言,相应的行移位总向量可表示为:[K1,jK2,j…Kk,j]。
假定k=3, 则行移位总向量可表示为[0,1,1,2]。
更具体的,fj的第e个差分移位元素可表示为1≤e≤y。W1,j对应的fi,j中的分别对应上述fj中的c=x1,j+...+xi-1,j。
行移位总向量中的第e个移位元素可表示为第e+1个移位元素可表示为
则在本发明其他实施例中,上述fj可通过如下公式计算得到:
仍沿用前例,行移位总向量表示为[0,1,1,2],则fj=[2,0,2,2]。
设m(1)=[m1,m2,m3],m(2)=[m4,m5,m6],m(3)=[m7,m8,m9]。
如采用常规算法,则有:
而如采用本发明实施例所提供的方法,则是:
步骤1,输入m(1);
步骤2,依据W1,j对应的差分移位子向量[2,0],对m(1)进行2次累加循环右移操作。
其中,第1次累加循环右移操作是:
将m(1)与pls相加(此时,pls=0),得到的相加结果为m(1)。
对上述相加结果(也即m(1))循环右移2位,得到循环右移结果为m(1)r(2)(m(1)r(2)=[m2,m3,m1])。
第2次累加循环右移操作是:
将m(1)与pls相加(此时,pls=[m2,m3,m1]),得到的相加结果为[m1+m2,m2+m3,m1+m3]。
对上述相加结果循环右移0位,得到循环右移结果为[m1+m2,m2+m3,m1+m3]。
步骤3,输入m(2);
步骤4,依据W2,j对应的差分移位子向量[2],对m(2)进行累加循环右移操作。
其中的累加循环右移操作包括:
将m(2)与pls相加。对于m(2)而言,pls为对m(1)进行的最后一次累加循环右移操作的操作结果(pls=[m1+m2,m2+m3,m1+m3])。
二者的相加结果为[m1+m2+m4,m2+m3+m5,m1+m3+m6]。
对上述相加结果循环右移2位,得到循环右移结果为[m2+m3+m5,m1+m3+m6,m1+m2+m4]。
步骤5,输入m(3);
步骤6,依据W3,j对应的差分移位子向量[2],对m(3)进行累加循环右移操作:
将m(3)与pls相加(此时,pls=[m2+m3+m5,m1+m3+m6,m1+m2+m4]),得到的相加结果为[m2+m3+m5+m7,m1+m3+m6+m8,m1+m2+m4+m9]。
对上述相加结果循环右移2位,得到循环右移结果为[m1+m3+m6+m8,m1+m2+m4+m9,m2+m3+m5+m7]。
可见,最终得到的结果与采用常规算法的结果是一样的。
为更清楚的了解本发明实施例累加循环右移操作的理念,下面将介绍相应的推导过程。
以p(j)为例,其可表示为:
大小为1×l向量m(i)循环右移a+b位,可表示为
m(i)r(a+b)=m(i)r(a)+r(b)=(m(i)r(a))r(b)0≤a≤l-1。
大小为1×l向量m(i)循环右移a-b位,可表示为
m(i)r(a-b)=m(i)r(a)-r(b)=m(i)r(a-b+l)=m(i)r((a-b+l)modl)0≤a≤l-1
m(1)循环右移a位后的向量和m(1)循环右移b位后的向量相加,可表示为:
m(1)r(a)+m(1)r(b)=m(1)r(a)-r(b)+r(b)+m(1)r(b)=(m(1)r(a)-r(b)+m(1))r(b)=(m(1)r((a-b+l)modl)+m(1))r(b)
m(1)循环右移a位后的向量和向量m(2)循环右移b位后的向量相加,可表示为:
m(1)r(a)+m(2)r(b)=m(1)r(a)-r(b)+r(b)+m(2)r(b)=(m(1)r(a)-r(b)+m(2))r(b)=(m(1)r((a-b+l)modl)+m(2))r(b)
这是因为,向量循环右移多少位与向量的内容无关。
例如:
m(1)=[1000],m(2)=[0110],a=1,b=2,(a-b+4)mod4=3
m(1)r(a)+m(1)r(b)=m(1)r(1)+m(1)r(2)=[0100]+[0010]=[0110]
(m(1)r((a-b+l)modl)+m(1))r(b)=(m(1)r(3)+m(1))r(2)=([0001]+[1000])r(2)=[0110]=m(1)r(a)+m(1)r(b)
m(1)r(a)+m(2)r(b)=m(1)r(1)+m(2)r(2)=[0100]+[1001]=[1101]
(m(1)r((a-b+l)modl)+m(2))r(b)=(m(1)r(3)+m(2))r(2)=([0001]+[0110])r(2)=[1101]=m(1)r(a)+m(2)r(b)
根据上述公式可知,校验向量p(1)也可表示为:
定义一个新的大小为1×y的向量f1为差分移位向量,表示为
其中,
则校验向量p(1)可简化为:
相应的其他校验向量也可转化为上述形式。
因此,在编码过程中,只需存储每一列子矩阵的差分移位向量,即差分移位表[f1 Tf2 Tfm T]T。
或者,通过行移位向量计算得到差分移位向量fj。
因此,在本发明其他实施例中,f1~fm可记录在移位表中,或者,由记录在移位表中的各循环子矩阵对应的行移位向量计算得到。
换句话说,fj可记录在移位表中,或者,由记录在移位表中的循环子矩阵W1,j至Wk,j对应的行移位向量计算得到。
在本发明其他实施例中,请参见图8,p(j)的一种生成流程如下:
S800、初始化:令i=1,b=1,p(j)=0;
S801、输入m(i);
S802、令p(j)=p(j)+m(i);
S803、将p(j)循环右移位,得到
步骤S803也可表示为:令
S804、令b=b+1;
S805、判断b是否大于xi,j;如果是,转步骤S806,否则,转步骤S802;
S806、令i=i+1;
S807、判断i是否大于k;如果是,转S808,否则转S801;
S808、结束。此时,
本发明实施例还要求保护相应的QC-LDPC码的编码器。
该QC-LDPC码的编码器用于对信息向量进行编码,得到码字向量,上述码字向量包含上述信息向量和校验向量。
其中,信息向量可等分为k个信息段,第i个信息段表示为m(i);信息向量中的第i-1个信息段则可表示为m(i-1);1≤i≤k;而校验向量可等分为m个校验段,第j个校验段表示为p(j),1≤j≤m。
上述编码器可包括m个校验段编码单元,其中,第j个校验段编码单元用于对信息向量进行编码,得到上述p(j)。
进一步的,请参见图9,上述第j个校验段编码单元包括输入子单元j91和累加右移子单元j92。
在上述p(j)的编码过程中:
上述输入子单元j91用于,接收输入的上述m(i)。
具体内容请参见本文前述记载,在此不作赘述。
上述累加右移子单元j92用于,依据差分移位向量中Wi,j对应的差分移位子向量,对上述m(i)进行xi,j次累加循环右移操作。
上述差分移位向量包含循环子矩阵W1,j至Wk,j对应的差分移位子向量,其中的Wi,j对应的差分移位子向量表示为fi,j。
xi,j为fi,j所包含的差分移位元素的总数;fi,j中的第b个差分移位元素表示为1≤b≤xi,j。
其中,上述xi,j次累加循环右移操作中的第b次累加循环右移操作包括:
将上述m(i)与上一次累加循环右移操作的操作结果相加,得到相加结果;
对上述相加结果循环右移位,得到循环右移结果,上述循环右移结果为本次累加循环右移操作的操作结果;
其中,当b=1并且i=1时,上述上一次累加循环右移操作的操作结果为0;当b=1并且i≠1时,上述上一次累加循环右移操作的操作结果为对上述m(i-1)进行的最后一次累加循环右移操作的操作结果。
具体内容请参见本文前述记载,在此不作赘述。
在本发明其他实施例中,上述所有实施例中的编码器还可包括:
差分移位向量存储器,用于存储上述差分移位向量。
图10示出了上述编码器的另一种结构,其可包括:
k个串行连接的信息向量寄存器(信息向量寄存器1-k);
m个校验段编码电路(校验段编码电路1-m),其中,第j个校验段编码电路用于对信息向量进行编码,得到上述p(j)。
请参见图11,上述第j个校验段编码电路(也即任一个校验段编码电路)可包括依次连接(串行连接)的加法器和循环右移校验段寄存器。
上述加法器还与上述k个信息向量寄存器中的第1个信息向量寄存器相(信息向量寄存器1)连接。
为区分起见,将第1个校验段编码电路中的循环右移校验段寄存器称为循环右移校验段寄存器1;将第2个校验段编码电路中的循环右移校验段寄存器称为循环右移校验段寄存器2;以此类推,在此不作赘述。
或者说,将第j个校验段编码电路中的循环右移校验段寄存器称为循环右移校验段寄存器j。
至少分别与上述k个信息向量寄存器和校验段编码电路中各器件相连接的控制器(未示出)。
此外,还可包括存储器。
其中,存储器可用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器可能包含高速随机存取存储器(randomaccessmemory,简称RAM)存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
控制器可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
控制器和存储器可集成于同一芯片内,也可为独立的两个器件。
控制器执行上述存储器所存放的程序,配合协调上述k个信息向量寄存器和校验段编码电路中各器件完成上述p(j)的编码过程:
接收输入的上述m(i),上述m(i)对应的循环子矩阵表示为Wi,j;
依据差分移位向量中上述Wi,j对应的差分移位子向量,对上述m(i)进行xi,j次累加循环右移操作;
上述差分移位向量包含循环子矩阵W1,j至Wk,j对应的差分移位子向量,其中的Wi,j对应的差分移位子向量表示为fi,j,上述xi,j为上述fi,j所包含的差分移位元素的总数;上述fi,j中的第b个差分移位元素表示为1≤b≤xi,j;
上述xi,j次累加循环右移操作中的第b次累加循环右移操作包括:
将上述m(i)与上一次累加循环右移操作的操作结果相加,得到相加结果;
对上述相加结果循环右移位,得到循环右移结果,上述循环右移结果为本次累加循环右移操作的操作结果;
其中,当b=1并且i=1时,上述上一次累加循环右移操作的操作结果为0;当b=1并且i≠1时,上述上一次累加循环右移操作的操作结果为对上述m(i-1)进行的最后一次累加循环右移操作的操作结果。
具体内容可参见本文前述记载,在此不作赘述。
在本发明其他实施例中,上述所有实施例中的控制器可分别与上述k个信息向量寄存器,m个加法器,以及m个循环右移校验段寄存器相连接,对其进行控制。
上述各器件作用如下:
信息向量寄存器1用于,响应于控制器的控制,向信息向量寄存器2输出所存储的数据,以及存储输入的m(i)。上述i初始为1,并在控制器的控制下逐1累加,直至i=k。
信息向量寄存器1可包含输入接口和输出接口(至少两个),其中一个输出接口与信息向量寄存器2的输入接口相连接,另一输出接口与上述m个加法器分别相连。信息向量寄存器1通过其输出接口向信息向量寄存器2输出所存储的数据,而m(i)则由输入接口输入。
信息向量寄存器Q用于,响应于控制器的控制,向信息向量寄存器Q+1输出所存储的数据,以及存储信息向量寄存器Q-1输入的数据;2≤Q≤k-1。
以信息向量寄存器2为例,信息向量寄存器2可包含输入接口和输出接口,该输出接口又与信息向量寄存器3的输入接口相连接,而输入接口则与信息向量寄存器1的输出接口相连。信息向量寄存器2通过其输出接口向信息向量寄存3输出所存储的数据,而信息向量寄存器2则通过信息向量寄存器2的输入接口输入数据。
其他信息向量寄存器的工作与之类似,在此不作赘述。
需要说明的是,在编码前,会进行清零。因此初始时,信息向量寄存器1至k、循环右移寄存器1至m中存储的数据全为零。
上述第j个校验段编码电路中的加法器用于,响应于控制器的控制,将循环右移校验段寄存器j中存储的数据与上述m(i)相加,并将相加结果存回上述循环右移校验段寄存器j。
加法器为二输入一输出,两个输入接口一个连接循环右移校验段寄存器j,另一个连接信息向量寄存器1,其输出接口也连接循环右移校验段寄存器j。
加法器通过两个输入接口分别获取m(i)和循环右移校验段寄存器j中存储的数据,将二者相加后,通过输出接口输出给循环右移校验段寄存器j。
循环右移校验段寄存器j用于,响应于控制器的控制,依据差分移位向量中上述Wi,j对应的差分移位子向量,将存入的上述相加结果循环右移位,并存储得到的循环右移结果。
上述差分移位向量包含循环子矩阵W1,j至Wk,j对应的差分移位子向量,其中,上述Wi,j对应的差分移位子向量表示为fi,j,上述fi,j所包含的差分移位元素的总数为xi,j;上述为上述fi,j中的第b个差分移位元素。
需要说明的是,上述b初始为1,并在上述控制器的控制下逐1累加,直至b=xi,j。
以循环右移校验段寄存器j为例,其有两个输入接口,其中一个连接加法器,另一个用于获取移位表中的差分移位向量。
上述控制器在编码过程结束后,还会按照从第k个信息向量寄存器至第1个信息向量寄存器的顺序,控制上述k个信息向量寄存器依次输出所存储的信息段,以及,按照从第1个至第m个校验段编码电路的顺序,控制上述m个校验段编码电路中的循环右移校验段寄存器依次输出所存储的校验段。
需要说明的是,编码过程结束后,信息向量寄存器1中存储的是m(k),信息向量寄存器2中存储的是m(k-1),信息向量寄存器3中存储的是m(k-2),……,信息向量寄存器k中存储的是m(1)。
而循环右移校验段寄存器1存储的是p(1),循环右移校验段寄存器2存储的是p(2),……,循环右移校验段寄存器m存储的是p(m)。
又因为,码字向量c=[m|p]=[m(1)m(2)…m(k)p(1)…p(m)],也即,如欲实现输出码字向量,需先串行顺次输出m(1)至m(k),再串行顺次输出p(1)至p(m)。
按从第k个信息向量寄存器至第1个信息向量寄存器的顺序,依次输出所存储的信息段,可实现串行顺次输出m(1)至m(k)。而按照从第1个至第m个校验段编码电路的顺序,输出所存储的校验段,可实现串行顺次输出p(1)至p(m)。
在本发明其他实施例中,上述所有实施例中的编码器还可包括:
差分移位向量存储器,用于存储上述差分移位向量。
此外,上述编码器还可包括时钟。
图10和图11所示编码器,可实现图8所示流程。
或者,使用图10和图11所示编码器所进行的步骤可如下所示(以获取校验段P(1)为例):
步骤0,初始化。
初始化包括清零(令信息向量寄存器1至k,以及,循环右移校验段寄存器1至m中存储的数据全为零),以及,令i=1,b=1。
步骤1,当第1个时钟周期到来时,输入信息段m(1),将m(1)与循环右移校验段寄存器1中的内容相加,根据移位表中存储的f1的第1个元素f1 1,将相加结果循环右移f1 1位,并保存循环右移结果(也即本次累加循环右移操作的操作结果)。
由于事先进行了清零,所以相加结果仍为m(1)。
步骤2,当第2个时钟周期到来时,将m(1)与循环右移校验段寄存器1中的内容相加,根据移位表中存储的f1的第2个元素f1 2,将相加结果循环右移f1 2位,并保存循环右移结果。
……
步骤x1,1,当第x1,1个时钟周期到来时,将m(1)与循环右移校验段寄存器1中的内容相加,根据移位表中存储的f1的第x1,1个元素将相加结果循环右移位,并保存循环右移结果。
步骤x1,1+1,当第x1,1+1个时钟周期到来时,输入信息段m(2),将m(2)与循环右移校验段寄存器1中的内容相加,根据移位表中存储的f1的第x1,1+1个元素将相加结果循环右移位,并保存循环右移结果。
……
步骤x1,1+x2,1,当第x1,1+x2,1个时钟周期到来时,将m(2)与循环右移校验段寄存器1中的内容相加,根据移位表中存储的f1的第x1,1+x2,1个元素将相加结果循环右移位,并保存循环右移结果。
重复上述过程,直至整个信息向量m全部串行移入电路,此时,循环右移校验段寄存器1存储的是校验段P(1)。相应的,其他校验段也可获得。
需要说明的是,以获取P(1)和P(2)为例,在获取P(1)时m(1)对应x1,1个差分移位元素,在获取P(2)时m(1)对应x1,2个差分移位元素。x1,1与x1,2并不一定相等。由于m个校验段编码电路并行编码,并且这m个校验段编码电路从同一信息向量寄存器(信息向量寄存器1)处获得信息段,因此,需要对信息段的输入予以控制。
控制的方式有多种。
一种控制方式是:由于循环子矩阵每行长度为l,可每隔l个时钟节拍,输入一个信息段。也即,第1个时钟周期到来时,输入信息段m(1),第l+1个时钟周期到来时,输入信息段m(2),第2l+1个时钟周期到来时,输入信息段m(3),以此类推。
如果l=5,而x1,1=3,则在第4和第5个时钟周期中,控制器可令第1个校验段编码电路中的加法器停止工作。相类似的,如x2,1=4,则在第5个时钟周期中,控制器可令第1个校验段编码电路中的加法器停止工作。以此类推,不再赘述。
另一种方式是:
控制器可在第x1+1个时钟周期到来时,控制输入信息段m(2)。x1=max(x1,j),也即,x1为x1,1至x1,m中的最大值。如果x1=4,而x1,1=3,则在第4个时钟周期中,控制器可令第1个校验段编码电路中的加法器停止工作。相类似的,如x2,1=2,则在第3-4个时钟周期中,控制器可令第2个校验段编码电路中的加法器停止工作。以此类推,不再赘述。
在第x1+x2+1个时钟周期到来时,控制器控制输入信息段m(3),x2=max(x2,j),也即,x2为x2,1至x2,m中的最大值。以此类推,不作赘述。
如使用上述方式,则本发明实施例所提供编码器的编码时间为:
传统使用SRAA电路的串行编码器与本发明实施例的资源消耗如下表4所示:
表4
在本发明其他实施例中,上述存储器还可存储信息向量(存储时机为进入信息向量寄存器之前)。或者,上述编码器还包括其他存储器来存储上述信息向量。
此外,上述编码器还可包括读写设备,控制器可控制读写设备从存储器中读取出信息段,并存入编码器内部的信息向量寄存器1。
除用于QC-LDPC码的编码外,本发明实施例所提供的技术方案还可应用于其他场景。例如,其可应用于802.11nLDPC码编码。
802.11nLDPC码(码长648,码率5/6)的基础校验矩阵,如上表2所示。
相应的差分移位表可表示为:
如采用本发明实施例所提供的技术方案,将乘法转化为累加循环右移操作,则前述的向量q1 T,q2 T,q3 T,q4 T可表示为:
将乘法转化为循环右移和累加,则校验向量则可表示为:
p2 T=I1·p1 T+q1 T=(p1 r(1))T+q1 T
p3 T=p2 T+q2 T
p4 T=I1·p1 T+q4 T=(p1 r(1))T+q4 T
传统的串行SRAA方式实现802.11nLDPC码编码,与本发明实施例技术方案来实现802.11nLDPC码编码的资源消耗如下表所示:
编码方式 | 寄存器 | 二输入异或门 | 二输入与门 | 所需时钟周期 |
串行SRAA | 864 | 216 | 162 | 574 |
本发明编码器 | 756 | 216 | 0 | 27 |
无论采用本发明实施例所提供的哪种编码方式,其均有如下优点:
在QC-LDPC码的编码过程中只需存储每个循环子矩阵的第一行(或列)中元素“1”(或“0”)的位置,或者,存储每个循环子矩阵的差分移位子向量(差分移位子向量的数目与循环子矩阵第一行“1”的数目相等),减少了存储空间。
只需简单的相加和循环右移操作,可减少寄存器的数量。并不需要相乘操作,生成矩阵的存储内容不需要变动,可有效减少计算量。
编码时间与每个循环子矩阵的第一行中元素“1”的数目有关,可以减少编码时间,提高了编码速度。可以采用简单的移位寄存器硬件来实现编码器,简化编码电路,易于硬件实现。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (13)
1.一种QC-LDPC码的编码方法,其特征在于,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段;所述信息向量中的第i个信息段表示为m(i);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j),1≤j≤m;所述p(j)中m(i)Wi,j的编码过程包括:
接收输入的所述m(i),所述Wi,j为与所述m(i)对应的循环子矩阵;
依据所述Wi,j对应的行移位向量,对所述m(i)分别进行xi,j次循环右移,每一次循环右移对应一个循环右移结果;所述Wi,j对应的行移位向量表示为Ki,j;所述Ki,j包含所述Wi,j的第一行行向量中、取值为1的元素的位置索引;所述xi,j为所述Ki,j包含的位置索引的数目;
对所述xi,j个循环右移结果的进行累加,所述xi,j个循环右移结果的累加结果为所述m(i)Wi,j;
其中,所述xi,j次循环右移中的第a次循环右移包括:
将所述m(i)循环右移ka i,j位,所述ka i,j为所述Ki,j中第a个位置索引;1≤a≤xi,j。
2.如权利要求1所述的方法,其特征在于,
所述Wi,j对应的行移位向量记录在移位表中,或者,
所述Wi,j对应的行移位向量由记录在移位表中的、所述Wi,j对应的行零位向量计算得到;所述Wi,j对应的行零位向量包含所述Wi,j的第一行行向量中、取值为0的元素的位置索引,或者,
所述Wi,j对应的行移位向量由记录在移位表中的、所述Wi,j对应的列移位向量计算得到,所述Wi,j对应的列移位向量包含所述Wi,j的第一列列向量中、取值为1的元素的位置索引,或者,
所述Wi,j对应的行移位向量可由所述移位表中的、所述Wi,j对应的列零位向量计算得到,所述Wi,j对应的列零位向量包含所述Wi,j的第一列列向量中、取值为0的元素的位置索引。
3.如权利要求2所述的方法,其特征在于,所述Wi,j对应的列移位向量表示为Ji,j,所述Ki,j可通过如下公式计算得出:
Ki,j=(l-Ji,j)modl,所述l为Wi,j行向量或列向量的长度。
4.一种QC-LDPC码的编码器,其特征在于,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段;所述信息向量中的第i个信息段表示为m(i);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j),1≤j≤m;
所述编码器包括:
m个校验段编码单元,其中,第j个校验段编码单元用于对信息向量进行编码,得到所述p(j);
所述第j个校验段编码单元包括输入模块、循环右移模块和累加模块,在对所述p(j)中m(i)Wi,j的编码过程中:
所述输入模块用于,接收输入的所述m(i),所述Wi,j为与所述m(i)对应的循环子矩阵;
所述循环右移模块用于,依据所述Wi,j对应的行移位向量,对所述m(i)分别进行xi,j次循环右移,每一次循环右移对应一个循环右移结果;所述Wi,j对应的行移位向量表示为Ki,j;所述Ki,j包含所述Wi,j的第一行行向量中、取值为1的元素的位置索引;所述xi,j为所述ki,j包含的位置索引的数目;
所述累加模块用于,对所述xi,j个循环右移结果的进行累加,所述xi,j个循环右移结果的累加结果为所述m(i)Wi,j;
其中,所述xi,j次循环右移中的第a次循环右移包括:
将所述m(i)循环右移ka i,j位,所述ka i,j为所述Ki,j中第a个位置索引;1≤a≤xi,j。
5.如权利要求4所述的编码器,其特征在于,还包括:
移位表存储单元,用于存储移位表;
所述Wi,j对应的行移位向量记录在所述移位表中,或者,
所述Wi,j对应的行移位向量由所述移位表中的、所述Wi,j对应的行零位向量计算得到;所述Wi,j对应的行零位向量包含所述Wi,j的第一行行向量中、取值为0的元素的位置索引,或者,
所述Wi,j对应的行移位向量由所述移位表中的、所述Wi,j对应的列移位向量计算得到,所述Wi,j对应的列移位向量包含所述Wi,j的第一列列向量中、取值为1的元素的位置索引,或者,
所述Wi,j对应的行移位向量可由所述移位表中的、所述Wi,j对应的列零位向量计算得到,所述Wi,j对应的列零位向量包含所述Wi,j的第一列列向量中、取值为0的元素的位置索引。
6.一种QC-LDPC码的编码器,其特征在于,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段;所述信息向量中的第i个信息段表示为m(i);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j),1≤j≤m;
所述编码器包括:
k个串行连接的信息向量寄存器;
m个校验段编码电路,所述m个校验段编码电路中的第j个校验段编码电路用于对信息向量进行编码,得到所述p(j);
任一校验段编码电路包括依次连接的循环右移寄存器、加法器和校验段寄存器;所述循环右移寄存器还与所述k个信息向量寄存器中的第1个信息向量寄存器相连接;
至少分别与所述k个信息向量寄存器和循环右移寄存器相连接的控制器;
所述第j个校验段编码电路中的第1个信息向量寄存器用于,响应于所述控制器的控制,向第2个信息向量寄存器输出所存储的数据,以及存储输入的m(i);所述m(i)为信息向量中的第i个信息段,所述信息向量等分为k个信息段;所述i初始为1,并在所述控制器的控制下逐1累加,直至i=k;
所述第j个校验段编码电路中的第Q个信息向量寄存器用于,响应于所述控制器的控制,向第Q+1个信息向量寄存器输出所存储的数据,以及存储第Q-1个信息向量寄存器输入的数据;2≤Q≤k-1;
所述第j个校验段编码电路中的循环右移寄存器用于,响应于所述控制器的控制,将所述m(i)循环右移ka i,j位,并输出所述m(i)循环右移ka i,j位得到的循环右移结果;所述ka i,j为Ki,j中的第a个位置索引;所述Ki,j为Wi,j对应的行移位向量,所述Ki,j包含所述Wi,j的第一行行向量中、取值为1的元素的位置索引;所述Wi,j为在生成p(j)的编码过程中与所述m(i)对应的循环子矩阵;所述ki,j包含的位置索引的数目为xi,j;所述a初始为1,并在所述控制器的控制下逐1累加,直至a=xi,j;所述m(i)循环右移ka i,j位得到的循环右移结果表示为上标r表示循环右移;
所述第j个校验段编码电路中的加法器用于,将所述循环右移寄存器输出的与所述j个校验段编码电路中的校验段寄存器中存储的数据相加,并将相加结果存回所述校验段寄存器;在将相加结果存回所述校验段寄存器后,所述校验段寄存器中存储的数据为
7.一种QC-LDPC码的编码器,其特征在于,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段;所述信息向量中的第i个信息段表示为m(i);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j),1≤j≤m;
所述编码器包括:
k个串行连接的信息向量寄存器;
m个校验段编码电路,所述m个校验段编码电路中的第j个校验段编码电路用于对信息向量进行编码,得到所述p(j);
任一校验段编码电路包括依次连接的循环右移寄存器、加法器和校验段寄存器;所述循环右移寄存器还与所述k个信息向量寄存器中的第1个信息向量寄存器相连接;
至少分别与所述k个信息向量寄存器和校验段编码电路中各器件相连接的控制器;
所述控制器配合协调所述k个信息向量寄存器和校验段编码电路中各器件完成如下操作:
接收输入的所述m(i),所述Wi,j为与所述m(i)对应的循环子矩阵;
依据所述Wi,j对应的行移位向量,对所述m(i)分别进行xi,j次循环右移,每一次循环右移对应一个循环右移结果;所述Wi,j对应的行移位向量表示为Ki,j;所述Ki,j包含所述Wi,j的第一行行向量中、取值为1的元素的位置索引;所述xi,j为所述Ki,j包含的位置索引的数目;
对所述xi,j个循环右移结果的进行累加,所述xi,j个循环右移结果的累加结果为所述m(i)Wi,j;
其中,所述xi,j次循环右移中的第a次循环右移包括:
将所述m(i)循环右移ka i,j位,所述ka i,j为所述Ki,j中第a个位置索引;1≤a≤xi,j。
8.一种QC-LDPC码的编码方法,其特征在于,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段,每一信息段长度为l;所述信息向量中的第i个信息段表示为m(i);所述信息向量中的第i-1个信息段表示为m(i-1);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j),1≤j≤m;所述p(j)的编码过程包括:
接收输入的所述m(i),所述m(i)对应的循环子矩阵表示为Wi,j;
依据差分移位向量中所述Wi,j对应的差分移位子向量,对所述m(i)进行xi,j次累加循环右移操作;
所述差分移位向量包含循环子矩阵W1,j至Wk,j对应的差分移位子向量,其中的Wi,j对应的差分移位子向量表示为fi,j,所述xi,j为所述fi,j所包含的差分移位元素的总数;所述fi,j中的第b个差分移位元素表示为1≤b≤xi,j;
所述xi,j次累加循环右移操作中的第b次累加循环右移操作包括:
将所述m(i)与上一次累加循环右移操作的操作结果相加,得到相加结果;
对所述相加结果循环右移位,得到循环右移结果,所述循环右移结果为本次累加循环右移操作的操作结果;
其中,当b=1并且i=1时,所述上一次累加循环右移操作的操作结果为0;当b=1并且i≠1时,所述上一次累加循环右移操作的操作结果为对所述m(i-1)进行的最后一次累加循环右移操作的操作结果。
9.如权利要求8所述的方法,其特征在于,所述差分移位向量表示为fj;所述fj包含的差分移位元素的数目为y;
所述fj由行移位总向量计算得到;所述行移位总向量包含循环子矩阵W1,j至Wk,j对应的行移位向量,其中,Wi,j对应的行移位向量包含所述Wi,j的第一行行向量中、取值为1的元素的位置索引;所述Wi,j对应的行移位向量包含的位置索引的数目为xi,j。
10.如权利要求9所述的方法,其特征在于,
所述fj的第e个差分移位元素表示为1≤e≤y;
所述行移位总向量中的第e个移位元素表示为第e+1个移位元素表示为
所述fj通过如下公式计算得到:
所述fi,j中的至分别对应所述fj中的至c=x1,j+...+xi-1,j。
11.一种QC-LDPC码的编码器,其特征在于,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段;所述信息向量中的第i个信息段表示为m(i);所述信息向量中的第i-1个信息段表示为m(i-1);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j),1≤j≤m;
所述编码器包括:
m个校验段编码单元,其中,第j个校验段编码单元用于对信息向量进行编码,得到所述p(j);
所述第j个校验段编码单元包括输入子单元和累加右移子单元;
所述输入子单元用于,接收输入的所述m(i),所述m(i)对应的循环子矩阵表示为Wi,j;
所述累加右移子单元用于,依据差分移位向量中所述Wi,j对应的差分移位子向量,对所述m(i)进行xi,j次累加循环右移操作;所述差分移位向量包含循环子矩阵W1,j至Wk,j对应的差分移位子向量,其中的Wi,j对应的差分移位子向量表示为fi,j,所述xi,j为所述fi,j所包含的差分移位元素的总数;所述fi,j中的第b个差分移位元素表示为1≤b≤xi,j;
其中,所述xi,j次累加循环右移操作中的第b次累加循环右移操作包括:
将所述m(i)与上一次累加循环右移操作的操作结果相加,得到相加结果;
对所述相加结果循环右移位,得到循环右移结果,所述循环右移结果为本次累加循环右移操作的操作结果;
其中,当b=1并且i=1时,所述上一次累加循环右移操作的操作结果为0;当b=1并且i≠1时,所述上一次累加循环右移操作的操作结果为对所述m(i-1)进行的最后一次累加循环右移操作的操作结果。
12.一种QC-LDPC码的编码器,其特征在于,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段;所述信息向量中的第i个信息段表示为m(i);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j);
所述编码器包括:
k个串行连接的信息向量寄存器;
m个校验段编码电路,所述m个校验段编码电路中的第j个校验段编码电路用于对信息向量进行编码,得到所述p(j);
任一校验段编码电路包括依次连接的加法器和循环右移校验段寄存器;所述加法器还与所述k个信息向量寄存器中的第1个信息向量寄存器相连接;
分别与所述k个信息向量寄存器、加法器和循环右移校验段寄存器相连接的控制器;
所述第j个校验段编码电路中的第1个信息向量寄存器用于,响应于所述控制器的控制,向第2个信息向量寄存器输出所存储的数据,以及存储输入的m(i);所述m(i)为信息向量中的第i个信息段,所述信息向量等分为k个信息段;所述i初始为1,并在所述控制器的控制下逐1累加,直至i=k;
所述第j个校验段编码电路中的第Q个信息向量寄存器用于,响应于所述控制器的控制,向第Q+1个信息向量寄存器输出所存储的数据,以及存储第Q-1个信息向量寄存器输入的数据;2≤Q≤k-1;
所述第j个校验段编码电路中的加法器用于,响应于所述控制器的控制,将所述j个校验段编码电路中的循环右移校验段寄存器中存储的数据与所述m(i)相加,并将相加结果存回所述循环右移校验段寄存器;所述m(i)对应的循环子矩阵表示为Wi,j;
所述第j个校验段编码电路中的循环右移校验段寄存器用于,响应于所述控制器的控制,依据差分移位向量中所述Wi,j对应的差分移位子向量,将存入的所述相加结果循环右移位,并存储得到的循环右移结果;
所述差分移位向量包含循环子矩阵W1,j至Wk,j对应的差分移位子向量,其中,所述Wi,j对应的差分移位子向量表示为fi,j,所述fi,j所包含的差分移位元素的总数为xi,j;所述为所述fi,j中的第b个差分移位元素;所述b初始为1,并在所述控制器的控制下逐1累加,直至b=xi,j。
13.一种QC-LDPC码的编码器,其特征在于,用于对信息向量进行编码,得到码字向量,所述码字向量包含所述信息向量和校验向量;所述信息向量等分为k个信息段,每一信息段长度为l;所述信息向量中的第i个信息段表示为m(i);所述信息向量中的第i-1个信息段表示为m(i-1);1≤i≤k;所述校验向量等分为m个校验段;所述校验向量中的第j个校验段表示为p(j);
所述编码器包括:
k个串行连接的信息向量寄存器;
m个校验段编码电路,所述m个校验段编码电路中的第j个校验段编码电路用于对信息向量进行编码,得到所述p(j);
任一校验段编码电路包括依次连接的加法器和循环右移校验段寄存器;所述加法器还与所述k个信息向量寄存器中的第1个信息向量寄存器相连接;
所述控制器配合协调所述k个信息向量寄存器和校验段编码电路中各器件完成所述p(j)的编码过程:
接收输入的所述m(i),所述m(i)对应的循环子矩阵表示为Wi,j;
依据差分移位向量中所述Wi,j对应的差分移位子向量,对所述m(i)进行xi,j次累加循环右移操作;
所述差分移位向量包含循环子矩阵W1,j至Wk,j对应的差分移位子向量,其中的Wi,j对应的差分移位子向量表示为fi,j,所述xi,j为所述fi,j所包含的差分移位元素的总数;所述fi,j中的第b个差分移位元素表示为1≤b≤xi,j;
所述xi,j次累加循环右移操作中的第b次累加循环右移操作包括:
将所述m(i)与上一次累加循环右移操作的操作结果相加,得到相加结果;
对所述相加结果循环右移位,得到循环右移结果,所述循环右移结果为本次累加循环右移操作的操作结果;
其中,当b=1并且i=1时,所述上一次累加循环右移操作的操作结果为0;当b=1并且i≠1时,所述上一次累加循环右移操作的操作结果为对所述m(i-1)进行的最后一次累加循环右移操作的操作结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410160885.1A CN105099467B (zh) | 2014-04-21 | 2014-04-21 | Qc-ldpc码的编码方法及编码装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410160885.1A CN105099467B (zh) | 2014-04-21 | 2014-04-21 | Qc-ldpc码的编码方法及编码装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105099467A true CN105099467A (zh) | 2015-11-25 |
CN105099467B CN105099467B (zh) | 2019-02-01 |
Family
ID=54579168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410160885.1A Active CN105099467B (zh) | 2014-04-21 | 2014-04-21 | Qc-ldpc码的编码方法及编码装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105099467B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106877882A (zh) * | 2017-01-17 | 2017-06-20 | 北京联想核芯科技有限公司 | 数据处理方法和装置 |
CN106911335A (zh) * | 2015-12-22 | 2017-06-30 | 北京忆芯科技有限公司 | Ldpc编码器 |
CN106921395A (zh) * | 2015-12-28 | 2017-07-04 | 北京忆芯科技有限公司 | Ldpc编码方法及其装置 |
CN107786211A (zh) * | 2017-09-26 | 2018-03-09 | 华中科技大学 | 一种ira‑qc‑ldpc码的代数结构获取方法、编码方法和编码器 |
CN108270449A (zh) * | 2016-12-30 | 2018-07-10 | 西部数据技术公司 | 支持多种编码率和编码长度的编码器 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662290A (zh) * | 2008-08-26 | 2010-03-03 | 华为技术有限公司 | 生成准循环ldpc码及编码的方法与装置 |
US20100162074A1 (en) * | 2008-12-19 | 2010-06-24 | Electronics And Telecommunications Research Institute | Apparatus and method for coding qc-ldpc code |
CN102377437A (zh) * | 2010-08-27 | 2012-03-14 | 中兴通讯股份有限公司 | 一种准循环低密度奇偶校验码编码方法和装置 |
CN102843150A (zh) * | 2012-09-27 | 2012-12-26 | 苏州威士达信息科技有限公司 | 一种低延时的qc-ldpc并行编码器和编码方法 |
CN102857240A (zh) * | 2012-09-27 | 2013-01-02 | 苏州威士达信息科技有限公司 | 循环右移累加基的深空通信中ldpc编码器和编码方法 |
CN102938652A (zh) * | 2012-11-21 | 2013-02-20 | 苏州威士达信息科技有限公司 | 基于查找表的qc-ldpc码的并行编码器和编码方法 |
US8443257B1 (en) * | 2010-02-01 | 2013-05-14 | Sk Hynix Memory Solutions Inc. | Rate-scalable, multistage quasi-cyclic LDPC coding |
-
2014
- 2014-04-21 CN CN201410160885.1A patent/CN105099467B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662290A (zh) * | 2008-08-26 | 2010-03-03 | 华为技术有限公司 | 生成准循环ldpc码及编码的方法与装置 |
US20100162074A1 (en) * | 2008-12-19 | 2010-06-24 | Electronics And Telecommunications Research Institute | Apparatus and method for coding qc-ldpc code |
US8443257B1 (en) * | 2010-02-01 | 2013-05-14 | Sk Hynix Memory Solutions Inc. | Rate-scalable, multistage quasi-cyclic LDPC coding |
CN102377437A (zh) * | 2010-08-27 | 2012-03-14 | 中兴通讯股份有限公司 | 一种准循环低密度奇偶校验码编码方法和装置 |
CN102843150A (zh) * | 2012-09-27 | 2012-12-26 | 苏州威士达信息科技有限公司 | 一种低延时的qc-ldpc并行编码器和编码方法 |
CN102857240A (zh) * | 2012-09-27 | 2013-01-02 | 苏州威士达信息科技有限公司 | 循环右移累加基的深空通信中ldpc编码器和编码方法 |
CN102938652A (zh) * | 2012-11-21 | 2013-02-20 | 苏州威士达信息科技有限公司 | 基于查找表的qc-ldpc码的并行编码器和编码方法 |
Non-Patent Citations (1)
Title |
---|
ZHANG WEN-JUN 等: "A novel encoding architecture of QC-LDPC codes based on RAM", 《重庆邮电大学学报(自然科学版)》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106911335A (zh) * | 2015-12-22 | 2017-06-30 | 北京忆芯科技有限公司 | Ldpc编码器 |
CN106911335B (zh) * | 2015-12-22 | 2021-12-28 | 厦门旌存半导体技术有限公司 | Ldpc编码器 |
CN106921395A (zh) * | 2015-12-28 | 2017-07-04 | 北京忆芯科技有限公司 | Ldpc编码方法及其装置 |
CN106921395B (zh) * | 2015-12-28 | 2021-09-28 | 北京忆芯科技有限公司 | Ldpc编码方法及其装置 |
CN108270449A (zh) * | 2016-12-30 | 2018-07-10 | 西部数据技术公司 | 支持多种编码率和编码长度的编码器 |
CN108270449B (zh) * | 2016-12-30 | 2021-05-04 | 西部数据技术公司 | 支持多种编码率和编码长度的编码器 |
CN106877882A (zh) * | 2017-01-17 | 2017-06-20 | 北京联想核芯科技有限公司 | 数据处理方法和装置 |
CN106877882B (zh) * | 2017-01-17 | 2020-03-31 | 深圳忆联信息系统有限公司 | 数据处理方法和装置 |
CN107786211A (zh) * | 2017-09-26 | 2018-03-09 | 华中科技大学 | 一种ira‑qc‑ldpc码的代数结构获取方法、编码方法和编码器 |
Also Published As
Publication number | Publication date |
---|---|
CN105099467B (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105846830B (zh) | 数据处理装置 | |
CN105099467A (zh) | Qc-ldpc码的编码方法及编码装置 | |
CN104617959A (zh) | 一种基于通用处理器的ldpc编译码方法 | |
CN103268215A (zh) | 基于循环左移的cmmb中准循环矩阵串行乘法器 | |
CN104579366B (zh) | Wpan中基于三级流水线的高速qc-ldpc编码器 | |
CN103902509A (zh) | Wpan中全并行输入的循环左移准循环矩阵乘法器 | |
CN103929199A (zh) | Dtmb中全并行输入的循环左移准循环矩阵乘法器 | |
Raviv | Asymptotically optimal regenerating codes over any field | |
CN105703783A (zh) | 一种准并行结构的ldpc编码器 | |
CN105450235A (zh) | Dtmb中的全对角线准循环矩阵乘法器 | |
CN104539297B (zh) | Dtmb中基于四级流水线的高速qc-ldpc编码器 | |
CN104579365B (zh) | 基于四级流水线的高速qc-ldpc编码器 | |
CN106385264A (zh) | 二级部分并行输入累加左移的ldpc编码器 | |
CN103929191A (zh) | 深空通信中部分并行输入的累加左移准循环矩阵乘法器 | |
CN103023519A (zh) | 一种费马数变换的方法和装置 | |
CN103929272B (zh) | Cmmb中部分并行输入的右移累加准循环矩阵乘法器 | |
CN107196663A (zh) | Cdr中二级部分并行输入累加左移的ldpc编码器 | |
CN103268212B (zh) | 无需存储器的深空通信中准循环矩阵高速乘法器 | |
CN103905157B (zh) | 深空通信中部分并行输入的累加左移qc-ldpc编码器 | |
CN103929207A (zh) | Cmmb中部分并行输入的右移累加qc-ldpc编码器 | |
CN103902508A (zh) | 部分并行输入的累加左移准循环矩阵乘法器 | |
CN103916135A (zh) | 近地通信中全并行输入的循环左移qc-ldpc编码器 | |
CN103929200A (zh) | Cdr中全并行输入的循环左移qc-ldpc编码器 | |
CN107181492A (zh) | Wpan中二级部分并行输入累加左移的ldpc编码器 | |
CN103235711A (zh) | 基于查找表的准循环矩阵高速乘法器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210421 Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Patentee after: Honor Device Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |