低密度奇偶检查码解码器及其解码方法与流程

文档序号:17817000发布日期:2019-06-05 21:50
低密度奇偶检查码解码器及其解码方法与流程

本发明是关于一种解码器及其解码方法;更具体而言,本发明是关于一种低密度奇偶检查(Low Density Parity Check,LDPC)码解码器及其解码方法。



背景技术:

低密度奇偶校验(Low Density Parity Check,LDPC)码是为一种错误修正码,主要用于数据传输的错误判断与修正,而编码的方式目前主要是采通用标准进行,惟解码的方式具有较多变化。其中,目前较常见的LDPC解码方法为总和-乘积算法(Sum-Product Algorithm,SPA)、对数总和-乘积算法(Log Sum-Product Algorithm,LSPA)以及最小总和算法(Min-Sum Algorithm,MSA)。

针对前述三种算法,SPA具有较佳的编码正确性,惟其算法的运算中,针对各种概似比(Likelihood Ratio,LR)值的计算多以乘法处理之,因此,速度较慢。据此,LSPA主要是针对SPA过多的乘法运算进行改良,将LR值先以对数的方式处理成为对数概似比(Log Likelihood,LLR)值,如此一来,SPA中的乘法运算于LSPA即可以加法运算处理之。虽LSPA的正确性较低,然速度将可获得大幅改善。

另一方面,考虑LSPA中,针对检查节点至变量节点(Check Node to Variable Node)LLR值的计算步骤中,仍须进行tanh以及tanh-1的运算,因此,MSA主要是基于最小变量节点至检查节点(Variable Node to Check Node)LLR值,计算相关的检查节点至变量节点LLR值,如此,便可避开tanh以及tanh-1的运算,以进一步提升指令周期。

然而,前述三种算法,皆是先利用全部的变量节点,估测每个检查节点对不同变量节点所能提供的LR值,随后再利用估测的检查节点对不同变量节点所能提供的LR值,反向地估测每个变量节点自身的LR值。据此,前述三种算法计算的复杂度仍偏高,且所需要的硬件计算电路或缓存器亦较为复杂。

有鉴于此,如何改良前述习知LDPC解码算法的缺点,乃为业界亟需努力的目标。



技术实现要素:

主要目的是提供一种用于低密度奇偶检查(Low Density Parity Check,LDPC)码解码器的解码方法。LDPC码解码器纪录与M个检查节点(Check Node)与N个变量节点(Variable Node)相关的MxN同位检查矩阵。解码方法包含:LDPC码解码器根据MxN同位检查矩阵,判断与第一检查节点相关的j个变量节点;LDPC解码器计算j个变量节点分别于信道中对应的j个节点对数概似比(Logarithm Likelihood Ratio,LLR)值;LDPC解码器决定第一检查节点相对于j个变量节点的j个初始检查节点到变量节点(Check Node to Variable Node,CN-VN)LLR值;LDPC解码器根据j个节点LLR值以及j个初始CN-VN LLR值,计算j个变量节点到检查节点(Variable Node to Check Node,VN-CN)LLR值;LDPC解码器根据j个VN-CN LLR值,计算第一检查节点相对应于j个变量节点的j个更新CN-VN LLR值;LDPC解码器根据j个更新CN-VN LLR值以及j个VN-CN LLR值,计算j个更新节点LLR值;LDPC解码器利用j个更新节点LLR值,更新相应于j个变量节点的j个节点LLR值。

为完成前述目的,本发明又提供一种LDPC解码器,包含存储器以及处理单元。存储器用以纪录与M个检查节点与N个变量节点相关的MxN同位检查矩阵。处理单元用以:根据MxN同位检查矩阵,判断与第一检查节点相关的j个变量节点;计算j个变量节点分别于信道中对应的j个节点对数概似比LLR值;决定第一检查节点相对于j个变量节点的j个初始CN-VN LLR值;根据j个节点LLR值以及j个初始CN-VN LLR值,计算j个VN-CNLLR值;根据j个VN-CN LLR值,计算第一检查节点相对应于j个变量节点的j个更新CN-VN LLR值;根据j个更新CN-VN LLR值以及j个VN-CN LLR值,计算j个更新节点LLR值;利用j个更新节点LLR值,更新相应于j个变量节点的j个节点LLR值。。

