CN104579362B - 一种空间通信***中部分并行结构ldpc码译码***及其方法 - Google Patents
一种空间通信***中部分并行结构ldpc码译码***及其方法 Download PDFInfo
- Publication number
- CN104579362B CN104579362B CN201410841848.7A CN201410841848A CN104579362B CN 104579362 B CN104579362 B CN 104579362B CN 201410841848 A CN201410841848 A CN 201410841848A CN 104579362 B CN104579362 B CN 104579362B
- Authority
- CN
- China
- Prior art keywords
- addr
- msub
- information
- mtd
- submatrix
- 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.)
- Active
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明涉及一种空间通信***中部分并行结构LDPC码译码***及其方法,该***结构包括迭代控制单元、信道信息存储器、主存储器、变量节点处理模块、校验节点处理模块、判决结果输出缓冲单元;主存储器结构简单,与校验矩阵结构图中非零子矩阵一一对应;从主存储器中读取数据的地址处理单元结构简单、易于实现;该部分并行译码结构设计了超行数个并行的校验节点处理单元、超列数个并行的变量节点处理单元,节点消息更新算法的实现复杂度低,所耗资源少。
Description
技术领域
本发明涉及一种空间通信***中部分并行结构LDPC码译码***,属于并行译码技术领域。
背景技术
在空间通信***中,接收机收到的信号常受到衰落信道和干扰噪声等影响。对此,空间通信***常采用具有高信道编码增益的LDPC(低密度奇偶校验码)码来提高信息传输的可靠性,将误码率降低并逼近香农极限。目前,LDPC码已被作为CCSDS(空间数据***资讯委员会)、欧洲DVB(数字视频广播)等组织的通信***的推荐信道编码方案之一。LDPC码常用校验矩阵或图模型来进行描述,Tanner图表示是其中较直观、方便的一种,包含两个节点集合,变量节点(variable node)集合和校验节点(check node)集合。每一个变量节点对应于码字的一个码元,每一个校验节点对应于一个奇偶校验约束关系。两个节点集合之间通过边(edge)进行连接,而节点集合内部无任何边连接。Tanner图与校验矩阵存在一一对应的关系,即变量节点与校验矩阵中的列对应,校验节点与校验矩阵中的行对应,而边则与校验矩阵中的非零元素相对应。Tanner图中与节点相连的边的数目称为节点的度(degree),节点的度与校验矩阵的行重(列重)一致。
LDPC码的译码算法有很多,常用的置信传播(BP)译码算法用对数似然比(LLR)表示概率消息,其算法步骤总结如下,
(1)初始化,计算信道传递给变量节点的初始概率为Pi,以及对应的似然比消息数据为D(Pi),然后设定每个变量节点i传向与其相邻的校验节点j,j的取值范围为j∈Mi,的初始信息为D(0)(qi→j)=D(Pi),式中Nj为每个校验节点j相邻的变量节点i的集合。
(2)校验节点更新,计算变量节点传向校验节点的消息为D(l)(rj→i),Nj为第j个校验节点相邻的变量节点集合,
式中,i'∈Nj\i表示集合Nj中除去第i个点的集合,l表示第l此迭代译码,l-1表示第l-1次迭代译码。
(3)变量节点更新,第l次迭代时,计算校验节点传向变量节点的消息为D(l)(qi→j),
(4)译码判决,计算所有变量节点的硬判决信息为D(l)(qi→j),
若D(l)(qi)>0,则判为1,否则为0。对判决得到的序列满足式中H表示校验矩阵,表示判决数据的转置,或达到最大迭代次数,则结束译码,否则转到1)。
从BP译码算法可推导出最小和(MS)算法。其校验节点更新可以表示为
式中,sgn表示取符号位操作。
此外还有对最小和(MS)算法修正的归一化最小和和偏移量最小和算法等,尽管以上所述译码算法已经经过各种简化,LDPC译码算法的实现在数字接收机中往往需要很复杂的计算和较多的资源消耗。所以宽带空间通信***中更需要设计简单、高效的译码器。
发明内容
本发明解决的技术问题为:克服现有技术不足,提供一种空间通信***中部分并行结构LDPC码译码***,针对CCSDS(空间数据***资讯委员会)***中码率R=1/2的(8192,4096)LDPC码设计一种空间通信***中部分并行结构LDPC码译码方法,本发明具有分布简单的主存储器、易于实现的地址处理和实现复杂度低的节点消息更新单元,该设计可以灵活地应用于CCSDS深空通信标准其他码率的LDPC译码器设计。
本发明解决的技术方案为:一种空间通信***中部分并行结构LDPC码译码***,包括迭代控制单元、信道信息存储器、主存储器、变量节点处理模块、校验节点处理模块、判决结果输出缓冲单元;
信道信息存储器包含4个双口RAM,每个RAM的深度为L=2048,主存储器包括15个存储器RAM,即主存储器RAM1、RAM2、……、RAM15,用于存储变量节点和校验节点之间传递的边信息,每个存储器RAM对应在CCSDS标准中定义的码效率为R=1/2的准循环LDPC码的校验矩阵H里的每一个非零子矩阵,每个存储器RAM深度均为L=2048,即主存储器RAM1、RAM2、……、RAM15分别对应如下:
RAM1对应超列S1与超行H2对应的子阵IL;
RAM2对应超列S1与超行H3对应的子阵IL;
RAM3对应超列S2与超行H2对应的子阵IL;
RAM4对应超列S2与超行H3对应的子阵Π5;
RAM5对应超列S2与超行H3对应的子阵Π6;
RAM6对应超列P1与超行H1对应的子阵IL;
RAM7对应超列P2与超行H2对应的子阵IL;
RAM8对应超列P2与超行H3对应的子阵Π7;
RAM9对应超列P2与超行H3对应的子阵Π8;
RAM10对应超列P3与超行H1对应的子阵IL;
RAM11对应超列P3与超行H1对应的子阵Π1;
RAM12对应超列P3与超行H2对应的子阵Π2;
RAM13对应超列P3与超行H2对应的子阵Π3;
RAM14对应超列P3与超行H2对应的子阵Π4;
RAM15对应超列P3与超行H3对应的子阵IL;
校验矩阵H的行分为3个超行分别为H1、H2、H3,H1为0-2047行、H2为2048-4095行、H3为4096-6143行;将校验矩阵H的列分为5个超列S1、S2、P1、P2、P3,S1为0-2047列、S2为2048-4095列、P1为4096-6143列、P2为6144-8191列、P3为8192-10239列,此矩阵划分如图1所示;
变量节点处理模块包括VNU1、VNU2、VNU3、VNU4和VNU5这5个变量节点处理单元,变量节点处理单元为5路并行;
校验节点地址处理模块包括CNU1、CNU2、CNU3这三个校验节点处理单元,CNU1、CNU2、CNU3为3路并行;
信道信息存储单元接收并存储数字接收机解调的当前这一帧似然信息数据,并将该似然信息数据顺序地存储到信道信息存储单元的4个RAM里,一帧似然信息数据为8192个,当该帧接收完毕后,信道信息存储单元产生一个接收完毕信号发送给迭代控制单元,信道信息存储单元同时通过乒乓操作接收下一帧的8192个数据;
迭代控制单元收到接收完毕信号后向信道信息存储单元发出译码开始信号,信道信息存储单元接收到译码开始信号,将4个RAM中的似然信息数据顺序地并行输出4路数据D_llr给变量节点处理模块,
变量节点处理模块接收信道信息存储单元的4路数据D_llr,将该4路数据D_llr分别送至VNU1、VNU2、VNU3、VNU4,将0值送至VNU5,同时变量节点处理模块从主存储器中的RAM1、RAM2、……、RAM15中按照存储器中的RAM1、RAM2、……、RAM15的读地址Addr_VN的顺序读取RAM1、RAM2、……、RAM15中的边信息D_a1,如果是第1次迭代,则从主存储器中取出的边信息D_a1=0,由迭代控制单元定义读地址Addr_VN的顺序为0、1、2、…、2047,按下列方式分别将边信息D_a1送至VNU1、VNU2、VNU3、VNU4、VNU5:
将RAM1、RAM2的数据按照Addr_VN顺序地读出送给VNU1;
将RAM3~RAM5的数据按照Addr_VN顺序地读出送给VNU2;
将RAM6的数据按照Addr_VN顺序地读出送给VNU3;
将RAM7~RAM9的数据按照Addr_VN顺序地读出送给VNU4;
将RAM10~RAM15的数据按照Addr_VN顺序地读出送给VNU5;
根据D_llr和D_a1计算更新的似然信息,得到更新后的边信息D_e1;将更新后的边信息D_e1按照写地址Addr_VN写入主存储器RAM1、RAM2、……、RAM15,读地址Addr_VN与写地址Addr_VN数值相同,区别是调用时间不同,均由迭代控制单元生成,为顺序地址0、1、2、…、2047;
迭代控制单元产生校验节点地址处理模块的读地址Addr_CN,Addr_CN包括Addr_CN1、Addr_CN2……、Addr_CN15,Addr_CN1、Addr_CN2……、Addr_CN15通过步骤(3)主存储器RAM1、RAM2、……、RAM15对应的子阵计算得到;
校验节点处理模块根据读地址Addr_CN,从主存储器RAM1、RAM2、……、RAM15中按以下方式读出边信息D_e1,记为边信息D_a2,送至校验节点地址处理模块中的CNU1、CNU2、CNU3;
即将RAM10、RAM11的数据按照Addr_CN10、Addr_CN11读出送给CNU1;
将RAM1、RAM3、RAM7、RAM12、RAM13、RAM14的数据分别按照Addr_CN1、Addr_CN3、Addr_CN7、Addr_CN12、Addr_CN13、Addr_CN14读出送给CNU2;
将RAM2、RAM4、RAM5、RAM8、RAM9、RAM15的数据分别按照Addr_CN2、Addr_CN4、Addr_CN5、Addr_CN8、Addr_CN9、Addr_CN15读出送给CNU3;
根据得到的边信息D_a2计算更新的似然信息,得到再次更新后的边信息D_e2;
将更新后的边信息D_e2按照地址Addr_CN1、Addr_CN2……、Addr_CN15分别写入主存储器中的RAM1、RAM2、……、RAM15后,向迭代控制单元发送这一次迭代完成信号,读地址Addr_CN与写地址Addr_CN数值相同,区别是调用时间不同,均由迭代控制单元生成;
迭代控制单元收到这一次迭代完成信号,开始下一次迭代,直至达到设定的该帧的最大迭代次数M,产生译码终止信号Dec_E,然后,将最后一次迭代完成后得到的边信息D_e1’按照正负判决为0和1,即D_e1’为正,判决为1,D_e1’为负,判决为0,此判决结果通过判决结果输出缓冲单元输出判决结果,此帧译码完毕,随后进行下一帧的译码,直至数字接收机解调的所有帧似然信息数据译码完成。
所述校验矩阵H为在CCSDS标准中定义的码率为R=1/2的准循环LDPC码的校验矩阵,该准循环LDPC码的码字长度N为8192、信息位长度K为4096,该码的校验矩阵H表示为:
矩阵H里的IL和0L分别为2048×2048维单位矩阵和0矩阵,Πk(k=1,2,...,8)为2048×2048维置换阵,该置换阵Πk的第t行(t=0,1,2,...,2047)非零元素的列位置πk(t)为:
式中,L=2048,mod表示模运算,表示对4t/L向下取整,列位置πk(t)中的函数θk和的取值见CCSDS标准CCSDS 131.1-O-2中表3-3、表3-4,具有准循环特性。
所述的Addr_CN根据CCSDS标准中码率为R=1/2的(8192,4096)LDPC码的校验矩阵H计算得到。
所述D_llr和D_a1计算更新的似然信息,得到更新后的边信息D_e1的步骤如下:
设第n个,n为1,2,3,4,5,变量节点处理单元从主存储器中读出m个信息D_a1,m为正整数,m’为1,2…m,m’表示m个信息中的第m’个信息的序号,第m’个信息D_a1(m’)对应的更新信息D_e1等于从信道信息存储器中读出的信道似然信息D_llr加上除去第m’个信息D_a1(m’)之外的其他m-1个信息D_a1。
所述D_a2计算更新的似然信息,得到更新后的边信息D_e2的步骤如下:
(1)设第p个,p为1,2,3,校验节点处理单元从主存储器中读出k个信息D_a2,k为正整数,k’为1,2…k,k’表示k个信息中的第k’个信息的序号,第k’个信息D_a2(k’)对应的更新信息D_e2的符号位操作为:除去第k’个更新信息D_a2(k’)之外的k-1个D_a2符号位的异或;
(2)将k个信息D_a2的幅度相比较,求得幅度最小值和幅度次小值,将这两个值通过修正值乘法器乘以归一化因子α,将幅度最小值与第k’个信息的幅度相比较,若相同,则输出次小值,若不同,则输出最小值,α的范围为0~1;
(3)根据步骤(1)的符号位和步骤(2)的幅度值,得到更新后的边信息D_e2。
所述最后一次迭代完成后得到的用于判决输出的信息D_e1’等于最后一次迭代时从信道信息存储器中读出的信道似然信息D_llr加上m个信息D_a1(m)的和值。
一种空间通信***中部分并行结构LDPC码译码方法,包括划分LDPC码校验矩阵阶段和流水线式部分并行译码阶段:
所述划分LDPC码校验矩阵阶段步骤如下:
(1)在CCSDS标准中定义的码率为R=1/2的准循环LDPC码,该准循环LDPC码的码字长度N为8192、信息位长度K为4096,该码的校验矩阵H表示为
矩阵H里的IL和0L分别为2048×2048维单位矩阵和0矩阵,Πk(k=1,2,...,8)为2048×2048维置换阵,该置换阵Πk的第t行(t=0,1,2,...,2047)非零元素的列位置πk(t)为:
式中,L=2048,mod表示模运算,表示对4t/L向下取整,列位置πk(t)中的函数θk和的取值见CCSDS标准CCSDS 131.1-O-2中表3-3、表3-4,具有准循环特性;
(2)将步骤(1)的校验矩阵H的行分为3个超行分别为:H1(0-2047行)、H2(2048-4095行)、H3(4096-6143行);将校验矩阵H的列分为5个超列分别为S1(0-2047列)、S2(2048-4095列)、P1(4096-6143列)、P2(6144-8191列)、P3(8192-10239列);
(3)定义译码所需的数据存储器包括:信道信息存储器、主存储器和译码输出缓存单元;信道信息存储器用于缓存信道似然信息,包含4个双口RAM,每个RAM的深度为2048;主存储器包括15个存储器RAM,即主存储器RAM1、RAM2、……、RAM15,用于存储变量节点和校验节点之间传递的边信息,每个存储器RAM对应校验矩阵H里的每一个非零子矩阵,每个存储器RAM深度均为2048,即主存储器RAM1、RAM2、……、RAM15分别对应:
RAM1对应超列S1与超行H2对应的子阵IL;
RAM2对应超列S1与超行H3对应的子阵IL;
RAM3对应超列S2与超行H2对应的子阵IL;
RAM4对应超列S2与超行H3对应的子阵Π5;
RAM5对应超列S2与超行H3对应的子阵Π6;
RAM6对应超列P1与超行H1对应的子阵IL;
RAM7对应超列P2与超行H2对应的子阵IL;
RAM8对应超列P2与超行H3对应的子阵Π7;
RAM9对应超列P2与超行H3对应的子阵Π8;
RAM10对应超列P3与超行H1对应的子阵IL;
RAM11对应超列P3与超行H1对应的子阵Π1;
RAM12对应超列P3与超行H2对应的子阵Π2;
RAM13对应超列P3与超行H2对应的子阵Π3;
RAM14对应超列P3与超行H2对应的子阵Π4;
RAM15对应超列P3与超行H3对应的子阵IL;
译码输出缓存单元用于输出译码结果;
所述流水线式部分并行译码阶段步骤如下:
(4)信道信息存储单元接收并存储数字接收机解调的当前这一帧似然信息数据,并将该似然信息数据顺序存储到信道信息存储单元的4个RAM里,一帧似然信息数据为8192个,当该帧接收完毕后,信道信息存储单元产生一个接收完毕信号发送给迭代控制单元,信道信息存储单元同时通过乒乓操作接收下一帧的8192个数据;
(5)迭代控制单元向信道信息存储单元发出译码开始信号;信道信息存储单元接收到译码开始信号,将4个RAM中的似然信息数据顺序地并行输出4路数据D_llr给变量节点处理模块;
(6)变量节点处理模块接收信道信息存储单元的4路数据D_llr,变量节点处理模块包括VNU1、VNU2、VNU3、VNU4和VNU5这5个变量节点处理单元,将该4路数据D_llr分别送至VNU1、VNU2、VNU3、VNU4,将0值送至VNU5,同时变量节点处理模块从主存储器中的RAM1、RAM2、……、RAM15中按照存储器中的RAM1、RAM2、……、RAM15的读地址Addr_VN的顺序读取RAM1、RAM2、……、RAM15中的边信息D_a1,如果是第1次迭代,则从主存储器中取出的边信息D_a1=0,由迭代控制单元定义读地址Addr_VN的顺序为0、1、2、…、2047,按下列方式分别将边信息D_a1送至VNU1、VNU2、VNU3、VNU4、VNU5,变量节点处理单元为5路并行:
将RAM1、RAM2的数据按照Addr_VN顺序地读出送给VNU1;
将RAM3~RAM5的数据按照Addr_VN顺序地读出送给VNU2;
将RAM6的数据按照Addr_VN顺序地读出送给VNU3;
将RAM7~RAM9的数据按照Addr_VN顺序地读出送给VNU4;
将RAM10~RAM15的数据按照Addr_VN顺序地读出送给VNU5;
(7)根据步骤(6)中得到的D_llr和D_a1计算更新的似然信息,得到更新后的边信息D_e1;
(8)将步骤(7)中更新后的边信息D_e2按照写地址Addr_VN写入主存储器RAM1、RAM2、……、RAM15,读地址Addr_VN与写地址Addr_VN数值相同,区别是调用时间不同,均由迭代控制单元生成,为顺序地址0、1、2、…、2047;
(9)迭代控制单元产生校验节点处理模块的读地址Addr_CN,Addr_CN包括Addr_CN1、Addr_CN2…Addr_CN15,Addr_CN1、Addr_CN2…Addr_CN15通过步骤(3)主存储器RAM1、RAM2、……、RAM15对应的子阵计算得到;
校验节点处理模块包括CNU1、CNU2、CNU3,校验节点处理模块根据读地址Addr_CN,从主存储器RAM1、RAM2、……、RAM15中按以下方式读出步骤(8)中的边信息D_e1,记为边信息D_a2,送至校验节点处理模块中的CNU1、CNU2、CNU3,校验节点处理模块的CNU1、CNU2、CNU3为3路并行;
即将RAM10、RAM11的数据按照Addr_CN10、Addr_CN11读出送给CNU1;
将RAM1、RAM3、RAM7、RAM12、RAM13、RAM14的数据分别按照Addr_CN1、Addr_CN3、Addr_CN7、Addr_CN12、Addr_CN13、Addr_CN14读出送给CNU2;
将RAM2、RAM4、RAM5、RAM8、RAM9、RAM15的数据分别按照Addr_CN2、Addr_CN4、Addr_CN5、Addr_CN8、Addr_CN9、Addr_CN15读出送给CNU3;
(10)根据步骤(9)中得到的D_a2计算更新的似然信息,得到更新后的边信息D_e2;
(11)将步骤(10)中更新后的边信息D_e2按照地址Addr_CN1、Addr_CN2…Addr_CN15分别写入主存储器中的RAM1、RAM2、……、RAM15后,向迭代控制单元发送这一次迭代完成信号,读地址Addr_CN与写地址Addr_CN数值相同,区别是调用时间不同,均由迭代控制单元生成;
(12)迭代控制单元收到步骤(11)的这一次迭代完成信号,开始下一次迭代,即重复步骤按照步骤(5)~步骤(12),直至达到设定的该帧的最大迭代次数M,产生译码终止信号Dec_E,然后,将最后一次迭代完成后得到的D_e1’按照正负判决为0和1,即D_e1’为正,判决为1,D_e1’为负,判决为0,此判决结果通过判决结果输出缓冲单元输出判决结果,此帧译码完毕,随后返回步骤(4)进行下一帧的译码,直至数字接收机解调的所有帧似然信息数据译码完成。
所述步骤(9)和(11)中所述的Addr_CN根据CCSDS标准中码率为R=1/2的(8192,4096)LDPC码的H矩阵计算得到。
:所述步骤(7)中D_llr和D_a1计算更新的似然信息,得到更新后的边信息D_e1的步骤如下:
设第n个,n为1,2,3,4,5,变量节点处理单元从主存储器中读出m个信息D_a1,m为正整数,m’为1,2…m,m’表示m个信息中的第m’个信息的序号,第m’个信息D_a1(m’)对应的更新信息D_e1等于从信道信息存储器中读出的信道似然信息D_llr加上除去第m’个信息D_a1(m’)之外的其他m-1个信息D_a1。
所述步骤(10)中D_a2计算更新的似然信息,得到更新后的边信息D_e2的步骤如下:
(1)设第p个,p为1,2,3,校验节点处理单元从主存储器中读出k个信息D_a2,k为正整数,k’为1,2…k,k’表示k个信息中的第k’个信息的序号,第k’个信息D_a2(k’)对应的更新信息D_e2的符号位操作为:除去第k’个更新信息D_a2(k’)之外的k-1个D_a2符号位的异或;
(2)将k个信息D_a2的幅度相比较,求得幅度最小值和幅度次小值,将这两个值通过修正值乘法器乘以归一化因子α,将幅度最小值与第k’个信息的幅度相比较,若相同,则输出次小值,若不同,则输出最小值,α的范围为0~1;
(3)根据步骤(1)的符号位和步骤(2)的幅度值,得到更新后的边信息D_e2。
所述步骤(12)中最后一次迭代完成后得到的用于判决输出的信息D_e1’等于最后一次迭代时从信道信息存储器中读出的信道似然信息D_llr加上m个信息D_a1(m)的和值。
本发明与现有技术相比的优点在于:
(1)本发明中针对CCSDS***中码率R=1/2的(8192,4096)LDPC码的校验矩阵结构图具有超行、超列的特点,设计了结构简单的主存储器,与校验矩阵结构图中非零子矩阵一一对应;从主存储器中读取数据的地址处理单元结构简单、易于实现。
(2)本发明的部分并行译码结构设计了超行数个并行的校验节点处理单元、超列数个并行的变量节点处理单元,节点消息更新算法的实现复杂度低,所耗资源少。
(3)本发明所设计的部分并行译码的译码性能好,编码增益可达9dB。同时,该部分并行译码结构可扩展到其他码效率LDPC码字。
附图说明
图1为本发明译码方法中LDPC码字的校验矩阵结构图;
图2为本发明译码方法的部分并行结构的***框图;
图3为本发明译码方法的结构中校验节点处理用到的地址Addr_CN的示意图;
图4为本发明译码方法的结构中子帧Π1对应的主存储器的读写地址Addr_CN示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细的描述:
如图2所示,一种空间通信***中部分并行结构LDPC码译码***,包括迭代控制单元、信道信息存储器、主存储器、变量节点处理模块、校验节点处理模块、判决结果输出缓冲单元;
信道信息存储器包含4个双口RAM,每个RAM的深度为L=2048,主存储器包括15个存储器RAM,即主存储器RAM1、RAM2、……、RAM15,用于存储变量节点和校验节点之间传递的边信息,每个存储器RAM对应在CCSDS标准中定义的码效率为R=1/2的准循环LDPC码的校验矩阵H里的每一个非零子矩阵,每个存储器RAM深度均为L=2048,即主存储器RAM1、RAM2、……、RAM15分别对应如下:
RAM1对应超列S1与超行H2对应的子阵IL;
RAM2对应超列S1与超行H3对应的子阵IL;
RAM3对应超列S2与超行H2对应的子阵IL;
RAM4对应超列S2与超行H3对应的子阵Π5;
RAM5对应超列S2与超行H3对应的子阵Π6;
RAM6对应超列P1与超行H1对应的子阵IL;
RAM7对应超列P2与超行H2对应的子阵IL;
RAM8对应超列P2与超行H3对应的子阵Π7;
RAM9对应超列P2与超行H3对应的子阵Π8;
RAM10对应超列P3与超行H1对应的子阵IL;
RAM11对应超列P3与超行H1对应的子阵Π1;
RAM12对应超列P3与超行H2对应的子阵Π2;
RAM13对应超列P3与超行H2对应的子阵Π3;
RAM14对应超列P3与超行H2对应的子阵Π4;
RAM15对应超列P3与超行H3对应的子阵IL;
校验矩阵H的行分为3个超行分别为H1、H2、H3,H1为0-2047行、H2为2048-4095行、H3为4096-6143行;将校验矩阵H的列分为5个超列S1、S2、P1、P2、P3,S1为0-2047列、S2为2048-4095列、P1为4096-6143列、P2为6144-8191列、P3为8192-10239列,此矩阵划分如图1所示;
变量节点处理模块包括VNU1、VNU2、VNU3、VNU4和VNU5这5个变量节点处理单元,变量节点处理单元为5路并行;
校验节点地址处理模块包括CNU1、CNU2、CNU3这三个校验节点处理单元,CNU1、CNU2、CNU3为3路并行;
信道信息存储单元接收并存储数字接收机解调的当前这一帧似然信息数据,并将该似然信息数据顺序地存储到信道信息存储单元的4个RAM里,一帧似然信息数据为8192个,当该帧接收完毕后,信道信息存储单元产生一个接收完毕信号发送给迭代控制单元,信道信息存储单元同时通过乒乓操作接收下一帧的8192个数据;
迭代控制单元收到接收完毕信号后向信道信息存储单元发出译码开始信号,信道信息存储单元接收到译码开始信号,将4个RAM中的似然信息数据顺序地并行输出4路数据D_llr给变量节点处理模块,
变量节点处理模块接收信道信息存储单元的4路数据D_llr,将该4路数据D_llr分别送至VNU1、VNU2、VNU3、VNU4,将0值送至VNU5,同时变量节点处理模块从主存储器中的RAM1、RAM2、……、RAM15中按照存储器中的RAM1、RAM2、……、RAM15的读地址Addr_VN的顺序读取RAM1、RAM2、……、RAM15中的边信息D_a1,如果是第1次迭代,则从主存储器中取出的边信息D_a1=0,由迭代控制单元定义读地址Addr_VN的顺序为0、1、2、…、2047,按下列方式分别将边信息D_a1送至VNU1、VNU2、VNU3、VNU4、VNU5:
将RAM1、RAM2的数据按照Addr_VN顺序地读出送给VNU1;
将RAM3~RAM5的数据按照Addr_VN顺序地读出送给VNU2;
将RAM6的数据按照Addr_VN顺序地读出送给VNU3;
将RAM7~RAM9的数据按照Addr_VN顺序地读出送给VNU4;
将RAM10~RAM15的数据按照Addr_VN顺序地读出送给VNU5;
根据D_llr和D_a1计算更新的似然信息,得到更新后的边信息D_e1;将更新后的边信息D_e1按照写地址Addr_VN写入主存储器RAM1、RAM2、……、RAM15,读地址Addr_VN与写地址Addr_VN数值相同,区别是调用时间不同,均由迭代控制单元生成,为顺序地址0、1、2、…、2047;
迭代控制单元产生校验节点地址处理模块的读地址Addr_CN,Addr_CN包括Addr_CN1、Addr_CN2……、Addr_CN15,Addr_CN1、Addr_CN2……、Addr_CN15通过步骤(3)主存储器RAM1、RAM2、……、RAM15对应的子阵计算得到;
校验节点处理模块根据读地址Addr_CN,从主存储器RAM1、RAM2、……、RAM15中按以下方式读出边信息D_e1,记为边信息D_a2,送至校验节点地址处理模块中的CNU1、CNU2、CNU3;
即将RAM10、RAM11的数据按照Addr_CN10、Addr_CN11读出送给CNU1;
将RAM1、RAM3、RAM7、RAM12、RAM13、RAM14的数据分别按照Addr_CN1、Addr_CN3、Addr_CN7、Addr_CN12、Addr_CN13、Addr_CN14读出送给CNU2;
将RAM2、RAM4、RAM5、RAM8、RAM9、RAM15的数据分别按照Addr_CN2、Addr_CN4、Addr_CN5、Addr_CN8、Addr_CN9、Addr_CN15读出送给CNU3;
根据得到的边信息D_a2计算更新的似然信息,得到再次更新后的边信息D_e2;
将更新后的边信息D_e2按照地址Addr_CN1、Addr_CN2……、Addr_CN15分别写入主存储器中的RAM1、RAM2、……、RAM15后,向迭代控制单元发送这一次迭代完成信号,读地址Addr_CN与写地址Addr_CN数值相同,区别是调用时间不同,均由迭代控制单元生成;
迭代控制单元收到这一次迭代完成信号,开始下一次迭代,直至达到设定的该帧的最大迭代次数M,产生译码终止信号Dec_E,然后,将最后一次迭代完成后得到的边信息D_e1’按照正负判决为0和1,即D_e1’为正,判决为1,D_e1’为负,判决为0,此判决结果通过判决结果输出缓冲单元输出判决结果,此帧译码完毕,随后进行下一帧的译码,直至数字接收机解调的所有帧似然信息数据译码完成。
所述校验矩阵H为在CCSDS标准中定义的码率为R=1/2的准循环LDPC码的校验矩阵,该准循环LDPC码的码字长度N为8192、信息位长度K为4096,该码的校验矩阵H表示为:
矩阵H里的IL和0L分别为2048×2048维单位矩阵和0矩阵,Πk(k=1,2,...,8)为2048×2048维置换阵,该置换阵Πk的第t行(t=0,1,2,...,2047)非零元素的列位置πk(t)为:
式中,L=2048,mod表示模运算,表示对4t/L向下取整,列位置πk(t)中的函数θk和的取值见CCSDS标准CCSDS 131.1-O-2中表3-3、表3-4,具有准循环特性。
所述的Addr_CN根据CCSDS标准中码率为R=1/2的(8192,4096)LDPC码的校验矩阵H计算得到。
所述D_llr和D_a1计算更新的似然信息,得到更新后的边信息D_e1的步骤如下:
设第n个,n为1,2,3,4,5,变量节点处理单元从主存储器中读出m个信息D_a1,m为正整数,m’为1,2…m,m’表示m个信息中的第m’个信息的序号,第m’个信息D_a1(m’)对应的更新信息D_e1等于从信道信息存储器中读出的信道似然信息D_llr加上除去第m’个信息D_a1(m’)之外的其他m-1个信息D_a1。
所述D_a2计算更新的似然信息,得到更新后的边信息D_e2的步骤如下:
(1)设第p个,p为1,2,3,校验节点处理单元从主存储器中读出k个信息D_a2,k为正整数,k’为1,2…k,k’表示k个信息中的第k’个信息的序号,第k’个信息D_a2(k’)对应的更新信息D_e2的符号位操作为:除去第k’个更新信息D_a2(k’)之外的k-1个D_a2符号位的异或;
(2)将k个信息D_a2的幅度相比较,求得幅度最小值和幅度次小值,将这两个值通过修正值乘法器乘以归一化因子α,将幅度最小值与第k’个信息的幅度相比较,若相同,则输出次小值,若不同,则输出最小值,α的范围为0~1;
(3)根据步骤(1)的符号位和步骤(2)的幅度值,得到更新后的边信息D_e2。
所述最后一次迭代完成后得到的用于判决输出的信息D_e1’等于最后一次迭代时从信道信息存储器中读出的信道似然信息D_llr加上m个信息D_a1(m)的和值。
一种空间通信***中部分并行结构LDPC码译码方法,包括划分LDPC码校验矩阵阶段和流水线式部分并行译码阶段:
划分LDPC码校验矩阵阶段步骤如下:
(1)在CCSDS标准中定义的码率为R=1/2的准循环LDPC码,该准循环LDPC码的码字长度N为8192、信息位长度K为4096,该码的校验矩阵H表示为
矩阵H里的IL和0L分别为2048×2048维单位矩阵和0矩阵,Πk(k=1,2,...,8)为2048×2048维置换阵,该置换阵Πk的第t行(t=0,1,2,...,2047)非零元素的列位置πk(t)为:
式中,L=2048,mod表示模运算,表示对4t/L向下取整,列位置πk(t)中的函数θk和的取值见CCSDS标准CCSDS 131.1-O-2中表3-3、表3-4,具有准循环特性;
(2)将步骤(1)的校验矩阵H的行分为3个超行分别为:H1(0-2047行)、H2(2048-4095行)、H3(4096-6143行);将校验矩阵H的列分为5个超列分别为S1(0-2047列)、S2(2048-4095列)、P1(4096-6143列)、P2(6144-8191列)、P3(8192-10239列),此矩阵划分如图1所示;
(3)定义译码所需的数据存储器包括:信道信息存储器、主存储器和译码输出缓存单元;信道信息存储器用于缓存信道似然信息,包含4个双口RAM,每个RAM的深度为2048;主存储器包括15个存储器RAM,即主存储器RAM1、RAM2、……、RAM15,用于存储变量节点和校验节点之间传递的边信息,每个存储器RAM对应校验矩阵H里的每一个非零子矩阵,每个存储器RAM深度均为2048,即主存储器RAM1、RAM2、……、RAM15分别对应:
RAM1对应超列S1与超行H2对应的子阵IL;
RAM2对应超列S1与超行H3对应的子阵IL;
RAM3对应超列S2与超行H2对应的子阵IL;
RAM4对应超列S2与超行H3对应的子阵Π5;
RAM5对应超列S2与超行H3对应的子阵Π6;
RAM6对应超列P1与超行H1对应的子阵IL;
RAM7对应超列P2与超行H2对应的子阵IL;
RAM8对应超列P2与超行H3对应的子阵Π7;
RAM9对应超列P2与超行H3对应的子阵Π8;
RAM10对应超列P3与超行H1对应的子阵IL;
RAM11对应超列P3与超行H1对应的子阵Π1;
RAM12对应超列P3与超行H2对应的子阵Π2;
RAM13对应超列P3与超行H2对应的子阵Π3;
RAM14对应超列P3与超行H2对应的子阵Π4;
RAM15对应超列P3与超行H3对应的子阵IL;
译码输出缓存单元用于输出译码结果;
流水线式部分并行译码阶段步骤如下:
(4)信道信息存储单元接收并存储数字接收机解调的当前这一帧似然信息数据,并将该似然信息数据顺序存储到信道信息存储单元的4个RAM里,一帧似然信息数据为8192个,当该帧接收完毕后,信道信息存储单元产生一个接收完毕信号发送给迭代控制单元,信道信息存储单元同时通过乒乓操作接收下一帧的8192个数据;
(5)迭代控制单元向信道信息存储单元发出译码开始信号;信道信息存储单元接收到译码开始信号,将4个RAM中的似然信息数据顺序地并行输出4路数据D_llr给变量节点处理模块;
(6)变量节点处理模块接收信道信息存储单元的4路数据D_llr,变量节点处理模块包括VNU1、VNU2、VNU3、VNU4和VNU5这5个变量节点处理单元,将该4路数据D_llr分别送至VNU1、VNU2、VNU3、VNU4,将0值送至VNU5,同时变量节点处理模块从主存储器中的RAM1、RAM2、……、RAM15中按照存储器中的RAM1、RAM2、……、RAM15的读地址Addr_VN的顺序读取RAM1、RAM2、……、RAM15中的边信息D_a1,如果是第1次迭代,则从主存储器中取出的边信息D_a1=0,由迭代控制单元定义读地址Addr_VN的顺序为0、1、2、…、2047,按下列方式分别将边信息D_a1送至VNU1、VNU2、VNU3、VNU4、VNU5,变量节点处理单元为5路并行:
将RAM1、RAM2的数据按照Addr_VN顺序地读出送给VNU1;
将RAM3~RAM5的数据按照Addr_VN顺序地读出送给VNU2;
将RAM6的数据按照Addr_VN顺序地读出送给VNU3;
将RAM7~RAM9的数据按照Addr_VN顺序地读出送给VNU4;
将RAM10~RAM15的数据按照Addr_VN顺序地读出送给VNU5;
(7)根据步骤(6)中得到的D_llr和D_a1计算更新的似然信息,得到更新后的边信息D_e1;
(8)将步骤(7)中更新后的边信息D_e2按照写地址Addr_VN写入主存储器RAM1、RAM2、……、RAM15,读地址Addr_VN与写地址Addr_VN数值相同,区别是调用时间不同,均由迭代控制单元生成,为顺序地址0、1、2、…、2047;
(9)迭代控制单元产生校验节点处理模块的读地址Addr_CN,Addr_CN包括Addr_CN1、Addr_CN2…Addr_CN15,Addr_CN1、Addr_CN2…Addr_CN15通过步骤(3)主存储器RAM1、RAM2、……、RAM15对应的子阵计算得到;
校验节点处理模块包括CNU1、CNU2、CNU3,校验节点处理模块根据读地址Addr_CN,从主存储器RAM1、RAM2、……、RAM15中按以下方式读出步骤(8)中的边信息D_e1,记为边信息D_a2,送至校验节点处理模块中的CNU1、CNU2、CNU3,校验节点处理模块的CNU1、CNU2、CNU3为3路并行;
即将RAM10、RAM11的数据按照Addr_CN10、Addr_CN11读出送给CNU1;
将RAM1、RAM3、RAM7、RAM12、RAM13、RAM14的数据分别按照Addr_CN1、Addr_CN3、Addr_CN7、Addr_CN12、Addr_CN13、Addr_CN14读出送给CNU2;
将RAM2、RAM4、RAM5、RAM8、RAM9、RAM15的数据分别按照Addr_CN2、Addr_CN4、Addr_CN5、Addr_CN8、Addr_CN9、Addr_CN15读出送给CNU3;
(10)根据步骤(9)中得到的D_a2计算更新的似然信息,得到更新后的边信息D_e2;
(11)将步骤(10)中更新后的边信息D_e2按照地址Addr_CN1、Addr_CN2…Addr_CN15分别写入主存储器中的RAM1、RAM2、……、RAM15后,向迭代控制单元发送这一次迭代完成信号,读地址Addr_CN与写地址Addr_CN数值相同,区别是调用时间不同,均由迭代控制单元生成;
(12)迭代控制单元收到步骤(11)的这一次迭代完成信号,开始下一次迭代,即重复步骤按照步骤(5)~步骤(12),直至达到设定的该帧的最大迭代次数M,产生译码终止信号Dec_E,然后,将最后一次迭代完成后得到的D_e1’按照正负判决为0和1,即D_e1’为正,判决为1,D_e1’为负,判决为0,此判决结果通过判决结果输出缓冲单元输出判决结果,此帧译码完毕,随后返回步骤(4)进行下一帧的译码,直至数字接收机解调的所有帧似然信息数据译码完成。
步骤(9)和(11)中所述的Addr_CN根据CCSDS标准中码率为R=1/2的(8192,4096)LDPC码的H矩阵计算得到。例如对于超行H1与超列P3对应的子阵IL、Π1分别为如图4所示。那么地址Addr_CN的值为1644,1645,…,2047,1536,1537,…,1643,0,1,…,1535。同理可以得到其他的地址,所有的地址Addr_CN如图3所示。
步骤(7)中D_llr和D_a1计算更新的似然信息,得到更新后的边信息D_e1的步骤如下:
设第n个,n为1,2,3,4,5,变量节点处理单元从主存储器中读出m个信息D_a1,m为正整数,m’为1,2…m,m’表示m个信息中的第m’个信息的序号,第m’个信息D_a1(m’)对应的更新信息D_e1等于从信道信息存储器中读出的信道似然信息D_llr加上除去第m’个信息D_a1(m’)之外的其他m-1个信息D_a1。
例如,对于n=2时,对应VNU2单元,从信道信息存储器中读出1个信道似然信息D_llr,从主存储器的RAM3~RAM5中读出m=3个信息D_a1。那么第m’=1个信息D_a1(1)对应的更新信息D_e1=D_llr+D_a1(2)+D_a1(3);第m’=2个信息D_a1(2)对应的更新信息D_e1=D_llr+D_a1(1)+D_a1(3);第m’=3个信息D_a1(3)对应的更新信息D_e1=D_llr+D_a1(1)+D_a1(2);
步骤(12)中最后一次迭代完成后得到的用于判决输出的信息D_e1’等于最后一次迭代时从信道信息存储器中读出的信道似然信息D_llr加上m个信息D_a1(m)的和值。例如,对于n=2时,对应VNU2单元,从信道信息存储器中读出1个信道似然信息D_llr,从主存储器的RAM3~RAM5中读出m=3个信息D_a1。那么D_e1’=D_llr+D_a1(1)+D_a1(2)+D_a1(3),在实现结构里,这里通过与第m’个信息D_a1对应的更新信息D_e1计算项结合,只需先计算出D_e1’然后减去D_a1(m’)从而总体的降低实现复杂度。
那么第m’=1个信息D_a1(1)对应的更新信息D_e1=D_e1’-D_a1(1);第m’=2个信息D_a1(2)对应的更新信息D_e1=D_e1’-D_a1(2);第m’=3个信息D_a1(3)对应的更新信息D_e1=D_e1’-D_a1(3);
步骤(10)中D_a2计算更新的似然信息,得到更新后的边信息D_e2的步骤如下:(1)设第p个,p为1,2,3,校验节点处理单元从主存储器中读出k个信息D_a2,k为正整数,k’为1,2…k,k’表示k个信息中的第k’个信息的序号,第k’个信息D_a2(k’)对应的更新信息D_e2的符号位操作为:除去第k’个更新信息D_a2(k’)之外的k-1个D_a2符号位的异或。(2)将k个信息D_a2的幅度相比较,求得幅度最小值和幅度次小值,将这两个值通过修正值乘法器乘以归一化因子α,将幅度最小值与第k’个信息的幅度相比较,若相同,则输出次小值,若不同,则输出最小值,α的范围为0~1。(3)根据步骤(1)的符号位和步骤(2)的幅度值,得到更新后的边信息D_e2。例如,对于p=3,对应CNU3单元,从主存储器的RAM2、RAM4、RAM5、RAM8、RAM9、RAM15读取的k=6个数据D_a2,那么第k’个信息D_a2(k’)对应的更新信息D_e2计算方法为:
比较k=6个数据D_a2的大小,得到最小值D_a2(min1)和次小值D_a2(min2),那么对于第k’=1个信息D_a2(k’)对应的更新信息D_e2的符号位sgn(1’)=异或{sgn[D_a2(2)],sgn[D_a2(3)],sgn[D_a2(4)],sgn[D_a2(5)],sgn[D_a2(6)]},那么如果D_a2(1)=D_a2(min1),D_e2=sgn(1’)×D_a2(min2),否则D_e2=sgn(1’)×D_a2(min1);对于第k’=2个信息D_a2(k’)对应的更新信息D_e2的符号位sgn(2’)=异或{sgn[D_a2(1)],sgn[D_a2(3)],sgn[D_a2(4)],sgn[D_a2(5)],sgn[D_a2(6)]},那么如果D_a2(2)=D_a2(min1),D_e2=sgn(1’)×D_a2(min2),否则D_e2=sgn(1’)×D_a2(min1),对于第k’=3、4、5、6同理可以得到。
实施实例:
在调制解调器平台上进行上板测试,FPGA型号为xc6slx150,使用ISE13.4和ModelSim6.5g开发工具,通过Verilog HDL硬件描述语言完成了准循环LDPC(8192,4096)码译码器的设计。
当数据速率为4Mbps,调制方式为BPSK,选择1/2码率(8192,4096)LDPC码时,***测试结果为:当译码迭代次数最大值设为M=45时,对应BER=1ˉ10-7的解调门限为2.2dB,相应的编码增益为9dB。
该译码器的资源需求如下:寄存器个数:2221,LUT个数:2119;18k存储器RAM:29;
本发明未详细阐述部分属于本领域公知技术。
Claims (10)
1.一种空间通信***中部分并行结构LDPC码译码***,其特征在于:包括迭代控制单元、信道信息存储器、主存储器、变量节点处理模块、校验节点处理模块、判决结果输出缓冲单元;
信道信息存储器包含4个双口RAM,每个RAM的深度为L=2048,主存储器包括15个存储器RAM,即主存储器RAM1、RAM2、……、RAM15,用于存储变量节点和校验节点之间传递的边信息,每个存储器RAM对应在CCSDS标准中定义的码效率为R=1/2的准循环LDPC码的校验矩阵H里的每一个非零子矩阵,每个存储器RAM深度均为L=2048,即主存储器RAM1、RAM2、……、RAM15分别对应如下:
RAM1对应超列S1与超行H2对应的子阵IL;
RAM2对应超列S1与超行H3对应的子阵IL;
RAM3对应超列S2与超行H2对应的子阵IL;
RAM4对应超列S2与超行H3对应的子阵Π5;
RAM5对应超列S2与超行H3对应的子阵Π6;
RAM6对应超列P1与超行H1对应的子阵IL;
RAM7对应超列P2与超行H2对应的子阵IL;
RAM8对应超列P2与超行H3对应的子阵Π7;
RAM9对应超列P2与超行H3对应的子阵Π8;
RAM10对应超列P3与超行H1对应的子阵IL;
RAM11对应超列P3与超行H1对应的子阵Π1;
RAM12对应超列P3与超行H2对应的子阵Π2;
RAM13对应超列P3与超行H2对应的子阵Π3;
RAM14对应超列P3与超行H2对应的子阵Π4;
RAM15对应超列P3与超行H3对应的子阵IL;
校验矩阵H的行分为3个超行分别为H1、H2、H3,H1为0-2047行、H2为2048-4095行、H3为4096-6143行;将校验矩阵H的列分为5个超列S1、S2、P1、P2、P3,S1为0-2047列、S2为2048-4095列、P1为4096-6143列、P2为6144-8191列、P3为8192-10239列;
变量节点处理模块包括VNU1、VNU2、VNU3、VNU4和VNU5这5个变量节点处理单元,变量节点处理单元为5路并行;
校验节点地址处理模块包括CNU1、CNU2、CNU3这三个校验节点处理单元,CNU1、CNU2、CNU3为3路并行;
信道信息存储器接收并存储数字接收机解调的当前这一帧似然信息数据,并将该似然信息数据顺序地存储到信道信息存储器的4个RAM里,一帧似然信息数据为8192个,当该帧接收完毕后,信道信息存储器产生一个接收完毕信号发送给迭代控制单元,信道信息存储器同时通过乒乓操作接收下一帧的8192个数据;
迭代控制单元收到接收完毕信号后向信道信息存储器发出译码开始信号,信道信息存储器接收到译码开始信号,将4个RAM中的似然信息数据顺序地并行输出4路数据D_llr给变量节点处理模块,
变量节点处理模块接收信道信息存储器的4路数据D_llr,将该4路数据D_llr分别送至VNU1、VNU2、VNU3、VNU4,将0值送至VNU5,同时变量节点处理模块从主存储器中的RAM1、RAM2、……、RAM15中按照存储器RAM中的RAM1、RAM2、……、RAM15的读地址Addr_VN的顺序读取RAM1、RAM2、……、RAM15中的边信息D_a1,如果是第1次迭代,则从主存储器中取出的边信息D_a1=0,由迭代控制单元定义读地址Addr_VN的顺序为0、1、2、…、2047,按下列方式分别将边信息D_a1送至VNU1、VNU2、VNU3、VNU4、VNU5:
将RAM1、RAM2的数据按照Addr_VN顺序地读出送给VNU1;
将RAM3~RAM5的数据按照Addr_VN顺序地读出送给VNU2;
将RAM6的数据按照Addr_VN顺序地读出送给VNU3;
将RAM7~RAM9的数据按照Addr_VN顺序地读出送给VNU4;
将RAM10~RAM15的数据按照Addr_VN顺序地读出送给VNU5;
根据D_llr和D_a1计算更新的似然信息,得到更新后的边信息D_e1;将更新后的边信息D_e1按照写地址Addr_VN写入主存储器RAM1、RAM2、……、RAM15,读地址Addr_VN与写地址Addr_VN数值相同,区别是调用时间不同,均由迭代控制单元生成,为顺序地址0、1、2、…、2047;
迭代控制单元产生校验节点地址处理模块的读地址Addr_CN,Addr_CN包括Addr_CN1、Addr_CN2……、Addr_CN15,Addr_CN1、Addr_CN2……、Addr_CN15通过主存储器RAM1、RAM2、……、RAM15对应的子阵计算得到;
校验节点处理模块根据读地址Addr_CN,从主存储器RAM1、RAM2、……、RAM15中按以下方式读出边信息D_e1,记为边信息D_a2,送至校验节点地址处理模块中的CNU1、CNU2、CNU3;
即将RAM10、RAM11的数据按照Addr_CN10、Addr_CN11读出送给CNU1;
将RAM1、RAM3、RAM7、RAM12、RAM13、RAM14的数据分别按照Addr_CN1、Addr_CN3、Addr_CN7、Addr_CN12、Addr_CN13、Addr_CN14读出送给CNU2;
将RAM2、RAM4、RAM5、RAM8、RAM9、RAM15的数据分别按照Addr_CN2、Addr_CN4、Addr_CN5、Addr_CN8、Addr_CN9、Addr_CN15读出送给CNU3;
根据得到的边信息D_a2计算更新的似然信息,得到再次更新后的边信息D_e2;
将更新后的边信息D_e2按照地址Addr_CN1、Addr_CN2……、Addr_CN15分别写入主存储器中的RAM1、RAM2、……、RAM15后,向迭代控制单元发送这一次迭代完成信号,读地址Addr_CN与写地址Addr_CN数值相同,区别是调用时间不同,均由迭代控制单元生成;
迭代控制单元收到这一次迭代完成信号,开始下一次迭代,直至达到设定的该帧的最大迭代次数M,产生译码终止信号Dec_E,然后,将最后一次迭代完成后得到的边信息D_e1’按照正负判决为0和1,即D_e1’为正,判决为1,D_e1’为负,判决为0,此判决结果通过判决结果输出缓冲单元输出判决结果,此帧译码完毕,随后进行下一帧的译码,直至数字接收机解调的所有帧似然信息数据译码完成。
2.根据权利要求1所述的一种空间通信***中部分并行结构LDPC码译码***,其特征在于:所述校验矩阵H为在CCSDS标准中定义的码率为R=1/2的准循环LDPC码的校验矩阵,该准循环LDPC码的码字长度N为8192、信息位长度K为4096,该码的校验矩阵H表示为:
<mrow>
<mi>H</mi>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<msub>
<mn>0</mn>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<msub>
<mn>0</mn>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<msub>
<mi>I</mi>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<msub>
<mn>0</mn>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<mrow>
<msub>
<mi>I</mi>
<mi>L</mi>
</msub>
<mo>&CirclePlus;</mo>
<msub>
<mi>&Pi;</mi>
<mn>1</mn>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>I</mi>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<msub>
<mi>I</mi>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<msub>
<mn>0</mn>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<msub>
<mi>I</mi>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Pi;</mi>
<mn>2</mn>
</msub>
<mo>&CirclePlus;</mo>
<msub>
<mi>&Pi;</mi>
<mn>3</mn>
</msub>
<mo>&CirclePlus;</mo>
<msub>
<mi>&Pi;</mi>
<mn>4</mn>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>I</mi>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Pi;</mi>
<mn>5</mn>
</msub>
<mo>&CirclePlus;</mo>
<msub>
<mi>&Pi;</mi>
<mn>6</mn>
</msub>
</mrow>
</mtd>
<mtd>
<msub>
<mn>0</mn>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Pi;</mi>
<mn>7</mn>
</msub>
<mo>&CirclePlus;</mo>
<msub>
<mi>&Pi;</mi>
<mn>8</mn>
</msub>
</mrow>
</mtd>
<mtd>
<msub>
<mi>I</mi>
<mi>L</mi>
</msub>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
矩阵H里的IL和0L分别为2048×2048维单位矩阵和0矩阵,Πk(k=1,2,...,8)为2048×2048维置换阵,该置换阵Πk的第t行(t=0,1,2,...,2047)非零元素的列位置πk(t)为:
式中,L=2048,mod表示模运算,表示对4t/L向下取整,θk和为列位置πk(t)中的函数。
3.根据权利要求2所述的一种空间通信***中部分并行结构LDPC码译码***,其特征在于:所述的Addr_CN根据CCSDS标准中码率为R=1/2的(8192,4096)LDPC码的校验矩阵H计算得到。
4.根据权利要求1所述的一种空间通信***中部分并行结构LDPC码译码***,其特征在于:所述D_llr和D_a1计算更新的似然信息,得到更新后的边信息D_e1的步骤如下:
设第n个,n为1,2,3,4,5,变量节点处理单元从主存储器中读出m个信息D_a1,m为正整数,m’为1,2…m,m’表示m个信息中的第m’个信息的序号,第m’个信息D_a1(m’)对应的更新信息D_e1等于从信道信息存储器中读出的信道似然信息D_llr加上除去第m’个信息D_a1(m’)之外的其他m-1个信息D_a1。
5.根据权利要求1所述的一种空间通信***中部分并行结构LDPC码译码***,其特征在于:所述D_a2计算更新的似然信息,得到更新后的边信息D_e2的步骤如下:
(1)设第p个,p为1,2,3,校验节点处理单元从主存储器中读出k个信息D_a2,k为正整数,k’为1,2…k,k’表示k个信息中的第k’个信息的序号,第k’个信息D_a2(k’)对应的更新信息D_e2的符号位操作为:除去第k’个更新信息D_a2(k’)之外的k-1个D_a2符号位的异或;
(2)将k个信息D_a2的幅度相比较,求得幅度最小值和幅度次小值,将这两个值通过修正值乘法器乘以归一化因子α,将幅度最小值与第k’个信息的幅度相比较,若相同,则输出次小值,若不同,则输出最小值,α的范围为0~1;
(3)根据步骤(1)的符号位和步骤(2)的幅度值,得到更新后的边信息D_e2。
6.根据权利要求1所述的一种空间通信***中部分并行结构LDPC码译码***,其特征在于:所述最后一次迭代完成后得到的用于判决输出的信息D_e1’等于最后一次迭代时从信道信息存储器中读出的信道似然信息D_llr加上m个信息D_a1(m)的和值。
7.一种空间通信***中部分并行结构LDPC码译码方法,其特征在于:包括划分LDPC码校验矩阵阶段和流水线式部分并行译码阶段:
所述划分LDPC码校验矩阵阶段步骤如下:
(1)在CCSDS标准中定义的码率为R=1/2的准循环LDPC码,该准循环LDPC码的码字长度N为8192、信息位长度K为4096,该码的校验矩阵H表示为
<mrow>
<mi>H</mi>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<msub>
<mn>0</mn>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<msub>
<mn>0</mn>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<msub>
<mi>I</mi>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<msub>
<mn>0</mn>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<mrow>
<msub>
<mi>I</mi>
<mi>L</mi>
</msub>
<mo>&CirclePlus;</mo>
<msub>
<mi>&Pi;</mi>
<mn>1</mn>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>I</mi>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<msub>
<mi>I</mi>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<msub>
<mn>0</mn>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<msub>
<mi>I</mi>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Pi;</mi>
<mn>2</mn>
</msub>
<mo>&CirclePlus;</mo>
<msub>
<mi>&Pi;</mi>
<mn>3</mn>
</msub>
<mo>&CirclePlus;</mo>
<msub>
<mi>&Pi;</mi>
<mn>4</mn>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>I</mi>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Pi;</mi>
<mn>5</mn>
</msub>
<mo>&CirclePlus;</mo>
<msub>
<mi>&Pi;</mi>
<mn>6</mn>
</msub>
</mrow>
</mtd>
<mtd>
<msub>
<mn>0</mn>
<mi>L</mi>
</msub>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Pi;</mi>
<mn>7</mn>
</msub>
<mo>&CirclePlus;</mo>
<msub>
<mi>&Pi;</mi>
<mn>8</mn>
</msub>
</mrow>
</mtd>
<mtd>
<msub>
<mi>I</mi>
<mi>L</mi>
</msub>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
矩阵H里的IL和0L分别为2048×2048维单位矩阵和0矩阵,Πk(k=1,2,...,8)为2048×2048维置换阵,该置换阵Πk的第t行(t=0,1,2,...,2047)非零元素的列位置πk(t)为:
式中,L=2048,mod表示模运算,表示对4t/L向下取整,θk和为列位置πk(t)中的函数;
(2)将步骤(1)的校验矩阵H的行分为3个超行分别为:H1(0-2047行)、H2(2048-4095行)、H3(4096-6143行);将校验矩阵H的列分为5个超列分别为S1(0-2047列)、S2(2048-4095列)、P1(4096-6143列)、P2(6144-8191列)、P3(8192-10239列);
(3)定义译码所需的数据存储器包括:信道信息存储器、主存储器和译码输出缓存单元;信道信息存储器用于缓存信道似然信息,包含4个双口RAM,每个RAM的深度为2048;主存储器包括15个存储器RAM,即主存储器RAM1、RAM2、……、RAM15,用于存储变量节点和校验节点之间传递的边信息,每个存储器RAM对应校验矩阵H里的每一个非零子矩阵,每个存储器RAM深度均为2048,即主存储器RAM1、RAM2、……、RAM15分别对应:
RAM1对应超列S1与超行H2对应的子阵IL;
RAM2对应超列S1与超行H3对应的子阵IL;
RAM3对应超列S2与超行H2对应的子阵IL;
RAM4对应超列S2与超行H3对应的子阵Π5;
RAM5对应超列S2与超行H3对应的子阵Π6;
RAM6对应超列P1与超行H1对应的子阵IL;
RAM7对应超列P2与超行H2对应的子阵IL;
RAM8对应超列P2与超行H3对应的子阵Π7;
RAM9对应超列P2与超行H3对应的子阵Π8;
RAM10对应超列P3与超行H1对应的子阵IL;
RAM11对应超列P3与超行H1对应的子阵Π1;
RAM12对应超列P3与超行H2对应的子阵Π2;
RAM13对应超列P3与超行H2对应的子阵Π3;
RAM14对应超列P3与超行H2对应的子阵Π4;
RAM15对应超列P3与超行H3对应的子阵IL;
译码输出缓存单元用于输出译码结果;
所述流水线式部分并行译码阶段步骤如下:
(4)信道信息存储器接收并存储数字接收机解调的当前这一帧似然信息数据,并将该似然信息数据顺序存储到信道信息存储器的4个RAM里,一帧似然信息数据为8192个,当该帧接收完毕后,信道信息存储器产生一个接收完毕信号发送给迭代控制单元,信道信息存储器同时通过乒乓操作接收下一帧的8192个数据;
(5)迭代控制单元向信道信息存储器发出译码开始信号;信道信息存储器接收到译码开始信号,将4个RAM中的似然信息数据顺序地并行输出4路数据D_llr给变量节点处理模块;
(6)变量节点处理模块接收信道信息存储器的4路数据D_llr,变量节点处理模块包括VNU1、VNU2、VNU3、VNU4和VNU5这5个变量节点处理单元,将该4路数据D_llr分别送至VNU1、VNU2、VNU3、VNU4,将0值送至VNU5,同时变量节点处理模块从主存储器中的RAM1、RAM2、……、RAM15中按照存储器RAM中的RAM1、RAM2、……、RAM15的读地址Addr_VN的顺序读取RAM1、RAM2、……、RAM15中的边信息D_a1,如果是第1次迭代,则从主存储器中取出的边信息D_a1=0,由迭代控制单元定义读地址Addr_VN的顺序为0、1、2、…、2047,按下列方式分别将边信息D_a1送至VNU1、VNU2、VNU3、VNU4、VNU5,变量节点处理单元为5路并行:
将RAM1、RAM2的数据按照Addr_VN顺序地读出送给VNU1;
将RAM3~RAM5的数据按照Addr_VN顺序地读出送给VNU2;
将RAM6的数据按照Addr_VN顺序地读出送给VNU3;
将RAM7~RAM9的数据按照Addr_VN顺序地读出送给VNU4;
将RAM10~RAM15的数据按照Addr_VN顺序地读出送给VNU5;
(7)根据步骤(6)中得到的D_llr和D_a1计算更新的似然信息,得到更新后的边信息D_e1;
(8)将步骤(7)中更新后的边信息D_e2按照写地址Addr_VN写入主存储器RAM1、RAM2、……、RAM15,读地址Addr_VN与写地址Addr_VN数值相同,区别是调用时间不同,均由迭代控制单元生成,为顺序地址0、1、2、…、2047;
(9)迭代控制单元产生校验节点处理模块的读地址Addr_CN,Addr_CN包括Addr_CN1、Addr_CN2…Addr_CN15,Addr_CN1、Addr_CN2…Addr_CN15通过步骤(3)主存储器RAM1、RAM2、……、RAM15对应的子阵计算得到;
校验节点处理模块包括CNU1、CNU2、CNU3,校验节点处理模块根据读地址Addr_CN,从主存储器RAM1、RAM2、……、RAM15中按以下方式读出步骤(8)中的边信息D_e1,记为边信息D_a2,送至校验节点处理模块中的CNU1、CNU2、CNU3,校验节点处理模块的CNU1、CNU2、CNU3为3路并行;
即将RAM10、RAM11的数据按照Addr_CN10、Addr_CN11读出送给CNU1;
将RAM1、RAM3、RAM7、RAM12、RAM13、RAM14的数据分别按照Addr_CN1、Addr_CN3、Addr_CN7、Addr_CN12、Addr_CN13、Addr_CN14读出送给CNU2;
将RAM2、RAM4、RAM5、RAM8、RAM9、RAM15的数据分别按照Addr_CN2、Addr_CN4、Addr_CN5、Addr_CN8、Addr_CN9、Addr_CN15读出送给CNU3;
(10)根据步骤(9)中得到的D_a2计算更新的似然信息,得到更新后的边信息D_e2;
(11)将步骤(10)中更新后的边信息D_e2按照地址Addr_CN1、Addr_CN2…Addr_CN15分别写入主存储器中的RAM1、RAM2、……、RAM15后,向迭代控制单元发送这一次迭代完成信号,读地址Addr_CN与写地址Addr_CN数值相同,区别是调用时间不同,均由迭代控制单元生成;
(12)迭代控制单元收到步骤(11)的这一次迭代完成信号,开始下一次迭代,即重复步骤按照步骤(5)~步骤(12),直至达到设定的该帧的最大迭代次数M,产生译码终止信号Dec_E,然后,将最后一次迭代完成后得到的D_e1’按照正负判决为0和1,即D_e1’为正,判决为1,D_e1’为负,判决为0,此判决结果通过判决结果输出缓冲单元输出判决结果,此帧译码完毕,随后返回步骤(4)进行下一帧的译码,直至数字接收机解调的所有帧似然信息数据译码完成。
8.根据权利要求7所述的一种空间通信***中部分并行结构LDPC码译码方法,其特征在于:步骤(9)和(11)中所述的Addr_CN根据CCSDS标准中码率为R=1/2的(8192,4096)LDPC码的H矩阵计算得到。
9.根据权利要求7所述的一种空间通信***中部分并行结构LDPC码译码方法,其特征在于:所述步骤(7)中D_llr和D_a1计算更新的似然信息,得到更新后的边信息D_e1的步骤如下:
设第n个,n为1,2,3,4,5,变量节点处理单元从主存储器中读出m个信息D_a1,m为正整数,m’为1,2…m,m’表示m个信息中的第m’个信息的序号,第m’个信息D_a1(m’)对应的更新信息D_e1等于从信道信息存储器中读出的信道似然信息D_llr加上除去第m’个信息D_a1(m’)之外的其他m-1个信息D_a1。
10.根据权利要求7所述的一种空间通信***中部分并行结构LDPC码译码方法,其特征在于:所述步骤(10)中D_a2计算更新的似然信息,得到更新后的边信息D_e2的步骤如下:
(1)设第p个,p为1,2,3,校验节点处理单元从主存储器中读出k个信息D_a2,k为正整数,k’为1,2…k,k’表示k个信息中的第k’个信息的序号,第k’个信息D_a2(k’)对应的更新信息D_e2的符号位操作为:除去第k’个更新信息D_a2(k’)之外的k-1个D_a2符号位的异或;
(2)将k个信息D_a2的幅度相比较,求得幅度最小值和幅度次小值,将这两个值通过修正值乘法器乘以归一化因子α,将幅度最小值与第k’个信息的幅度相比较,若相同,则输出次小值,若不同,则输出最小值,α的范围为0~1;
(3)根据步骤(1)的符号位和步骤(2)的幅度值,得到更新后的边信息D_e2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410841848.7A CN104579362B (zh) | 2014-12-30 | 2014-12-30 | 一种空间通信***中部分并行结构ldpc码译码***及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410841848.7A CN104579362B (zh) | 2014-12-30 | 2014-12-30 | 一种空间通信***中部分并行结构ldpc码译码***及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104579362A CN104579362A (zh) | 2015-04-29 |
CN104579362B true CN104579362B (zh) | 2017-10-24 |
Family
ID=53094693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410841848.7A Active CN104579362B (zh) | 2014-12-30 | 2014-12-30 | 一种空间通信***中部分并行结构ldpc码译码***及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104579362B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141317A (zh) * | 2015-08-28 | 2015-12-09 | 中南民族大学 | 降低ldpc差错平台的两阶段选择性翻转译码方法 |
CN108092673B (zh) * | 2018-02-10 | 2021-04-16 | 中国传媒大学 | 一种基于动态调度的bp迭代译码方法及*** |
CN109495115B (zh) * | 2018-11-01 | 2022-08-09 | 哈尔滨工业大学 | 一种基于fpga的ldpc译码器及译码方法 |
US11996862B2 (en) | 2022-09-07 | 2024-05-28 | Seagate Technology Llc | High performance decoder |
US11929761B1 (en) | 2022-10-07 | 2024-03-12 | Seagate Technology Llc | Low latency decoder |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7454693B2 (en) * | 2004-06-22 | 2008-11-18 | Stmicroelectronics S.A. | LDPC decoder |
CN101471673A (zh) * | 2007-12-28 | 2009-07-01 | 三星电子株式会社 | Ldpc码存储单元划分方法以及一种ldpc码存储器 |
CN102075197A (zh) * | 2010-12-29 | 2011-05-25 | 北京遥测技术研究所 | 一种ldpc译码方法 |
US8327221B2 (en) * | 2006-10-02 | 2012-12-04 | Broadcom Corporation | Overlapping sub-matrix based LDPC (low density parity check) decoder |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6957375B2 (en) * | 2003-02-26 | 2005-10-18 | Flarion Technologies, Inc. | Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation |
-
2014
- 2014-12-30 CN CN201410841848.7A patent/CN104579362B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7454693B2 (en) * | 2004-06-22 | 2008-11-18 | Stmicroelectronics S.A. | LDPC decoder |
US8327221B2 (en) * | 2006-10-02 | 2012-12-04 | Broadcom Corporation | Overlapping sub-matrix based LDPC (low density parity check) decoder |
CN101471673A (zh) * | 2007-12-28 | 2009-07-01 | 三星电子株式会社 | Ldpc码存储单元划分方法以及一种ldpc码存储器 |
CN102075197A (zh) * | 2010-12-29 | 2011-05-25 | 北京遥测技术研究所 | 一种ldpc译码方法 |
Non-Patent Citations (4)
Title |
---|
A Highly Parallel Design for Irregular LDPC Decoding on GPGPUs;Tsou-Han Chiu et al.;《Signal & Information Processing Association Annual Summit and Conference (APSIPA ASC),2012 Asia-Pacific》;20121206;全文 * |
Parallel Nonbinary LDPC Decoding on GPU;Guohui Wang et al.;《Signals, Systems and Computers (ASILOMAR), 2012 Conference Record of the Forty Sixth Asilomar Conference on》;20121107;全文 * |
基于GPU的LDPC存储优化并行译码结构设计;葛帅 等;《北京航空航天大学学报》;20130331;第39卷(第3期);全文 * |
数字可变符号率调制器设计;周三文;《遥测遥控》;20130531;第34卷(第3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104579362A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104579362B (zh) | 一种空间通信***中部分并行结构ldpc码译码***及其方法 | |
CN101534166B (zh) | 准循环低密度奇偶校验码解码器及解码方法 | |
CN103259545B (zh) | 基于振荡的准循环低密度奇偶校验码置信传播译码方法 | |
CN101212277A (zh) | 支持多协议标准的ldpc码译码装置 | |
CN101350625A (zh) | 一种高效通用的qc-ldpc码译码器及其译码方法 | |
US9825650B2 (en) | Decoder architecture for cyclically-coupled quasi-cyclic low-density parity-check codes | |
CN106936446A (zh) | 一种基于多进制ldpc码的高速译码器及其译码方法 | |
EP3457575A1 (en) | Encoding method and device and decoding method and device for structured ldpc | |
CN101345532B (zh) | Ldpc信道编码的译码方法 | |
CN100425000C (zh) | 双涡轮结构低密度奇偶校验码解码器及解码方法 | |
US20060031744A1 (en) | Method and apparatus for encoding and decoding data | |
CN103199874B (zh) | 一种低密度奇偶校验码译码方法 | |
CN105680879B (zh) | 兼容dvb-s2x标准的ldpc译码器设计方法 | |
CN107204780B (zh) | polar-LDPC级联码的合并BP解码算法及装置 | |
CN103929210B (zh) | 一种基于遗传算法与神经网络的硬判决译码方法 | |
CN102664638A (zh) | 基于分层nms算法的多码长ldpc码译码器的fpga实现方法 | |
US20070220395A1 (en) | Method and apparatus for encoding and decoding data | |
CN100542049C (zh) | 一种多码率的ldpc码的译码器装置及译码方法 | |
CN106571829A (zh) | 一种基于fpga的高速自适应dvb‑s2 ldpc译码器及译码方法 | |
CN101232288A (zh) | 一种基于奇偶校验矩阵的ldpc码的译码方法及译码器 | |
CN101273531B (zh) | 低密度奇偶校验码的改进turbo-译码消息传递方法、设备和*** | |
CN105227191B (zh) | 基于修正最小和算法的准循环ldpc码译码方法 | |
CN103199877B (zh) | 一种结构化ldpc卷积码构造编码方法 | |
CN101207386A (zh) | 一种二进制低密度奇偶校验码的构造方法 | |
CN103023603B (zh) | 基于ldpc校验矩阵的比特交织编码调制的实现方法 |
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 |