[go: up one dir, main page]

CN1713530A - LDPC Decoder for Decoding Low Density Parity Check (LDPC) Codewords - Google Patents

LDPC Decoder for Decoding Low Density Parity Check (LDPC) Codewords Download PDF

Info

Publication number
CN1713530A
CN1713530A CN 200510079444 CN200510079444A CN1713530A CN 1713530 A CN1713530 A CN 1713530A CN 200510079444 CN200510079444 CN 200510079444 CN 200510079444 A CN200510079444 A CN 200510079444A CN 1713530 A CN1713530 A CN 1713530A
Authority
CN
China
Prior art keywords
ldpc
check
decoder
message
codeword
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN 200510079444
Other languages
Chinese (zh)
Inventor
西蒙·利辛
艾然·沙龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN1713530A publication Critical patent/CN1713530A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

LDPC decoder for decoding a code word (Y) received from a communication channel as the result of transmitting a Low Density Parity Check (LDPC) code word (b) having a number (N) of code word bits which consists of K information bits and N parity check bits, which comprises: (a) a memory (3) for storing for each codeword bit of the received noisy codeword (Y) a priori estimates (Qv) that said codeword bit has a predetermined value from the received noisy codeword (Y) and from predetermined parameters of the communication channel; (b) generalized check node processing units (5) for calculating iteratively messages on all edges of said bipartite graph according to a serial schedule wherein in each iteration, for each check node (C) of said bipartite graph, for all neighboring variable nodes (V) connected to said check node (C) input messages (QVC) to said check node (C) from said neighboring variable nodes (V) and output messages (RCV) from the check node (C) to said neighboring variable nodes (V) are calculated by means of a message passing computation rule.

Description

解码低密度奇偶校验(LDPC)码字的LDPC解码器LDPC Decoder for Decoding Low Density Parity Check (LDPC) Codewords

技术领域technical field

本发明涉及数据通信领域,具体地,涉及用于纠错和检错的冗余编码。The present invention relates to the field of data communication, in particular, to redundant coding for error correction and error detection.

背景技术Background technique

低密度奇偶校验码(LDPC)是一类线性块码,其对较大的数据传输和存储信道集合提供接近传输容量(near capacity)的性能,同时允许可实现的编码和解码策略。LDPC码首先由Gallager在其1960年博士论文中提出(R.Gallager:“Low-density parity check codes”,IRE变换系列第21-28页,1962年1月)。从实际观点来看,Gallager的工作的最为显著的特征在于:引了迭代解码算法,对此算法他已经示出,当应用于稀疏奇偶校验矩阵时,其能够以相对较低的复杂性来实现显著部分的信道容量。Low-density parity-check codes (LDPCs) are a class of linear block codes that provide near capacity performance for larger sets of data transmission and storage channels, while allowing achievable encoding and decoding strategies. LDPC codes were first proposed by Gallager in his doctoral dissertation in 1960 (R. Gallager: "Low-density parity check codes", IRE Transformation Series pp. 21-28, January 1962). From a practical point of view, the most notable feature of Gallager's work is the citation of an iterative decoding algorithm, for which he has shown that, when applied to sparse parity-check matrices, it is possible to A significant portion of the channel capacity is achieved.

利用包括少量非零条目的稀疏奇偶校验矩阵来定义LDPC码。对于每一个奇偶校验矩阵H,存在相应的二分坦纳图(bipartitle Tannergraph),具有变量节点(V)和校验节点(C)。当奇偶校验矩阵H的元素hij为1时,校验节点C与变量节点V相连。奇偶校验矩阵H包括M行和N列。列数N对应于一个已编码码字b内的码字比特数N。该码字包括K个信息比特和M个奇偶校验比特。在奇偶校验矩阵H内的行数对应于码字中的奇偶校验比特的数量M。在相应的坦纳图中,存在M=N-K个校验节点C,每一个校验等式一个校验节点,并且存在N个变量节点,所述码字的每一个码位有一个变量节点。LDPC codes are defined using a sparse parity check matrix comprising a small number of non-zero entries. For each parity check matrix H, there exists a corresponding bipartite Tannergraph, with variable nodes (V) and check nodes (C). When the element h ij of the parity check matrix H is 1, the check node C is connected to the variable node V. The parity check matrix H includes M rows and N columns. The number N of columns corresponds to the number N of codeword bits within an encoded codeword b. The codeword includes K information bits and M parity bits. The number of rows in the parity check matrix H corresponds to the number M of parity bits in the codeword. In the corresponding Tanner graph, there are M=NK check nodes C, one for each check equation, and N variable nodes, one for each code bit of the codeword.

图1示出了稀疏奇偶校验矩阵H和相应的二分坦纳图的示例。Figure 1 shows an example of a sparse parity-check matrix H and the corresponding bipartite Tanner graph.

利用规则二分图来定义规则(dv,dc)-LDPC码。每一个左侧节点(被称为变量节点并表示为v)发出对相应比特参与其中的每一个奇偶校验的dv边缘。每一个右侧节点(被称为校验节点并表示为c)发出对参与相应的奇偶校验的每一个变量节点v的dc边缘。A regular (d v , d c )-LDPC code is defined using a regular bipartite graph. Each left node (called a variable node and denoted v) emits a d v edge for each parity check in which the corresponding bit participates. Each right node (called a check node and denoted c) emits a d c edge to each variable node v participating in the corresponding parity check.

因此,在二分图中,存在N*dv=M*dc个边缘,并且由以下等式给出了LDPC码的设计速率R:Therefore, in the bipartite graph, there are N* dv =M* dc edges, and the design rate R of the LDPC code is given by the following equation:

RR == KK // NN == 11 -- dd vv dd cc ..

由于奇偶校验可以是相关的,因此,来自整个规则(dv,dc)-LDPC码的给定LDPC码的实际速率R可以更高。Since parity can be correlated, the actual rate R for a given LDPC code from the overall regular (d v , d c )-LDPC code can be higher.

可以将规则LDPC码推广到不规则LDPC码,其比规则LDPC码表现出更好的性能。(λ(χ),ρ(χ))-不规则LDPC码由不规则二分图来表示,其中每一个左和右节点的次数可以是不同的。全体不规则LDPC码由左和右次数分布来定义。Regular LDPC codes can be generalized to irregular LDPC codes, which exhibit better performance than regular LDPC codes. (λ(χ), ρ(χ))-irregular LDPC codes are represented by an irregular bipartite graph, where the degree of each left and right node can be different. The population of irregular LDPC codes is defined by left and right degree distributions.

其中 λ ( x ) = Σ i = 2 d v λ i x i - 1 ρ ( x ) = Σ i = 2 d c ρ i x i - 1 分别是变量和校验节点的次数分布的生成函数,其中λi和ρi是分别属于次数i的变量节点v和校验节点c的边缘的分数,并且dv和dc分别是最大左和右次数,则LDPC码的设计速率R由以下等式给出:in λ ( x ) = Σ i = 2 d v λ i x i - 1 and ρ ( x ) = Σ i = 2 d c ρ i x i - 1 are the generating functions of the degree distributions of variable and check nodes, respectively, where λ i and ρ i are the fractions of the edges of variable node v and check node c belonging to order i respectively, and d v and d c are the maximum left and The right times, then the design rate R of the LDPC code is given by the following equation:

RR == 11 -- ∫∫ 00 11 ρρ (( xx )) dxdx ∫∫ 00 11 λλ (( xx )) dxdx ..

为了产生容量接近LDPC码,可以对次数分布进行优化。In order to generate capacity close to LDPC codes, the order distribution can be optimized.

LDPC码能够利用迭代消息传递解码算法,以相对较低的复杂性来实现显著部分的信道容量。这些算法基于编码的坦纳图表示,其中该解码在如图1所示的坦纳图中理解变量节点V和校验节点C之间的消息传递。LDPC codes can utilize an iterative message passing decoding algorithm to achieve a significant portion of the channel capacity with relatively low complexity. These algorithms are based on Tanner graph representations of encodings, where the decoding understands message passing between variable nodes V and check nodes C in a Tanner graph as shown in FIG. 1 .

利用如图2、3所示的简单的示例最佳地说明了LDPC码及其消息传递解码算法如何工作。How LDPC codes and their message-passing decoding algorithms work is best illustrated with simple examples as shown in Figures 2 and 3.

图2示出了针对LDPC码的简单坦纳图,具有四个变量节点V1、V2、V3、V4和两个校验或约束节点C1、C2。因此,码字的块长N=4且奇偶校验位数M=2。结果,信息位k数为N-M=2。Figure 2 shows a simple Tanner graph for an LDPC code, with four variable nodes V 1 , V 2 , V 3 , V 4 and two check or constraint nodes C 1 , C 2 . Therefore, the block length of the codeword is N=4 and the number of parity check bits M=2. As a result, the number k of information bits is NM=2.

定义为信息位数k和块长度N之间的比率的码率R(R=k/N)在该示例中为1/2。The code rate R (R=k/N), defined as the ratio between the number of information bits k and the block length N, is 1/2 in this example.

在图2中示出了与二分坦纳图相对应的奇偶校验矩阵H。A parity check matrix H corresponding to a bipartite Tanner graph is shown in FIG. 2 .

对于LDPC码,存在诸如以下生成矩阵G:For LDPC codes, there is a generator matrix G such as:

G·HT=                        (1)G H T = (1)

即,生成矩阵G和转置相应奇偶校验矩阵HT的乘积为零。That is, the product of the generator matrix G and the transposed corresponding parity check matrix H T is zero.

图3示出了通过加性白高斯噪声(AWGN)信道相连的两个收发机。LDPC码可以应用于任意可能的通信信道。在数据传输期间,通信信道损坏了所传送的码字,从而使一变为零,或者反之亦然。为了减少比特差错率BER,如图3所示,发射收发机包括LDCP编码器,用于将具有K=2信息位的信息位矢量i与LDPC码的生成矩阵G相乘。在图2的示例中,LDCP编码器输出由该收发机内的调制器所调制的已编码位矢量b。在给定示例中,该调制器将已编码位矢量b的低逻辑值零变换为传输位X=1,而将已编码位矢量b的逻辑高值变换为X=-1。发射收发机通过通信信道将调制后的码字X传送到接收收发机,如图3所示。在给定的示例中,通信信道是具有单边谱噪声密度N=8的二进制输入AWGN信道。Figure 3 shows two transceivers connected by an additive white Gaussian noise (AWGN) channel. LDPC codes can be applied to any possible communication channel. During data transmission, the communication channel corrupts the transmitted codeword, changing ones to zeros, or vice versa. In order to reduce the bit error rate BER, as shown in FIG. 3, the transmitting transceiver includes an LDCP encoder for multiplying an information bit vector i with K=2 information bits by a generator matrix G of an LDPC code. In the example of Figure 2, the LDCP encoder outputs an encoded bit vector b modulated by a modulator within the transceiver. In the given example, the modulator transforms a low logic value zero of the encoded bit vector b into a transmitted bit X=1, and a logic high value of the encoded bit vector b into X=-1. The transmitting transceiver transmits the modulated codeword X to the receiving transceiver through the communication channel, as shown in FIG. 3 . In the given example, the communication channel is a binary input AWGN channel with a one-sided spectral noise density N=8.

接收收发机从具有N值的通信信道中接收码字Y。The receiving transceiver receives a codeword Y from a communication channel having a value N.

通过将噪声添加到传输矢量X上来形成码字Y:The codeword Y is formed by adding noise to the transmitted vector X:

Y=X+噪声                       (2)Y=X+noise (2)

对接收到的码字Y进行解调,并计算接收到的码字比特的对数似然比(LLR)。对于二进制输入AWGN信道,按照如下公式来计算对数似然比LLR:The received codeword Y is demodulated and the log-likelihood ratios (LLRs) of the received codeword bits are calculated. For the binary input AWGN channel, the log likelihood ratio LLR is calculated according to the following formula:

PP jj == lnln (( PrPR (( ythe y jj // xx jj == 11 )) PrPR (( ythe y jj // xx jj == -- 11 )) )) == 44 NN 00 YY jj -- -- -- (( 33 ))

图3示出了针对N0=8的对数似然比,其中每一个接收到的码字值用2来除。对数似然比LLR给出了接收到的码字比特具有预定值的先验估计。FIG. 3 shows the log-likelihood ratios for N 0 =8, where each received codeword value is divided by two. The log-likelihood ratio LLR gives an a priori estimate that the received codeword bits have a predetermined value.

将这些估计转发到用于执行LDPC解码处理的收发机内的LDPC解码器中。These estimates are forwarded into an LDPC decoder within the transceiver for performing the LDPC decoding process.

传统的LDPC解码器采用标准消息传递调度来解码LDPC码,被称为溢出调度(flooding schedule),如在R.Gallager:“Low-densityparity check codes”,IRE变换系列第21-28页,1962年1月中所述。Traditional LDPC decoders use a standard message-passing schedule to decode LDPC codes, known as the flooding schedule, as in R. Gallager: "Low-density parity check codes", IRE Transformation Series pp. 21-28, 1962 described in January.

调度是更新规则,用于执行在坦纳图的节点之间传递消息的次序。根据现有技术状态的传统LDPC解码器采用了诸如基于溢出调度的简明传播算法BP的消息传递过程。A schedule is an update rule that enforces the order in which messages are passed between nodes in a Tanner graph. Conventional LDPC decoders according to the state of the art employ message passing procedures such as the overflow-scheduled based concise propagation algorithm BP.

图4示出了采用根据现有技术状态的溢出调度的简明传播BP过程的流程图。Fig. 4 shows a flowchart of the concise propagation BP process with overflow scheduling according to the state of the art.

图5示出了对于图3的示例,利用如图4所示的标准溢出过程的简明传播BP解码处理。FIG. 5 shows the concise propagation BP decoding process using the standard overflow procedure as shown in FIG. 4 for the example of FIG. 3 .

如在图4中可以看出,对接收到的码字Y进行解调并计算对数似然比LLR。As can be seen in Figure 4, the received codeword Y is demodulated and the log-likelihood ratio LLR is calculated.

在初始化步骤S1中,对于所有校验节点和对于所有变量节点,将从校验节点C到变量节点V的消息Rcv设置为零。此外,利用计算出的先验估计Pv或对数似然比对坦纳图内从变量节点到校验节点的消息Qvc进行初始化。In initialization step S1, the message Rcv from check node C to variable node V is set to zero for all check nodes and for all variable nodes. In addition, the message Q vc from the variable node to the check node in the Tanner diagram is initialized by using the calculated prior estimate P v or the log likelihood ratio.

另外,如图4所示,将迭代计数器通路设置为零。Additionally, as shown in Figure 4, the iteration counter path is set to zero.

在步骤S2中,更新从校验节点到变量节点QVC的消息Rcv。由校验节点处理器来执行该计算,如图7所示。In step S2, the message R cv from the check node to the variable node QVC is updated. This calculation is performed by the check node processor, as shown in FIG. 7 .

可以将由校验节点处理器所执行的计算描述为以下等式:The computation performed by a check node processor can be described as the following equation:

对于所有v∈N(c):For all v ∈ N(c):

其中,in,

Figure A20051007944400103
Figure A20051007944400103

Figure A20051007944400104
Figure A20051007944400104

其中符号(sign)函数定义为where the sign function is defined as

signsign (( xx )) == 00 xx &GreaterEqual;&Greater Equal; 00 11 xx << 00

在步骤S3中,由变量节点处理器来更新从变量节点V到校验节点C的消息QVC,如图8所示。In step S3, the message Q VC from the variable node V to the check node C is updated by the variable node processor, as shown in FIG. 8 .

可以将变量到校验消息QVC的更新描述如下:The updating of variables to the check message Q VC can be described as follows:

QQ VV == PP VV ++ &Sigma;&Sigma; CC &Element;&Element; NN (( vv )) RR CVcv -- -- -- (( 55 ))

对于所有C∈N(v)For all C∈N(v)

QVC=QV-RCV Q VC = Q V -R CV

在步骤S4中,根据符号函数的定义,从QV中计算估计矢量 ,并且通过将奇偶校验矩阵H与计算出的估计矢量 相乘来计算校正子矢量S:In step S4, the estimated vector is calculated from Q V according to the definition of the sign function, and the syndrome vector S is calculated by multiplying the parity check matrix H with the calculated estimated vector :

=sign(Q)                          (6) = sign(Q) (6)

s=H· s = H

在步骤S5中,递增迭代(iteration)计数器iter。In step S5, an iteration counter iter is incremented.

在步骤S6中,校验迭代计数器是否已经达到预定的最大迭代值,即,阈值,或者校正子矢量S是否为零。如果在步骤S6的校验结果为否,则该过程继续进行下一迭代。In step S6, it is checked whether the iteration counter has reached a predetermined maximum iteration value, ie a threshold value, or whether the syndrome vector S is zero. If the result of the check at step S6 is negative, the process continues with the next iteration.

相反,如果步骤S6的校验结果为肯定的,则在步骤S7中校验校正子矢量S是否为零。如果校正子矢量S不为零,则由于已经达到最大迭代次数(解释为解码失败),该迭代已经停止。相应地,LDPC解码器输出表示解码失败的信号。另一方面,如果校正子矢量S为零,则解码成功,即解码处理已经收敛。在这种情况下,LDPC解码器输出最后计算出的估计矢量 ,作为正确的解码码字。On the contrary, if the check result of step S6 is affirmative, it is checked in step S7 whether the syndrome vector S is zero. If the syndrome vector S is non-zero, the iteration has stopped because the maximum number of iterations has been reached (interpreted as a decoding failure). Accordingly, the LDPC decoder outputs a signal indicating failure of decoding. On the other hand, if the syndrome vector S is zero, the decoding is successful, ie the decoding process has converged. In this case, the LDPC decoder outputs the final calculated estimated vector as the correct decoded codeword.

图5示出了直到解码器收敛为止、在每一次迭代之后的计算出的校验到变量消息RCV和变量到校验消息QVCFig. 5 shows the calculated check-to-variable message R CV and variable-to-check message Q VC after each iteration until the decoder converges.

对于图3的给出示例,接收收发机的LDPC解码器输出估计矢量 =(1010)T,并且指示该解码已经成功执行。注意,已解码估计矢量 对应于发射收发机内的LDPC编码器的输出。For the given example of Fig. 3, the LDPC decoder of the receiving transceiver outputs the estimated vector φ = (1010) T and indicates that the decoding has been performed successfully. Note that the decoded estimated vector φ corresponds to the output of the LDPC encoder within the transceiver.

图6示出了采用简明传播BP解码算法并使用根据现有技术状态的标准溢出调度的传统LDPC解码器的方框图。Fig. 6 shows a block diagram of a conventional LDPC decoder employing the concise propagation BP decoding algorithm and using standard overflow scheduling according to the state of the art.

如图6所示的根据现有技术状态的LDPC解码器通过输入(IN)接收来自解调器的计算出的对数似然比LLR,并且将其临时存储在RAM中,作为初始化值。The LDPC decoder according to the state of the art as shown in FIG. 6 receives the calculated log-likelihood ratio LLR from the demodulator through an input (IN) and temporarily stores it in RAM as an initialization value.

该RAM与多个变量节点处理器相连,如图8所示。变量节点处理器的输出与针对QVC消息设置的另一RAM相连。利用存储了编码的图形结构的ROM来进行QVC随机存取存储器的寻址。该ROM还控制在QVC-RAM的输出侧上的切换单元。切换单元的输出与多个校验节点处理器相连,如图7所示,用于更新校验到变量消息RCV。将更新后的RCV消息存储在另一RAM中,如图6所示。利用存储了编码的图形结构的第二ROM来执行RCV随机存取存储器的寻址。该ROM还控制在RCV-RAM的输出侧上的切换单元。到切换单元的输出与变量节点处理器相连。This RAM is connected to multiple variable node processors, as shown in Figure 8. The output of the variable node processor is connected to another RAM set up for Q VC messages. The addressing of the QVC random access memory is done by means of a ROM which stores the coded graph structure. The ROM also controls the switching unit on the output side of the QVC -RAM. The output of the switching unit is connected to multiple check node processors, as shown in FIG. 7 , for updating the check variable message R CV . Store the updated R CV message in another RAM, as shown in Figure 6. Addressing of the R CV random access memory is performed with a second ROM storing the coded graphics structure. The ROM also controls the switching unit on the output side of the RCV -RAM. The output to the switching unit is connected to the variable node processor.

校验节点处理器执行校验到变量消息RCV的更新,如结合图4所示的流程图中的步骤S2所描述的。将更新后的校验到变量消息RCV临时存储在RCV-RAM中,如图6所示。The check node processor performs the check to the update of the variable message RCV as described in connection with step S2 in the flowchart shown in FIG. 4 . Temporarily store the updated checksum variable message R CV in R CV -RAM, as shown in FIG. 6 .

变量节点处理器执行变量到校验消息QVC的更新,如结合图4所示的流程图的步骤S3所描述的。将更新的变量到校验消息QVC临时存储在QVC-RAM中。The variable node processor performs the updating of variables to the check message Q VC as described in connection with step S3 of the flowchart shown in FIG. 4 . Temporarily store the updated variable to the check message Q VC in Q VC -RAM.

如图6所示的传统LDPC解码器还包括针对由变量节点处理器计算出的输出QV消息的RAM。A conventional LDPC decoder as shown in FIG. 6 also includes RAM for the output QV message computed by the variable node processor.

收敛测试块(block)计算估计 并计算校正子矢量S,如结合图4的流程图的步骤S4所述的。另外,收敛测试块根据步骤S5、S6、S7来执行这些校验,并且指示该解码是否已经成功,即解码器收敛。在该解码成功的情况下,由LDPC解码器输出最后计算出的估计。The convergence test block calculates the estimate ϕ and calculates the syndrome vector S, as described in connection with step S4 of the flowchart of FIG. 4 . In addition, the convergence test block performs these checks according to steps S5, S6, S7 and indicates whether the decoding has been successful, ie the decoder is converged. In the case of successful decoding, the last calculated estimate is output by the LDPC decoder.

采用如图6所示的溢出更新调度的传统LDPC解码器具有多个缺陷。Conventional LDPC decoders employing an overflow update schedule as shown in FIG. 6 have several drawbacks.

直到解码处理已经收敛为止所需的迭代次数相当高。相应地,具有溢出调度的传统LDPC解码器的解码时间较高。当由阈值定义的解码迭代次数有限时,根据现有技术状态的LDPC解码器的性能会发生恶化。The number of iterations required until the decoding process has converged is quite high. Correspondingly, the decoding time of conventional LDPC decoders with overflow scheduling is high. The performance of LDPC decoders according to the state of the art deteriorates when the number of decoding iterations defined by a threshold is limited.

传统LDPC解码方法和如图6所示的相应LDPC解码器的另一缺陷在于:校验解码是否收敛需要单独的收敛测试块来执行收敛测试。如图6所示的传统LDPC解码器的收敛测试块通过将奇偶校验矩阵H与估计矢量 相乘来计算校正子矢量S。Another disadvantage of the traditional LDPC decoding method and the corresponding LDPC decoder shown in FIG. 6 is that: to check whether the decoding is converged, a separate convergence test block is required to perform the convergence test. The convergence test block of the conventional LDPC decoder as shown in Fig. 6 calculates the syndrome vector S by multiplying the parity check matrix H with the estimated vector ϕ .

采用溢出调度的传统LDPC解码方法和如图6所示的相应LDPC解码器的另一缺陷在于:所需存储尺寸较高。如图6所示的LDPC解码器包括四个随机存取存储器(RAM),即,针对输入PV消息的RAM、针对输出QV消息的RAM、针对QVC消息的另一RAM、以及针对RCV消息的最后一个RAM。另外,LDPC解码器包括两个只读存储器(ROM),用于存储坦纳图的结构。Another disadvantage of the traditional LDPC decoding method using overflow scheduling and the corresponding LDPC decoder shown in FIG. 6 is that the required storage size is relatively high. The LDPC decoder shown in FIG. 6 includes four random access memories (RAMs), namely, a RAM for input PV messages, a RAM for output Q V messages, another RAM for Q VC messages, and a RAM for R CV messages . The last RAM of the message. In addition, the LDPC decoder includes two read-only memories (ROMs) for storing the structure of the Tanner diagram.

发明内容Contents of the invention

因此,本发明的目的是提出克服了上述缺陷的LDPC解码器,特别是提出了一种需要少量迭代来解码接收到的码字的LDPC解码器。Therefore, the object of the present invention is to propose an LDPC decoder which overcomes the above-mentioned drawbacks, in particular an LDPC decoder which requires a small number of iterations to decode received codewords.

另外,本发明的另一目的是描述了一种低复杂度的普通编码器/解码器结构,以相同的硬件来实现对各种速率和长度的LDPC码的编码/解码。In addition, another object of the present invention is to describe a low-complexity common encoder/decoder structure to implement encoding/decoding of LDPC codes of various rates and lengths with the same hardware.

通过具有权利要求1和权利要求12所述的特征的LDPC解码器来实现该目的。This object is achieved by an LDPC decoder having the features of claim 1 and claim 12 .

本发明提出了一种作为通过有噪声信道传送具有属于长度(N)低密度奇偶校验码的多个(N)码字比特的码字(b)的结果,对从有噪声通信信道中接收到的有噪声码字(y)进行解码的LDPC解码器,其中针对所述低密度奇偶校验码,设置了(M×N)奇偶校验矩阵H且满足H*bT=0,其中的码字(Y)具有由K个信息位和M个校验位构成的多个(N)码字比特,其中的奇偶校验矩阵H表示包括根据奇偶校验矩阵H的矩阵元素hij、经由边缘与M个校验节点(C)相连的N个变量节点(V)的二分图,The present invention proposes a method for receiving from a noisy communication channel as a result of transmitting a codeword (b) having a number (N) of codeword bits belonging to a length (N) LDPC code over a noisy channel. The LDPC decoder for decoding the noisy codeword (y) obtained, wherein for the low density parity check code, a (M×N) parity check matrix H is set and satisfies H*b T =0, where The codeword (Y) has a plurality of (N) codeword bits composed of K information bits and M check bits, wherein the parity check matrix H represents the matrix element h ij according to the parity check matrix H, via A bipartite graph of N variable nodes (V) whose edges are connected to M check nodes (C),

其中所述LDPC解码器执行以下解码步骤:Wherein said LDPC decoder performs the following decoding steps:

(a)通过所述通信信道来接收有噪声LDPC码字(Y);(a) receiving a noisy LDPC codeword (Y) over said communication channel;

(b)针对所传送的LDPC码字(b)的每一个码字比特(V),接收所述码字比特(V)具有来自接收到的有噪声码字(Y)和来自通信信道的预定参数的预定值的先验估计(Qv);(b) For each codeword bit (V) of the transmitted LDPC codeword (b), the codeword bit (V) is received with predetermined information from the received noisy codeword (Y) and from the communication channel an a priori estimate of the predetermined value of the parameter (Q v );

(c)针对所述二分图的每一个变量节点(V),将对应于码字比特(V)的计算出的先验估计(Qv)存储在存储器中,作为初始化变量节点值;(c) for each variable node (V) of the bipartite graph, the calculated prior estimate ( Qv ) corresponding to the codeword bit (V) is stored in the memory as the initialization variable node value;

(d)将初始化为零的从每一个校验节点(c)到所述二分图的所有变量节点(V)的校验到变量消息(RCV)存储在所述存储器中;(d) storing in said memory a check-to-variable message (R CV ) initialized to zero from each check node (c) to all variable nodes (V) of said bipartite graph;

(e)根据串行调度来迭代计算所述二分图的所有边缘上的消息,其中在每一次迭代中,串行地经过所述二分图的所有校验节点(c),并且针对所述二分图的每一个校验节点(C),执行以下计算:(e) Iteratively calculate messages on all edges of the bipartite graph according to a serial schedule, wherein in each iteration, pass through all check nodes (c) of the bipartite graph serially, and for the bipartite graph Each check node (C) of the graph performs the following calculations:

(e1)针对与所述校验节点(c)相连的所有邻近变量节点(V),从存储器中读取所存储的消息(QV)和所存储的校验到变量消息(RCV);(e1) reading the stored message (Q V ) and the stored check-to-variable message (R CV ) from memory for all adjacent variable nodes (V) connected to said check node (c);

(e2)通过消息传递计算规则,针对与所述校验节点(C)相连的所有邻近变量节点(V),作为从所述存储器中读取的消息(QV)和校验到变量消息(RCV)的函数来计算变量到校验消息(Qvc);(e2) Through the message passing calculation rule, for all adjacent variable nodes (V) connected to the check node (C), as the message (Q V ) read from the memory and the check-to-variable message ( R CV ) function to calculate variable to check message (Q vc );

(e3)通过消息传递计算规则,针对与所述校验节点(C)相连的所有邻近变量节点(V),作为计算出的变量到校验消息(Qvc)的函数,计算更新的校验到变量消息(RCV new);(e3) Compute the updated checksum as a function of the calculated variable to the checksum message (Q vc ) for all adjacent variable nodes (V) connected to said checkpoint (C) by message passing calculation rules to variable message(R CV new );

(e4)通过消息传递计算规则,针对与所述校验节点(C)相连的所有邻近变量节点(V),作为前述的消息(QV)和更新的校验到变量消息(RCV new)的函数,计算更新的后验消息(QV new);(e4) Through the message passing calculation rule, for all adjacent variable nodes (V) connected to the check node (C), as the aforementioned message (Q V ) and the updated check-to-variable message (R CV new ) function to calculate the updated posterior message (Q V new );

(e5)将更新的后验消息(QV new)和更新的校验到变量消息(RCV new)存储回所述存储器中;(e5) storing the updated a posteriori message (Q V new ) and the updated check-to-variable message (R CV new ) back into said memory;

(f)作为存储在所述存储器中的后验消息(Q)的函数来计算已解码码字(b*);(f) computing the decoded codeword (b * ) as a function of the a posteriori message (Q) stored in said memory;

(g)通过校验奇偶校验矩阵与已解码码字的乘积是否为零来校验所述解码是否已经收敛;(g) checking whether the decoding has converged by checking whether the product of the parity check matrix and the decoded codeword is zero;

(h)一旦所述解码已经收敛或者一旦已经达到预定次数的迭代,则输出已解码码字(b*)。(h) outputting a decoded codeword (b * ) once said decoding has converged or once a predetermined number of iterations has been reached.

根据本发明的LDPC解码器的主要优点在于:LDPC解码器收敛大约为迭代次数的一半(如图13A和14A所示)。结果,当在任意实际应用中解码器迭代次数有限时(如图13B和14B所示),采用串行调度的LDPC解码器的性能好于采用溢出调度的LDPC解码器的性能。可选地,对于给定性能和解码器吞吐量,与采用溢出调度的LDPC解码器相比,采用串行调度的LDPC解码器需要大约一半的处理硬件。The main advantage of the LDPC decoder according to the present invention is that the LDPC decoder converges in about half the number of iterations (as shown in Figures 13A and 14A). As a result, when the number of decoder iterations is limited in any practical application (as shown in Figures 13B and 14B), the performance of LDPC decoders with serial scheduling is better than that of LDPC decoders with overflow scheduling. Alternatively, for a given performance and decoder throughput, an LDPC decoder with serial scheduling requires approximately half the processing hardware compared to an LDPC decoder with overflow scheduling.

根据本发明的LDPC解码器的另一优点在于:与根据如图6所示的现有技术状态的相应LDPC解码器的所需存储尺寸相比,根据本发明的LDPC解码器的存储尺寸大约为其尺寸的一半。Another advantage of the LDPC decoder according to the invention is that the memory size of the LDPC decoder according to the invention is approximately half its size.

根据本发明的LDPC解码器所采用的解码方法可以应用于一般化LDPC码,针对其,二分图中的左和右侧节点以任意码来表示约束。The decoding method adopted by the LDPC decoder according to the present invention can be applied to generalized LDPC codes, for which the left and right nodes in the bipartite graph represent constraints with arbitrary codes.

在根据本发明的解码器的优选实施例中,对其应用解码的码是LDPC码,左侧节点表示根据重复节点的约束而右侧节点表示根据奇偶校验节点的约束。在根据本发明的LDPC解码器的优选实施例中,所采用的消息传递计算规则过程是简明传播(BP)计算规则,还公知为求和-乘积过程。In a preferred embodiment of the decoder according to the invention, the codes to which the decoding is applied are LDPC codes, the left nodes representing constraints according to repeated nodes and the right nodes representing constraints according to parity nodes. In a preferred embodiment of the LDPC decoder according to the invention, the message-passing computation rule process employed is the concise propagation (BP) computation rule, also known as the sum-product process.

在图19中示出了一般化校验节点处理器的优选实施例。A preferred embodiment of a generalized check node processor is shown in FIG. 19 .

在可选实施例中,所采用的消息传递计算规则是最小和过程。In an alternative embodiment, the message passing calculation rule employed is a minimum sum procedure.

在根据本发明的用于解码低密度奇偶校验码字的LDPC解码器的优选实施例中,所计算出的先验估计是对数似然比(log-likelihoodratio,LLR)。In a preferred embodiment of the LDPC decoder for decoding low-density parity-check codewords according to the invention, the calculated a priori estimate is a log-likelihood ratio (LLR).

在可选实施例中,所计算出的先验估计是概率。In an alternative embodiment, the calculated a priori estimates are probabilities.

在用于解码低密度奇偶校验码字的LDPC解码器的优选实施例中,当迭代次数达到可调阈值时,指示解码失败。In a preferred embodiment of the LDPC decoder for decoding low density parity-check codewords, a decoding failure is indicated when the number of iterations reaches an adjustable threshold.

附图说明Description of drawings

在下文中,将参考附图来描述用于解码低密度奇偶校验码字的LDPC解码器的优选实施例。Hereinafter, a preferred embodiment of an LDPC decoder for decoding a low density parity check codeword will be described with reference to the accompanying drawings.

图1示出了根据现有技术状态的稀疏奇偶校验矩阵H和相应二分坦纳图的示例;Figure 1 shows an example of a sparse parity-check matrix H and a corresponding bipartite Tanner graph according to the state of the art;

图2示出了根据现有技术状态的二分坦纳图的简单示例;Figure 2 shows a simple example of a bipartite Tanner diagram according to the state of the art;

图3示出了通过数据通信信道相连的收发机,包括LPDC编码器和用于对由如图2所示的二分坦纳图定义的LDPC码进行解码的LDPC解码器。FIG. 3 shows a transceiver connected by a data communication channel, including an LPDC encoder and an LDPC decoder for decoding an LDPC code defined by a bipartite Tanner graph as shown in FIG. 2 .

图4示出了采用根据现有技术状态的溢出调度的简明传播(BP)-LDPC解码器的流程图;Fig. 4 shows a flowchart of a concise propagation (BP)-LDPC decoder employing overflow scheduling according to the state of the art;

图5示出了用于利用根据现有技术状态的标准溢出调度的简明传播LDPC解码器的多个迭代步骤;Figure 5 shows a number of iterative steps for a concise propagation LDPC decoder utilizing standard overflow scheduling according to the state of the art;

图6示出了根据现有技术状态的传统LDPC解码器的方框图;Figure 6 shows a block diagram of a conventional LDPC decoder according to the state of the art;

图7示出了如图6所示的传统LDPC解码器内的检验节点处理器的电路图;FIG. 7 shows a circuit diagram of a check node processor in the conventional LDPC decoder as shown in FIG. 6;

图8示出了如图6所示设置在根据现有技术状态的LDPC解码器内的变量节点处理器的电路图;Figure 8 shows a circuit diagram of a variable node processor arranged in an LDPC decoder according to the state of the art as shown in Figure 6;

图9示出了利用根据本发明的串行调度的简明传播(BP)-LDPC解码器的流程图;Fig. 9 shows the flowchart of the concise propagation (BP)-LDPC decoder utilizing the serial scheduling according to the present invention;

图10示出了针对图2、3的简单示例,根据本发明的LDPC解码方法的多个迭代步骤;Fig. 10 shows for the simple example of Fig. 2, 3, a plurality of iterative steps according to the LDPC decoding method of the present invention;

图11示出了使用根据本发明的串行调度的通用消息传递LDPC解码器的流程图;FIG. 11 shows a flow chart of a generic message passing LDPC decoder using serial scheduling according to the present invention;

图12示出了将利用传统溢出调度的LDPC解码过程与利用根据本发明的高效串行调度的LDPC解码方法进行比较的表格;12 shows a table comparing the LDPC decoding process utilizing conventional overflow scheduling with the LDPC decoding method utilizing efficient serial scheduling according to the present invention;

图13A示出了当解码器限制为10次迭代时,采用溢出调度的传统LDPC解码器和根据本发明的采用串行调度的LDPC解码器所需的平均迭代次数的仿真结果;Fig. 13A shows when the decoder is limited to 10 iterations, the simulation results of the average number of iterations required by the traditional LDPC decoder using overflow scheduling and the LDPC decoder using serial scheduling according to the present invention;

图13B示出了当解码器限制为10次迭代时,根据现有技术状态的采用溢出调度的传统LDPC解码器和根据本发明的采用串行调度的LDPC解码器块差错率的仿真结果;Fig. 13B shows the simulation results of the block error rate of the traditional LDPC decoder using overflow scheduling according to the state of the art and the LDPC decoder using serial scheduling according to the present invention when the decoder is limited to 10 iterations;

图14A示出了当解码器限制为50次迭代时,传统溢出调度LDPC解码器和根据本发明的采用串行调度的LDPC解码器的平均迭代次数的仿真结果;Fig. 14A shows when the decoder is limited to 50 iterations, the simulation results of the average number of iterations of the conventional overflow-scheduled LDPC decoder and the LDPC decoder using serial scheduling according to the present invention;

图14B示出了当解码器限制为50次迭代时,传统溢出调度LDPC解码器与本发明的采用串行调度的LDPC解码器相比的块差错率;Fig. 14B shows that when the decoder is limited to 50 iterations, the block error rate of the traditional overflow-scheduled LDPC decoder compared with the LDPC decoder of the present invention using serial scheduling;

图15a示出了包括根据本发明的LDPC编码器/解码器的收发机;Figure 15a shows a transceiver comprising an LDPC encoder/decoder according to the present invention;

图15b示出了根据本发明的高效消息传递解码器结构;Figure 15b shows an efficient message passing decoder structure according to the present invention;

图16示出了适合于如图15b所示的根据本发明的解码器结构的优选LDPC码的结构的示例;Figure 16 shows an example of the structure of a preferred LDPC code suitable for the decoder structure according to the present invention as shown in Figure 15b;

图17示出了根据本发明第一实施例的LDPC解码器结构;Fig. 17 shows the LDPC decoder structure according to the first embodiment of the present invention;

图18示出了利用图16所示的示例的LDPC码的根据本发明第一实施例的LDPC解码器的实现的特定示例;FIG. 18 shows a specific example of the realization of the LDPC decoder according to the first embodiment of the present invention using the LDPC code of the example shown in FIG. 16;

图19示出了由根据本发明的LDPC解码器所使用的一般化校验节点处理器;Figure 19 shows a generalized check node processor used by an LDPC decoder according to the present invention;

图20示出了在根据本发明实施例的LDPC解码器内设置的一般化校验节点处理器的优选实现;FIG. 20 shows a preferred implementation of a generalized check node processor disposed within an LDPC decoder according to an embodiment of the present invention;

图21示出了根据本发明第二实施例的LDPC解码器的方框图;Fig. 21 shows the block diagram of the LDPC decoder according to the second embodiment of the present invention;

图22示出了在如图21所示的本发明的第二实施例中的LDPC解码器中使用的一般化校验节点处理器的方框图;FIG. 22 shows a block diagram of a generalized check node processor used in the LDPC decoder in the second embodiment of the present invention as shown in FIG. 21;

图23示出了如图22所示的根据第二实施例的LDPC解码器的一般化校验节点处理器中的QR块的实现;Fig. 23 shows the realization of the QR block in the generalized check node processor of the LDPC decoder according to the second embodiment as shown in Fig. 22;

图24示出了在如图22所示的根据本发明第二实施例的LDPC解码器的一般化校验节点处理器内的S块的实现;Fig. 24 shows the implementation of the S block in the generalized check node processor of the LDPC decoder according to the second embodiment of the present invention as shown in Fig. 22;

图25示出了如图15所示的根据本发明的LDPC解码器内的收敛测试块的优选实施例;Fig. 25 shows the preferred embodiment of the convergence test block in the LDPC decoder according to the present invention as shown in Fig. 15;

图26示出了根据本发明的LDPC解码器中的奇偶校验矩阵结构的示例;Fig. 26 shows the example according to the parity check matrix structure in the LDPC decoder of the present invention;

图27示出了根据本发明的消息传递编码器的优选实施例。Figure 27 shows a preferred embodiment of a message passing encoder according to the present invention.

具体实施方式Detailed ways

从图9中可以看到,根据接收到的信道观察值(即指示接收到的码字比特具有预定值的估计值或估计)来执行根据本发明的用于解码低密度奇偶校验码字的方法。根据接收到的码字Y和通信信道的预定参数来计算这些估计。通信信道的预定参数是已知的。在本发明的可选实施例中,如果通信信道的参数是未知的,则可以使用最小和消息传递计算规则,对于其,不需要通信信道的参数。As can be seen from FIG. 9, the method for decoding a low-density parity-check codeword according to the present invention is performed based on received channel observations (i.e., estimates or estimates indicating that the received codeword bits have predetermined values). method. These estimates are computed from the received codeword Y and predetermined parameters of the communication channel. The predetermined parameters of the communication channel are known. In an alternative embodiment of the invention, if the parameters of the communication channel are unknown, the minimum sum message passing calculation rule may be used, for which no parameters of the communication channel are required.

图11中示出了覆盖所有实施例的一般消息传递解码过程。在优选实施例中,这些估计是接收到的比特的对数似然比(LLR)。A general message passing decoding process covering all embodiments is shown in FIG. 11 . In the preferred embodiment, these estimates are log-likelihood ratios (LLRs) of the received bits.

图15b示出了根据本发明的LDPC解码器1A的优选实施例的方框图。LDPC解码器1A具有输入2a,并且根据来自解调器的信道观察值来接收先验估计值。在第一实施例中,先验估计值是计算出的先验对数似然比(LLR)。在可选实施例中,所计算出的估计是先验概率。Fig. 15b shows a block diagram of a preferred embodiment of an LDPC decoder 1A according to the invention. The LDPC decoder 1A has an input 2a and receives an a priori estimate based on channel observations from the demodulator. In a first embodiment, the a priori estimate is a calculated a priori log-likelihood ratio (LLR). In an alternative embodiment, the calculated estimates are a priori probabilities.

如图9所示,在初始化步骤S1中,将计算出的对数似然比或概率作为初始化值临时存储在LDPC解码器1A内的随机存取存储器(RAM)3中。该存储器3通过切换单元4与包括多个一般化校验节点处理器的块相连。所述一般化校验节点处理器5也与随机存取存储器7相连。存储器3和切换单元4受到存储了所使用的LDPC码的二分坦纳图的只读存储器6的控制。一般化校验节点处理器5用于更新坦纳图的节点之间的消息。所述一般化校验节点处理器设置有来自存储器7的RCV消息和通过切换单元4来自存储器3的QV消息。一般化校验节点处理器5计算针对RCV和QV消息的新更新值。将更新后的RCV消息存储回存储器7中,并将更新后的QV消息通过切换单元4存储回存储器3中。As shown in FIG. 9, in the initialization step S1, the calculated log-likelihood ratio or probability is temporarily stored as an initialization value in a random access memory (RAM) 3 within the LDPC decoder 1A. The memory 3 is connected to a block including a plurality of generalized check node processors through a switching unit 4 . The generalized check node processor 5 is also connected to a random access memory 7 . The memory 3 and the switching unit 4 are controlled by a read-only memory 6 storing the bipartite Tanner graph of the LDPC code used. The generalized check node processor 5 is used to update messages between nodes of the Tanner graph. The generalized check node processor is provided with R CV messages from memory 7 and QV messages from memory 3 via switching unit 4 . The generalized check node processor 5 computes new update values for the RCV and QV messages. The updated RCV message is stored back into the memory 7, and the updated QV message is stored back into the memory 3 through the switching unit 4.

在本发明的优选实施例中,针对二分坦纳图的每一个校验节点,一般化校验节点处理器5输出符号位Ssign,由收敛测试块8来校验,校验LDPC解码器1是否已经收敛。在本发明的可选实施例中,可以使用标准收敛测试块,如图9中的步骤S4所示(右边的可选方案)。当收敛测试块8意识到LDPC解码处理已经收敛时,其通过经由LDPC解码器1的输出9输出成功指示信号来对此进行指示。在未能实现收敛的情况下,LDPC解码器1经由输出9来指示这样的失败。在成功的情况下,LDPC解码器1经由数据输出10a输出在最后的迭代步骤中计算出的已解码码字。In a preferred embodiment of the present invention, for each check node of the bipartite Tanner graph, the generalized check node processor 5 outputs the sign bit S sign , which is checked by the convergence test block 8 to check the LDPC decoder 1 whether it has converged. In an alternative embodiment of the present invention, a standard convergence test block may be used, as shown in step S4 in FIG. 9 (the option on the right). When the convergence test block 8 realizes that the LDPC decoding process has converged, it indicates this by outputting a success indication signal via the output 9 of the LDPC decoder 1 . In case convergence has not been achieved, the LDPC decoder 1 indicates such failure via output 9 . In case of success, the LDPC decoder 1 outputs the decoded codeword calculated in the last iteration step via the data output 10a.

图19中更详细地示出了图15b中的一般化校验节点处理器5,其中每一个一般化校验节点处理器5包括图7所示的传统校验节点处理器和另外的提取和求和装置。The generalized check node processors 5 in FIG. 15b are shown in more detail in FIG. 19, where each generalized check node processor 5 includes the traditional check node processor shown in FIG. Summing device.

在图9所示的初始化步骤S1中,利用针对所有校验节点和所有变量节点的值零来对校验到变量消息RCV进行初始化。另外,将迭代计数器i设置为零。还将另一计数器(有效)初始化为零。In the initialization step S1 shown in Fig. 9, the check-to-variable message R CV is initialized with the value zero for all check nodes and all variable nodes. Also, set the iteration counter i to zero. Another counter (valid) is also initialized to zero.

在步骤S2中,根据坦纳图中的迭代计数器i和校验节点M的数量来计算校验节点数c:In step S2, the number of check nodes c is calculated according to the iteration counter i in the Tanner graph and the number of check nodes M:

c=i·mod m                    (7)c=i·mod m (7)

在步骤S3,一般化校验节点处理器5执行与校验节点c相对应的消息更新。在本发明的优选实施例中,该一般化校验节点处理器实现了根据以下等式的BP计算规则:In step S3, the generalized check node processor 5 performs a message update corresponding to the check node c. In a preferred embodiment of the present invention, the generalized check node processor implements the BP calculation rule according to the following equation:

对于所有v∈N(C),其中N(C)是校验节点c的邻近节点的集合,并且其中,For all v ∈ N(C), where N(C) is the set of neighbors of check node c, and where,

Figure A20051007944400192
Figure A20051007944400192

其中,in,

并且其中and among them

Figure A20051007944400194
Figure A20051007944400194

在本发明的可选实施例中,一般化校验节点处理器实现了根据以下等式的最小和计算规则:In an alternative embodiment of the invention, the generalized check node processor implements a minimum sum calculation rule according to the following equation:

QQ VCVC temptemp == QQ VV oldold -- RR CVcv oldold -- -- -- (( 1010 ))

对于所有v∈N(C),For all v ∈ N(C),

RR CVcv newnew == &Pi;&Pi; vv &prime;&prime; &Element;&Element; NN (( cc )) // vv (( -- 11 )) signsign (( QQ vv &prime;&prime; cc temptemp )) minmin vv &prime;&prime; &Element;&Element; NN (( cc )) // vv {{ QQ vv &prime;&prime; cc temptemp }} QQ VV newnew == QQ VCVC temptemp ++ RR CVcv newnew

对于二分坦纳图的每一个校验节点c和对于与所述校验节点c相连的所有邻近节点,通过消息传递计算规则来计算从邻近变量节点v到该校验节点的输入消息QVC和从所述校验节点c到所述邻近变量节点v的输出消息RCV。作为如根据现有技术状态的溢出调度LDPC解码器中所执行的计算从变量节点V到校验节点c的所有消息QVC且然后从校验节点c到变量节点v的所有消息RCV的替代。根据本发明的解码方法针对每一个校验节点c,串行地计算进入校验节点C的所有消息QVC,然后计算从校验节点c中出去的所有消息RCVFor each check node c of the bipartite Tanner graph and for all adjacent nodes connected to the check node c, the input message Q VC from the adjacent variable node v to the check node is calculated by the message passing calculation rule and Output message R CV from said check node c to said adjacent variable node v. As an alternative to computing all messages Q VC from variable node V to check node c and then R CV from check node c to variable node v as performed in an overflow-scheduled LDPC decoder according to the state of the art . For each check node c, the decoding method according to the present invention serially calculates all messages Q VC entering the check node C, and then calculates all messages R CV going out of the check node c.

与其中仅在下一迭代步骤中传播消息的溢出调度相比,根据本发明的串行调度能够即时地传播消息。The serial schedule according to the present invention is able to propagate messages instantaneously compared to an overflow schedule where messages are propagated only in the next iteration step.

消息QVC并未存储在存储器中。而是根据QVC=QV-RCV,从存储的RCV和QV消息中容易地对其进行计算。Message Q VC is not stored in memory. Instead it is easily calculated from the stored R CV and Q V messages according to Q VC =Q V −R CV .

在根据本发明的方法中,能够同时对没有公共邻近变量节点的所有校验节点c进行更新。In the method according to the present invention, all check nodes c that have no common neighboring variable nodes can be updated simultaneously.

在步骤S3已经由校验节点处理器5对这些消息进行更新之后,在步骤S4中递增迭代计数器i。After these messages have been updated by the check node processor 5 in step S3, an iteration counter i is incremented in step S4.

在本发明的一个优选实施例中,在步骤S3中,由校验节点处理器5来计算指示符 指示该校验是否有效。在步骤S4中,如果Ssign=1(校验无效),则对有效计数器进行复位(有效=0)。相反,当该校验有效(Ssign=0)时,在步骤S4中递增有效计数器。In a preferred embodiment of the present invention, in step S3, the check node processor 5 calculates the indicator Indicates whether the checksum is valid. In step S4, if S sign =1 (check is invalid), reset the valid counter (valid=0). On the contrary, when the check is valid (S sign =0), the valid counter is incremented in step S4.

在本发明的另一实施例中,使用标准收敛测试机制,如图16所示,其中在步骤S4中,计算校正子 s=H ,其中 =sign( Q)。In another embodiment of the present invention, a standard convergence testing mechanism is used, as shown in FIG. 16 , wherein in step S4, the syndrome s =H is calculated, where =sign( Q ).

在步骤S5中,校验迭代次数(i/m)是否高于预定最大迭代值(即,阈值),或者有效计数器是否已经达到校验节点m的数量。如果在步骤S5中的校验结果为否定的,则该处理返回到步骤S2。如果步骤S5中的结果为肯定的,则在步骤S6中校验该有效计数器是否等于校验节点的数量M。如果并非如此(即,由于已经达到最大迭代值MaxIter而使迭代已经停止,则LDPC解码器1经由输出9输出失败指示信号。相反,当有效计数器已经达到校验节点M的数量时,该解码成功,并且LDPC解码器1输出最近的估计 ,作为接收到的码字的解码值。In step S5, it is checked whether the number of iterations (i/m) is higher than a predetermined maximum iteration value (ie, threshold), or whether the valid counter has reached the number of check nodes m. If the result of the check in step S5 is negative, the process returns to step S2. If the result in step S5 is positive, it is checked in step S6 whether the validity counter is equal to the number M of check nodes. If this is not the case (i.e. the iteration has stopped because the maximum iteration value MaxIter has been reached, the LDPC decoder 1 outputs a failure indication signal via output 9. Conversely, when the valid counter has reached the number of check nodes M, the decoding is successful , and LDPC decoder 1 outputs the latest estimate as the decoded value of the received codeword.

=Sign(Q) =Sign(Q)

图10示出了对于图2、3的简单示例,由根据本发明的LDPC解码器1利用图9所示的算法执行的简明传播解码过程。Fig. 10 shows, for the simple example of Figs. 2, 3, the concise propagation decoding process performed by the LDPC decoder 1 according to the invention using the algorithm shown in Fig. 9 .

将由解调器P=[-0.7 0.9 -1.65 -0.6]输出的计算出的对数似然比LLR作为解码器输出存储在LDPC解码器1的存储器3中。在初始化步骤S1中,将存储了校验到变量消息RCV的存储器7初始化为零。The calculated log-likelihood ratio LLR output by the demodulator P=[-0.7 0.9-1.65-0.6] is stored in the memory 3 of the LDPC decoder 1 as a decoder output. In an initialization step S1, the memory 7 storing the check-to-variable message R CV is initialized to zero.

在图10的给定示例中,在达到解码器1的收敛之前,LDPC解码器1执行一个附加迭代步骤(迭代1)。对于每一个校验节点c1,c2,为构成所述校验节点c的邻近节点的每一个变量节点V计算或推算变量到校验消息QVC。然后,对于作为所述校验节点c的邻近节点的每一个变量节点,利用解码方法的步骤S3中的上述等式来更新校验到变量消息RCV和先验消息QV,并且分别存储在存储器7和存储器3中。In the given example of FIG. 10 , the LDPC decoder 1 performs one additional iterative step (iteration 1 ) before convergence of the decoder 1 is reached. For each check node c1, c2, a variable is calculated or extrapolated to the check message QVC for each variable node V constituting the neighboring nodes of said check node c. Then, for each variable node that is a neighboring node of the check node c, the above equation in step S3 of the decoding method is used to update the checked variable message R CV and the prior message Q V , and store them in In memory 7 and memory 3.

收敛测试块8根据从一般化校验节点处理器中接收到的符号值Ssign对有效校验进行计数。如果Ssign=0,则校验是有效的。一旦已经对M个连续有效校验进行了计数(M个连续Ssign变量等于0),则确定解码处理已经收敛,并通过LDPC解码器1的端子10来输出实际估计值 =Sign(Q)。The convergence test block 8 counts valid checks according to the sign value S sign received from the generalized check node processor. If S sign =0, the check is valid. Once M consecutive valid checks have been counted (M consecutive S sign variables equal to 0), it is determined that the decoding process has converged and the actual estimated value =Sign(Q) is output via terminal 10 of the LDPC decoder 1 .

可选地,由现有技术状态的溢出解码器所使用的标准收敛测试块还能够用于串行解码器。所述标准收敛测试块在每一次迭代的末尾计算校正子矢量s=HbT,其中b=sign(Q)。如果校正子矢量等于0矢量,则解码器收敛。在给定的示例中,串行解码器在一次迭代之后收敛。Alternatively, the standard convergence test blocks used by state-of-the-art overflow decoders can also be used for serial decoders. The standard convergence test block computes the syndrome vector s=Hb T at the end of each iteration, where b=sign(Q). If the syndrome vector is equal to the 0 vector, the decoder converges. In the given example, the serial decoder converges after one iteration.

通过将图10与图5进行比较,明显地,根据本发明(图10)的解码方法仅需要一次迭代步骤,而使用该溢出调度的传统LPDC解码方法(图5)在解码器已经收敛之前需要两次迭代步骤。By comparing Fig. 10 with Fig. 5, it is clear that the decoding method according to the present invention (Fig. 10) requires only one iterative step, while the conventional LPDC decoding method (Fig. 5) using this overflow schedule requires Two iteration steps.

相应地,根据本发明的LPDC解码方法的一个主要优点在于:根据本发明的LPDC解码器1所需的平均迭代次数大约为使用溢出调度的传统LPDC解码器所需的迭代次数的一半。Accordingly, one of the main advantages of the LPDC decoding method according to the invention is that the average number of iterations required by the LPDC decoder 1 according to the invention is approximately half of that required by conventional LPDC decoders using overflow scheduling.

图13A、图14A示出了针对10次和50次迭代,在高斯信道上针对块长N=2400和不规则的LPDC码的仿真结果。从图13A、14A中显而易见,使用串行调度的根据本发明的LPDC解码器1的所需迭代次数显著低于使用溢出调度的传统LPDC解码器所需的迭代次数。Figures 13A, 14A show the simulation results for block length N=2400 and irregular LPDC codes on a Gaussian channel for 10 and 50 iterations. It is evident from Figs. 13A, 14A that the required number of iterations of the LPDC decoder 1 according to the present invention using serial scheduling is significantly lower than that of conventional LPDC decoders using overflow scheduling.

此外,根据本发明的LPDC解码器1的性能优于使用溢出调度的传统LPDC解码器的性能。图13B、14B示出了针对10次和50次迭代,LPDC解码器1与传统LPDC解码器相比的块差错率BLER的仿真结果。从图13B、14B中可以看到,当允许解码器执行的迭代次数有限时,根据本发明的LPDC解码器1的块差错率BLER性能显著好于使用溢出调度的传统LPDC解码器的块差错率BLER性能。Furthermore, the performance of the LPDC decoder 1 according to the present invention is better than that of conventional LPDC decoders using overflow scheduling. Figures 13B, 14B show the simulation results of the block error rate BLER of LPDC decoder 1 compared with conventional LPDC decoders for 10 and 50 iterations. As can be seen from Figures 13B, 14B, when the number of iterations the decoder is allowed to perform is limited, the BLER performance of the LPDC decoder 1 according to the present invention is significantly better than that of the conventional LPDC decoder using overflow scheduling BLER performance.

如图15b所示的根据本发明的LPDC解码器1的另一优点在于:根据本发明的LPDC解码器1内的存储器3、7的存储尺寸显著低于设置在图6所示的现有技术状态的LPDC解码器内的随机存取存储器(RAM)的存储尺寸(一半存储尺寸)。由于在LPDC解码器1中采用了串行调度,不需要设置针对QVC消息的存储器。由于还将利用消息Pv初始化的相同存储器由于存储消息QV,具有基于串行调度的结构的LPDC解码器1仅需要针对E+N个消息的存储器(而如图6所示的现有技术状态的LPDC解码器需要针对2E+2N个消息的存储器),其中E是码的坦纳图中的边缘数量(通常,对于较好的LPDC码,3N<E<4N)。Another advantage of the LPDC decoder 1 according to the present invention as shown in Figure 15b is that the storage size of the memories 3, 7 in the LPDC decoder 1 according to the present invention is significantly lower than that of the prior art shown in Figure 6 The memory size (half the memory size) of the random access memory (RAM) in the LPDC decoder of the state. Since serial scheduling is employed in LPDC decoder 1, no memory for Q VC messages needs to be provided. Since the same memory initialized with the message P v will also be used to store the message Q V , the LPDC decoder 1 with a structure based on serial scheduling needs only memory for E+N messages (while the prior art as shown in FIG. 6 A stateful LPDC decoder requires memory for 2E+2N messages), where E is the number of edges in the Tanner graph of the code (in general, 3N<E<4N for good LPDC codes).

采用根据本发明的解码方法的LPDC解码器1的另一优点在于:仅需要一个针对所有校验节点c∈C的包含N(C)的一个数据结构。在使用溢出调度的传统LPDC解码器的标准实现中,必须设置两个不同的数据结构,需要由于存储码的二分坦纳图的存储器的两倍大。如果仅利用单个的数据结构来实现使用传统溢出调度的LPDC解码器,则必须将迭代划分为两个不重叠的计算阶段。然而,这导致了硬件的低效并增加了硬件尺寸。Another advantage of the LPDC decoder 1 employing the decoding method according to the invention is that only one data structure containing N(C) is required for all check nodes cεC. In a standard implementation of a conventional LPDC decoder using overflow scheduling, two different data structures have to be set up, requiring twice the memory size due to storing the bipartite Tanner graph of the code. If only a single data structure is utilized to implement an LPDC decoder using conventional overflow scheduling, the iterations must be divided into two non-overlapping computation stages. However, this results in hardware inefficiencies and increases hardware size.

已知的是,可以利用级联的适当次数来设计接近信道容量的LPDC码,即,校验节点c具有恒定或几乎恒定的次数。在这样的情况下,仅变量节点次数是不同的。而针对这样的不规则码的传统溢出LPDC解码器需要更复杂的电路,这是由于需要用于处理变化的输入数的计算单元。即使针对这样的不规则码,根据本发明实现的LPDC解码器保持了相同的电路复杂性。原因在于:采用串行调度的LPDC解码器1A仅需要用于处理恒定数量的输入的校验码计算单元。It is known that an LPDC code close to the channel capacity can be designed with an appropriate number of concatenations, ie check node c has a constant or almost constant number. In such cases, only the variable node degrees are different. Whereas conventional overflow LPDC decoders for such irregular codes require more complex circuitry due to the need for computational units for handling the varying number of inputs. Even for such irregular codes, the LPDC decoder implemented according to the invention maintains the same circuit complexity. The reason is that the LPDC decoder 1A employing serial scheduling only needs a check code calculation unit for processing a constant number of inputs.

LPDC解码器1A与传统LPDC解码器相比的另一优点在于:可以使用更为简单的收敛测试机制。而根据现有技术状态的LPDC解码器必须计算校正子矢量S,LPDC解码器1的指示符Ssign是解码处理的副产品。在根据本发明的LPDC解码器1的传统测试块8中,仅针对M个连续的校验节点,校验变量Ssign的符号是否为正。并且不需要在每一个迭代步骤的末尾执行解码字与奇偶校验矩阵H的相乘,以便校验是否已经达到收敛。Another advantage of LPDC decoder 1A over conventional LPDC decoders is that a simpler convergence testing mechanism can be used. Whereas LPDC decoders according to the state of the art have to compute the syndrome vector S, the indicator S sign of the LPDC decoder 1 is a by-product of the decoding process. In the conventional test block 8 of the LPDC decoder 1 according to the present invention, only for M consecutive check nodes, it is checked whether the sign of the variable S sign is positive. And there is no need to perform the multiplication of the decoded word by the parity check matrix H at the end of each iteration step in order to check whether convergence has been reached.

采用溢出调度的LPDC解码器的迭代可以完全并行化,即,同时更新所有变量和校验节点消息。然而,根据本发明的解码方法是串行的,可以并行地对来自节点集合的消息进行更新。当将校验节点划分为子集从而使子集中的任意两个校验节点不与相同的变量节点V相连时,则可以同时对每一个子集中的校验节点进行更新。The iterations of the LPDC decoder with overflow scheduling can be fully parallelized, ie all variables and check node messages are updated simultaneously. However, the decoding method according to the invention is serial, and the updates from the collection of nodes can be done in parallel. When the check nodes are divided into subsets so that any two check nodes in the subset are not connected to the same variable node V, the check nodes in each subset can be updated at the same time.

图12包括的表格示出了与如根据本发明的LPDC解码方法所采用的高效串行调度策略相比、传统LPDC解码器所使用的溢出调度。Fig. 12 includes a table showing overflow scheduling used by a conventional LPDC decoder compared to an efficient serial scheduling strategy as employed by the LPDC decoding method according to the present invention.

图15a示出了包括根据本发明的LPDC编码器/解码器的收发机。所述收发机包括前向纠错层(FEC层),由如图15a所示的LPDC编码器/解码器来实现。在图15b中更详细地示出了根据本发明的LPDC解码器1A,而在图27中示出了LPDC编码器1B的优选实施例。根据本发明的LPDC编码器/解码器1允许在相同的硬件上执行对各种速率和长度码的编码和解码。在优选实施例中,LPDC编码器/解码器1执行多速率和长度LPDC码。在优选实施例中,根据本发明的LPDC编码器/解码器1可在所述设备的存储器中所存储的不同LDPC码之间切换。LPDC编码器/解码器1经由信号处理单元11和收发机前端12与通信信道13相连。信号处理单元11和收发机前端12在LPDC编码器1B的输出处采用了已编码的码字,用于在给定的通信信道13上传输。另外,信号处理单元11和收发机前端12处理来自给定通信信道13的接收信号,并且向LPDC解码器1A提供传输比特的先验估计。在本发明的优选实施例中,传输比特的先验估计是先验LLR。由收发机经由数据传输信道13将已编码码字传送到远程收发机,该远程收发机通过其LPDC解码器1A对该已编码码字进行解码。Figure 15a shows a transceiver comprising an LPDC encoder/decoder according to the present invention. The transceiver includes a forward error correction layer (FEC layer), implemented by an LPDC encoder/decoder as shown in Figure 15a. An LPDC decoder 1A according to the invention is shown in more detail in FIG. 15b, while a preferred embodiment of an LPDC encoder 1B is shown in FIG. The LPDC encoder/decoder 1 according to the invention allows encoding and decoding of codes of various rates and lengths to be performed on the same hardware. In a preferred embodiment, the LPDC encoder/decoder 1 implements a multi-rate and length LPDC code. In a preferred embodiment, the LPDC encoder/decoder 1 according to the invention is switchable between different LDPC codes stored in the memory of the device. The LPDC encoder/decoder 1 is connected to a communication channel 13 via a signal processing unit 11 and a transceiver front end 12 . Signal processing unit 11 and transceiver front end 12 employ the encoded codeword at the output of LPDC encoder 1B for transmission on a given communication channel 13 . In addition, the signal processing unit 11 and the transceiver front end 12 process the received signal from a given communication channel 13 and provide an a priori estimate of the transmitted bits to the LPDC decoder 1A. In a preferred embodiment of the invention, the a priori estimate of the transmitted bits is an a priori LLR. The encoded codeword is transmitted by the transceiver via the data transmission channel 13 to the remote transceiver, which decodes the encoded codeword by its LPDC decoder 1A.

图15b示出了根据本发明的LPDC解码器1A的方框图。LPDC解码器1A经由输入2A,根据来自解调器的信道观察值来接收先验估计值。或者由先验似然比(LLR)或者由先验概率来形成该先验估计。Fig. 15b shows a block diagram of an LPDC decoder 1A according to the invention. The LPDC decoder 1A receives via input 2A an a priori estimate based on channel observations from the demodulator. The a priori estimate is formed either from a priori likelihood ratios (LLRs) or from a priori probabilities.

将先验估计作为初始化值临时存储在如图15b所示的根据本发明的LPDC解码器1A的随机存取存储器3中。设置QRAM-3来保存QV消息。The a priori estimates are temporarily stored as initialization values in the random access memory 3 of the LPDC decoder 1A according to the invention as shown in Fig. 15b. Set up QRAM-3 to hold Q V messages.

QRAM-3经由切换单元4与包括Z个一般化校验节点处理器5-i的处理块相连。QRAM-3 is connected to a processing block including Z generalized check node processors 5-i via switching unit 4.

根据本发明的串行解码本质上是串行的,然而,可以并行地对校验节点消息的集合进行更新。将校验节点划分为集合B1、……、Bm,从而使集合Bi中的任意两个校验节点c、c’不与相同的变量节点相连,即The serial decoding according to the present invention is serial in nature, however, the set of check node messages can be updated in parallel. Divide the check nodes into sets B 1 ,..., B m , so that any two check nodes c and c' in the set B i are not connected to the same variable node, namely

结果,可以同时对在每一个集合Bi中的校验节点c进行更新。由于在计算节点c之间的复杂互连而导致通常不能进行完全并行的计算,因此串行调度的部分串行特性并非限定性的。此外,当将校验节点c划分为足够的集合Bi时,即使集合Bi并不保持上述特性(11),但是LPDC解码器1A的性能非常接近于串行调度的性能。因此,在优选实施例中,通过将校验节点c划分为 m = M Z 的尺寸Z的相等尺寸的集合B1、……、Bm,可以执行串行调度,并且通过同时更新集合B1中的所有校验节点c、然后同时更新集合B2中的所有校验节点并依此类推直到集合Bi为止,来执行迭代。As a result, check nodes c in each set B i can be updated simultaneously. The partially serial nature of serial scheduling is not limiting since fully parallel computations are generally not possible due to complex interconnections between computing nodes c. Furthermore, when the check nodes c are divided into enough sets B i , the performance of LPDC decoder 1A is very close to that of serial scheduling even though set B i does not maintain the above property (11). Therefore, in a preferred embodiment, by dividing the check node c into m = m Z Sets B 1 , ... , B m of equal size of size Z, serial scheduling can be performed, and by simultaneously updating all check nodes c in set B 1 and then simultaneously updating all check nodes in set B 2 And so on until the set B i , to perform the iteration.

如图15b所示的根据本发明的一般化校验节点处理器5用于更新该图中的节点之间的消息。一般化校验节点处理器5从R-RAM 7中接收RCV消息,并且经由切换单元4从QRAM-3向其提供QV消息。一般化校验节点处理器5计算针对RCV和QV消息的新更新值。将更新的RCV消息存储回R-RAM 7中,而将更新的QV消息通过切换单元4存储回QRAM-3中。从只读存储器(ROM 6)中读取针对切换单元4的切换信息,在所述只读存储器中存储了LDPC码结构。设置Z个一般化校验节点处理器5-i,用于对Z个校验节点的消息执行同时计算。由一般化校验节点处理器5所执行的解码迭代由

Figure A20051007944400251
步骤构成,其中,在每一个步骤中,由Z个一般化校验节点处理器5来处理Z个校验节点的消息。当前正在处理校验节点c的处理器5-i读取针对所有v∈N(c)的消息QV和RCV消息,执行计算,并且将更新的消息写回到存储器3、7。消息QV、RCV的读取、计算和写回构成了三个处理阶段。由于一般化校验节点处理器5不能在一般化校验节点处理器5的单个时钟周期中完成这三个处理阶段,因此提供了数据处理管道。在可选实施例中,QRAM-3和R-RAM 7允许同时读取和写入。在该实施例中,一般化校验节点处理器5在每一个时钟周期中读取新的消息集合,并且利用每一个时钟写回已经更新的消息集合。在该实施例中,解码迭代将需要M/Z个时钟周期。A generalized check node processor 5 according to the present invention as shown in Fig. 15b is used to update messages between nodes in the graph. The generalized check node processor 5 receives the RCV message from the R-RAM 7 and provides it with the QV message from the QRAM-3 via the switching unit 4 . The generalized check node processor 5 computes new update values for the RCV and QV messages. The updated RCV message is stored back into R-RAM 7, and the updated QV message is stored back into QRAM-3 via switching unit 4. Switching information for the switching unit 4 is read from a read-only memory (ROM 6 ) in which the LDPC code structure is stored. Z generalized check node processors 5-i are set to perform simultaneous computation on the messages of the Z check nodes. The decoding iterations performed by the generalized check node processor 5 are given by
Figure A20051007944400251
The steps are constituted, wherein, in each step, the messages of Z check nodes are processed by Z generalized check node processors 5 . The processor 5-i currently processing the check node c reads the messages QV and RCV messages for all vεN(c), performs calculations, and writes the updated messages back to the memory 3,7. The reading, calculation and writing back of messages Q V , R CV constitute three processing stages. Since the generalized check node processor 5 cannot complete these three processing stages in a single clock cycle of the generalized check node processor 5, a data processing pipeline is provided. In an alternative embodiment, QRAM-3 and R-RAM 7 allow simultaneous reading and writing. In this embodiment, the generalized check node processor 5 reads a new message set every clock cycle, and writes back an updated message set every clock cycle. In this embodiment, decoding iterations will require M/Z clock cycles.

一般化校验节点处理器5针对二分图的各个校验节点c,输出指示符Ssign以校验LPDC解码器1A是否已经收敛。如从图15b中可以看到,一般化校验节点处理器5将各个校正子比特Ssign转发到收敛测试块8。图25中示出了收敛测试块8的优选实施例。收敛测试块8意识到LDPC解码处理已经收敛,并且通过经由LPDC解码器1的输出9输出成功指示信号来对此进行指示。The generalized check node processor 5 outputs an indicator S sign for each check node c of the bipartite graph to check whether the LPDC decoder 1A has converged. As can be seen from FIG. 15 b , the generalized check node processor 5 forwards the individual syndrome bits S sign to the convergence test block 8 . A preferred embodiment of the convergence test block 8 is shown in FIG. 25 . The convergence test block 8 realizes that the LDPC decoding process has converged and indicates this by outputting a success indication signal via the output 9 of the LPDC decoder 1 .

图15b示出了如图9所示的根据本发明执行串行调度的LPDC解码器1A的一般结构。针对随机无结构化LDPC码的LPDC解码器的实现引起了较高的复杂性。根据本发明的解码器1A甚至在相对较低的解码速率下也具有许多消息必须要从存储器3、7中读取并且必须要写回到这些存储器3、7中。结果,这需要要由具有复杂寻址机制的多端口存储器形成的存储器3、7。此外,需要复杂的切换单元4将消息从存储器3、7路由到一般化校验节点处理器5。为了使根据本发明的LPDC解码器1A的实现简单,最好使用意识到结构化体系结构的LDPC。这能够简化存储器3、7的寻址机制和经由切换单元4对消息的路由。根据优选实施例,LPDC解码器1A使用基于产生了奇偶校验矩阵由置换矩阵构成的提升图的LDPC码。FIG. 15b shows the general structure of LPDC decoder 1A performing serial scheduling according to the present invention as shown in FIG. 9 . The implementation of an LPDC decoder for random unstructured LDPC codes entails high complexity. The decoder 1A according to the invention has many messages that have to be read from and written back to the memories 3 , 7 even at relatively low decoding rates. As a result, this requires memories 3, 7 to be formed from multi-ported memories with complex addressing schemes. Furthermore, a complex switching unit 4 is required to route messages from the memory 3 , 7 to the generalized check node processor 5 . In order to make the implementation of the LPDC decoder 1A according to the invention simple, it is preferable to use an LDPC aware of the structured architecture. This can simplify the addressing mechanism of the memories 3 , 7 and the routing of messages via the switching unit 4 . According to a preferred embodiment, the LPDC decoder 1A uses an LDPC code based on a lifting graph that generates a parity check matrix composed of permutation matrices.

在下文中,描述了基于产生了由置换矩阵构成的奇偶校验矩阵的提升图的LDPC码的结构。该结构的LDPC码显著地简化了根据本发明的LPDC解码器1的实现。In the following, the structure of an LDPC code based on a lifting graph generating a parity check matrix constituted by a permutation matrix is described. The structured LDPC code considerably simplifies the implementation of the LPDC decoder 1 according to the invention.

当利用K=R*N个信息位和M=(1-R)·N个奇偶校验位构成速率为R且具有码长N的LDPC码且构成M*N奇偶校验矩阵H时,LDPC码的M*N奇偶校验矩阵H由Mb*Nb个块矩阵Hb构成,其中 M b = M Z N b = N Z . When using K=R*N information bits and M=(1-R)·N parity bits to form an LDPC code with a rate of R and a code length N and form an M*N parity check matrix H, LDPC The M*N parity check matrix H of the code is composed of M b *N b block matrices H b , where m b = m Z and N b = N Z .

进入块矩阵的每一个数据条目是Z*Z个零矩阵或Z*Z个置换矩阵。该优选实施例优选地使用了有限的种类的置换,能够容易地实现。Each data entry into the block matrix is either Z*Z zero matrices or Z*Z permutation matrices. The preferred embodiment preferably uses a limited variety of permutations, which can be easily implemented.

在优选实施例中,这些置换限制为循环置换,表示为P0、……、PZ-1,其中In a preferred embodiment, these substitutions are limited to cyclic substitutions denoted P 0 , ..., P Z-1 , where

Figure A20051007944400263
并且
Figure A20051007944400264
Figure A20051007944400263
and
Figure A20051007944400264

置换尺寸Z是LPDC解码器1A所需的等待时间或吞吐量的函数。The permutation size Z is a function of the latency or throughput required by the LPDC decoder 1A.

可以利用图形提升来解释按照该方式构造的LDPC码的底层图形。将具有Nb个变量节点和Mb个校验节点的小图形提升或复制Z次,从而获得了Z个小的离散图。该小图形的每一个边缘出现了Z次。然后,在图形的Z个拷贝中置换每一个这样的Z个边缘的集合,从而获得了具有N个变量节点和M和校验节点的单个大图形。Graph lifting can be used to explain the underlying graph of an LDPC code constructed in this way. The small graph with N b variable nodes and M b check nodes is lifted or copied Z times, thereby obtaining Z small discrete graphs. Each edge of the gizmo appears Z times. Then, each such set of Z edges is permuted in Z copies of the graph, resulting in a single large graph with N variable nodes and M and check nodes.

图16示出了小型[24,12]LDPC码的简单示例。图16示出了在置换之前和之后的LDPC码。如果小型Mb×Nb图表示(λ(χ),ρ(χ))-不规则LDPC码,则所获得的大型M×N图形也表示(λ(χ),ρ(χ))-不规则LDPC码。Fig. 16 shows a simple example of a small [24,12] LDPC code. Fig. 16 shows LDPC codes before and after permutation. If the small Mb × Nb graph represents a (λ(χ), ρ(χ))-irregular LDPC code, the resulting large M×N graph also represents a (λ(χ), ρ(χ))-irregular LDPC code. Regular LDPC codes.

如上所述的基于置换块矩阵的LDPC码能够简单实现支持高级别并行化的LPDC解码器1A。可以通过串行地逐个处理奇偶校验矩阵H的

Figure A20051007944400265
个块行,来执行解码迭代。利用dc个非零块条目来处理矩阵H的块行涉及从Q-RAM 3和R-RAM 7中读取QV和RCV消息的dc尺寸的Z个块。然后,将这些消息路由到Z个一般化校验节点处理器5,所述一般化校验节点处理器5同时处理与该块行相对应的Z个奇偶校验。然后,将更新的消息写回到存储器3、7。将与奇偶校验矩阵H的块列相对应的Z个QV消息的每一个集合包含在QRAM-3的单个存储单元中。将这些消息一起从QRAM-3中读出,然后通过执行根据H块矩阵的适当置换,将其路由到Z个不同的一般化校验节点处理器5。The LDPC code based on the permuted block matrix as described above enables simple implementation of the LPDC decoder 1A supporting high-level parallelization. The parity-check matrix H can be processed one by one serially by
Figure A20051007944400265
block rows to perform decoding iterations. Processing a block row of matrix H with dc nonzero block entries involves reading dc sized Z blocks of QV and R CV messages from Q-RAM 3 and R-RAM 7 . These messages are then routed to Z generalized check node processors 5 which simultaneously process Z parities corresponding to the block row. Then, the updated message is written back to the memory 3,7. Each set of Z QV messages corresponding to the block columns of the parity-check matrix H is contained in a single storage unit of QRAM-3. These messages are read out of QRAM-3 together and then routed to Z different generalized check node processors 5 by performing appropriate permutations according to the H-block matrix.

图17示出了根据本发明的LPDC解码器1A的第一实施例。Fig. 17 shows a first embodiment of an LPDC decoder 1A according to the present invention.

图18示出了针对如图16所示构造的奇偶校验矩阵H,如图17所示的根据第一实施例的LPDC解码器1A的示例。FIG. 18 shows an example of the LPDC decoder 1A according to the first embodiment shown in FIG. 17 for the parity check matrix H constructed as shown in FIG. 16 .

在图18所示的示例中,针对小长度24的LPDC码设置LPDC解码器1A。在图18中还示出了R-RAM 7和QRAM-3的初始化值。In the example shown in FIG. 18 , the LPDC decoder 1A is set for an LPDC code of small length 24. Also shown in Figure 18 are the initialization values of R-RAM 7 and QRAM-3.

由于在dc个时钟周期中对具有dc个非零块条目的矩阵H的行进行处理,从而在每一个时钟周期中,与行中的单个非零块条目相对应地读取消息,因此在

Figure A20051007944400271
个时钟周期中执行解码迭代。Since a row of matrix H with dc nonzero block entries is processed in dc clock cycles, so that in each clock cycle a message is read corresponding to a single nonzero block entry in the row, then in
Figure A20051007944400271
The decoding iterations are performed in clock cycles.

如果需要根据本发明的LPDC解码器1A来支持更高的解码器数据速率,则在LPDC解码器1A内需要更大数量的Z的一般化校验节点处理器5。这产生了非常小的 Hb矩阵,由于在设计矩阵H时的有限的自由度,可能会产生弱LDPC码。另外,一般化校验节点处理器5不能够完成对校验过程的处理,直到已经将所有dc个消息读取到处理器5中为止。结果,每一个一般化校验节点处理器5的执行管道至少为dc,这对于高速率编码而言可能较高。这可以实质上增加每一个处理器5的执行管道所需的寄存器量,结果,导致了逻辑区的增加和解码器能量消耗的增加。If the LPDC decoder 1A according to the invention is required to support higher decoder data rates, a larger number of Z generalized check node processors 5 are required within the LPDC decoder 1A. This produces a very small The H b matrix, due to the limited degrees of freedom in designing the matrix H, may result in weak LDPC codes. In addition, the generalized check node processor 5 cannot finish processing the check procedure until all d c messages have been read into the processor 5 . As a result, the execution pipeline per generalized check node processor 5 is at least d c , which may be higher for high-rate encoding. This can substantially increase the amount of registers required for the execution pipeline of each processor 5, resulting in an increase in logic areas and an increase in decoder power consumption.

假如矩阵H中的行次数是恒定的(和几乎是恒定的),则如果将附加结构包括在能够同时从dc个不同RAM单元中读取Z个消息的所有dc块的H矩阵中,可以避免这些缺陷。在这种方式下,在单个时钟周期中对H矩阵的每一行进行处理,从而解码迭代花费了

Figure A20051007944400273
个时钟周期,这允许更小的置换块尺寸Z,结果,在设计Hb时允许更大的块矩阵Hb和增加的自由度。另外,每一个一般化校验节点处理器5的执行管道的长度不再是dc的函数,从而其可以小得多。Assuming that the number of rows in matrix H is constant (and nearly constant), then if additional structure is included in matrix H for all d c blocks capable of reading Z messages from d c different RAM cells simultaneously, These drawbacks can be avoided. In this way, each row of the H matrix is processed in a single clock cycle, thus decoding iterations cost
Figure A20051007944400273
clock cycles, which allows a smaller permutation block size Z and, consequently, a larger block matrix Hb and increased degrees of freedom in designing Hb . In addition, the length of the execution pipeline of each generalized check node processor 5 is no longer a function of dc , so it can be much smaller.

在优选实施例中,为了支持在单个时钟周期中同时读取所有的行消息,将附加结构包括到LDPC码的H矩阵中。在优选实施例中,按照以下方式来构造奇LDPC码的偶校验矩阵H。将奇偶校验矩阵H的块列划分为dc个集合(或多于dc个集合,然而不超过Nb个集合)。奇偶校验矩阵H的每一个块行需要包含来自dc个不同集合的dc个非零块条目。这能够根据将奇偶校验矩阵H的块列划分为dc个(或更多)集合,将QV消息划分为dc个Q-RAM 7(或者甚至更多)。结果,确保了当处理奇偶校验矩阵H的块行时,将需要读取的Z个QV消息的dc集合存储在不同的dc个(或更多)RAM单元中,并且能够一起读取(而无需设置多端口RAM)。LPDC解码器1A的相应结构形成了如图21所示的第二实施例。In a preferred embodiment, to support simultaneous reading of all row messages in a single clock cycle, additional structure is included into the H-matrix of the LDPC code. In a preferred embodiment, the even check matrix H of the odd LDPC code is constructed in the following manner. Divide the block columns of the parity-check matrix H into d c sets (or more than d c sets, however not more than N b sets). Each block row of the parity-check matrix H needs to contain d c nonzero block entries from d c different sets. This enables the partitioning of the QV message into dc Q-RAMs 7 (or even more) based on partitioning the block columns of the parity-check matrix H into dc (or more) sets. As a result, it is ensured that when processing block rows of the parity-check matrix H, dc sets of Z QV messages that need to be read are stored in different dc (or more) RAM cells and can be read together fetch (without setting up multi-port RAM). The corresponding structure of the LPDC decoder 1A forms the second embodiment as shown in FIG. 21 .

当将如图17所示的根据本发明第一实施例的LPDC解码器1A与如图21所示的第二实施例的LPDC解码器1A进行比较时,根据第一实施例的LPDC解码器1A具有增加的复杂度,结果,需要更多的芯片区域。另外,当与如图21所示的第二实施例的LPDC解码器1A相比时,图17所示的根据第一实施例的LPDC解码器1A具有增加的功率消耗,这是由于第一实施例的LPDC解码器1A在处理器5的执行管道中具有更多的寄存器。相反,如图17所示的根据本发明第一实施例的LPDC解码器1A的主要优点在于:与图21所示的第二实施例的LPDC解码器1A相比,其更具有一般性。原因在于:图17所示的根据第一实施例的LPDC解码器1A并未限制于:校验节点次数dc是固定的。结果,该LPDC解码器1A还能够利用各种校验节点次数对LDPC码进行解码,同时保持高效。When comparing the LPDC decoder 1A according to the first embodiment of the present invention shown in FIG. 17 with the LPDC decoder 1A of the second embodiment shown in FIG. 21 , the LPDC decoder 1A according to the first embodiment With increased complexity, more chip area is required as a result. In addition, when compared with the LPDC decoder 1A of the second embodiment shown in FIG. 21 , the LPDC decoder 1A according to the first embodiment shown in FIG. 17 has increased power consumption because the first implementation The example LPDC decoder 1A has more registers in the execution pipeline of the processor 5 . On the contrary, the main advantage of the LPDC decoder 1A according to the first embodiment of the present invention as shown in FIG. 17 is that it is more general than the LPDC decoder 1A of the second embodiment shown in FIG. 21 . The reason is that the LPDC decoder 1A according to the first embodiment shown in FIG. 17 is not limited to the fact that the number of times d c of check nodes is fixed. As a result, this LPDC decoder 1A is also capable of decoding LDPC codes with various check node numbers while remaining highly efficient.

在两个实施例的LPDC解码器1A中,在每一个时钟周期中,从Q-RAM3和R-RAM 7中读取且写入。因此,这些RAM存储器由双端口RAM形成。在两个实施例的LPDC解码器1A中,通过考虑对R-RAM 7的顺序寻址,可以简化通常为大RAM的R-RAM 7的复杂性。由于不需要随机存取,通过采用顺序寻址,可以使用具有简化的寻址机制和简化的复杂性的存储器。另外,由于顺序寻址,在优选实施例中,可以将R-RAM 7划分为两个RAM,其中一个R-RAM 7a包含奇地址,而另一R-RAM 7b包含偶地址。因此,在每一个时钟周期中,从一个R-RAM中读取消息,并且将消息写回到另一R-RAM。在该优选实施例中,可以将的复杂度的单端口RAM用于R-RAM 7。In the LPDC decoder 1A of both embodiments, reading and writing are performed from the Q-RAM 3 and the R-RAM 7 in every clock cycle. Therefore, these RAM memories are formed of dual-port RAM. In the LPDC decoder 1A of both embodiments, the complexity of the R-RAM 7, which is typically a large RAM, can be simplified by considering sequential addressing of the R-RAM 7. By employing sequential addressing, a memory with a simplified addressing scheme and reduced complexity can be used since random access is not required. Additionally, due to sequential addressing, in a preferred embodiment, the R-RAM 7 can be divided into two RAMs, one R-RAM 7a containing odd addresses and the other R-RAM 7b containing even addresses. Thus, in each clock cycle, a message is read from one R-RAM and written back to the other R-RAM. In this preferred embodiment, a single-port RAM of high complexity can be used for the R-RAM 7.

在下文中,描述了针对两个实施例的一般化校验节点处理器5的可能实现。当前正在处理校验节点c的BP一般化校验节点处理器5读取针对所有v∈N(c)的消息QV和RCV,并执行以下计算:In the following, a possible implementation of a generalized check node processor 5 for two embodiments is described. The BP generalized check node processor 5 currently processing check node c reads the messages Q V and R CV for all v ∈ N(c), and performs the following computation:

Figure A20051007944400291
Figure A20051007944400291

对于所有v∈N(c),For all v ∈ N(c),

Qtemp←Qv-Rcv Q temp ←Q v -R cv

Rcv←-1(S-(Qtemp))R cv ← -1 (S-(Q temp ))

Qv←Qtemp+Rcv Q v ← Q temp + R cv

循环结束end of loop

校验节点处理器将更新的消息写回到存储器3、7。The check node processor writes the updated message back to the memory 3,7.

注意,在可选实施例中,一般化校验节点处理器5实现了与BP(简明传播)不同的计算规则。Note that in an alternative embodiment, the generalized check node processor 5 implements a calculation rule different from BP (Brief Propagation).

例如,该校验节点处理器实现了次最佳、低复杂性最小和计算规则,如下:For example, the check node processor implements sub-optimal, low-complexity min-sum calculation rules as follows:

对于所有v∈N(c),For all v ∈ N(c),

QQ vcvc temptemp &LeftArrow;&LeftArrow; QQ vv -- RR cvcv

循环结束end of loop

对于所有v∈N(c),For all v ∈ N(c),

RR cvcv &LeftArrow;&LeftArrow; &Pi;&Pi; vv &prime;&prime; &Element;&Element; NN (( cc )) // vv (( -- 11 )) signsign (( QQ vv &prime;&prime; cc temptemp )) minmin vv &prime;&prime; &Element;&Element; NN (( cc )) // vv {{ QQ vv &prime;&prime; cc temptemp }}

QQ vv &LeftArrow;&LeftArrow; QQ vcvc temptemp ++ RR cvcv

循环结束end of loop

图20示出了针对实施例1的BP一般化校验节点处理器5的示意电路图。图22示出了针对实施例2的BP一般化校验节点处理器5的示意电路图。图23和24中示出了QR块和S块的实现。FIG. 20 shows a schematic circuit diagram of the BP generalized check node processor 5 for Embodiment 1. FIG. 22 shows a schematic circuit diagram of the BP generalized check node processor 5 for Embodiment 2. Implementations of QR blocks and S blocks are shown in FIGS. 23 and 24 .

优选地,利用LUT来实现和-1变换。在该BP一般化校验节点处理器的优选实施例中,以2的完全表示执行具有LLR的计算,并且以符号/幅度表示来进行具有(LLR)的计算。将这些消息在2的实现表示中保存为LLR。以符号/幅度表示来执行和-1变换之间要执行的所有计算。可以将两个表示之间的转换包括到和-1变换中。Preferably, the [phi] and [phi] -1 transformations are implemented using a LUT. In the preferred embodiment of the BP generalized check node processor, computations with LLRs are performed in full representation of 2, and computations with [phi](LLR) are performed in sign/magnitude representation. Save these messages as LLRs in the implemented representation of 2. All calculations to be performed between the [phi] and [phi] -1 transformations are performed in sign/magnitude representation. The conversion between the two representations can be included into the [phi] and [phi] -1 transformations.

由于在LPDC解码器1A中避免了对Qvc消息的保存,因此根据以下等式容易地对其进行计算:Since saving of the Qvc message is avoided in LPDC decoder 1A, it is easily calculated according to the following equation:

Qvc=Qtemp=Qv-Rcv QvcQtempQv - Rcv

在固定点实现中,在优选实施例中,QV消息具有比RCV消息更大的动态范围以便避免丢失Qvc信息。充分地,利用附加位来表示QV消息。然而,作为结果,一旦QV消息已经达到其最大值,则应该不再对其进行更新。利用图20和23所示的“校验饱和”块来对此进行保持。由于其减小了逻辑能量消耗,因此证明是一个优点。In a fixed-point implementation, QV messages have a larger dynamic range than RCV messages in a preferred embodiment in order to avoid losing Qvc information. Sufficiently, QV messages are represented with additional bits. However, as a result, once the QV message has reached its maximum value, it should no longer be updated. This is maintained using the "Check Saturation" block shown in Figures 20 and 23 . This proves to be an advantage since it reduces logic power consumption.

与其中通过计算校正子来每一个迭代的末尾执行收敛测试的标准溢出调度不同,根据本发明的串行调度允许在解码处理期间的简单收敛校验。通过针对

Figure A20051007944400301
个连续块校验所有处理器5中的S变量的符号为正,作为解码处理的副产品来执行该操作,如图25所示。一旦检测到收敛,则清空处理器5的执行管道,并且驻留在Q-RAM 3中的QV变量的符号位构成了已解码码字。将收敛测试机制包括到如图17和21所示的控制单元9中。Unlike the standard overflow schedule, where the convergence test is performed at the end of each iteration by computing the syndrome, the serial schedule according to the invention allows a simple convergence check during the decoding process. by targeting
Figure A20051007944400301
Consecutive blocks check that the signs of the S variables in all processors 5 are positive, which is performed as a by-product of the decoding process, as shown in FIG. 25 . Once convergence is detected, the execution pipeline of the processor 5 is emptied and the sign bit of the QV variable residing in the Q-RAM 3 constitutes the decoded codeword. A convergence testing mechanism is incorporated into the control unit 9 as shown in FIGS. 17 and 21 .

对于第一实施例的LDPC解码器1A,通过将各种矩阵H存储在ROM 6中,在相同的液晶上实现各种码率R和码长度N。由于块矩阵描述非常简练,因此保存多个矩阵的开销较小。With the LDPC decoder 1A of the first embodiment, various code rates R and code lengths N are realized on the same liquid crystal by storing various matrices H in the ROM 6. Since the block matrix description is very concise, the overhead of saving multiple matrices is small.

在第二实施例的LDPC解码器1A中,假定了固定的校验节点次数dc。根据必须支持且具有最高校验节点次数的最高码率来设置节点次数dc。然后,通过取消dc个校验节点处理器输入中的一些来实现较低的码率。In the LDPC decoder 1A of the second embodiment, a fixed number of times d c of check nodes is assumed. The node number d c is set according to the highest code rate that must be supported and has the highest check node number. Then, a lower code rate is achieved by canceling some of the d c check node processor inputs.

可以用于两个LDPC解码器实施例的、在相同液晶上实现多个码率R的可选方案在于:通过行合并,根据单个块矩阵Hb来获得各种码率。通过对没有非零重叠块条目的矩阵Hb的块行进行求和,从一个单个基本块矩阵Hb中构造更高速率的LDPC码。这导致了与更高速率的码相对应的更少维数的奇偶校验矩阵H。例如,当使用由

Figure A20051007944400311
块矩阵Hb构成的码率为1/2的基本LDPC码时,对该矩阵进行设计,从而使针对i=1、……、 的块行i和块行
Figure A20051007944400313
没有重叠的非零块条目。然后,将H的块行划分为对,即,针对1、……、
Figure A20051007944400314
将块行i与块行
Figure A20051007944400315
匹配。然后,通过对块行对的α一起求和(其中α是1和 之间的数),实现了与速率 LDPC码相对应的更小的
Figure A20051007944400318
块矩阵Hb。An alternative to realize multiple code rates R on the same liquid crystal, which can be used for both LDPC decoder embodiments, is to obtain various code rates from a single block matrix Hb by row combining. A higher rate LDPC code is constructed from a single basic block matrix Hb by summing the block rows of matrix Hb with no non-zero overlapping block entries. This results in a parity check matrix H of fewer dimensions corresponding to higher rate codes. For example, when using the
Figure A20051007944400311
When the basic LDPC code of code rate 1/2 that the block matrix H b forms, this matrix is designed, thereby make for i=1,..., block row i and block row
Figure A20051007944400313
There are no overlapping non-zero block entries. Then, the block rows of H are divided into pairs, i.e., for 1, ...,
Figure A20051007944400314
Combine block row i with block row
Figure A20051007944400315
match. Then, by summing the α of block row pairs together (where α is 1 and between the number), achieved with the rate LDPC codes correspond to smaller
Figure A20051007944400318
Block matrix H b .

通过这种方式,可以获得针对1/2和3/4之间的任意速率的LDPC码。从基本LDPC码构造更高速率的LDPC码的该结构是有利的,这是由于可以使用相同的解码器硬件对所构造的LDPC码进行解码。通过在两个时钟内将与两个时钟行相对应的消息读取到处理器5中,来处理作为对基本奇偶校验矩阵H中的块行对进行求和的结果的新奇偶校验矩阵H中的行,从而处理器5将所有消息看作如同其属于相同的校验。将支持行合并所需的机制包括在如图23和图24所示的S块和QR块中。每一次当合并两个连续行时,图23、24和25中的控制信号MergeRows能够进行行合并。对合并行的处理需要两倍的时间(两个时钟,而非一个),然而,要处理的行数相应地减少,因此,解码时间保持为相同。该方法的优点在于:使用单个矩阵来获得许多码率R,然而,所获得的LDPC码并非最佳的。In this way, an LDPC code for any rate between 1/2 and 3/4 can be obtained. This structure of constructing higher rate LDPC codes from basic LDPC codes is advantageous since the constructed LDPC codes can be decoded using the same decoder hardware. The new parity check matrix that is the result of summing the block row pairs in the basic parity check matrix H is processed by reading messages corresponding to two clock rows into the processor 5 within two clocks Rows in H so that processor 5 treats all messages as if they belonged to the same check. The mechanisms required to support row merging are included in the S-block and QR-block as shown in FIG. 23 and FIG. 24 . The control signal MergeRows in Figures 23, 24 and 25 enables row merging each time when merging two consecutive rows. The processing of merged rows takes twice as long (two clocks instead of one), however, the number of rows to be processed is correspondingly reduced, so the decode time remains the same. The advantage of this method is that many code rates R are obtained using a single matrix, however, the obtained LDPC codes are not optimal.

还可以使用缩短和穿孔机制或缩短和穿孔的组合来支持各种码率R和码长度N。缩短降低了码率R而穿孔增加了码率R。在LDPC编码器1B处,将缩短的位(作为信息位)设置为零,然后执行编码。不传送缩短和穿孔位。在LDPC解码器1A处,利用“0”消息(零符号位和最大可靠性)对缩短位进行初始化,并且利用擦除消息对穿孔位进行初始化(并不涉及符号位和零可靠性),然后执行解码。缩短/穿孔LDPC码的解码时间保持与完全LDPC码的解码时间相同(由于LDPC解码器1对完全码进行操作),即使LDPC码会较短。Various code rates R and code lengths N can also be supported using a shortening and puncturing mechanism or a combination of shortening and puncturing. Shortening reduces the code rate R while puncturing increases the code rate R. At the LDPC encoder 1B, the shortened bits (as information bits) are set to zero, and then encoding is performed. Shortening and piercing bits are not transmitted. At LDPC decoder 1A, the shortened bits are initialized with a "0" message (zero sign bit and maximum reliability), and the punctured bits are initialized with an erase message (no sign bit and zero reliability involved), then Perform decoding. The decoding time of a shortened/punctured LDPC code remains the same as that of a full LDPC code (since LDPC decoder 1 operates on full codes), even though the LDPC code will be shorter.

通过紧缩了Z×Z置换块并因此紧缩了码的奇偶校验矩阵H,可以获得各种码长度N。按照该方式,可以获得长度为

Figure A20051007944400321
……、N的LDPC码。例如,如果要获得长度为
Figure A20051007944400322
的LDPC码,则块矩阵Hb由尺寸为 的置换块构成。这意味着:在LDPC解码器1处,每一个Q-RAM存储单元仅包含Z个消息中的 个消息,并且仅
Figure A20051007944400325
个处理器5用于解码。与缩短/穿孔方法类似,短LDPC码的解码时间与基本LDPC码的解码时间保持相同。在流模式中,通过使用未使用的硬件来解码下一码字,能够对此进行避免。Various code lengths N can be obtained by compacting the ZxZ permutation block and thus the parity check matrix H of the code. In this way, the length can be obtained as
Figure A20051007944400321
..., the LDPC code of N. For example, if you want to get the length of
Figure A20051007944400322
LDPC code, then the block matrix H b has a size of The replacement block composition. This means: At LDPC decoder 1, each Q-RAM cell contains only messages, and only
Figure A20051007944400325
A processor 5 is used for decoding. Similar to the shortening/puncturing method, the decoding time of the short LDPC code remains the same as that of the basic LDPC code. In streaming mode, this can be avoided by using unused hardware to decode the next codeword.

为了实现与码长N成线性的解码时间,将更小的H个块矩阵用于更短的LDPC码,从而使所有矩阵包含Z×Z个置换块。因此,实现每一个附加码长N仅需要附加ROM 6来保持H矩阵(由于其简练描述,需要较小ROM),并且不需要LDPC解码器1A的硬件的变化。To achieve a decoding time linear in code length N, smaller H block matrices are used for shorter LDPC codes, so that all matrices contain Z×Z permuted blocks. Therefore, realizing each additional code length N requires only an additional ROM 6 to hold the H matrix (requires a smaller ROM due to its compact description), and does not require changes in the hardware of the LDPC decoder 1A.

通过加强对结构化的LDPC码的附加结构,可以实现线性编码复杂度。所构造的LDPC码是对称的,从而第一 K b = K Z 块包含信息位而最后的Mb包含奇偶校验位。H的最后的Mb块列形成了块更低的三角矩阵或几乎块更低的三角矩阵。为了支持通过如上所解释的行合并而获得的对各种码率R的简单编码,矩阵H的最后的Mb块列可以具有如图26所示的结构。其中,M1≤M2且Mb1=M1/Z等于进行合并以产生所支持的最高速率码的最大数量的块行。Linear coding complexity can be achieved by enforcing additional structures to structured LDPC codes. The constructed LDPC code is symmetric, so that the first K b = K Z The blocks contain information bits and the last M b contain parity bits. The last M b block columns of H form a block lower triangular matrix or almost a block lower triangular matrix. In order to support simple coding for various code rates R obtained by row combining as explained above, the last M b block columns of matrix H may have the structure as shown in FIG. 26 . Where M 1M 2 and M b1 =M 1 /Z is equal to the maximum number of block rows combined to generate the highest supported rate code.

图27示出了如图15a所示的收发机内的LDPC编码器1B的优选实施例。将图27与示出了LDPC解码器1A的结构相比,可以看到,通过相同的硬件实现了根据本发明的LDPC编码器1B。Figure 27 shows a preferred embodiment of the LDPC encoder 1B within the transceiver as shown in Figure 15a. Comparing FIG. 27 with a structure showing the LDPC decoder 1A, it can be seen that the LDPC encoder 1B according to the present invention is realized by the same hardware.

LDPC编码器1B包括RAM 3、切换单元4、一般化校验节点处理器5的阵列和只读存储器6。设置RAM 7和转换测试单元8并非必须的。由于通过相同的硬件来执行LDPC编码器1B和LDPC解码器1A,因此能够通过设置如图15a所示的并联的两个单元1A、1B(其中第一单元1A执行解码处理而另一单元1B执行编码处理),来形成编码器/解码器1。在可选实施例中,在用于执行编码处理的编码模式和用于执行解码处理的解码模式之间对具有如图15b所示的电路结构的单元进行切换。该实施例具有的优点在于:仅必须在芯片上实现较少的电路。即使当通过设置具有相同硬件的单独LDPC编码器1B和单独LDPC解码器1A来实现FEC层1时,具有以下优点:当设计芯片时根据相同的硬件来形成两个单元。The LDPC encoder 1B includes a RAM 3, a switching unit 4, an array of generalized check node processors 5, and a read-only memory 6. It is not necessary to set up RAM 7 and switch test unit 8. Since the LDPC encoder 1B and the LDPC decoder 1A are implemented by the same hardware, it is possible to set up two units 1A, 1B connected in parallel as shown in FIG. encoding process), to form the encoder/decoder 1. In an alternative embodiment, a unit having a circuit structure as shown in Fig. 15b is switched between an encoding mode for performing an encoding process and a decoding mode for performing a decoding process. This embodiment has the advantage that only less circuitry has to be implemented on the chip. Even when the FEC layer 1 is realized by setting a separate LDPC encoder 1B and a separate LDPC decoder 1A having the same hardware, there is an advantage in that two units are formed from the same hardware when designing a chip.

在下文中,描述了执行编码的优选实施例,其中i=[i1 i2…iKb]表示划分为Z比特的Kb集合的信息位块,即,ij=[j;1…ij;z]T是Z个连续信息位的列,In the following, a preferred embodiment for performing encoding is described, where i = [i 1 i 2 ... i Kb ] denotes a block of information bits divided into Kb sets of Z bits, i.e., i j = [ j; 1 ... i j; z ] T is a column of Z consecutive information bits,

其中P=[P1 P2…PMb]表示划分为Z比特的Mb个集合的奇偶位块,即Pj=[Pj;1…Pj;z]T是Z个连续奇偶位的列,Among them, P=[P 1 P 2 ... P Mb ] represents the parity block divided into M b sets of Z bits, that is, P j = [P j; 1 ... P j; z ] T is the number of Z consecutive parity bits List,

其中c=[i p]表示划分为Z比特的Nb个集合的码字块,并且其中,where c=[ip] denotes a block of codewords divided into N b sets of Z bits, and where,

A(i;j)表示如图26所示的块矩阵A的(i;j)Z×Z块。A(i;j) represents the (i;j)Z×Z block of the block matrix A shown in FIG. 26 .

通过图27所示的LDPC编码器1B来执行编码,具体如下:Encoding is performed by the LDPC encoder 1B shown in FIG. 27 as follows:

1、计算 P j = &Sigma; l = 1 K b + j - i A ( j , l ) c l , 对于j=1,……,Mb11. Calculate P j = &Sigma; l = 1 K b + j - i A ( j , l ) c l , For j=1,..., M b1 ,

2、计算 s j = &Sigma; l = 1 K b + M bl B ( j , l ) c l , 对于j=1,……,Mb22. Calculate the s j = &Sigma; l = 1 K b + m bl B ( j , l ) c l , For j=1, . . . , M b2 ,

3、计算 P M bl + 1 = &Sigma; j = 1 M b 2 s j 3. Calculate P m bl + 1 = &Sigma; j = 1 m b 2 the s j

4、计算 P M bl + 1 = s 1 + T ( 1,1 ) P M bl + 1 4. Calculate P m bl + 1 = the s 1 + T ( 1,1 ) P m bl + 1

5、计算 P M bl + j + 1 = s j + T ( j , 1 ) P M bi + 1 + P M bl + 1 对于j=2,……,Mb2-1。5. Calculate P m bl + j + 1 = the s j + T ( j , 1 ) P m bi + 1 + P m bl + 1 For j=2, . . . , M b2 -1.

由LDPC解码器1A使用的相同的数据路径可以用于LDPC编码器1B。因此,可以在用于LDPC解码器1A的相同硬件上执行编码。如果使用更低次的三角Hb矩阵来构造LDPC码,则可以利用解码器来执行编码。利用信息位(±最大QV消息值,表示总的比特可靠性)对与K个信息位相对应的QV消息进行初始化,并且利用擦除(零值-表示无可靠性)对与M个奇偶位相对应的QV消息进行初始化。执行解码,并且在单个迭代之后对擦除的奇偶校验位进行恢复。The same data path used by LDPC decoder 1A can be used for LDPC encoder 1B. Therefore, encoding can be performed on the same hardware used for the LDPC decoder 1A. If an LDPC code is constructed using a lower-order triangular H b matrix, encoding can be performed with a decoder. A QV message corresponding to K information bits is initialized with information bits (±maximum QV message value, indicating total bit reliability), and M parity Bits corresponding to the Q V message are initialized. Decoding is performed and the erased parity bits are recovered after a single iteration.

为了减小能量消耗,优选地,仅对消息的符号位进行编码期间所执行的计算,这是由于编码仅需要异或(xor)运算。处理器5可以利用表示消息复制的比特,在擦除位和己知位之间进行区分。然后,通过应用以下规则来简单地执行编码:每一个处理器5仅读取一个未知比特,并且将未知位设置为校验中所有其他己知位的异或(异或机制已经存在于处理器中)。In order to reduce energy consumption, calculations performed during encoding are preferably performed only on the sign bit of the message, since encoding requires only an exclusive OR (xor) operation. The processor 5 can distinguish between erased bits and known bits by means of bits representing message duplication. The encoding is then simply performed by applying the following rule: each processor 5 reads only one unknown bit, and sets the unknown bit to the exclusive-or of all other known bits in the parity (the exclusive-or mechanism already exists in the processor middle).

用于实现LDPC编码器-解码器系统1所需的硬件取决于码参数、系统参数和所需性能。将性能测量为允许LDPC解码器1在给定等待时间或吞吐量限制之下执行的迭代次数。假定BP解码。The hardware required for implementing the LDPC encoder-decoder system 1 depends on code parameters, system parameters and required performance. Performance is measured as the number of iterations the LDPC decoder 1 is allowed to perform under a given latency or throughput constraint. Assume BP decoding.

基本码参数:Basic code parameters:

N-码长N-code length

dv-平均比特次数(比特参与其中的平均校验次数-通常 d v &cong; 3.5 )d v - the average number of bits (the average number of checks in which a bit participates - usually d v &cong; 3.5 )

Rmax-系统所支持的最大码率。R max - the maximum bit rate supported by the system.

dc-最大校验次数d c - the maximum number of checksums

对于右规则码:For the right regular code:

dd cc == dd vv 11 -- RR maxmax ..

编码器-解码器参数:Encoder-decoder parameters:

fc-编码器-解码器时钟[Mhz]f c - encoder-decoder clock [Mhz]

bpm-每一个消息的比特bpm - bits per message

bpm2-在变换之后的每一个消息的比特bpm 2 - bits per message after  conversion

Z-针对实施例1的处理器5的数量,或者针对实施例2的QR块的数量。Z—the number of processors 5 for embodiment 1, or the number of QR blocks for embodiment 2.

Z 2 = Z d c -实施例2中的处理器数量。 Z 2 = Z d c - Number of processors in embodiment 2.

解码器性能decoder performance

Rcn-信道比特率(未编码)[Mbps]R cn - channel bit rate (uncoded) [Mbps]

I strea min g = Zf c d v R ch -在流模式下所支持的迭代次数 I stray min g = Zf c d v R ch - number of iterations supported in stream mode

L-最大的解码等待时间[微秒]L - maximum decoding wait time [microseconds]

I L = min { LZf c Nd v , I strea min g } -解码等待时间L所支持的迭代次数。 I L = min { Zf c Nd v , I stray min g } - The number of iterations supported by the decoding latency L.

第一实施例的编码器-解码器复杂度Encoder-decoder complexity of the first embodiment

逻辑:BP处理器~Z0.6K个门Logic: BP processor ~ Z0.6K gates

RAM:1、R-RAM 7: ( N dv Z ) &times; ( Zbpm ) 位双端口RAM,具有减小的寻址要求(顺序地读取/写入地址)。RAM: 1, R-RAM 7: ( N dv Z ) &times; ( Zbpm ) Bit dual-port RAM with reduced addressing requirements (sequentially read/write addresses).

2、Q-RAM 3: ( N Z ) &times; ( Z ( bpm + 1 ) ) 位双端口RAM2. Q-RAM 3: ( N Z ) &times; ( Z ( bpm + 1 ) ) DPRAM

3、用于管道缓冲的zx((9+dc)(bpm+1)+(3+dc)bmp2)个1位寄存器和读取/写入置换缓冲器。3. zx((9+d c )(bpm+1)+(3+d c )bmp 2 ) 1-bit registers for pipeline buffering and read/write permutation buffers.

ROM 6 Nd v Z ( [ log 2 ( N ) ] + 1 ) 地址ROMROM 6 Nd v Z ( [ log 2 ( N ) ] + 1 ) Address ROM

第二实施例的编码器-解码器复杂度Encoder-decoder complexity of the second embodiment

逻辑:BP处理器-~Z0.6K个门Logic: BP processor - ~ Z0.6K gates

RAM:1、R-RAM 7: ( N dv Z ) &times; ( Zbpm ) 位双端口RAM,具有减小的寻址要求(顺序地读取/写入地址)。RAM: 1, R-RAM 7: ( N dv Z ) &times; ( Zbpm ) Bit dual-port RAM with reduced addressing requirements (sequentially read/write addresses).

2、Q-RAM 3:dc个双端口RAM单元,每一个的尺寸为 N Z &times; Z d c ( bpm + 1 ) 2. Q-RAM 3: d c dual-port RAM cells, each of size N Z &times; Z d c ( bpm + 1 ) bit

3、用于管道缓冲的z×(12(bpm+1)+6bmp2-2)个1位寄存器和读取/写入置换缓冲器。3. z×(12(bpm+1)+6bmp 2 −2) 1-bit registers and read/write permutation buffers for pipeline buffering.

ROM 6: Nd v Z &times; d c ( [ log 2 ( N d 2 ) ] + 1 ) 地址ROMROM6: Nd v Z &times; d c ( [ log 2 ( N d 2 ) ] + 1 ) Address ROM

所使用的这些RAM是双端口RAM(TPRAM)。对于R-RAM 7,可以使用单端口RAM。The RAMs used are Dual Port RAMs (TPRAMs). For R-RAM 7, single-port RAM can be used.

Claims (29)

1. An Low Density Parity Check (LDPC) decoder for decoding a codeword (Y) received from a communication channel as a result of transmitting a LDPC codeword (b) having a number (N) of codeword bits consisting of K information bits and N parity check bits, wherein the product of the LDPC codeword (b) and a predetermined (mxn) parity check matrix H is zero (H b)T0), where the (M × N) parity check matrix H represents a bipartite graph including N variable nodes (V) connected to M check nodes (C) via edges according to matrix elements hij of the parity check matrix H,
wherein the LDPC decoder (1A) comprises:
(a) a memory (3) for storing, for each codeword bit of the received noisy codeword (Y), an a priori estimate (Qv) of the codeword bit having a predetermined value from the received noisy codeword (Y) and from a predetermined parameter of the communication channel;
(b) a generalized check node processing unit (5) for iteratively calculating messages on all edges of the bipartite graph according to a serial schedule, wherein in each iteration an input message (Q) from the neighboring variable node (V) to the check node (C) is calculated by a message passing calculation rule for each check node (C) of the bipartite graph, for all neighboring variable nodes (V) connected to the check node (C)vc) And an output message (R) from the check node (C) to said neighboring variable node (V)CV)。
2. LDPC-decoder according to claim 1, wherein the LDPC-decoder (1A) comprises a read-only memory (6) for storing at least one bipartite graph.
3. LDPC-decoder according to claim 1 characterized in that the LDPC-decoder (1A) comprises a further memory (7) for temporarily storing a pair variable message (R)CV) And (4) verifying.
4. LDPC-decoder according to claim 1, characterized in that the LDPC-decoder (1A) comprises a convergence test block (8) for indicating whether the decoding process has successfully converged.
5. LDPC-decoder according to claim 1 wherein the bipartite graph is a tanner graph.
6. LDPC-decoder according to claim 1 wherein the message passing computation rule is a Belief Propagation (BP) computation rule.
7. LDPC-decoder according to claim 1 wherein the message passing computation rule is a min-sum computation rule.
8. LDPC-decoder according to claim 1 wherein the calculated a priori estimates are log-likelihood ratios (LLRs).
9. LDPC-decoder according to claim 1 wherein the calculated a priori estimates are probabilities.
10. LDPC-decoder according to claim 1, wherein a decoding failure is indicated by the LDPC-decoder (1A) when the number of iterations reaches an adjustable threshold.
11. LDPC decoder for decoding a noisy codeword (y) received from a noisy communication channel as a result of transmitting the codeword (b) having a number (N) of codeword bits belonging to a length (N) low density parity check code for which an (MxN) parity check matrix H is set and H x b is satisfied over the communication channelT0, wherein the (M × N) parity check matrix H consists of matrix elements H according to the parity check matrix HijRepresented by a bipartite graph of N variable nodes (V) connected via edges to M check nodes (C),
wherein the LDPC decoder (1A) comprises:
(a) an input (2A) for receiving, for each codeword bit (V) of the transmitted LDPC codeword (b), the codeword bit (V) with an a priori estimate (Q) of a predetermined value from the received noisy codeword (Y) and from a predetermined parameter of the communication channelv);
(b) A first memory (3) for storing, for each variable node (V) of the bipartite graph, a calculated a priori estimate (Q) corresponding to a codeword bit (V)v) As initialization variable node values;
(c) a second memory (7) for each correction initialized to zeroCheck-to-variable messages (R) of a check node (c) to all variable nodes (V) of the bipartite graphCV);
(d) Wherein a generalized check node processor (5) iteratively computes messages on all edges of the bipartite graph according to a serial schedule, wherein in each iteration all check nodes (C) of the bipartite graph are serially traversed and for each check node (C) of the bipartite graph the following computations are performed by the respective generalized check node processor (5-i):
(d1) reading the stored messages (Q) from the first memory (3) for all the neighbouring variable nodes (V) connected to the check node (c)V) And reading the stored check-to-variable message (R) from the second memory (7)CV);
(d2) As a message (Q) read from the memory (3; 7) for all neighboring variable nodes (V) connected to the check node (C) by means of message passing calculation rulesV) And check to variable message (R)CV) To calculate a variable to check message (Q)vc);
(d3) As calculated variable-to-check messages (Q) for all neighboring variable nodes (V) connected to the check node (C) by means of message-passing calculation rulesvc) Calculating an updated check to variable message (R)CV new);
(d4) As the aforementioned message (Q) for all neighboring variable nodes (V) connected to the check node (C) by means of message passing calculation rulesV) And updated check to variable message (R)CV new) Calculating an updated a posteriori message (Q)V new);
(d5) Wherein the updated a posteriori message (Q)V new) And updated check to variable message (R)CV new) Is stored back in the memory (3; 7) performing the following steps;
(d6) calculating a decoded estimated codeword (b) as a function of the a posteriori messages (Q) stored in said first memory (3)*);
(e) A convergence test unit (8) for passing the check parity check matrix H anddecoded estimate (b)*) Whether the product of the codewords is zero to check whether the decoding has converged;
(f) outputting (10A) a decoded estimation codeword (b) once the decoding has converged or once a predetermined number of iterations has been reached*)。
12. LDPC-decoder according to claim 2 wherein the read only memory (6) stores a plurality of bipartite graphs for different LDPC-codes.
13. LDPC decoder according to claim 13, characterized in that the LDPC decoder (1A) is switchable between different LDPC codes.
14. LDPC-decoder according to claim 14 wherein the LDPC-codes comprise different code rates (R).
15. LDPC-decoder according to claim 1 characterized in that the LDPC-decoder (1A) is a multi-rate decoder for decoding LDPC-codes with different code rates (R).
16. LDPC-decoder according to claim 11, characterized in that a switching unit (4) is provided for routing messages from the memories (3, 7) to the generalized check node processors (5).
17. LDPC decoder according to claim 16, characterized in that the parity check matrix (H) is composed of permutated blocks, thereby simplifying message routing between the memory (3) and the generalized check node processor (5).
18. LDPC-decoder according to claim 11 wherein each generalized check node processing unit (5) comprises at least one QR-block (5a) for updating the QvAnd RCVA message, and an S block (5b) for calculatingSoft parity (S).
19. LDPC decoder according to claim 18, characterized in that the QR block (5a) and the S block (5b) perform row merging in response to a control signal.
20. LDPC decoder according to claim 11, characterized in that the first memory (3) is formed by a dual port random access memory (TPRAM).
21. LDPC decoder according to claim 11, characterized in that the second memory (7) is formed by a Random Access Memory (RAM).
22. LDPC decoder according to claim 21, characterized in that the second memory (7) is divided into a first single-port RAM (7a) containing odd addresses and a second single-port RAM (7b) containing even addresses.
23. LDPC decoder according to claim 21, characterized by said second memory (7) and a dual port random access memory (TPRAM).
24. An LDPC decoder/encoder (1) characterized by comprising an LDPC decoder (1A) according to claim 1 and an LDPC encoder (1B) having the same hardware structure as the LDPC decoder (1A).
25. LDPC-decoder according to claim 11 wherein each generalized check node processor (5) comprises a check saturation block such that Q can be stored using only one additional bitvA message.
26. LDPC decoder according to claim 11, characterized in that the switching unit (4) performs permutations of various sizes, enabling decoding of codes of various lengths.
27. LDPC decoder according to claim 12, characterized in that codes of various rates are decoded by row merging of rows in a parity check matrix (H) stored in the read only memory (6) in response to row merging control signals.
28. An LDPC encoder (1B) in which codewords are encoded by the LDPC encoder (1B) directly from a parity check matrix (H) stored in memory, thereby enabling codes of various rates to be encoded using the same hardware.
29. An LDPC encoder (1B) wherein a codeword (y) is encoded by multiplying an information bit vector (i) with a (KxN) generator matrix G, wherein the generator matrix G and a transposed parity check matrix HTThe product of (c) is zero (G x H)T=0)。
CN 200510079444 2004-06-22 2005-06-22 LDPC Decoder for Decoding Low Density Parity Check (LDPC) Codewords Pending CN1713530A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US58167704P 2004-06-22 2004-06-22
US60/581,677 2004-06-22
US11/061,232 2005-02-18