此外在参阅图式及随后描述的实施方式后,本领域的技术人员便可了解本发明的其他目的,以及本发明的技术手段及实施态样。

附图说明

图1A是本发明第一实施例的LDPC码解码器的方块图;

图1B是本发明第一实施例的MxN同位检查矩阵的示意图;

图1C~1D是本发明第一实施例的MxN同位检查矩阵相应的丹纳图;

图2A是本发明第二实施例的MxN同位检查矩阵的示意图;

图2B~2C是本发明第二实施例的MxN同位检查矩阵相应的丹纳图;

图3是本发明第三实施例的解码方法的流程图;以及

图4是本发明第四实施例的解码方法的流程图。

符号说明

1 LDPC解码器

11 存储器

13 处理单元

PCM 同位检查矩阵

V1~Vm 变量节点

C1~Cn 检查节点

L1~Lj、S1~Sk 节点LLR值

Q1~Qj、q1~qk VN-CN LLR值

R1~Rj、r1~rk CN-VN LLR值

L’1~L’j、S’1~S’k 更新节点LLR值

R’1~R’j、r’1~r’k 更新CN-VN LLR值

具体实施方式

下将透过实施方式来解释本发明的内容。须说明者,本发明的实施例并非用以限制本发明须在如实施例所述的任何特定的环境、应用或特殊方式方能实施。因此,有关实施例的说明仅为阐释本发明的目的,而非用以限制本发明,且本案所请求的范围,以权利要求书为准。除此之外,于以下实施例及图式中,与本发明非直接相关的元件已省略而未绘示,且以下图式中各元件间的尺寸关是仅为求容易了解,非用以限制实际比例。

请同时参考图1A~1D。图1A是本发明第一实施例的一低密度奇偶检查(Low Density Parity Check,LDPC)码解码器1的方块图。LDPC码解码器1包含一存储器11以及一处理单元13,存储器11纪录与M个检查节点(Check Node)与N个变量节点(Variable Node)相关的一MxN同位检查矩阵PCM。

图1B是本发明第一实施例的MxN同位检查矩阵PCM的示意图。其中,矩阵元件(m,n)若为1,代表检查节点m与变量节点n间有连结关系,反之,若为0,代表检查节点m与变量节点n间无连结关系。图1C~1D是本发明第一实施例的MxN同位检查矩阵PCM相应的丹纳(Tanner)图。元件间具有电性连结,而其间的互动将于下文中进一步阐述。

首先,如图1B及图1C所示,LDPC码解码器1的处理单元13根据MxN同位检查矩阵PCM,判断与一第一检查节点C1相关的j个变量节点V1、V3、V4…Vx。随后,LDPC解码器1的处理单元13计算j个变量节点V1、V3、V4…Vx分别于信道中对应的j个节点对数概似比(Logarithm Likelihood Ratio,LLR)值L1、L2、L3…Lj。

接着,LDPC解码器1的处理单元13决定第一检查节点C1相对于j个变量节点V1、V3、V4…Vx的j个初始检查节点到变量节点(Check Node to Variable Node,CN-VN)LLR值R1、R2、R3…Rj。据此,LDPC解码器1的处理单元13便可根据j个节点LLR值L1、L2、L3…Lj以及j个初始CN-VN LLR值R1、R2、R3…Rj,计算j个变量节点到检查节点(Variable Node to Check Node,VN-CN)LLR值Q1、Q2、Q3…Qj。

随即,如图1D所示,LDPC解码器1的处理单元13根据j个VN-CN LLR值Q1、Q2、Q3…Qj,计算第一检查节点C1相对应于j个变量节点V1、V3、V4…Vx的j个更新CN-VN LLR值R’1、R’2、R’3…R’j。接着,LDPC解码器1的处理单元13便可根据j个更新CN-VN LLR值R’1、R’2、R’3…R’j以及j个VN-CN LLR值Q1、Q2、Q3…Qj,计算j个更新节点LLR值L’1、L’2、L’3…L’j。

