CN1767397A - 低密度奇偶校验码的高效解码装置和方法 - Google Patents
低密度奇偶校验码的高效解码装置和方法 Download PDFInfo
- Publication number
- CN1767397A CN1767397A CNA2005101249972A CN200510124997A CN1767397A CN 1767397 A CN1767397 A CN 1767397A CN A2005101249972 A CNA2005101249972 A CN A2005101249972A CN 200510124997 A CN200510124997 A CN 200510124997A CN 1767397 A CN1767397 A CN 1767397A
- Authority
- CN
- China
- Prior art keywords
- check
- value
- node
- hard decision
- information
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1145—Pipelined decoding at code word level, e.g. multiple code words being decoded simultaneously
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1134—Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明涉及一种移动通信系统中使用LDPC码对前向纠错码进行解码的装置及方法。校验节点处理器对多个校验节点接收到的信息执行校验节点处理,累加器将校验节点处理器的校验节点输出值与先前累加值进行累加。边缘存储器存储校验节点输出值,以及两个累加存储器分别存储累加器的累加值和先前的累加值。减法器从累加值中减去校验节点输出值,和硬判决解码块对接收到的信息以及减法器输出值进行硬判决解码。比特缓冲器存储硬判决解码结果,和奇偶校验块对硬判决结果进行奇偶校验以决定是否终止迭代解码操作。多路复用器传送减法结果值至校验节点处理器和硬判决解码块。
Description
技术领域
本发明一般涉及一种纠错解码装置和方法。更确切地说,本发明涉及一种通过降低低密度奇偶校验码(LDPC)的解码复杂度来改进解码性能的装置及方法。
背景技术
通常,由于传输路径产生的噪音,数字通信系统会出现错误,使用各种不同的算法来校正这些误差以消除所产生的误差。在利用目前正在标准化的3G合作伙伴计划(3GPP)或者3G合作伙伴2(3GPP2)的无线通信系统中,提议使用卷积码和Turbo码以用于音频及控制信号的传输。高速传输的Turbo码的优点在于它能在低信噪比(SNR)的条件下获得很低的比特误码率(BER)。然而,Turbo码在代码字之间的最小距离就相对变短。因此,当使用Turbo码编码的信号被解码时,在期望的比特误码点上,可能会出现错误平底(error floor),解码过程中缺陷代码字的检测的失误的概率是相对的高。因此,最近,人们已经开始关注一种在性能上相似或优越于Turbo码的LDPC。
对于相同长度的码字,LDPC相比Turbo码,其最小码距要更大。因此,相比Turbo码来说,误差平底在十分低的BER出现,缺陷代码字的检测失误概率非常低,基于试验近似于“0”。另外,LDPC可以在平行结构中执行,有助于显著减少解码时间,并且可以进行有效解码终止而不需要解码终止算法或开销,比如通过每次迭代解码时所执行的奇偶校验增加的循环冗余校验(CRC)比特。
图1是LDPC解码结构的图。
参考图1,LDPC是具有每一列和行中的1的数目很少的奇偶校验矩阵的代码,它的结构可以用包括校验节点100、可变节点110以及连接校验节点100到可变节点110的边缘115的要素图来定义。在校验节点处理后,从校验节点100传送至可变节点110的值成为校验节点消息115a,在可变节点处理后,从可变节点110传送至校验节点100的值成为可变节点消息115b。
LDPC码的解码过程是通过基于和积算法的迭代解码完成的。优化的和积算法包括相对复杂的计算。因此,使用和积算法需要在解码过程中应用大量计算,因此,增加了硬件的复杂度。
现在将参考图2对LDPC进行更加详细的描述。
图2是根据要素图(factor graph)和奇偶校验矩阵的LDPC示例结构的图。这里,LDPC的结构通过最普遍的要素图定义。要素图是表示分解为局部函数积(product)的多变量全函数的二分图(bipartite graph)。
参考图2,LDPC的要素图包括通过和积算法表示的树状结构。更具体的说,该要素图决定了4个表示LDPC的预定奇偶校验方程的校验节点200的、8个表示码元的可变节点210的、以及表示其间关系的边缘220的结构。边缘220将每个校验节点200与可变节点210相连,可变节点210对应于包括在由校验节点200表示的奇偶校验方程中的码元。这里,显示的是典型规则的LDPC,其中连接到每个校验节点200的可变节点210的数量固定为6,而连接到每个可变节点210的校验节点200的数量固定为3,但并不局限于此。尽管没有图示,但能够提供不规则的LDPC,其中连接到每个校验节点200和可变节点210的边缘的数量不固定。
图2中也显示了表示奇偶校验码的奇偶校验矩阵(H)230,这个矩阵与奇偶校验码的图形表示相似。在奇偶校验矩阵230中,每一行和每一列的1的数目是固定的。即,对应于每个可变节点210和校验节点200之间的连接,奇偶校验矩阵230的每一列都有3个1,而对应于每个校验节点200和可变节点210之间的连接,奇偶校验矩阵230的每一行则有6个1。
解码LDPC的过程是通过重复交换要素图中的校验节点和可变节点为每个独立节点生成和更新的消息的处理而完成的。在这种情况下,每个节点使用和积算法更新消息。在下文将更为详细地描述基于前面解码处理的LDPC码的迭代解码过程。
图3是典型LDPC的方框图。
参考图3,LDPC解码装置包括:存储块300,用于存储所接收的信息;可变节点处理器340,用于执行可变节点相关计算(下文称为“可变节点处理”);校验节点处理器320,用于处理校验节点相关计算(下文称为“校验节点处理”);奇偶校验块330,用于通过检查在校验节点中是否校正所有的错误来确定是否执行迭代解码;和存储器访问控制器310,用于执行快速、高效的存储器访问。
以下将简单阐述LDPC解码顺序。
第一,所接收的码元存储于存储块300中作为可变节点的初始值。
第二,校验节点处理器320读取存储于存储块300中的可变节点的值,奇偶校验块330对读取的可变节点值进行奇偶校验,以及校验节点处理器320计算读取的可变节点值的0和1的传输路径变换概率,并将计算所得的概率值作为可变节点值盖写在存储块300中。
第三,可变节点处理器340读取盖写在存储块300中的可变节点值,并利用所读取的可变节点值计算对数似然比(LLR)。
第四,重复第二步和第三步处理直至奇偶校验块330完成奇偶校验,并确定终止迭代解码,因此提高了可靠性。
可变节点处理器340和校验节点处理器320分别读取并计算存储区域中对应奇偶校验矩阵中的行和列的1的位置的值,并将计算出来的值盖写在相同的存储区域中。
如以上所述,分别执行校验节点处理和可变节点处理的计算算法使用大容量存储器。即,存储块300需要存储所有边缘的信息,而校验节点处理器320和可变节点处理器340从存储块300各自读取必要的值以执行相应计算并计算LLR值。这种情况下,在对所有边缘执行校验节点处理后,该算法执行可变节点处理。因此,当算法执行校验节点处理时,可变节点处理器340就在空闲模式中工作。当算法执行可变节点处理时,校验节点处理器320同样也在空闲模式中工作。即,算法必须从单一存储块中读取各种类型的数据,而导致存储器访问延迟。
因此,一种通过降低低密度奇偶校验码(LDPC)的解码复杂度而改进解码性能的系统和方法是十分必要的。
发明内容
本发明的目的实质上是至少解决上述问题和缺陷,并至少提供下述优点。因此,本发明的目的就是提供一种LDPC解码器高效实施的解码算法和一种适合的解码器结构。
本发明的另一目的是提供一种LDPC码解码器的高效实施的存储器结构和一种根据此存储结构的高效解码算法。
本发明的又一目的是提供一种使LDPC解码器中存储器分段最小化,以及同时进行校验节点处理和可变节点处理的方法和装置。
根据本发明的一个方面,提供了一种在移动通信系统中使用低密度奇偶校验码对前向纠错码进行解码的装置。该装置包括:校验节点处理器,用于接收多个校验节点的接收信息,并对所接收到的信息进行校验节点处理;累加器,用于将来自校验节点处理器的校验节点输出值与在前累加值相累加;边缘存储器,用于存储校验节点输出值;以及至少两个累加存储器,用于存储来自累加器的累加值和在前累加值。更进一步地,该装置还包括减法器,用于从累加器所提供的累加值中减去从边缘存储器读取的校验节点输出值;硬判决块,用于对接收的信息以及减法器的输出值进行硬判决;比特缓冲器,用于存储硬判决结果;以及奇偶校验块,用于对硬判决结果进行奇偶校验以决定是否终止迭代解码。该装置还包括多路复用器,用于传送减法器的减法结果值至校验节点处理器来执行迭代解码操作,同时,还传送减法判决值至硬判决块。
根据本发明的另一方面,还提供了一种在移动通信系统中使用低密度奇偶校验码对前向纠错码进行解码的方法。该方法包括下列步骤:逐行接收来自多个校验节点的接收的信息,以及对所接收的信息进行校验节点处理;将校验节点处理的结果值与在前累加值相累加;存储校验节点处理的结果值;以及分别存储累加值和在前累加值。该方法还进一步包括这些步骤:从累加值中减去校验节点处理的结果值;对接收的信息以及减法结果值进行硬判决;存储硬判决结果值;对硬判决结果进行奇偶校验以决定是否终止迭代解码。该方法还包括存储迭代解码操作的减法结果值,以及同时传送减法结果值至硬判决块的步骤。
附图说明
本发明上述和其它目的、特征和效果从下面结合附图的详细描述中将会变得更加清楚,其中:
图1是典型LDPC解码结构图;
图2是典型要素图和奇偶校验矩阵图;
图3是典型LDPC码的方框图;
图4是传统存储器分段的解码过程图;
图5是传统解码算法的流程图;
图6是本发明实施例的存储器结构图;
图7是本发明实施例的LDPC解码器结构图;
图8是本发明实施例的解码算法的概念图;
图9是本发明实施例的解码算法的流程图。
全部附图中,相同的附图标记应被理解为表示相同的部件、组件及结构。
具体实施方式
现在,参考附图将详细说明本发明的具体实施方式。图中,相同或相似的部件即使在不同附图中都将由相同的附图标记表示。在下面的描述中,为了说明清楚和简洁,现有已知的功能和结构的详细描述将被省略。
图4是根据普通解码过程的存储器分段图。
参考图4,为奇偶校验矩阵和单位矩阵分别提供存储器,该存储器被分割成与节点数量相同的许多子量度块(如校验节点处理器和可变节点处理器)。即,存储器的行与校验节点并联,而根据存储器的列分割出的子量度块与可变节点并联。每个阴影小方块表示子量度块,其中所接收到的信号“1”被存储。
在步骤1中,接收的信息输入给每个存储器的子量度块。
在步骤2中,校验节点处理块410对从每一列中分割出的子量度块的每个值进行校验节点处理以及奇偶校验,然后将校验节点处理结果值存回子量度块中,由此更新校验节点消息。
在步骤3中,可变节点处理块420读取每一行的子量度块中更新的值,并对所读取的值进行可变节点处理,进行硬判决并进行LLR计算,然后,将结果值存回子量度块中,由此更新可变节点消息。存储器的子量度块的大小根据可变节点和校验节点的处理器数目决定。因此,可变节点和校验节点处理器的数目增加将会导致存储器分割出的子量度块数目的增加,使得硬件复杂度增加。但是,可变节点和校验节点处理器数目减少导致存储器分割出的子度量块数目减少,导致存储器访问速度和通过量的减少。
图5是普通LDPC解码算法的流程图。
如图5所示,校验节点处理过程580和可变节点处理过程590在循环基础上进行连接,而且一个计算过程是在另一个计算过程完成之后执行。这两个计算过程一直迭代直至在奇偶校验中的算法完成。
在步骤500中,校验节点处理器读取接收的信息,并将读取的信息存储于存储器中。这一过程称为“LDPC解码的初始化”。
在步骤510中校验节点处理器读取存储于存储器子量度段中的信息位,当在步骤525中对信息位进行奇偶校验时,在步骤520中进行校验节点处理。如果奇偶校验结果为“优”,那么校验节点处理器就停止迭代(迭代解码)。否则,在步骤530中校验节点处理器将用校验节点处理结果更新存储器中的可变节点值,因此也更新校验节点消息。在执行校验节点消息更新处理之后,初始化可变节点处理过程590。
在步骤540中,可变节点处理器从存储器子度量块中读取根据校验节点信息更新的可变节点值。可变节点处理器在步骤550中对更新的可变节点值求和,在步骤560中从总和的结果值中减去相应行的可变节点值,并在步骤565中对减法结果值执行硬判决。在步骤570中,可变节点处理器在存储器的子量度块中将减法结果值存为可变节点值,然后返回步骤510。
如上所述,普通LDPC码解码算法在对所有信息位执行校验节点处理之后执行可变节点处理。与这样的普通算法相比,根据这里所述本发明实施例的算法仅使用校验节点处理器而不包括可变节点处理器并行执行校验节点处理与可变节点处理,由此增加了通过量。
图6是根据本发明实施例的存储器结构图。
如图6所示,存储器600被分割成与校验节点处理器数目(D)相同的数量的子量度块,以便子量度块可以一对一地映射到校验节点处理器。子量度块的大小(Ssub_metric)是根据存在于设计者定义的奇偶校验矩阵的每行中1的数量来决定的。
更具体的说,存储器600中的输入信息被分成与子量度块数目D,即,校验节点处理器的数目D相同的每行信息片。这里,输入信息的每行信息被称为“一个字(word)”。
数字(Nsub_block#)表示映射到一个子量度块的校验节点数目,并且与每行中存储的1的数量相等。大小(Ssub_block_size#)表示子量度块的大小,并与存储于它们的相关子量度块的校验节点中1的数量相等。
当输入到子量度块的数据形成字时,存储器600的输入数据也具有相对宽的比特宽度。因此,该信息也同时输入到映射到子量度块的校验节点中,并且校验节点的输出值也输回给存储器600,因此充分保证了校验节点的并行性。
图7是根据本发明实施例的LDPC解码器的结构视图。
参考图7,LDPC解码器包括边缘存储器710,其映射到校验节点处理器760的校验节点;以及两个累加(ACC)存储器730a和730b。该边缘存储器710最好没有存储各个硬判决值的独立存储器空间,而且最好具有如图6所示的存储器结构。硬判决块770的解码结果则存储于比特缓冲器780中。
校验节点处理器760在存储接收的信息的接收缓冲器中对从每个子量度块中接收的每行信息进行校验节点处理,然后使用校验节点处理的结果值更新边缘存储器710中的校验节点值。
从校验节点处理器760中输出的值通过累加器720加到存储于第一累加存储器730a的先前校验节点值中,然后再存储于第二累加存储器730b中。即,第一累加存储器730a在执行当前校验节点处理前存储先前的校验节点值,而第二累加存储器730b存储通过将当前校验节点值加到第一累加存储器730a中的先前校验节点值而累积的值。
减法器740将存储于边缘存储器710中的值中的相应子量度块的存储值从第二累加存储器730b的累加值中减去,并将减法结果通过多路复用器(MUX)750提供给校验节点处理器760和硬判决块770。硬判决块770通过使用减法结果进行硬判决选择0或1中的一个。
比特缓冲器780存储来自硬判决块770的硬判决解码值,而且奇偶校验块790对硬判决值执行奇偶校验。如果奇偶校验块790的奇偶校验结果为“优”,则LDPC解码器停止迭代,并输出比特缓冲器780中的硬判决值作为解码结果。但是,如果奇偶校验结果为“差”,LDPC解码器就读取接收缓冲器的下一子量度块中的接收的信息。
如图7所示,根据本发明实施例的LDPC解码器使用两个累加存储器730a和730b来存储先前迭代的校验节点值和通过将校验节点值累加到每个子量度块的当前迭代而产生的总和值,且并不使用可变节点处理器。在传统LDPC解码器中使用的可变节点处理器与校验节点处理器尺寸类似。因此,根据本发明实施例的LDPC解码器的存储能力提高了,但是由于可变节点而减少了存储器分段和不使用可变节点处理器,所以由于增加了存储器输入/输出端口就降低了其复杂度,并提高了通过量。
现在参考图4和图8将描述根据本发明实施例的解码算法。
图8是根据本发明实施例的解码算法的概念图。
与传统解码算法中必须顺序执行图4中的步骤2和步骤3以能执行一次迭代操作相比,根据本发明实施例的解码算法仅需利用图8中的步骤2进行解码。
更具体的说,参考图8,存储器800的每一行被分割为与校验节点处理器数目相同的子量度块,且每个阴影小方块存储所接收的信息中的值“1”。
在步骤1中,接收到的信息逐行地输入给存储器800中每个子量度块。
在步骤2中,在方框840中,解码算法读取子量度块中的存储值,并对读取的存储值执行校验节点处理和奇偶校验。在方框820中,校验节点处理的结果值被累加至子量度块中的存储值。解码算法从该累加值中减去校验节点处理的结果值,从而计算可变节点值。该可变节点值作为存储值被存储回子量度块中。在对可变节点值执行奇偶校验后,如果奇偶校验结果为“优”,则解码算法停止迭代。但是,当奇偶校验结果为“差”时,解码算法继续进行迭代。
图9是根据本发明实施例的新颖的解码算法的流程图。
如图9所示,在步骤902中,LDPC解码器从接收缓冲器中的子量度块中读取接收的信息。在步骤904中,所读取的接收信息存储于累加存储器中,并在步骤906中进行校验节点处理,由此生成校验节点输出值。在步骤908中,边缘存储器中的存储值被校验节点输出值所更新,基本上同时,在步骤910中,校验节点输出值与先前迭代的校验节点输出值累加,生成可变节点消息。在步骤914中,生成的可变节点消息用来更新与之相关的子量度块中的累加值。
一旦对全部接收的数据完成校验节点的处理后,解码器就停止对校验节点输出值的累加。接着,在步骤918中,为下一次迭代,解码器从子量度块中读取更新的累加值,并在步骤912,读取更新的边缘存储器值,即,更新的校验节点输出值。在步骤916中,解码器从累加存储器中所累加的更新校验节点输出值中减去边缘存储器中更新的校验节点输出值。在步骤920和922中,解码器再分别对减法结果值,即,校验节点输入值,进行硬判决和奇偶校验。如果奇偶校验结果为“优”,解码器就停止迭代并输出硬判决值。
在步骤906至910中,校验节点和累加器并行地接收输入值,有助于简化存储访问过程。
从上前述应该明白,本发明改进了LDPC存储器分段和解码算法不够有效的缺点,并能同时执行校验节点处理和可变节点处理,因此提高了通过量。另外,本发明通过简单的存储器分段和简化节点处理器降低了硬件复杂度。
虽然本发明已参考其特定的实施例进行了显示及说明,但是本领域技术人员应能理解,在不脱离本发明的后附权利要求所限定的精神和范围的情况下,可对其在形式和细节上做出任何的变化。
Claims (10)
1、一种在移动通信系统中使用低密度奇偶校验码对前向纠错码进行解码的装置,该装置包括:
校验节点处理器,用于接收多个校验节点的接收信息,并对所接收的信息进行校验节点处理;
累加器,用于将来自校验节点处理器的校验节点输出值与在前累加值相累加;
边缘存储器,用于存储校验节点输出值;
多个累加存储器,用于存储来自累加器的累加值和在前累加值;
减法器,用于从累加器所提供的累加值中减去从边缘存储器中读取的校验节点输出值;
硬判决块,用于对接收的信息以及减法器的输出值进行硬判决;
比特缓冲器,用于存储硬判决结果;
奇偶校验块,用于对硬判决结果进行奇偶校验以决定是否终止迭代解码;和
多路复用器,用于传送减法器的减法结果值至校验节点处理器来执行迭代解码,基本上同时,还传送减法结果值至硬判决块。
2、如权利要求1所述的装置,其中,如果奇偶校验结果为优,奇偶校验块被配置为停止迭代解码并输出硬判决结果。
3、如权利要求1所述的装置,其中,所述边缘存储器被分割为独立映射到多个校验节点处理器的子量度块。
4、如权利要求3所述的装置,其中,分割的子量度块映射到多个校验节点,并且被配置为至少存储接收信息和校验节点输出值之一。
5、如权利要求4所述的装置,其中,接收的信息被分成与子量度块的数目相对应的字单位。
6、一种在移动通信系统中使用低密度奇偶校验码对前向纠错码进行解码的方法,该方法包括以下步骤:
逐行接收来自多个校验节点的接收的信息并对所接收的信息进行校验节点处理;
将校验节点处理的结果值与在前累加值相累加;
存储校验节点处理的结果值;
分别存储累加值和在前累加值;
从累加值中减去校验节点处理的结果值;
对接收的信息以及减法结果值进行硬判决;
存储硬判决结果,并对硬判决结果进行奇偶校验以决定是否终止迭代解码;和
存储迭代解码的减法结果值,基本上同时,传送减法结果值至硬判决块。
7、如权利要求6所述的方法,其中,决定的步骤包括下列步骤:
决定奇偶校验结果是否为优;以及
如果奇偶校验结果为优,就停止迭代解码并输出硬判决结果。
8、如权利要求6所述的方法,其中,校验节点处理的结果值存储于独立映射到多个校验节点的子量度块中。
9、如权利要求8所述的方法,其中,接收的信息被分成与子量度块的数目相对应的字单位。
10、一种在计算机可读介质上实施的移动通信系统中使用低密度奇偶校验码解码对前向纠错码进行解码的计算机程序,包括:
第一组指令,用于逐行接收来自多个校验节点的接收的信息,以及对所接收的信息进行校验节点处理;
第二组指令,用于将校验节点处理的结果值与在前累加值进行累加;
第三组指令,用于存储校验节点处理的结果值,并分别存储累加值和在前累加值;
第四组指令,用于从累加值中减去校验节点处理结果值,并对接收的信息和减法结果值执行硬判决;
第五组指令,用于存储硬判决结果,并对硬判决结果执行奇偶校验以决定是否停止迭代解码;
第六组指令,用于存储迭状解码的减法结果,基本上同时,将减法结果传送给硬判决块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR81417/04 | 2004-10-12 | ||
KR1020040081417A KR20060032464A (ko) | 2004-10-12 | 2004-10-12 | 효율적인 저밀도 패리티 검사 코드 복호 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1767397A true CN1767397A (zh) | 2006-05-03 |
Family
ID=35432707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005101249972A Pending CN1767397A (zh) | 2004-10-12 | 2005-10-12 | 低密度奇偶校验码的高效解码装置和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060107193A1 (zh) |
EP (1) | EP1648091A1 (zh) |
JP (1) | JP4038518B2 (zh) |
KR (1) | KR20060032464A (zh) |
CN (1) | CN1767397A (zh) |
AU (1) | AU2005222533B2 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340194B (zh) * | 2007-07-02 | 2011-08-17 | 美国博通公司 | 解码ldpc编码信号的解码器 |
CN101414835B (zh) * | 2007-10-19 | 2013-06-19 | 索尼株式会社 | 接收设备及方法 |
CN101997639B (zh) * | 2009-08-10 | 2014-10-22 | 中兴通讯股份有限公司 | 低密度奇偶校验-多输入多输出通信系统的迭代接收方法 |
CN104658609A (zh) * | 2013-11-19 | 2015-05-27 | 国际商业机器公司 | 用于存储器系统的纠错码分布的方法和系统 |
CN104995844A (zh) * | 2013-02-14 | 2015-10-21 | 马维尔国际贸易有限公司 | 具有对于ldpc码可靠性输入的比特翻转解码 |
CN107632903A (zh) * | 2016-07-19 | 2018-01-26 | 三星电子株式会社 | 低密度奇偶校验解码器、包括其的存储设备和方法 |
CN108352846A (zh) * | 2015-11-24 | 2018-07-31 | 德州仪器公司 | 用于低误差底限状况的ldpc后处理器架构及方法 |
CN110751977A (zh) * | 2019-10-18 | 2020-02-04 | 西安工业大学 | 一种基于ldpc码的存储芯片容错装置及容错纠错方法 |
CN113273085A (zh) * | 2019-01-14 | 2021-08-17 | 上海诺基亚贝尔股份有限公司 | 信道解码中的数据处理 |
CN114127692A (zh) * | 2019-07-24 | 2022-03-01 | 微芯片技术股份有限公司 | 用于对利用提前硬解码退出的存储器设备进行解码的存储器控制器和方法 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006120844A1 (ja) * | 2005-05-13 | 2006-11-16 | Nec Corporation | Ldpc符号化方式によるエンコーダ及びデコーダ |
US7571372B1 (en) | 2005-06-23 | 2009-08-04 | Marvell International Ltd. | Methods and algorithms for joint channel-code decoding of linear block codes |
JP4807063B2 (ja) | 2005-12-20 | 2011-11-02 | ソニー株式会社 | 復号装置、制御方法、およびプログラム |
US8028216B1 (en) | 2006-06-02 | 2011-09-27 | Marvell International Ltd. | Embedded parity coding for data storage |
WO2008059160A2 (fr) * | 2006-11-13 | 2008-05-22 | France Telecom | Codage et decodage d'un signal de donnees en fonction d'un code correcteur |
US8086928B2 (en) * | 2007-08-15 | 2011-12-27 | Broadcom Corporation | Methods and systems for terminating an iterative decoding process of a forward error correction block |
US8181081B1 (en) | 2007-11-30 | 2012-05-15 | Marvell International Ltd. | System and method for decoding correlated data |
CN101471674A (zh) * | 2007-12-28 | 2009-07-01 | 三星电子株式会社 | 低密度奇偶校验码译码方法及装置 |
US8291292B1 (en) * | 2008-01-09 | 2012-10-16 | Marvell International Ltd. | Optimizing error floor performance of finite-precision layered decoders of low-density parity-check (LDPC) codes |
WO2009023298A1 (en) * | 2008-04-10 | 2009-02-19 | Phybit Pte. Ltd. | Method and system for factor graph soft-decision decoding of error correcting codes |
US20090282316A1 (en) * | 2008-05-07 | 2009-11-12 | Texas Instruments Incorporated | Memory Access in Low-Density Parity Check Decoders |
US8675693B2 (en) * | 2009-04-27 | 2014-03-18 | Qualcomm Incorporated | Iterative decoding with configurable number of iterations |
KR101926608B1 (ko) * | 2012-08-27 | 2018-12-07 | 삼성전자 주식회사 | 경 판정 디코딩 방법 및 이를 이용한 저밀도 패리티 체크 디코더 |
US9612903B2 (en) * | 2012-10-11 | 2017-04-04 | Micron Technology, Inc. | Updating reliability data with a variable node and check nodes |
KR20150024489A (ko) * | 2013-08-26 | 2015-03-09 | 삼성전자주식회사 | 메모리 시스템에서의 ldpc 디코딩 방법 및 이를 이용한 ldpc 디코더 |
CN105187156B (zh) * | 2015-06-12 | 2018-06-08 | 北京理工大学 | 一种前向纠错码处理器 |
EP3316486B1 (en) * | 2016-10-25 | 2023-06-14 | Université de Bretagne Sud | Elementary check node-based syndrome decoding with input pre-sorting |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6938196B2 (en) * | 2001-06-15 | 2005-08-30 | Flarion Technologies, Inc. | Node processors for use in parity check decoders |
US7395487B2 (en) * | 2002-08-15 | 2008-07-01 | Broadcom Corporation | Common circuitry supporting both bit node and check node processing in LDPC (Low Density Parity Check) decoder |
US7178080B2 (en) * | 2002-08-15 | 2007-02-13 | Texas Instruments Incorporated | Hardware-efficient low density parity check code for digital communications |
-
2004
- 2004-10-12 KR KR1020040081417A patent/KR20060032464A/ko not_active Application Discontinuation
-
2005
- 2005-10-12 EP EP05022215A patent/EP1648091A1/en not_active Withdrawn
- 2005-10-12 CN CNA2005101249972A patent/CN1767397A/zh active Pending
- 2005-10-12 JP JP2005298181A patent/JP4038518B2/ja not_active Expired - Fee Related
- 2005-10-12 AU AU2005222533A patent/AU2005222533B2/en not_active Ceased
- 2005-10-12 US US11/247,188 patent/US20060107193A1/en not_active Abandoned
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340194B (zh) * | 2007-07-02 | 2011-08-17 | 美国博通公司 | 解码ldpc编码信号的解码器 |
CN101414835B (zh) * | 2007-10-19 | 2013-06-19 | 索尼株式会社 | 接收设备及方法 |
CN101997639B (zh) * | 2009-08-10 | 2014-10-22 | 中兴通讯股份有限公司 | 低密度奇偶校验-多输入多输出通信系统的迭代接收方法 |
CN104995844A (zh) * | 2013-02-14 | 2015-10-21 | 马维尔国际贸易有限公司 | 具有对于ldpc码可靠性输入的比特翻转解码 |
CN104995844B (zh) * | 2013-02-14 | 2018-11-30 | 马维尔国际贸易有限公司 | 具有对于ldpc码可靠性输入的比特翻转解码 |
CN104658609B (zh) * | 2013-11-19 | 2018-09-18 | 格芯公司 | 用于存储器系统的纠错码分布的方法和系统 |
CN104658609A (zh) * | 2013-11-19 | 2015-05-27 | 国际商业机器公司 | 用于存储器系统的纠错码分布的方法和系统 |
CN108352846A (zh) * | 2015-11-24 | 2018-07-31 | 德州仪器公司 | 用于低误差底限状况的ldpc后处理器架构及方法 |
CN107632903A (zh) * | 2016-07-19 | 2018-01-26 | 三星电子株式会社 | 低密度奇偶校验解码器、包括其的存储设备和方法 |
CN107632903B (zh) * | 2016-07-19 | 2022-05-10 | 三星电子株式会社 | 低密度奇偶校验解码器、包括其的存储设备和方法 |
CN113273085A (zh) * | 2019-01-14 | 2021-08-17 | 上海诺基亚贝尔股份有限公司 | 信道解码中的数据处理 |
CN114127692A (zh) * | 2019-07-24 | 2022-03-01 | 微芯片技术股份有限公司 | 用于对利用提前硬解码退出的存储器设备进行解码的存储器控制器和方法 |
CN110751977A (zh) * | 2019-10-18 | 2020-02-04 | 西安工业大学 | 一种基于ldpc码的存储芯片容错装置及容错纠错方法 |
Also Published As
Publication number | Publication date |
---|---|
US20060107193A1 (en) | 2006-05-18 |
JP4038518B2 (ja) | 2008-01-30 |
AU2005222533B2 (en) | 2007-11-29 |
AU2005222533A1 (en) | 2006-04-27 |
EP1648091A1 (en) | 2006-04-19 |
JP2006121686A (ja) | 2006-05-11 |
KR20060032464A (ko) | 2006-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1767397A (zh) | 低密度奇偶校验码的高效解码装置和方法 | |
US10298261B2 (en) | Reduced complexity non-binary LDPC decoding algorithm | |
US7631241B2 (en) | Apparatus and method for decoding low density parity check codes | |
JP4038519B2 (ja) | 統合ノード処理を用いる低密度パリティ検査符号の復号方法及び装置 | |
US8739001B2 (en) | LDPC encoding and decoding techniques | |
US20130031438A1 (en) | Multi-rate ldpc decoding | |
CN101079639A (zh) | 基于节点存储器的低密度奇偶校验解码装置和方法 | |
WO2018036178A1 (zh) | 一种ldpc的解码方法 | |
US9397706B1 (en) | System and method for irregular multiple dimension decoding and encoding | |
US9553608B2 (en) | Data storage device decoder and method of operation | |
CN1874164A (zh) | 使用同时存储器存取的消息传递译码装置和方法 | |
US20170134049A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
US20200091933A1 (en) | Iterative decoding with early termination criterion that permits errors in redundancy part | |
US8122315B2 (en) | LDPC decoding apparatus and method using type-classified index | |
CN101047392A (zh) | 一种多码率的ldpc码的译码器装置及译码方法 | |
CN102594369B (zh) | 基于fpga的准循环低密度校验码译码器及译码方法 | |
CN111294061A (zh) | 一种原始比特错误率感知的译码软判决延迟降低方法 | |
CN109935263B (zh) | 非易失性存储器的编译码方法及存储系统 | |
US8443250B2 (en) | Systems and methods for error correction using irregular low density parity check codes | |
CN110708077A (zh) | Ldpc码大数逻辑译码方法、装置和译码器 | |
CN113904690A (zh) | 解码装置、设备、方法和计算机程序 | |
CN112152637B (zh) | Dvb-s2 ldpc译码变量节点更新模块及其实现方法 | |
CN101807928B (zh) | 记录控制器及奇偶校验码译码器 | |
CN118573213A (zh) | 基于分层和积译码算法的fpga实现方法、系统及介质 | |
WO2020078113A1 (zh) | 基于低密度奇偶校验码的译码方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |