置乱式ldpc解码的制作方法

文档序号:7515482阅读:197来源:国知局
专利名称:置乱式ldpc解码的制作方法
技术领域
本发明涉及一种LDPC解码器和LDPC解码方法。
背景技术
在发送端与接收端之间的传输中,可能出现一些传输误差。可以使用纠错编码来检测并校正这些误差中的一些。低密度奇偶校验
(LDPC)编码是一类纠错码其为分组码(或等效为奇偶校验码),
并由奇偶校验矩阵H定义。1963年R.G. Gallager(在1963年Gallager发表于MIT的论文"Low-Density Parity-Check Codes"中)针对加罗瓦域(Galois Field) GF (2)上的LDPC编码介绍了该类纠错码。1998年Mackay (在1998年由英国剑桥大学的卡文迪西实验室中的D丄CMackay, M.C. Davey发表白勺"Low Density Check Code over GF (q)"中)针对较高基数(即GF (rq),其中r为质数)的加罗瓦域(GaloisField)就其原理进行了归纳。LDPC编码可用于各种传输系统(例如,卫星通信系统、无线传输系统、光纤系统)以及各种存储媒介(例如,硬盘驱动器、光盘、磁带)。使用LDPC的系统示例有DVB-S2、DMB-T (中国DVB地面标准)、STiMi (中国DVB卫星标准)、IEEE802,lln以及802.16e。
LDPC码由大小为M行乘N列的奇偶校验矩阵H来定义,M为限制(对应于校验节点)的数量,N为变量(码符号的估计值,由符号节点表示)的数量。所述矩阵在位置(m, n)的非零项表示变量Vn参与限制Cm。大多数新的标准化系统使用再分为多个被称作循环矩阵的分组(矩阵)的奇偶校验矩阵。循环矩阵是零矩阵(所有元素均为0)或者基于单位矩阵。基于单位矩阵的循环矩阵可以是单对角线的(单位矩阵本身或者该单位矩阵的旋转形式)或者可以具有多条对角线。所谓的桶形移位器用于将通常以正常连续顺序存储于存储器中的变量旋转至由单位矩阵的旋转所限定的位置。在2006年由 J.Dielissen等人在IEEE会议中发表的"Low cost LDPC decoder for DVB-S2"(下文中称作[Dielissen, DATE])中公开了最新的低成本 的实现。但是,这种结构不能解决包含"多对角线"的LDPC编码的 问题。显然,多对角线的处理更复杂。US 2005/0138519 Al示出了 一种设计用于对多对角线的循环矩阵进行处理的结构。但是,该结构 对不需要解决"多对角线"问题的廉价示例来说不具有可扩展性。

发明内容
有利地提供了一种可扩展的LDPC解码结构,优选地,其可以 用于具有单对角线或多对角线的循环矩阵的一些标准化系统中。还可
以有利地减小己知LDPC解码结构的成本。
为了更好地解决这一问题,在本发明的第一方面,LDPC解码器 用于对加罗瓦域(Galois Field)上的LDPC码进行迭代解码,其中所 述LDPC码由预定的MXN的奇偶校验矩阵H表示,矩阵H由多个
子矩阵构成,其中每个子矩阵是零矩阵或者是每行和每列具有相同数
量的非零元素的矩阵;所述LDPC解码器基于对数似然比置信传播算 法(下文中称其为LLR-BP算法),其表示将符号消息入,,,从相应符 号节点n (0<=n<N)传递至所连接的校验节点m (0< m<N)以及将 校验节点消息A,皿从相应校验节点m传递至连接的符号节点n;符号 节点与校验节点之间的连接由奇偶校验矩阵H来限定;所述LDPC 解码器包括
第一存储器(1005),用于针对每个符号节点存储LDPC码的
相应符号的相应符号值的表示;
第二存储器(1015),用于存储各校验节点消息A皿的表示; 第一计算装置(1010),用于根据存储于第一存储器的相应符
号值的表示以及前一迭代的校验节点消息来计算下一个迭代符号消
息义,;
置乱装置(1030),用于从第一计算装置(1010)接收以第一 顺序排列的符号消息,并且根据相应子矩阵中非零元素的位置来以不
6同顺序提供该符号消息;
第二计算装置(DP-O, DP-1, DP-D-1),用于根据LLR-BP算
法来计算校验节点消息,并且用于将计算所得的校验节点消息的表示 存储于第二存储器中;该计算依赖于相应校验节点从桶形移位器接收 到的符号消息;以及
第三计算装置(1020),用于根据第一计算装置和第二计算装 置的输出来更新第一存储器中的符号值的表示。
在根据本发明的结构中,在线性域(即,在置乱装置之前)中 计算所述符号消息(通常被称为义^消息),这与现有技术中的解决 方案正好相反,在现有技术中,该计算是在置乱域(shuffled domain) 中执行的。这使得无需较大部分地重新设计也可以制造适于单对角线 或多对角线系统的编码器。此外,还使得能够降低成本。如从属权利 要求6所述,子矩阵可以是循环矩阵,并且置乱装置被实现为桶形移 位器。
在根据本发明的实施例中,至少一个子矩阵是每行和每列均具 有至少两个非零元素的矩阵,下文称其为多元矩阵(multi-matrix); 第一计算装置被布置为根据相关的校验节点消息来计算对应于多元 矩阵的符号消息义'nm ,其中每个相关的校验节点消息对应于该多元矩 阵中的一个非零元素。
通过在线性域中操作,则简化了对这种具有多个非零元素(即, 多对角线)的子矩阵的处理。如在从属权利要求3中所述,可以以简 单的迭代结构来处理这种多元矩阵,其中将来自一个相关校验节点消 息的每个时间信息与中间结果组合在 一 起。
在根据本发明的实施例中,LLR-BP算法基于最小和算法,并且 LDPC编码器包括校正装置,用于将符号消息的值乘以校正因子《; 以及饱和装置,用于将符号消息值限制在预定范围;所述校正装置和 饱和装置被布置在第一计算装置和桶形移位器之间。通过在桶形移位 器之前执行校正和饱和处理,所述桶形移位器在进一步受限的范围内 操作,并且因此可以更廉价地实施。
在根据本发明的实施例中,符号消息的表示以预定顺序存储于第一存储器中;LDPC解码器还包括布置在第二计算装置与第三计算装置之间的另一桶形移位器,用于以对应于所述预定顺序的顺序来提供校验节点消息。该结构还可包括位于反向路径(即,朝向第一存储器)中的另一桶形移位器。这简化了对位于前向路径中的桶形移位器的控制。
在根据本发明的实施例中,LLR-BP算法基于最小和算法;第二计算装置包括压縮装置,用于压縮校验节点消息并且以压縮的形式将该校验节点消息存储于第二存储器中;以及第一计算装置包括解压縮装置,用于对从第二存储器中读出的校验节点消息进行解压缩。通过以压縮的形式存储校验节点消息减少了成本。根据本发明的结构既可以利用压縮的校验节点消息操作,也可以使用解压縮的校验节点消息操作。
为了满足本发明的目的,提出了一种对加罗瓦域(Galois Field)上的LDPC码进行迭代解码的方法,其中所述LDPC码由预定的MXN的奇偶校验矩阵H表示,矩阵H由多个循环矩阵构成,其中每
个循环矩阵是零矩阵或者是具有至少一条对角线的对角矩阵,并且至少一个循环矩阵是通过将单位矩阵旋转至少一个位置所形成的对角
矩阵;所述LDPC解码方法基于对数似然比置信传播算法(下文中称其为LLR-BP算法),其表示将符号消息义,从相应的符号节点n(0<=n<N)传递至所连接的校验节点m (0<=m<N)以及将校验节点消息A^从相应的校验节点m传递至所连接的符号节点n;符号节点与校验节点之间的连接由奇偶校验矩阵H来限定;所述LDPC解码方法包括
针对每个符号节点将LDPC码的相应符号的相应符号值的表示存储于第一存储器中;
将各校验节点消息A^的表示存储于第二存储器中;
执行第一计算,包括根据存储于第一存储器的相应符号值的表示以及前 一 迭代的校验节点消息来计算下 一 个迭代符号消息A m ;
通过接收以第一顺序排列的由第一计算产生的符号消息,以及根据循环矩阵的旋转以不同顺序提供所述符号消息,来执行桶形移位操作;
执行第二计算,包括根据LLR-BP算法来计算校验节点消息, 并且将计算所得的校验节点消息的表示存储于第二存储器中;该计算 依赖于相应校验节点从桶形移位器接收到的符号消息;以及
根据第一计算和第二计算的输出来更新第一存储器中的符号值 的表示。
本发明的这些和其他方面将从下文中描述的实施例变得明显, 并且下文将参考实施例来对其进行说明。