最后,LDPC解码器1的处理单元13直接利用相应于单一检查节点C1的j个更新节点LLR值L’1、L’2、L’3…L’j,更新相应于j个变量节点V1、V3、V4…Vx的j个节点LLR值L1、L2、L3…Lj。

请参考图2A~2C。图2A是本发明第二实施例的MxN同位检查矩阵PCM的示意图。图2B~2C是本发明第二实施例的MxN同位检查矩阵PCM相应的丹纳图。其中,第二实施例与第一实施例的架构相似,因此符号相同的元件功能亦同,于此不再赘述。而第二实施例主要是接续第一实施例,用以进一步说明本发明的LDPC解码器1针对其他检查节点重复进行变量节点的节点LLR值更新的步骤。

首先,如图所示,LDPC码解码器1的处理单元13根据MxN同位检查矩阵PCM,判断与一第二检查节点C2相关的k个变量节点V2、V4…Vy。随后,LDPC解码器1的处理单元13计算k个变量节点V2、V4…Vy对应的k个节点LLR值S1、S2…Sk。

需特别说明,于第二实施例中,未被更新过节点LLR值的变量节点(如变量节点V2、Vy),将直接由LDPC解码器1的处理单元13计算各自于信道中对应的节点LLR值(如节点LLR值S1、Sy)。惟针对先前已被更新过节点LLR值的变量节点(如变量节点V4),其使用的节点LLR值即为针对先前检查节点(如第一检查节点)更新过后的节点LLR值。换言之,第二实施例的节点LLR值S2是为第一实施例的更新节点LLR值L’3。

接着,同样地,LDPC解码器1的处理单元13决定第二检查节点C2相对于k个变量节点V2、V4…Vy的k个初始LLR值r1、r2…rk。据此,LDPC解码器1的处理单元13便可根据k个节点LLR值S1、S2…Sk以及k个初始CN-VN LLR值r1、r2…rk,计算k个VN-CN LLR值q1、q2…qk。

随即,如图2C所示,LDPC解码器1的处理单元13根据k个VN-CN LLR值q1、q2…qk,计算第二检查节点C2相对应于k个变量节点V2、V4…Vy的k个更新CN-VN LLR值r’1、r’2…r’k。接着,LDPC解码器1的处理单元13便可根据k个更新CN-VN LLR值r’1、r’2…r’k以及k个VN-CN LLR值q1、q2…qk,计算k个更新节点LLR值S’1、S’2…S’k。

最后,LDPC解码器1的处理单元13直接利用相应于单一检查节点C2的k个更新节点LLR值S’1、S’2…S’k,更新相应于k个变量节点V2、V4…Vy的k个节点LLR值S1、S2…Sk。如此一来,本发明的LDPC解码器1可以单一检查节点为主,直接更新相应的变量节点的节点LLR值,并利用更新过后的变量节点的节点LLR值,依序针对其他检查节点,一一重复进行变量节点的节点LLR值的更新,如此一来,时间复杂度以及空间复杂度亦可有效降低,以大幅节省解码时间以及所需使用的硬件。

需特别说明,前述实施例中的计算细节中,LDPC解码器1的处理单元13:将各节点LLR值分别减去相对应的各CN-VN LLR值的值即为各VN-CN LLR值(例如:Q1=L1-R1);将各VN-CN LLR值分别加上相对应的各更新CN-VN LLR值的值为各更新节点LLR值(例如:L’1=Q1+R’1=L1-R1+R’1)。

另外,LDPC解码器1的处理单元13基于以下公式,计算检查节点相对应于变量节点的更新CN-VN LLR:

其中,R’m,n是第m个检查节点到第n个变量节点的更新CN-VN LLR值。S是调整参数,由使用者根据不同使用状况设定。Nm\n代表除了第n个变量节点之外与第m个检查节点相关的变量节点。Qm,i是第i个变量节点到第m检查节点的VN-CN LLR值。