Publications (1)

Publication Number Publication Date
CN1713530A true CN1713530A (en) 2005-12-28

Family

ID=35718998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200510079444 Pending CN1713530A (en) 2004-06-22 2005-06-22 LDPC Decoder for Decoding Low Density Parity Check (LDPC) Codewords

Country Status (1)

Country Link
CN (1) CN1713530A (en)

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454685B2 (en) 2004-11-23 2008-11-18 Samsung Electronics Co., Ltd. Method and apparatus for decoding low density parity check code using united node processing
CN101902230A (en) * 2009-05-29 2010-12-01 索尼公司 Receiving device, receiving method, program and receiving system
US7886208B2 (en) 2006-02-02 2011-02-08 Samsung Electronics Co., Ltd LDPC decoding apparatus and method based on node memory
CN101079638B (en) * 2006-07-28 2011-04-20 开曼群岛威睿电通股份有限公司 Low density parity check decoding system and method for reducing complexity
CN101262231B (en) * 2008-04-25 2011-09-28 浙江大学 A decoding method for block low-density check code and reconstruction of multi-mode decoder
CN102546102A (en) * 2011-12-23 2012-07-04 同济大学 Quick demodulation method for signal receiving terminal to realize link adaptation
CN102957436A (en) * 2011-08-17 2013-03-06 北京泰美世纪科技有限公司 Low-density parity check code decoding device and low-density parity check code decoding method
CN103338044A (en) * 2013-05-24 2013-10-02 东南大学 Protograph code for deep space optical communication system
CN103384153A (en) * 2013-07-03 2013-11-06 清华大学 Quasi-cyclic LDPC code decoding method and system
CN101582697B (en) * 2008-02-23 2014-02-26 澜起科技(上海)有限公司 Low density partily check (ldpc) decoder
CN105306198A (en) * 2015-10-16 2016-02-03 中国人民解放军国防科学技术大学 Quantum key distribution random low-density parity-check (LDPC) code parallel decoding method
CN105827251A (en) * 2015-01-23 2016-08-03 英派尔科技开发有限公司 Parity check code encoder
CN107634764A (en) * 2016-07-19 2018-01-26 三星电子株式会社 Use the decoder and storage control of low density parity check code
CN107977283A (en) * 2016-10-24 2018-05-01 爱思开海力士有限公司 Accumulator system and its operating method with LDPC decoder
CN108365916A (en) * 2016-12-21 2018-08-03 法国矿业电信学校联盟 The method and apparatus of sub-block decoding data signal
CN108462496A (en) * 2018-04-24 2018-08-28 成都吉纬科技有限公司 One kind being based on the newer ldpc decoder of random bit stream
CN108933605A (en) * 2017-05-26 2018-12-04 爱思开海力士有限公司 Low-density checksum(LDPC)It is decoded to terminate in advance
CN109586731A (en) * 2017-09-29 2019-04-05 奈奎斯特半导体有限公司 System and method for decoding and error code
CN109804567A (en) * 2016-10-13 2019-05-24 高通股份有限公司 For the improved minimum and decoder of LDPC code
CN109923787A (en) * 2016-11-02 2019-06-21 高通股份有限公司 Premature termination for layered LDPC decoder
CN109951250A (en) * 2017-12-21 2019-06-28 华为技术有限公司 The LDPC coding method of signal of communication and device
CN109964411A (en) * 2016-11-04 2019-07-02 高通股份有限公司 Efficient list decoding of LDPC codes
CN110249565A (en) * 2016-11-23 2019-09-17 弗劳恩霍夫应用研究促进协会 Receiver, transmitter, communication network, data-signal and the method for improving retransmission process in communication network
CN110268634A (en) * 2016-11-23 2019-09-20 苏伊士集团 Encoders and decoders using short-length quasi-cyclic semi-regular LDPC codes for low-power applications such as long-range reading
CN110521126A (en) * 2017-04-12 2019-11-29 索尼半导体解决方案公司 There is the duplicate shortening LDPC code of code bit for poor throughput network
CN110719111A (en) * 2013-08-27 2020-01-21 想象力科技有限公司 Improved decoder for low density parity check codes
CN111048140A (en) * 2018-10-15 2020-04-21 爱思开海力士有限公司 Error correction circuit, memory controller and memory system
CN111198779A (en) * 2018-11-19 2020-05-26 三星电子株式会社 Semiconductor memory device and memory system
CN112019485A (en) * 2019-05-31 2020-12-01 华为技术有限公司 Method and device for generating and verifying a message
CN112118014A (en) * 2016-03-31 2020-12-22 慧荣科技股份有限公司 Low density parity check decoding apparatus for performing re-combinable decoding and related methods
CN112204889A (en) * 2018-03-30 2021-01-08 高通股份有限公司 Scheduling for layered decoding of Low Density Parity Check (LDPC) codes
CN113228520A (en) * 2018-12-03 2021-08-06 南布列塔尼大学 Iterative decoder for decoding a code consisting of at least two constraint nodes
CN114520660A (en) * 2016-05-12 2022-05-20 高通股份有限公司 Enhanced puncturing and Low Density Parity Check (LDPC) code structure
US12476733B2 (en) 2017-06-19 2025-11-18 Qualcomm Incorporated Communication techniques with self-decodable redundancy versions (RVs) using systematic codes