在附图中
图1示出了其中可使用本发明的示例系统的框图2示出了使解码处理可视化的Tanner图3示出了分两组执行迭代的示例;
图4示出了循环奇偶校验矩阵;
图5a和图5b示出了桶形移位器的作用;
图6示出了已有技术中的数据路径;
图7示出了用于最小和算法的数据路径细节;
图8示出了传统的顶层结构;
图9示出了传统的使用压縮的A存储的数据路径;
图10示出了根据本发明的LDPC解码器结构的基本实现;
图ll示出了在桶形移位器之前基于最小和算法执行校正和饱和
处理;
图12示出了优选的数据路径;
图13示出了用于处理多对角线的结构;以及
图14示出了与压縮的A存储相结合的结构。
具体实施例方式
除非特别说明,附图中所使用的相同的参考标号表示相同的功
能。图1示出了其中可使用本发明的示例系统100的框图。该系统包括LDPC编码器110和LDPC解码器120。编码信号可以通过传输媒介130 (诸如无线或有线网络)来传输。可以理解的是,也可以将编码信号存储于诸如硬盘或光存储之类的存储系统中。在这种情况下,对象130则表示存储系统。还可以进行许多在附图1中未示出的其他操作,诸如对信号进行加密/解密、调制/解调等。这些操作都是已知的并且不属于本发明的一部分。
LDPC编码/解码本身是己知的。本文关于已知方面仅给出简短的描述。在一个简单示例中,编码器110的任务是对一些二进制信息
(通常被称为符号,其中该符号可以仅为1位,或者也可以使用多位来表示)进行编码。假设要求分别使用值"0" 、 "0"、 "0"、 "1"来传输四个信息位Sl、 S2、 S3、 S4。这些信息位被排列为矩阵的形式。为了能够检测并校正传输误差,计算第一附加的奇偶位。该奇偶位使得矩阵的行和/或列满足预定的奇偶方程。该奇偶方程通常为加罗瓦域GF (rq)(其中r为质数并且q为整数,例如GF (2) 、 GF
(4) 、 GF (8)以及通用地为GF (2q))的方程。在本文的示例中,该方程使得每行和列中的所有位的和等于0模2 (即,GF (2)中的方程)。通过对所有行和列添加奇偶位以及对奇偶位行和列添加奇偶位,在该示例中可以获得3X3的矩阵
^ ="0" S2 ="0"S, ="0" & =T'
S, ="0" S2 ="0"尸="0"
s3 ="o" s4 =t 户2 ='r
尸;="0"尸,=T'尸《=T'
个王
位P1至P5为奇偶位。满足如下6个奇偶校验方程S1+S2+P1=0 mod 2S3iS4+P2=0 mod 2P3+ P4+P5-0 mod 2Sl+S3+P3=0 mod 2S2+S4+P4=0 mod 2P1+ P2+P5=0 mod 2
这些奇偶校验方程可以由所谓的奇偶校验矩阵H表示,其可以具有如下形式1 1 1 0 0 0 0 0 0
0 0 0 1 1 1 0 0 0 一 0 0 0 0 0 0 1 1 1
1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1
其中,符号序列被选择为SI S2 Pl S3 S4 P2 P3 P4 P5。也可以 选择其他序列,以允许矩阵的重新排列。H中的列数对应于需要被传 输(系统位和计算所得的奇偶校验位)的位(符号)数。H中的非零 元素的位置包含以哪个方程验证哪些位的信息(例如,在第一行中校 验S1+S2+P1=0 mod 2,在第二行中验证S3+S4+P2二0 mod 2等)。 低密度奇偶校验(LDPC)码可以由该稀疏奇偶校验矩阵H指定。
"低密度"是指在H中所具有的1的个数远少于所具有的0的个数。 该码的结构完全由奇偶校验矩阵H描述。实际上,H矩阵具有比该 示例中所示更少的元素"1"。在说明书的其余部分中,N表示码字 长度,M表示奇偶校验方程的数量。因此,奇偶校验矩阵H由具有 元素"0"或"1"的M行和N列构成。矩阵中的行为奇偶校验方程, 并且行中具有"1"的元素的集合为方程的自变量。对于具有索引m
(0<=m<M)的奇偶校验方程,其校验的码字符号位置的集合W(m)定 义如下
) = {+ = 0,1,... , iV -1;0}。
iV(m)中的元素数量记为《m 。类似地,对于码字符号位置n (0^"<AO ,校验符号位置n的奇偶校验方程的索引集合M(n)定义如

辟)={+ = O,l,…,A/-l;f/ m - 0} 中的元素数量记为■/ 。
通常通过Tanner图(二分图)来对LDPC算法进行可视化。艮卩, 将图的节点分为两个不同的集合,并且边缘仅连接两种不同类型的节 点。如图2所示的示例说明了以上给出的H矩阵。这两组节点将被 称为符号节点(左边的节点)和校验节点(右边的节点)。符号节点 的数量对应于矩阵H的列数N,即所传输的符号和奇偶位的总数。
11校验节点的数量对应于矩阵H的行数M,其等于奇偶校验方程的数 量。当且仅当Hm,l时,第n个符号节点(l^"<AO与第m个校验 节点(l《m<M)连接。如上所述示例,第一校验节点Cn-,連接至第 一、第二和第三符号节点,表示以第一奇偶校验方程来验证 S1+S2+P1=0 mod 2。
对LDPC编码进行解码是基于在连接节点之间传递消息进行的, 其中该消息表示发送节点置信为真的值(或者更一般地表示发送节点 置信为真的概率)。对这样的解码算法的各种优化是已知的。通常, 这样的算法被称为置信传播算法(BP)、消息传递算法(MAP)或 者和积算法(SAP)。通常,在对数域执行该算法,来以求和运算代 替乘法运算。LDPC解码器不对'硬位,(例如,二进制符号值)进 行操作,而对'软位'进行操作,通常通过使用数据的若干位(例如, 8位)来执行。由那些位表示的整数值是对已编码的符号位为0或1 的可能性有多高的度量。例如,可以从范围[-127,127]中抽取该整数 值,其中-127表示"确定为0" , -100表示"非常可能为0" , 0 表示"为0或1的可能性相等",100表示"非常可能为1" , 127 表示"确定为1"等。在足够次数的迭代(这取决于是否满足所有的 奇偶校验或者是否达到了最大迭代次数)之后,可以基于所存储的符 号值来提供硬判决(即,解码位)。使用软位来对LDPC解码器进行 初始化,所述软位由从编码器接收这些位的传输或存储系统的解调制 器提供。例如,对于每个位,传统的无线接收机的前端将提供对表示 接收到的位/符号的内部模拟电压距离给定门限有多远的整数度量。 在图2中将初始化符号节点n的软位值表示为Ln。代替直接对可能 性进行运算,LDPC解码器通常对所接收到的信息的对数似然比进行 运算,例如对传输'0'的可能性除以传输'l'的可能性的结果的对
数(或者另一种方式对传输'r的可能性除以传输'o'的可能性
<formula>formula see original document page 12</formula>该方程可以使用传输系统的知识来'求解'。例如,在简单的
传输系统中,将要传输的位被映射为功率相等的两个值(例如,被表
示为-H和-l)中的一个(例如,将二进制位"0"映射为+ 1,并将二
进制位"1"映射为-l)。可以将编码器和解码器之间的传输信道表
示为高斯信道(加入了高斯噪声)。进一步假设传输"1"或"0"的
可能性相等,则
尸f。" ! ,l力 > 丄丄i (X) = log = i
其中,r为所接收到的位的值,并且一是噪声方差。 本发明所使用的LDPC解码是对数域中的"基于置信传播"(基 于BP)的算法(基于LLR-BP的),其中LLR表示对数似然比。如 2005年J. Chen等在IEEE Transactions on Communications的巻53的 第1288-1299页发表的"Reduced complexity decoding of LDPC codes" 中所述,该算法可以基于双曲正切(tanh)函数、加拉格(Gallager) 方法、雅可比(Jacobian)变换、具有最小函数的近似BP、标准BP、 偏移BP或其组合。下文中将这种算法称为基于LLR-BP的算法。这种 算法的一种优选的形式是标准的最小和LDPC解码算法。该算法实现 了与更一般的置信传播(BP)解码所能实现的性能级别非常接近的性 能级别,或者有时甚至超出了更一般的置信传播(BP)解码所能实现 的性能级别,同时提供了显著的硬件优势。下文给出的详细描述基于 标准的最小和算法,应该理解的是其构思同样适用于置信传播算法的 其他形式。
图的顶点(V)的集合为N个符号节点的集合与M个奇偶校验 节点的集合的并集。Hmn=l时,边缘(E)的集合包含所有的边缘(m, n)。传统的LDPC算法的迭代包括从符号节点(N)经由边缘(E) 发送至校验节点(M)的信息,以及从校验节点(M)经由边缘(E) 发送至符号节点(N)的信息。所述符号节点将由索引n指示,而所 述校验节点由索引m指示。
对于最小和算法的给定的迭代i,定义如下变量(该消息也如图 2所示)-Ln,输入至符号节点n的x位带符号的输入信息。例如,如果 将BPSK调制用于传输编码字,则Ln如下
丄 =% (1)
其中,凡为已接收的BPSK符号值,并且^为噪声方差。应该理 解的是,可以使用任意适合的调制技术。
-义',,。,,在第i次迭代中从符号节点n发送至校验节点m的消息。 该消息也被称为"符号消息"。通常,该符号消息取决于符号节点n 所接收的原始值(Ln)以及从连接的校验节点所接收到的更新消息。 因此,在第一次迭代中,仅发送U作为符号消息。来自校验节点的更 新信息被表示为A,。在传统的LDPC解码中,义'腦可以被选择为
. S八',:1,, (2)
应该注iT1f误方程中,针对符号节点n连接的所有校验节点m 求和(M (n)),而不针对没有消息发送至的校验节点m。这避免 了不稳定性。还应该注意,更新消息A'":来自前一次迭代i-l。如下所 述,这不是严格的要求。
-A,,在第i次迭代中从校验节点m发送至符号节点n的消息。 该消息还可以被称为^校验节点消息'。该消息取决于校验节点m 所接收I lj的符号消息。该消息可以被初始化为
A0 =0
"扁 v
优选地,该消息的更新基于校验节点所接收到的所有符号消息, 即来自连接至校验节点m的所有符号节点(N (m)),除正要将校 验节点消息发送至的符号节点n之外。基于只根据当前迭代开始时的 信息值的更新,并通过使用最小和算法得出
A細 (T(M义',)})* *,〗} (3)
其中,XOR被定义为布尔异或函数的等效符号,即XOR(-,-) =+。应该注意,a为校正因子,其是标准的最小和算法已知的。
-义 ,解码器的输出消息。不同的是,在义"j的情况中,解码器 的输出消息义 通常使用符号节点n中所有可用的信息,并且仅在最后 一次迭代I中需要。
!>' '" (4)
14在上述给定公式中,迭代i中的解码静态地基于前一次迭代i-1
的最后获得的信息。这种迭代形式可以被看作是雅可比(Jacobi)迭 代。该算法可以被修改为包括高斯一塞德尔(Gauss-Seidel)迭代(一 种被称为"交错解码"、"turbo解码LDPC"、"置乱式解码"以 及"分级解码"的技术)。在该形式的LDPC解码中,解码不是静态 地基于前一迭代最后所获得的信息,而是立即使用当前迭代i中所获 得的信息。为此,使用LDPC的校验节点中心处理。使用了变量《, 其由U和校验节点与符号节点之间的最新消息构成
me〖/(/7,/") m e7 (w,m) 、 乂
在该方程中,集合t/(",m)cMO)涉及在校验节点m进行处理之 前在当前迭代i中已更新了的消息,并且i 0,m)^M(")WO,w)为剩余 的还未更新的消息的集合。对于雅可比(Jacobi)迭代,f/(",《7) = (D, 并且对于高斯一塞德尔(Gauss-Seidel) f/(",m),则定义如下
(1>匚t/(w,m。 c f/(w,w2) c:... c C/(w,w,) ( 6)
该方程允许在几个校验节点中并行进行更新。在第一循环中更 新了的校验节点被称为mp在第二循环中更新了的节点被称为m2, 就以此类推。通常,由于会产生存储器的冲突,因此并非所有校验节 点都可以并行进行更新。调度表为并行校验循环分配校验节点。
义吣的值由如下方程给出
《,,=义;,(气)—A'i (7) 并且在当前校验节点mx中计算A"之后,A被更新为
义:,(附,+1)=义^+八' (8)
因此在该方程中,^+,为前一循环校验节点mx (或者被并行处理 的校验节点的集合)被处理之后被处理的校验节点(或者被并行处理 的校验节点的集合)。图3示出了分为两个主要组来执行的迭代i。在 第一组中,对校验节点CN-l至CN-3进行处理(形成集合iTM),并且 在相同迭代的下一组中,对剩余的校验节点CN-4至CN-6进行处理(形 成集合m2)。
在当今的通信标准中标准化了的LDPC编码(诸如DVB-S2、802.lln、 802.16e、 DMB-T以及STiMi)均包含准循环结构。这表示描述符号节点与校验节点(即,N (m)与M (n))之间的互连关系的H矩阵由多个循环矩阵构成。这些循环矩阵包括旋转一定角度的零矩阵或单位矩阵。在一些标准中,在一个循环矩阵中存在多条对角线。在DVB-S2中,LDPC码包括64800位,对于1/2的码速率来说,其一半为系统位(输入至编码器的原始输入位),且其另一半为奇偶位。使用总数为32400个奇偶方程,产生具有64800列和32400行的H矩阵。该矩阵再被分为多个360X360大小的分组(循环矩阵)。图4示出了循环矩阵H矩阵的示例结构。在该示例中,循环矩阵仅为4X4的分组。循环矩阵400为单位矩阵。循环矩阵410为向右旋转1个位置所得的矩阵。循环矩阵420为向右旋转三个位置所得的矩阵。当然,向右旋转也可被看作是向左旋转。利用循环矩阵构建H矩阵的优点在于可以将属于一个(子)循环矩阵的所有数据存储于存储器的一行,并且可以在一个时钟循环中取回,并且可以利用旋转将其发送至各校正数据路径,其中数据路径执行由校验节点表示的至少部分处理。图5A和图5B示出了并行校验循环矩阵的行的情况。由相应的数据路径对矩阵的每行进行校验。在图5所示的示例中,循环矩阵具有4行,因此优选地利用各数据路径并行地对4个方程进行校验。图5A示出了迭代开始时符号节点存储值a至z。第一方程(等于第一数据路径DP-1)应该使用a、 f以及z(在该示例中,忽略了由…表示的中间循环矩阵)来对符号节点进行校验。第二方程应该校验b、 g、 w;第三方程应该校验c、 h、 x,以及第四方程应该校验d、 e、 y。图5B示出了如何在存储器Mem中存储符号值,其中存储器中的行为循环矩阵的大小。在该示例中,每个连续行存储对应于符号节点值的元素。所谓的桶形移位器BS从存储器中读取行,并且其中适当地旋转行中的元素。在该示例中,元素a至d对应于第一循环矩阵,其为单位矩阵。无需旋转。下一组元素e至h对应于第二循环矩阵。该矩阵是向右旋转一个位置的单对角线的矩阵。通过执行相反的旋转R1 (即,向左旋转一个位置,其等于向右旋转三个位置),将要由第一数据路径操作的元素也正好位于第一 "列"中。类似地,最后一组元素w至z对应于向右旋转三个位置的具有单对角线的最后一个循环矩阵。通过将元素向左旋转三个位置(或向右旋转一个位置),将要由第一数据路径操作的最后一组元素此时也再次位于第一 "列"中。因此,可以使用通过桶形移位器产生的第一列来加载第一数据路径DP-1。第二列自动地产生用于第二数据路径DP-2的元素,以此类推。已知桶形移位器本身可以用于旋转元素并向各数据路径提供期望的输出。在1992年2月由G.M.Tharakan与S.M. Kang发表于IEEE Journal of solid-state circuits的巻21No.2的"A New Design of a Fast Barrel Switch Network"中也示出了桶形移位器的示例。还可以使用除图5B中所示之外的其他排列。应该理解的是,相同的构思也适用于使用每行和每列具有相同数量的1元素的子矩阵来代替循环矩阵的使用。代替执行旋转,需要执行稍微更复杂的置换。执行该置换的单元可以被看作是置乱装置。下文将集中对循环矩阵进行描述,并将置乱装置称作桶形移位器。还应该理解的是,多对角线的循环矩阵可以被看作是每行和每列具有相同数量的多个非零元素的特殊形式的子矩阵。针对循环矩阵将详细地描述根据本发明的结构,但是该结构可以以相同的方式用于更一般的情况。
如图6所示,传统的LDPC解码器的结构核心由数据路径形成。如上所述,通过从来自存储那些值的第一存储器中的连续到达的义:(附;u中减去A'J,来形成Km、义:,j。 lj被用于计算如图6中示为610的方程(3)。当必须针对所有的参与者来计算除自身之外的所有值中的最小值时,方程组仅有两个输出值总最小值以及除1以外的(one-but)最小值。该最小值的位置(即,给出最小值的参与者的身份)也被存储。对这两个值的计算也被称为"运行向量计算",并且该向量被表示为Am。对各A^的计算是对该向量的解压縮。如方框630所示即为运行向量计算以及解压縮。这种压縮/解压縮本身以最小和算法最为人所知。与计算A^同时,将义 '5存储于缓冲器中,优选地存储于FIFO 620中,以备稍后使用。在下一个Km循环期间,对下一个奇偶校验方程重复该操作,同时针对当前的奇偶校验方程,利用上述解压縮来计算各A:。将方框630中的A:与来自FIFO 620的^,"相加,得到新的义U附)(方程7)。因此,数据路径产生一个奇偶方程的&,义j,
17同时接收该^ 义^以用于下一方程。所述数据路径每个时钟周期可以处理一条校验节点与符号节点之间的连接。为了避免n严n2时在写入^之
前读取义,71,奇偶方程的顺序必须被静态地调度。当没有实现该静态调度时,必须插入空操作,这将导致较低的吞吐量。如上所述,大多数L D P C编码由循环矩阵结构构成,从而使得这些奇偶方程可以被同时计算。当编码的循环矩阵大小等于数据路径的数量并且在循环矩阵中最多存在一条对角线时,解码器可以计算多个奇偶校验方程而不产生存储器的冲突。
图7示出了用于最小和算法的图6中的方框630的常规细节。方框710示出了施加与输入相乘的校正因子",如方程(3)所示。方框730示出了运行向量计算。方框740示出了解压縮。方框720示出了饱和函数,其将方框710的输出范围减小到预定范围,通常为8位。所述饱和处理可以以任意适当的方法实现,诸如限幅/舍去或縮放等。这些均为已知。
图8示出了包括D条并行数据路径DP-0至DP-D-1的传统的顶层结构,其中每条数据路径对应于图6中所示并在图7中详细说明的数据路径。在该结构中,第一存储器义-men存储义 值,示为存储器"AMemO"至"A MemD-l"的第二存储器存储未压縮的A , 值。在该示例中,存储器"A MemO"存储值A。"、 A仏、八2/) 等;存储器"A Mem1"存储值A^、 A
所提出的结构的(存储)效率是通过使用发送到/来自数据路径的
数据集总存在于存储器中的一个字中的特性来实现的。当使用中所述的技术时,这些循环矩阵被分割为多个较小
的子循环矩阵,为此,对角特性占主导。
对于大多数标准来说,LDPC解码器所需的最大部分的硅面积在
第二存储器中被占据,所述第二存储器包括A存储器。由于存储于这些
存储器中的值仅包含方程的最小值或除1以外的最小值,因此,这些
值可以被如上所述进行压縮。可实现的压縮因子为一 "!—一——,其中
2*& + log (K)
b为存储值所需的位数,并且K为方程中参与者的数量。当K等于30时,该压縮因子约为10。图9示出了为了利用压縮的A存储而对数据路径进行的改变。图9是图6和图7的组合,其中此处A存储器以压縮形式存储A","值。这可以以如下方式在图9中看出通过在解压縮方框740之前导出将要被存储于存储器640中的值。为了能够使用压縮的存储值,存储之后使用另一解压縮方框910。
但是,使用压縮的A存储需要注意以下几个方面-八存储器的总的存储容量取决于一个标准所需的所有编码。例如,DVB-S2具有12种规定速率,其中K的范围为4至30。需要被存储于存储器中的向量的数量根据每种速率而不同。当DVB-S2中所使用的速率为10时,这表示当假设b^5时,总的压縮因子为3.4。
-代替在A存储器的一个字中写入2 +logs (K)位,可以使用K个循环来进行读和写,这以附加逻辑为代价,增大了存储器的面积利用率。
—当以其中可用两端口存储器的FPGA技术为目标且高度已经固定时,A's的压缩不具有任何优势。
-当将要处理的"子层"的数量相当低时,压縮存储器的高度也可能很低,因此通过压縮几乎不能实现面积的优点。
图8中所示的结构示出了在前向路径中使用桶形移位器BS-1并且在向后的路径中使用桶形移位器BS-2。 BS-1从地址产生器"Addr gen"接收旋转指令。这些指令(或者是其反向形式)还被存储于连接BS-1与BS-2的FIFO中,从而使得BS-2在适当数量的循环后可以对序列的相同元素执行与BS-1所实现的旋转相反的旋转。该结构还可以通过省略反向路径中的桶形移位器BS-2进行进一步优化。在这种结构中,前向路径中的桶形移位器BS-1必须对数据被回转写入第一存储器"义-men"的事实进行补偿。本文没有单独示出单个桶形移位器的结构。图8中所示的1/0控制器"10 Contr"和地址产生器"Addr gen"可以被适当地编程以控制桶形移位器BS-1。本领域技术人员对此已知。
以上所给出的结构对于单对角线循环矩阵来说是有效的。该结构导出如下计算义腳,=^( o—八'i
计算A;,'
《( 。=、+八'",,
例如,当在相同循环矩阵中符号节点n连接至两个校验节点时
(即,双对角线),则发生以下情况
A,=疋(附,)—八'二=丄 +八'二
义,=疋( =4+<
计算A,和A,
义"(附2)=义,+八'",卢=丄 +八'》,, +八'"—'二
^ (附3)=义,+ A', = 4 +《: + A, #丄 + A, + 乂,2,'
换句话说,A,被之前的A:覆盖。
图10示出了根据本发明的LDPC解码器结构的基本实现。该LDPC解码器包括第一存储器1005,用于针对每个符号节点n存储LDPC码的相应符号的各符号值义 的表示。假设LDPC码的符号被从0至N-l连续编号,则符号节点n存储第n个符号。该LDPC解码器还包括第二存储器1015,用于存储各校验节点消息A^的表示。在该示例中,第二存储器1015被再分为如图8所示的多个存储器,优选地被再分为多个FIFO存储器。该LDPC解码器还包括第一计算装置1010,用于针对下一次迭代根据存储于第一存储器1005中的相应符号值的表示以及来前 一 迭代的校验节点消息A , 来计算符号消息。在实施例中,第一计算装置1010根据以上所给出的方程(7)来计算《 ,八=。对于每条数据路径0至D-1,对各个不同的符号节点执行该计算。D个计算并行执行。因此,处理第一组节点()至D-1,第二组节点为D至2D-1,以此类推。因此,第一计算装置1010被布置为并行执行D个减法。该LDPC解码器还包括桶形移位器1030,用于从第一计算装置1010获得以第一顺序排列的符号消息,并且根据循环矩阵的旋转来以不同顺序提供该符号消息。 一般而言,所述桶形移位器1030的原理可以与上述参考图5B所述的相同,其中可以根据符号节点的顺序来接收所述符号消息,并且通过执行与单位矩阵旋转为相
20关对角矩阵反向的旋转来重新布置所述符号消息的顺序,并且最终沿列方向发送该符号消息。桶形移位器的任务是简化由循环矩阵定义的顺序的改变。
所述LDPC解码器还包括第二计算装置,用于根据LLR-BP (对数似然比置信传播)算法来计算校验节点消息a,,并且用于将计算所得的校验节点消息的表示存储于第二存储器1015中。该计算取决于相应校验节点m从桶形移位器1030接收到的符号消息义 ,。第二计算装置所执行的计算中的至少一部分在桶形移位器1030之后的数据路径DP-0至DP-D-1中执行,因此处于旋转域中。在实施例中,使用最小和算法,第二计算装置根据方程(3)计算
a'細)》* "* £: 〗}
所述LDPC解码器还包括第三计算装置1020,用于根据第一和第二计算装置的输出来更新第一存储器中的符号值的表示。在优选实施例中,第三计算装置1020根据方程(8 )执行如下计算
义:,(附.丫+1)=义腦,+八' ',。
与图8所示的已知结构的主要区别在于疋(伤)-a'二的计算是在"线性域"中进行的,即在桶形移位器1030之前。同样在桶形移位器之前(即在线性域中)执行义皿在FIFO 1040中的存储以及加法4,+a,以获得人。
在根据本发明的实施例中,将符号消息的表示以如上所述的预定顺序存储于第一存储器中。所述LDPC解码器还包括布置在第二计算装置和第三计算装置1020之间的另一桶形移位器1035,用于以与所述预定顺序对应的顺序提供校验节点消息。如上所述,反向路径中的桶形移位器1035对第一存储器中使用的原始顺序进行重建。
在如图11所示的另一个实施例中,LLR-BP算法基于最小和算法,并且LDPC编码器包括校正装置以及饱和装置,其中校正装置用于使符号消息值乘以校正因子a,饱和装置用于将值限制于预定范围。所述校正装置如图7中的方框710所示,饱和装置如方框720所示。应该理解的是,首先校正在饱和之前执行(校正也可以减小值的范围)。如图11所示,方框1110所示的校正装置于饱和装置的组合被布置在第一计算装置与桶形移位器之间。这导致其上可以实现LDPC编码器
的集成电路的不同的面积成本通过在桶形移位器1030之前乘以《并
执行饱和处理,桶形移位器1030就可以具有1至3位的A,s的位宽, 其小于其他情况下的入的宽度。应该注意的是,存储该符号需要一个 附加的1位FIFO。图12中的方框1230示出了该1位FIFO。但是,当 通过桶形移位器来传送异或结果(xor-total)并且在紧邻义存储器1005 之前的加法器中执行异或操作时,则可以优化去掉l位FIFO。
在图ll所示的优选实施例中,由第二计算装置执行的数据路径非 常简单,如图12所示。方框1210示出了运行向量计算,其原理与图7 中的方框730所示的相同。方框1220示出了向量解压縮,其原理与图 7中的方框740所示的相同。方框1230示出了用于存储符号的1位 FIFO。
图10和图11所示的结构可以被修改为非常易于处理多对角线的 冲突。在这种实施例中,至少一个循环矩阵是具有多条对角线的矩阵, 其中每条对角线是通过将单位矩阵旋转数量各不相同的位置形成的。
此时,第一计算装置ioio被布置用于根据相关校验节点消息来计算对
应于多对角线循环矩阵的符号消息《,,,其中,每个相关校验节点消息 对应于循环矩阵中的多条对角线中相应的一条对角线。因此,如果循
环矩阵具有两条对角线,则第一计算装置分别发出两个义:,j;如果循 环矩阵具有三条对角线,则第一计算装置分别发出三个(j,以此类
推。优选地,第一计算装置被布置用于通过在每次迭代中将相关校验 节点消息A,中相应的一个与计算结果结合来迭代地计算与单个符号 节点n相关的符号消息(,,。图13示出了该迭代布置。如在之前的结构 中所述,FIFO 1040可以存储《,,并且通过在方框1020中将A',,v,与A;+| 相加来计算新的《。在双对角线的情况下,方框1010两次减去校验节 点消息A,和A^。接着,FIFO 1040存储《-A:-A' -乙 。通过在方 框1020中分别加上新的A "和A +,"来计算新的《。例如,假设符号节 点n连接至相同循环矩阵中的两个校验节点l和4 (即,双对角线), 则从第一存储器1005中读出的如下值2 =4+Aln+A4 。此后,使用 两个减法器在方框1010中减去第一A^。输出丄"+A心,被馈送至桶形移位器1030,并且还在FIFO 1040中存储相同的值。在第二循环中,通 过两个减法器都减去A4 。至桶形移位器的数据路径仍被馈送 人-、+A,n+A^,因此,利用减法器减去A^后,向桶形移位器提供 丄n+八^ (当然,可选地在校正与饱和处理之后)。通过方框1010中的 多路复用器的第二路径对该循环中的另一减法器进行馈送,并且馈送 I +A4 。减去A一,则导致存储于FIFO 1040中的丄 。应该注意的是, 在这种情况下必须实现1位FIFO。
图8、图10、图11以及图13所示的结构使用FIFO来存储A,消 息。如上所述,使用压縮的A存储可以节约面积。为了在根据本发明的 结构中实现该目的,如图14所示,将符号与幅值分割开。在返回桶形 移位器1035之后将符号抽出并且将其存储于缓冲器(优选为FIFO) 1420中。对于幅值,与图9中一样,从数据路径抽出向量并将其存储 于缓冲器(优选为FIFO) 1410中。解压单元910类似于图9所示的解 压单元。增加第三桶形移位器1430以执行与桶形移位器1035相同的 功能。
应该理解的是,可以在硬件中实现本发明,也可以在软件中实现 本发明,例如可以在数字信号处理器(DSP)或优化的VLIW处理器上 实现本发明。对于软件实现,附图中所描述的方框可以被视作表示功 能性软件单元。因此,本发明还延伸至计算机程序,尤其是用于实践 本发明的载体上或载体中的计算机程序。所述程序可以为源代码、目 标代码、源代码与目标代码中间的代码(诸如部分地被编译了的形式) 的形式,或者为适用于在根据本发明的方法的实现中使用的任何其他 代码的形式。所述载体可以是可以携带所述程序的任何实体或装置。 例如,所述载体可以包括诸如ROM之类的存储媒介(例如,CD ROM 或半导体ROM)或磁记录媒介(例如,软磁盘或硬盘)。进一步地, 所述载体可以为可传输载体,诸如电信号或光信号,这些信号可以通 过电缆或光缆或者可以通过无线或其他装置来传输。当在这种信号中 实现所述程序时,所述载体可以由这种线缆或者其他装置或设备构成。 可替换地,所述载体可以为其中嵌入有所述程序的集成电路,该集成 电路用于执行相关方法或用于实现相关方法中的性能。应该注意的是,上述实施例说明但不限制本发明,并且本领域技 术人员在不脱离所附权利要求的范围的情况下可以设计许多替换实施 例。在权利要求中,括号中的任意参考符号不应被理解为对权利要求 的限制。词语"包括"及其结合的使用不排除权利要求中所述之外的 元件或步骤的存在。元件之前的冠词"一"或"一个"不排除多个这 种元件的存在。本发明可以通过包括若干不同元件的硬件来实现,也 可以通过可适当编程的计算机实现。在列举了几个装置的装置权利要 求中,这些装置中的几个可以由同一硬件实现。在相互不同的从属权 利要求中所限定的具体方法不表示他们的组合不能用于获得优势。
2权利要求
1.一种LDPC解码器,用于迭代地对加罗瓦域上的LDPC码进行解码,其中,所述LDPC码由预定的M×N的奇偶校验矩阵H表示,所述奇偶校验矩阵H由多个子矩阵构成,其中每个子矩阵为零矩阵或者为每行和每列均具有相同数量的非零元素的矩阵;所述LDPC解码器基于对数似然比置信传播算法,以下称其为LLR-BP算法,其表示将符号消息λnm从相应符号节点n(0<=n<N)传递至所连接的校验节点m(0<=m<M),以及将校验节点消息Λmn从相应校验节点m传递至所连接的符号节点n;符号节点与校验节点之间的连接由奇偶校验矩阵H来限定;所述LDPC解码器包括-第一存储器(1005),用于针对每个符号节点存储LDPC码的相应符号的各符号值的表示;-第二存储器(1015),用于存储各所述校验节点消息Λmn的表示;-第一计算装置(1010),用于根据存储于所述第一存储器的相应符号值的表示以及前一迭代的校验节点消息来计算下一个迭代符号消息λmn;-置乱装置(1030),用于从所述第一计算装置(1010)接收以第一顺序排列的符号消息,并且根据相应子矩阵中非零元素的位置来以不同顺序提供所述符号消息;-第二计算装置(DP-0,DP-1,DP-D-1),用于根据LLR-BP算法来计算校验节点消息,以及用于将计算所得的校验节点消息存储于第二存储器中;该计算依赖于由各相应校验节点从所述桶形移位器接收到的符号消息;以及-第三计算装置(1020),用于根据所述第一计算装置和所述第二计算装置的输出来更新所述第一存储器中的符号值的表示。
2. 如权利要求1所述的LDPC解码器,其中至少一个子矩阵是 每行和每列均具有至少两个非零元素的矩阵,以下称其为多元矩阵;所述第一计算装置被布置用于根据相关校验节点消息来计算对应于 多元矩阵的符号消息《 ,,其中,每个所述相关校验节点消息对应于 多元矩阵中的非零元素中的相应一个。
3. 如权利要求2所述的LDPC解码器,其中所述第一计算装置 被布置为通过在每个迭代中将相关校验节点消息中相应的一个与计 算所得的结果结合来迭代地计算与单个符号节点相关的符号消息。
4. 如权利要求1所述的LDPC解码器,其中LLR-BP算法基于 最小和算法,并且LDPC编码器包括校正装置,用于将符号消息值 乘以校正因子a;以及饱和装置,用于将所述符号消息值限制至预定 范围;所述校正装置与所述饱和装置被布置在所述第一计算装置与所 述置乱装置之间。
5. 如权利要求1所述的LDPC解码器,其中以预定顺序将符号 消息的表示存储于第一存储器中;所述LDPC解码器还包括布置在所 述第二计算装置与所述第三计算装置之间的另一置乱装置,用于以对 应于所述预定顺序的顺序来提供校验节点消息。
6. 如权利要求1所述的LDPC解码器,其中LLR-BP算法基于 最小和算法;所述第二计算装置包括压縮装置,用于对所述校验节点 消息进行压縮并且以压縮的形式将所述校验节点消息存储于所述第 二存储器中;并且所述第一计算装置包括解压縮装置,用于对从所述 第二存储器中读出的所述校验节点消息进行解压縮。
7. 如权利要求1所述的LDPC解码器,其中所述子矩阵是循环 矩阵,其为零矩阵或者为具有至少一条对角线的对角矩阵,并且至少 一个对角矩阵为通过将单位矩阵旋转至少一个位置形成的对角矩阵; 并且所述置乱装置为桶形移位器,用于根据循环矩阵的旋转来改变符 号消息的顺序。
8. —种迭代地对加罗瓦域上的LDPC码进行解码的方法,其中 所述LDPC码由预定的MXN的奇偶校验矩阵H表示,所述奇偶校 验矩阵H由多个子矩阵构成,其中每个子矩阵为零矩阵或者为每行 和每列都具有相同数量的非零元素的矩阵;所述LDPC解码方法基于 对数似然比置信传播算法,下文中称其为LLR-BP算法,其表示将符 号消息^从相应符号节点n (0<=n<N)传递至连接的校验节点m (0<=m<N),以及将校验节点消息A^从相应校验节点m传递至所 连接的符号节点n;符号节点与校验节点之间的连接由奇偶校验矩阵 H来限定;所述LDPC解码方法包括-针对每个符号节点将所述LDPC码的相应符号的各符号值的 表示存储于第一存储器中;-将各校验节点消息A^的表示存储于第二存储器中;-执行第一计算,包括根据存储于所述第一存储器的相应符号 值的表示以及前一迭代的校验节点消息来计算下一个迭代符号消息 义誦;-通过接收以第一顺序排列的由第一计算产生的符号消息,以 及根据相应子矩阵中的非零元素的位置以不同顺序提供所述符号消息来执行置乱操作;-执行第二计算,包括根据LLR-BP算法来计算校验节点消息, 并且将计算所得的校验节点消息存储于所述第二存储器中;该计算依 赖于由相应校验节点从桶形移位器接收到的符号消息;以及-根据所述第一计算和所述第二计算的输出来更新所述第一存 储器中的符号值的表示。
全文摘要
一种基于对数似然比置信传播算法的LDPC解码器,迭代地对由包含多个循环矩阵的奇偶校验矩阵H表示的LDPC码进行解码。第一计算装置(1010),用于根据存储于第一存储器(1005)中的相应符号值的表示以及前一迭代的校验节点消息Λ<sub>mn</sub>来计算下一个迭代符号消息λ<sub>nm</sub>。置乱装置(1030)根据相应子矩阵中非零元素的位置来改变从第一计算装置(1010)所接收到的符号消息的顺序。第二计算装置(DP-0,DP-1,DP-D-1)根据从桶形移位器接收到的符号消息来计算校验节点消息,并且将计算所得的校验节点消息的表示存储于第二存储器(1015)中。第三计算装置(1020)根据第一计算装置和第二计算装置的输出来更新第一存储器中的符号值的表示。采用“交叉式”或“置乱式”LDPC解码原理。一个实施例针对多对角线循环矩阵所设计。
文档编号H03M13/11GK101689865SQ200880023322
公开日2010年3月31日 申请日期2008年7月1日 优先权日2007年7月4日
发明者约翰·迪利森 申请人:Nxp股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1