须强调,本发明主要是着重于变量节点的LLR针对单一检查节点即可先进行更新,随后再依序针对其他检查节点,一一重复进行变量节点LLR值的更新,换言之,本发明是透过操作流程的调整,在可维持一定水平的解码正确率的情况下,大幅地降低时间与空间复杂度。惟本领域技术人员应可透过前揭内容,理解同位检查矩阵的应用、各种LLR值代表的意义及其计算方式,因此不再赘述。

本发明的第三实施例为解码方法,其流程图请参考图3。第三实施例的方法是用于一LDPC解码器(例如前述实施例的LDPC解码器)。LDPC解码器纪录与M个检查节点及N个变量节点相关的一MxN同位检查矩阵。第三实施例的详细步骤如下所述。

首先,执行步骤301,LDPC码解码器根据MxN同位检查矩阵,判断与一第一检查节点相关的j个变量节点。执行步骤302,LDPC解码器计算j个变量节点分别于信道中对应的j个节点LLR值。执行步骤303,LDPC解码器决定第一检查节点相对于j个变量节点的j个初始LLR值。

接着,执行步骤304,LDPC解码器根据j个节点LLR值以及j个初始CN-VN LLR值,计算j个VN-CNLLR值。执行步骤305,LDPC解码器根据j个VN-CN LLR值,计算第一检查节点相对应于j个变量节点的j个更新CN-VN LLR值。执行步骤306,LDPC解码器根据j个更新CN-VN LLR值以及j个VN-CN LLR值,计算j个更新节点LLR值。最后,执行步骤307,LDPC解码器利用j个更新节点LLR值,更新相应于j个变量节点的j个节点LLR值。

本发明的第四实施例为解码方法,其流程图请参考图4。第四实施例的方法是用于一LDPC解码器(例如前述实施例的LDPC解码器)。LDPC解码器纪录与M个检查节点及N个变量节点相关的一MxN同位检查矩阵。第四实施例的详细步骤如下所述。

首先,执行步骤401,LDPC码解码器根据MxN同位检查矩阵,判断与一第i检查节点相关的j个变量节点。其中,i的初始值为1。执行步骤402,LDPC解码器计算j个变量节点对应的j个节点LLR值。执行步骤403,LDPC解码器决定第i检查节点相对于j个变量节点的j个初始LLR值。

接着,执行步骤404,LDPC解码器根据j个节点LLR值以及j个初始CN-VN LLR值,计算j个VN-CNLLR值。执行步骤405,LDPC解码器根据j个VN-CN LLR值,计算第i检查节点相对应于j个变量节点的j个更新CN-VN LLR值。执行步骤406,LDPC解码器根据j个更新CN-VN LLR值以及j个VN-CN LLR值,计算j个更新节点LLR值。最后,执行步骤407,LDPC解码器利用j个更新节点LLR值,更新相应于j个变量节点的j个节点LLR值。

需特别说明,于第四实施例中,若N个检查节点中尚有未处理的检查节点,则令i=i+1后,针对下一个检查节点重复进行前述步骤。直到N个检查节点透过前述步骤处理完毕,则完成一次完整的解码迭代(iteration)。

综合上述,本发明的LDPC解码器及解码方法可针对单一检查节点,直接更新相应的变量节点的节点LLR值,以完成一次子迭代(sub-iteration)。随后,利用更新过后的变量节点的节点LLR值,依序针对其他检查节点进行不同的子迭代,直到所有检查节点处理完毕便完成一次迭代。如此一来,本发明解码的时间复杂度以及空间复杂度相较于先前技术确实提升至少一个等级,以大幅节省解码时间以及所需使用的硬件,并改善先前技术的缺点。

惟上述实施例仅为例示性说明本发明的实施态样,以及阐释本发明的技术特征,并非用来限制本发明的保护范畴。本领域的技术人员可轻易完成的改变或均等性的安排均属于本发明所主张的范围,本发明的权利保护范围应以权利要求书为准。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1