Cited By (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454685B2 (en) 2004-11-23 2008-11-18 Samsung Electronics Co., Ltd. Method and apparatus for decoding low density parity check code using united node processing
US7886208B2 (en) 2006-02-02 2011-02-08 Samsung Electronics Co., Ltd LDPC decoding apparatus and method based on node memory
CN101079639B (en) * 2006-02-02 2011-02-09 三星电子株式会社 Low density parity check decoding device and method based on node memory
CN101079638B (en) * 2006-07-28 2011-04-20 开曼群岛威睿电通股份有限公司 Low density parity check decoding system and method for reducing complexity
CN101582697B (en) * 2008-02-23 2014-02-26 澜起科技(上海)有限公司 Low density partily check (ldpc) decoder
CN101262231B (en) * 2008-04-25 2011-09-28 浙江大学 A decoding method for block low-density check code and reconstruction of multi-mode decoder
CN101902230A (en) * 2009-05-29 2010-12-01 索尼公司 Receiving device, receiving method, program and receiving system
CN101902230B (en) * 2009-05-29 2013-11-27 索尼公司 Receiving device, receiving method and receiving system
CN102957436A (en) * 2011-08-17 2013-03-06 北京泰美世纪科技有限公司 Low-density parity check code decoding device and low-density parity check code decoding method
CN102957436B (en) * 2011-08-17 2017-11-10 北京泰美世纪科技有限公司 A kind of low density parity check code code translator and interpretation method
CN102546102B (en) * 2011-12-23 2014-12-10 同济大学 Quick demodulation method for signal receiving terminal to realize link adaptation
CN102546102A (en) * 2011-12-23 2012-07-04 同济大学 Quick demodulation method for signal receiving terminal to realize link adaptation
CN103338044A (en) * 2013-05-24 2013-10-02 东南大学 Protograph code for deep space optical communication system
CN103384153B (en) * 2013-07-03 2016-05-18 清华大学 Quasi-cyclic LDPC code decoding method and system
CN103384153A (en) * 2013-07-03 2013-11-06 清华大学 Quasi-cyclic LDPC code decoding method and system
CN110719111A (en) * 2013-08-27 2020-01-21 想象力科技有限公司 Improved decoder for low density parity check codes
CN110719111B (en) * 2013-08-27 2023-07-25 北欧半导体公司 Improved decoder for low density parity check codes
CN105827251A (en) * 2015-01-23 2016-08-03 英派尔科技开发有限公司 Parity check code encoder
CN105306198A (en) * 2015-10-16 2016-02-03 中国人民解放军国防科学技术大学 Quantum key distribution random low-density parity-check (LDPC) code parallel decoding method
CN105306198B (en) * 2015-10-16 2018-10-26 中国人民解放军国防科学技术大学 A kind of quantum key distribution stochastic pattern low density parity check code parallel decoding method
CN112118014A (en) * 2016-03-31 2020-12-22 慧荣科技股份有限公司 Low density parity check decoding apparatus for performing re-combinable decoding and related methods
CN112118014B (en) * 2016-03-31 2024-03-15 慧荣科技股份有限公司 Low-density parity check decoding device and related methods for reassembly decoding
CN114520660A (en) * 2016-05-12 2022-05-20 高通股份有限公司 Enhanced puncturing and Low Density Parity Check (LDPC) code structure
CN107634764A (en) * 2016-07-19 2018-01-26 三星电子株式会社 Use the decoder and storage control of low density parity check code
CN109804567A (en) * 2016-10-13 2019-05-24 高通股份有限公司 For the improved minimum and decoder of LDPC code
CN109804567B (en) * 2016-10-13 2023-03-17 高通股份有限公司 Improved min-sum decoder for LDPC codes
CN107977283B (en) * 2016-10-24 2021-05-25 爱思开海力士有限公司 Memory system with LDPC decoder and method of operation
CN107977283A (en) * 2016-10-24 2018-05-01 爱思开海力士有限公司 Accumulator system and its operating method with LDPC decoder
CN109923787A (en) * 2016-11-02 2019-06-21 高通股份有限公司 Premature termination for layered LDPC decoder
CN109923787B (en) * 2016-11-02 2023-04-04 高通股份有限公司 Early termination for layered LDPC decoder
CN109964411A (en) * 2016-11-04 2019-07-02 高通股份有限公司 Efficient list decoding of LDPC codes
CN109964411B (en) * 2016-11-04 2024-02-06 高通股份有限公司 Efficient list decoding of LDPC codes
CN110249565A (en) * 2016-11-23 2019-09-17 弗劳恩霍夫应用研究促进协会 Receiver, transmitter, communication network, data-signal and the method for improving retransmission process in communication network
CN110268634B (en) * 2016-11-23 2023-06-13 苏伊士集团 Encoder and decoder for low-consumption applications such as remote reading using short length quasi-cyclic semi-regular LDPC codes
US11405137B2 (en) 2016-11-23 2022-08-02 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Receiver, transmitter, communication network, data signal and method improving a retransmission process in a communication network
CN110268634A (en) * 2016-11-23 2019-09-20 苏伊士集团 Encoders and decoders using short-length quasi-cyclic semi-regular LDPC codes for low-power applications such as long-range reading
CN110249565B (en) * 2016-11-23 2022-04-15 弗劳恩霍夫应用研究促进协会 Receiver, transmitter, communication network system and method for improving retransmission process in communication network system
CN108365916A (en) * 2016-12-21 2018-08-03 法国矿业电信学校联盟 The method and apparatus of sub-block decoding data signal
CN108365916B (en) * 2016-12-21 2021-07-13 法国矿业电信学校联盟 Method and apparatus for sub-block decoding data signal
CN110521126A (en) * 2017-04-12 2019-11-29 索尼半导体解决方案公司 There is the duplicate shortening LDPC code of code bit for poor throughput network
CN110521126B (en) * 2017-04-12 2023-07-28 索尼半导体解决方案公司 Shortened LDPC codes with code-bit repetition for low-throughput networks
CN108933605A (en) * 2017-05-26 2018-12-04 爱思开海力士有限公司 Low-density checksum(LDPC)It is decoded to terminate in advance
CN108933605B (en) * 2017-05-26 2022-03-25 爱思开海力士有限公司 Early Termination of Low Density Parity Check (LDPC) Decoding
US12476733B2 (en) 2017-06-19 2025-11-18 Qualcomm Incorporated Communication techniques with self-decodable redundancy versions (RVs) using systematic codes
CN109586731A (en) * 2017-09-29 2019-04-05 奈奎斯特半导体有限公司 System and method for decoding and error code
CN109951250A (en) * 2017-12-21 2019-06-28 华为技术有限公司 The LDPC coding method of signal of communication and device
CN109951250B (en) * 2017-12-21 2021-01-08 华为技术有限公司 LDPC coding method and device for communication signal
CN112204889A (en) * 2018-03-30 2021-01-08 高通股份有限公司 Scheduling for layered decoding of Low Density Parity Check (LDPC) codes
CN112204889B (en) * 2018-03-30 2024-03-22 高通股份有限公司 Scheduling for layered decoding of Low Density Parity Check (LDPC) codes
CN108462496A (en) * 2018-04-24 2018-08-28 成都吉纬科技有限公司 One kind being based on the newer ldpc decoder of random bit stream
CN108462496B (en) * 2018-04-24 2021-04-02 成都吉纬科技有限公司 LDPC decoder based on random bit stream updating
CN111048140A (en) * 2018-10-15 2020-04-21 爱思开海力士有限公司 Error correction circuit, memory controller and memory system
CN111198779B (en) * 2018-11-19 2024-06-04 三星电子株式会社 Semiconductor memory device and memory system
CN111198779A (en) * 2018-11-19 2020-05-26 三星电子株式会社 Semiconductor memory device and memory system
CN113228520A (en) * 2018-12-03 2021-08-06 南布列塔尼大学 Iterative decoder for decoding a code consisting of at least two constraint nodes
CN112019485A (en) * 2019-05-31 2020-12-01 华为技术有限公司 Method and device for generating and verifying a message

Similar Documents

Publication Publication Date Title
CN1713530A (en) LDPC Decoder for Decoding Low Density Parity Check (LDPC) Codewords
Mansour et al. High-throughput LDPC decoders
CN1830149A (en) Method for encoding low-density parity check code
CN1255761C (en) Method and device for decoding LDPC codes
Zhang et al. High-throughput layered decoder implementation for quasi-cyclic LDPC codes
CN1476674A (en) Evaluating and Optimizing Error Correcting Codes Using Projective Analysis
CN1698272A (en) Decoding method, decoding device, program, recording/reproduction device and method, and reproduction device and method
JP5138221B2 (en) Method for min-sum decoding error correction code
Zhang et al. Two-dimensional correction for min-sum decoding of irregular LDPC codes
CN1701515A (en) Decoding method, decoding device, and program
CN1855731A (en) Decoding device and decoding method
CN1866751A (en) Algebraic construction of ldpc (low density parity check) codes with corresponding parity check matrix having csi (cyclic shifted identity) sub-matrices
CN1593012A (en) Bit labeling of magnitude-phase shifted clusters for low-density parity-check codes
CN1639985A (en) LDPC code inspection matrix generation method and inspection matrix generation device
CN1701516A (en) Check matrix generating method and check matrix generating device
CN115529046B (en) Log likelihood ratio mapping table in flash memory system
CN1836394A (en) Apparatus and method for encoding/decoding block low density parity check code in mobile communication system
CN1770640A (en) A low-density parity-check code encoder/decoder and its generation method
CN1608347A (en) LDPC code inspection matrix generation method
Mansour et al. Architecture-aware low-density parity-check codes
CN1201494C (en) Maximum a posteriori probability decoding method and device
CN101295988A (en) decoding equipment
CN1956368A (en) LDPC code vector decode translator and method based on unit array and its circulation shift array
Jiang et al. Adaptive offset min-sum algorithm for low-density parity check codes
CN101036300A (en) Checking matrix forming device and communication device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication