CN101814975B - 多级解码器和符号块解码方法 - Google Patents

多级解码器和符号块解码方法 Download PDF

Info

Publication number
CN101814975B
CN101814975B CN201010130444.9A CN201010130444A CN101814975B CN 101814975 B CN101814975 B CN 101814975B CN 201010130444 A CN201010130444 A CN 201010130444A CN 101814975 B CN101814975 B CN 101814975B
Authority
CN
China
Prior art keywords
decoder
sub
node
message
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201010130444.9A
Other languages
English (en)
Other versions
CN101814975A (zh
Inventor
乔纳森·S·叶迪达
王一歌
斯塔克·C·德雷珀
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN101814975A publication Critical patent/CN101814975A/zh
Application granted granted Critical
Publication of CN101814975B publication Critical patent/CN101814975B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • H04L1/0053Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables specially adapted for power saving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/112Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1191Codes on graphs other than LDPC codes
    • H03M13/1194Repeat-accumulate [RA] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes

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)

Abstract

本发明涉及多级解码器和符号块解码方法。本发明提供了一种多级解码器,其将经由有噪声信道接收的符号块解码为码字。该解码器包括顺序地连接的多个子解码器,并且其中后一个子解码器具有比前一个子解码器更慢的处理时间和更好的字错误率,并且其中,仅当所述前一个解码器对所述符号序列块解码失败时,才执行所述后一个子解码器,并执行最后一个子解码器直到达到终止条件为止。

Description

多级解码器和符号块解码方法
技术领域
本发明总体上涉及对纠错码的码字进行解码,具体地说,涉及使用多级解码器对码字进行解码。
背景技术
纠错码
数据存储和通讯领域的一个主要问题是开发实用的纠错码(ECC)解码方法。
纠错码的一个非常重要的类别是线性分组纠错码。除非另有规定,本发明所涉及的任何“码”都是指线性分组纠错码。
这些码的基本思想是使用由N个符号构成的块对由k个信息符号构成的块进行编码,这里N>k。其余的N-k比特被用于对通过噪声信道接收信号时或从有故障的存储介质中恢复信号时损坏的信号进行纠错。
满足该码的所有约束的由N个符号构成的块被称为“码字”,且其对应的由k个信息符号构成的块被称为“信息块”。假设这些符号是从q元字母表中提取出来。
一个重要的特例是当q=2的时候。此时,该码被称为“二进制”码。尽管这里描述的解码方法通常可以推广到q>2时的q元码,但在这里给出的例子里假设都是二进制码。二进制码是实际应用中最重要的码。
在使用线性分组纠错码的常规“信道编码”中,消息源产生由k个符号构成的信息块u[a]。该信息块被传送给纠错码的编码器。该编码器生成包含N个符号的码字x[n]。接着,该码字被通过信道被发送,其中,该码字可能被破坏成信号y[n]。随后,该被破坏的信号y[n]被传送给解码器,该解码器尝试输出该码字x[n]的重构形式z[n]。
编码参数
二元线性分组码是由2k个块长度为N的可能码字的集合定义。参数k有时被称为该码的“维数”。在N和k很大时,这些码通常更加有效。然而,随着参数N和k大小的增加,对被破坏的消息进行解码的难度也随之增加。
两个码字之间的汉明(Hamming)距离被定义为这两个码字之间不同的符号的数量。码的距离d被定义为该码中任意两个码字之间的最小汉明距离。具有较大d值的码拥有更好的纠错能力。具有参数N和k的码被称为[N,k]码。如果距离d也是已知的,则该码被称为[N,k,d]码。
码的奇偶校验矩阵表示
线性码可由奇偶校验矩阵来表示。表示二元[N,k]码的奇偶校验矩阵是一个具有M行N列的由0和1组成的矩阵。该奇偶校验矩阵的N列对应着该码的N个符号。该矩阵的线性无关行的数量是N-k。
奇偶校验矩阵的每一行都表示一个奇偶校验约束。由特定行表示的约束中所包含的符号对应于在该行中具有非零符号的列。该奇偶校验约束强制要求这些符号的加权和模2等于0。例如对于二进制码,奇偶校验矩阵表示下面三个约束:
x[1]+x[2]+x[3]+x[5]=0,
x[2]+x[3]+x[4]+x[6]=0,以及
x[3]+x[4]+x[5]+x[7]=0,
其中x[n]是第n个比特的值,并且使用模2算术的规则执行二进制符号的加法,从而有0+0=1+1=0以及0+1=1+0=1。
码的图形化模型
通常使用图形化模型(在现有技术中也称为“Tanner图”)来表示线性码的奇偶校验矩阵。Tanner图是具有两种节点的二分图:“变量节点”对应于码字符号,“约束节点”对应于奇偶约束。因此,表示该码的奇偶校验矩阵的每一列都有一个变量节点,并且该奇偶校验矩阵的每一行都有一个约束节点。在Tanner图中,如果相应的符号处于一个约束等式中,则该变量节点连接到约束节点。从而,对于奇偶校验矩阵中的每一个非零项都有一个将变量节点与约束节点连接在一起的线。
也存在其他可以很容易地转换成Tanner图的码的图形化模型。例如,G..David Forney曾推广的“因子图(factor graph)”表示,其中变量由图中的线表示,而码符号被表示为变量之间的等式约束,参见G..D.Forney的“Codes on Graphs:Normal Realizations”,IEEE Transactions onInformation Theory,2001年2月,第47卷,第520-548页。尽管此处我们描述了根据Tanner图的解码算法,但能够很好地理解如何利用其他图形化模型对这些解码方法进行转换来工作。
纠错码解码器
纠错码解码器的任务是:在发送的码字已经在信道中被破坏之后,接受所接收的信号,并且试图重建所发送的码字。最优(就使解码失败的码字数量最小化而言)解码器在给定接收信号的情况下输出最可能的码字。该最优解码器被称为“最大似然”解码器。然而如果信道中的噪声足够大,即使最大似然(ML)解码器有时也会发生解码错误并输出一个并不是所发送的码字的码字。
迭代解码器
在实际应用中,仅能够针对特殊类别的纠错码构造最大似然解码器。一直以来,人们对基于迭代方法的非最优的近似解码器有很大兴趣。其中的一个迭代解码方法被称为“可信度传播”(BP),尽管R.Gallager没有以这个名字命名它,但其在1963年首次描述了用于低密度奇偶校验(LDPC)码的BP解码方法。
Turbo码
1993年类似的迭代方法对被称为“turbo码”的一类新的码表现非常好。Turbo码的成功在一定程度上使得人们对LDPC码和迭代解码方法重新产生了浓厚的兴趣。为了提高迭代解码方法对turbo码和LDPC码二者以及诸如“turbo产品码”和“重复累加码”之类的其他相关码的性能,人们已经进行了大量的工作。例如在2003年8月的IEEE Communications杂志的一辑特刊就是专门针对这项工作。对于概述,参见C.Berrou的“TheTen-Year-Old Turbo Codes are entering into Service”,IEEE CommunicationsMagazine,第41卷,第110-117页,2003年8月,以及T.Richardson和R.Urbanke的“The Renaissance of Gallager’s Low-Density Parity CheckCodes”,IEEE Communications Magazine,第41卷,第126-131页,2003年8月。
很多turbo码和LDPC码使用随机构建方法进行构建。例如,Gallager最初的二元LDPC码是根据奇偶校验矩阵进行定义的,该矩阵仅由“0”和“1”组成,其中,很少数量的“1”根据预定的概率分布随机地放置在该矩阵中。然而,迭代解码器也已经能够成功地应用于由规则构建方法定义的码,例如由有限个几何图形定义的码,参见Y.Kou、S.Lin和M.Fossorier的“Low Density Parity Check Codes Based on Finite Geometries:ARediscovery and More”,IEEE Transactions on Information Theory,第47卷,第2711-2736页,2001年11月。一般来说,对于具有包含相对少量非零项的奇偶校验矩阵的码,迭代解码器能够很好地工作,而不论该奇偶校验矩阵是随机构造的还是规则构造的。
在具有基于BP的LDPC码解码器的系统中,该系统基于约束而迭代地处理所接收到的符号以提高每个符号的可靠性,该约束由指定了码的奇偶校验矩阵给出。
在第一次迭代中,BP解码器仅使用信道迹象(channel evidence)作为输入,并产生从各符号到包含该符号的奇偶校验约束的软输出消息。将消息从该符号发送到该约束的阶段有时被称为“垂直”步骤。然后,在相邻的约束处处理来自该符号的消息以向该符号反馈新消息。这个步骤有时被称为“水平”步骤。该解码迭代过程在垂直和水平步骤间持续地交替进行,直到满足特定的终止条件为止。此时,基于来自最后一次解码迭代的符号的输出可靠性测度,针对各符号作出硬判决。
可以使用前面描述的Tanner图对BP解码器的消息进行可视化。垂直步骤消息是从变量节点到约束节点,而水平步骤消息是从约束节点到变量节点。
消息更新规则的准确形式和消息的含义根据BP方法所使用的具体变型而不同。两种特别流行的消息更新规则是“和积”规则和“最小和”规则。这些现有技术的消息更新规则是公知的,并且对这些消息更新规则的近似在实践中也被证明能够工作良好。进一步的细节在2008年5月13日授予Yedidia等人的美国专利US7,373,585中进行了描述:“Combined-replica group-shuffled iterative decoding for error-correctingcodes”,通过引用合并于此。
在BP方法的一些变型中,消息代表一个比特是“0”还是“1”的对数似然度。关于BP方法及其在纠错码上应用的更多背景资料参见F.R.Kschischang,B.J.Frey和H.-A.Loeliger的“Factor Graphs and theSum-Product Algorithm”,IEEE Transactions on Information Theory,第47卷,第498-519页,2001年2月。
量化的可信度传播
在实践中,一种很流行的实现BP解码器的方法是将消息量化为某一少量的可能值。例如,解码器可以仅使用值为+1和-1的消息。量化的BP(QBP)解码器会随着可能的消息数量的增多而变得更加强大,从而更好地接近于非量化的BP解码器。另一方面,随着可能消息数量的增多,实现量化的BP解码器的代价和复杂度也随之增加。
本领域中另一个已知的QBP解码器是“E算法”,参见Richardson等人的“The capacity of low-density parity-check codes under message-passingdecoding”,IEEE Trans.Inform.Theory,第47卷,第599-618页,2001年2月。由于该解码器受到特别关注,此处详细的描述它在二元对称信道(BSC)上对LDPC码进行解码的功能。
该E算法解码器对从BSC接收的输入符号序列进行解码。该输入符号序列由向量y表示。使用二元移相键控(BPSK),使得位于位置n的符号0被映射到yn=1,且位于位置n的符号1被映射到yn=-1。
令H=[Hmn]为LDPC码的一个M×N的奇偶校验矩阵。将参与校验j的变量节点集合表示为N(j)={k:njk=1},并且,将变量k参与的校验集合表示为Q(k)={j:Hjk=1}。N(j)\k表示排除了变量k的集合N(j),且Q(k)\j表示排除了校验j的集合Q(k)。
E算法解码器将BP消息量化为值-1,0或+1,与第i次迭代相关联的消息和可信度表示为:
umn (i):从校验节点m传送到变量节点n的消息;
vmn (i):从变量节点n传送到校验节点m的消息;和
vn (i):变量节点n的可信度。
“E算法”解码器的工作步骤如下:
步骤1:对1≤m≤M,和每一个n∈N(m),执行
u mn ( i - 1 ) = Π n ′ ∈ N ( m ) \ n v mn ′ ( i - 1 ) ;
步骤2:对1≤n≤N,和每一个m∈Q(n),执行
v mn ( i ) = sgn ( w ( i ) · y n + Σ m ′ ∈ Q ( n ) \ m u m ′ n ( i ) ) ,
其中w(i)是适当选择的权重,并且
v n ( i ) = sgn ( w ( i ) · y n + Σ m ′ ∈ Q ( n ) u m ′ n ( i ) ) .
此处,如果x>0,则sgn(x)=1,如果x<0,sgn(x)=-1,且sgn(0)=0。
步骤3:构建一个向量从而如果如果如果则随机选择如果或者达到Imax,则停止解码的迭代并输出作为解码后的码字。否则,令i:i=i+1,转到步骤1。
位翻转解码器
位翻转(BF)解码器是与BP解码器类似地工作的迭代解码器。这些解码器稍微更简单一些。LDPC码的位翻转解码器也已经有很长的历史了,且在19世纪60年代早期,Gallager介绍LDPC码时也提出了位翻转解码器。在位翻转解码器中,基于信道输出而最初对各码字比特赋予0或者1。然后,在各次迭代中计算各个奇偶校验的校验算子。如果满足奇偶校验,则该奇偶校验的校验算子为0,如果不满足则为1。然后,对于各比特,对所有包含该比特的奇偶校验的校验算子都进行校验。如果不满足那些奇偶校验的数量大于预定的阈值,则相应的比特被翻转。迭代继续进行,直到满足所有的奇偶校验或者达到预定的最大迭代次数为止。
可以被迭代解码的其他码
存在很多可以使用迭代解码方法成功解码的其他码。在文献中这些码是公知的,并且由于数量太多而难以对它们都进行详细描述。这些码中最著名的是:turbo码,参见C.Berrou和A.Glavieux的“Near-OptimumError-Correcting Coding and Decoding:Turbo-codes”,IEEE Transactions inCommunications,第44卷,第1261-1271页,1996年10月;不规则LDPC码,参见M.A.Shokrollahi,D.A.Spielman,M.G..Luby和M.Mitzenmacher的“Improved Low-Density Parity Check Codes Using Irregular Graphs”,IEEE Trans.Information Theory,第47卷,第585-598页,2001年2月;重复累积码,参见D.Divsalar,H.Jin和R.J.McEliece的“Coding Theoremsfor‘Turbo-like’Codes”,Proc.36th Allerton Conference on Communication,Control and Computing,第201-210页,1998年9月;LT码,参见M.Luby,“LT Codes”,Proc.Of the 43 Annual IEEE Symposium On Foundations ofComputer Science,第271-282页,2002年11月;和Raptor码,参见A.Shokrollahi,“Raptor Codes”,Proceedings of the IEEE InternationalSymposium on Information Theory,第36页,2004年7月。
线性规划和自适应线性规划解码器
LDPC码的一个另选解码方法是基于线性规划(LP)。LP解码方法具有一些BP解码方法不具备的诱人特征。该LP解码器确定性收敛。每当该解码器输出一个码字,该码字都能保证是最大似然(ML)解。当该LP解码器收敛于一个非二元解时,就会找到一个明确定义的“伪码字”。
ML解码问题等价于下面的整数最优化问题:
minimize约束为
其中γ为已知的负对数似然度向量,T为转置运算符,其中第n项定义为
γ n = log ( Pr [ y n | c n = 0 ] Pr [ y n | c n = 1 ] ) .
当信道为BSC时,如果接收的BPSK符号是yn=-1,则γn=log[p/(1-p)];如果接收的BPSK符号为yn=1,则γn=log[(1-p)/p]。
上述整数最优化问题中的变量和约束是二元的。在该问题的松弛LP形式中,各符号都放松为相应的变量其可以在0和1之间取值。各奇偶校验被码字必须满足的许多局部线性约束代替。这些约束的交集定义了该LP求解器操作的多面体。该多面体的二元顶点对应于码C中的码字。当LP最优值位于这样的一个顶点时,该LP就被满足,并且找到了ML解。非二元解被称为伪码字。
不幸的是,LP解码方法要比BP解码方法更加复杂。一种使用自适应线性规划(ALP)解码器的方法降低了计算负荷,参见Taghavi等人的“Adaptive methods for linear programming decoding”,IEEE Transactions onInformation Theory,第54卷,第12期,第5386-5410页,2008年12月。
混合整数线性规划解码器
当LP解码问题的解是非二元时,人们被激发去探寻原LP松弛的收紧方法。收紧的目的是生成一个经过修改的LP问题,该经过修改的LP问题消除了先前的最优伪码字而不消除任何二元顶点,由此使得该经过修改的LP问题的解趋向ML解。
一种方法是增加少量的整数约束条件以得到混合整数线性规划(MILP)。具体地,在MILP解码器中,人们能够识别出其值最接近0.5的符号。对于的该索引,解码器包括整数约束并且再次执行包含该整数约束的LP解码器。如果即使在增加了一个整数约束后,该MILP解码器仍然解码失败,则可以增加更多的整数约束。在Draper等人的相关申请中,该方法被用于LDPC码。
同一码的不同解码器的性能
对于各种不同类型的码,很多不同的解码器通常都是可用的。例如,对于LDPC码,人们可以在(除此之外)位翻转解码器、不同量化水平的量化BP解码器、使用积和或最小和方法的BP解码器、LP解码器和MILP解码器间进行选择。
对于其它公知的编码,例如Reed-Solomon码,也存在多种不同的解码方法,包括编码教程中能够找到的像Berlekamp-Massey解码方法之类的经典解码方法,或者基于可信度传播的更新的解码方法,或者列表解码方法。
一般通过将解码器的错误率作为信噪比(SNR)的函数进行绘图来比较不同的解码方法。两个常用的测度是计算“字错误率”(WER)和“比特错误率”(BER),其中“字错误率”(WER)对未被正确地解码为所发送码字的块的比率进行测量,而“比特错误率”(BER)对未被正确解码的比特的比率进行测量。这里,我们关注的是WER。如果在特定信噪比率下一个解码器的WER比另一个解码器更低,则该解码器“更好”或者说“更强大”。
图3示出了对同一个码进行操作的不同解码器的作为SNR的函数的WER。在这个例子中,在低信噪比下解码器A 310优于解码器B,但是在高信噪比下解码器B 320优于解码器A。图4示出了解码器A 410在各SNR下都比解码器B 420表现好的例子。
解码器的处理时间
通常,要在解码器的WER性能与该解码器处理一个块所花费的时间之间进行权衡。作为一个示例,如果使BP解码器在终止之前针对各块都运行更多次迭代,则其将具有更好的WER性能。简单的解码器趋向于具有少的处理时间但WER性能较差,而更复杂的解码器则趋向于具有较长的处理时间和更好的WER性能。有时一个解码器会比第二个解码器的WER好上多个数量级,但它的处理时间也会比第二个解码器差上多个数量级。
迫切需要构建一种无需在性能和处理时间之间进行权衡的解码器,即该解码器同时具有出色的性能和少量的处理时间。
发明内容
本发明的思想是将多个子解码器组合成单一的多级解码器,所述多个子解码器可依据所感兴趣的工作域处的字错误率(WER)性能进行排序。第一子解码器是性能最差的解码器,而最后一个子解码器是性能最好的解码器。这些子解码器也可以根据它们的处理时间进行排序。第一子解码器具有最短的每块处理时间,而最后一个子解码器具有最长的每块处理时间。
本发明的实施方式提供了一种多级解码器,该多级解码器顺序地组合了量化可信度传播(QBP)子解码器、非量化可信度传播(UBP)子解码器和混合整数线性规划(MILP)子解码器或线性规划解码器。各子解码器仅当前面的子解码器未能收敛于一个有效码字时才被激活。
较快的QBP和UBP子解码器能够纠正大多数错误,从而具有较短的平均解码时间。仅在QBP和UBP子解码器都失败的罕见情况下,才使用较慢但是性能更好的线性规划解码器或者MILP子解码器。
结果显示,与常规BP解码方法相比,多级解码器的WER有了很大的改进。这种改进在高SNR区域特别引人注意。该多级解码器还能够显著地加速对LDPC码的解码。对于某些编码,与仅使用线性规划解码器或者MILP解码器相比,本发明能够以低得多的复杂度有效地逼近高SNR区域的最优ML解码性能。
本发明还通过仅当消息改变时才更新校验节点和变量节点而对QBP解码器进行了改进。在高SNR的情况下,仅需要更新来自变量节点和校验节点的少量消息。因此,与常规QBP解码器相比,解码仅需要少量的计算。
附图说明
图1是根据本发明的实施方式的多级解码器的框图,
图2是根据本发明的实施方式的量化可信度传播解码的流程图,以及
图3-4是对示例性解码器的作为信噪比的函数的字错误率性能进行比较的图。
具体实施方式
图1示出了根据本发明的实施方式的低密度奇偶校验(LDPC)码的多级解码器100。该解码器包括顺序地连接的量化可信度传播(QBP)子解码器110、非量化BP(UBP)子解码器120和线性规划(LP)解码器或混合整数线性规划(MILP)子解码器130。
该多级解码器100接收经由有噪声信道102发送的码字x101。子解码器110尝试对码字101进行解码。如果该子解码器110失败,则由子解码器120尝试进行解码。如果子解码器120失败,则由子解码器130尝试进行解码,直到达到终止条件为止。这些子解码器被设置为在次序上后一个子解码器比前一个子解码器的处理时间(T)更慢且字错误率(WER)更好,也就是说TQBP<<TUBP<<TMILP,并且WERQBP>>WERUBP>>WERMILP
“解码失败”表示特定的解码器未能输出有效的码字。例如,QBP解码器可能无法收敛。如果解码器输出了有效但不正确的码字,就表示解码器“解码成功”了,并且不触发后续解码器的执行。当然,与所发送的码字不一致的解码“成功”也有助于WER。
MILP子解码器130以如下方式工作。该子解码器130首先尝试执行标准LP解码。如果该标准LP解码失败,则为最不可信赖的已解码比特增加一个整数约束。如果解码再次失败,则增加另一个整数约束,如此继续直到解码成功或者达到整数约束的某个最大数量为止。MILP子解码器在整数约束的最大数量较大时性能会更好,但其最坏情况处理时间也更高。
令人惊讶的是,我们的多级解码器在如上所述并以此处所描述的方式设置时,近似于与最快级一样快并且WER近似于与最慢级一样好。以下的分析用于对以此处所述方式设置的多级解码器的每块平均处理时间进行近似。如果我们假设一个给定的子解码器级的每块处理时间是T,且字错误率是WER,则该多级解码器的每块平均处理时间近似为:
T QBP ( 1 + WER QBP T UBP T QBP + WER QBP - UBP T MILP T QBP ) ,
其中TQBP是QBP子解码器110的每块平均处理时间,TUBP是UBP子解码器120的每块平均处理时间,TMILP是MILP子解码器130的每块平均处理时间,WERQBP是QBP子解码器110的WER,WERQBP-UBP是由QBP子解码器及其随后的UBP子解码器构成的二级解码器(不包括MILP子解码器)的WER。
因此,只要WERQBP<<TQBP/TUBP,并且WERQBP-UBP<<TQBP/TMILP,则该每块平均处理时间近似与解码器110的每块平均处理时间相同。同时,仿真示出了该多级解码器的WER性能几乎总是至少与其最后一个子解码器130的WER性能一样好。应当注意的是,我们的多级解码器的概念适用于另行顺序设置的解码器。例如,可以针对特定的LDPC码而优化设计级数和对解码器的选择。
“活跃集”迭代解码器
在诸如常规BP解码器的常规迭代解码器中,在各次迭代中对来自校验节点和变量节点的所有消息进行更新。然而,对于自从上次迭代以来传入(incoming)消息没有发生改变的节点来说该操作并不是必需的。例如,对于BSC而言,在信噪比(SNR)足够高的情况下,常规BP解码器中的大多数消息在解码期间从来不需要更新,这是因为信道仅仅转换少量的发送比特,从而能够显著降低解码复杂度。
我们的“活跃集”迭代解码器的基本原理是对已发生改变的消息集合进行追踪,并且仅对从传入消息位于该集合中的那些节点传出的消息进行更新。
如果单个处理器或者少量处理器负责更新各个消息,则使用“活跃集”迭代解码器而获得的加速就尤其重要。人们希望处理器将时间浪费在重复计算未发生改变的消息上。
可以针对很多不同的码、信道和解码方法而构建活跃集迭代解码器。
我们针对二元对称信道上的LDPC码的E算法解码器的特定实施方式而描述活跃集解码器。我们假设输入比特序列由向量y表示并且使用二元相移键控(BPSK),使得位于位置n的符号0映射到yn=1,而位于位置n的符号1映射到yn=-1。
令H=[Hmn]为LDPC码的M×N的奇偶校验矩阵。参与校验j的变量节点集合表示为N(j)={k:Hjk=1},且变量k参与的校验集合表示为Q(k)={j:Hjk=1}。N(j)\k是排除了码字符号K的集合N(j),Q(k)\j是排除了校验j的集合Q(k)。
回顾E算法解码器将BP消息量化为值-1,0或+1。与第i次迭代相关联的消息和可信度表示为:
umn (i):从校验节点m传送到变量节点n的消息;
vmn (i):从变量节点n传送到校验节点m的消息;和
vn (i):变量节点n的可信度。
对于活跃集E算法解码器(QBP)110,我们分别定义Av和Ac作为变量节点的活跃集和校验节点的活跃集。活跃集仅包含将要被更新的节点。这与现有技术中的迭代解码器形成对比,现有技术中的迭代解码器在各次迭代期间所有节点都是活跃的并且都被更新。
活跃集E算法迭代解码器的执行步骤如下:
初始化201:令i=1,(即空集),并且令最大迭代次数为Imax。对于各校验节点m和变量节点n,令 对于各个n,令对于所有的m∈Q(n),如果yn=-1,则令且将这些m添加到Ac中。
步骤1  210:令(即空集)。对于每一个m∈Ac,和n∈N(m),执行以下处理
u mn ( i - 1 ) = Π n ′ ∈ N ( m ) \ n v mn ′ ( i - 1 ) ,
并且将所有的这些变量节点n添加到集合Av中。
步骤2  220:令(即空集)。对于每一个n∈Av和m∈Q(n),执行以下处理
v mn ( i ) = sgn ( w ( i ) · y n + Σ m ′ ∈ Q ( n ) \ m u m ′ n ( i ) ) ,
其中w(i)是适当选择的权重。
如果(225),则将m添加到Ac中(226),并重新计算(227)
v n ( i ) = sgn ( w ( i ) · y n + Σ m ′ ∈ Q ( n ) u m ′ n ( i ) ) ,
其中,对于x>1,sgn(x)=1;对于x<1,sgn(x)=-1;并且sgn(0)=0。
步骤3  230:创建向量从而如果如果并且如果则随机选择如果或者达到了Imax,则停止解码迭代并输出作为解码出的码字。否则,令i=i+1,并转向步骤1。
活跃集E算法解码器具有与常规E算法解码器相同的性能,但是,如果仅有单个或者少数几个处理器被用来计算消息,则其具有更少的每块处理时间。
要注意,在二元输入对称信道上的线性码的解码器的软件仿真中,人们可以进行这样的简化假设:在每一块发送相同的码字(通常为了方便而使用全零码字)。这是因为对于每个可能发送的码字,解码器的性能是相同的。
当假设每块发送完全相同的码字时,活跃集解码器的初始化步骤可能会得到进一步的重要加速。
例如,对于在BSC上的LDPC的活跃集E算法解码器来说,如果各块发送相同的码字,则每当一个块被成功解码时,下一块的初始化步骤仅花费O(Np)时间来记录新转换比特的位置,其中p是该信道的交叉概率(crossover probability)。否则,如果允许发送任意码字,则必须花费O(N)时间,因为所有接收的符号都需要以相同的概率初始化为+1或-1。
表I示出了常规量化解码器(E)和我们的活跃集量化解码器(Fast E)在用于长度为1908、速率为8/9的LDPC码时所需要更新的次数。
表I
在表I中,“变量更新”表示针对各块在步骤2中所处理的变量节点的平均数量,而“校验更新”意味着针对各块在步骤1中所处理的校验节点的平均数量。这些统计数据是通过对多于100,000个发送块进行平均而获得的。很显然,我们的解码器110在所有方面都胜过常规量化解码器。我们的解码器对于相对小的交叉概率尤其有效。这对于我们研究在高SNR下的码的性能尤其有益。
我们已经详细描述了用于二元对称信道(BSC)的活跃集解码器。构建用于其他信道和其他码的活跃集解码器也是可行的。为了在上述可行性中限制需要更新的消息的数量,可能优选的是,针对一个消息被认为将发生改变从而该消息必须发生的变化量来设置阈值。仅当该消息的改变足够多的情况下,也就是说,在改变大于预定阈值的情况下,才将该消息所到达的节点添加到活跃集中。变量节点的另一个可能性是,人们追踪变量节点的“可信度”,并且仅在该可信度的改变足够大的情况下,才将该变量节点添加到活跃集中。
需要注意的是本发明的实施方式能够用于许多不同的纠错码,包括:低密度奇偶校验码;fountain码,其包括Luby变换码和raptor码;Turbo码;重复累积码;和其他可以使用迭代可信度传播或位翻转解码器进行解码的相关码。
尽管以优选实施方式为例描述了本发明,但应该理解,在本发明的主旨和范围内可以进行各种其他的改变和修改。因此,附加的权利要求书的目的就是覆盖落入本发明的真正主旨和范围内的所有这样的改变和修改。

Claims (20)

1.一种多级解码器,其用于将经由有噪声信道接收的符号块解码为纠错码的码字,该多级解码器包括:
顺序地连接的多个子解码器,其中,后一个子解码器具有比前一个子解码器更慢的处理时间和更好的字错误率,并且其中,仅当所述前一个解码器对所述符号序列块解码失败时,才执行所述后一个子解码器,并执行最后一个子解码器直到达到终止条件为止;
其中,使用了迭代解码方法的任何子解码器均利用活动集解码器,所述信道是二元对称信道,并且其中,所述活动集解码器进一步包括:
迭代可信度传播解码器,其包括:
校验节点的集合;
变量节点的集合;以及
用于在所述校验节点的集合与所述变量节点的集合之间传送消息的装置,并且其中,仅当到所述校验节点的传入消息的集合改变时,才更新来自所述校验节点的传出消息的集合,并且仅当到所述变量节点的传入消息改变时,才更新来自所述变量节点的所述传出消息的集合。
2.根据权利要求1所述的多级解码器,其中所述多个子解码器包括顺序地连接的如下子解码器:
量化可信度传播QBP子解码器;
非量化可信度传播UBP子解码器;以及
混合整数线性规划MILP子解码器。
3.根据权利要求2所述的多级解码器,其中,所述MILP子解码器的执行进一步包括以下操作:
迭代地添加二元约束,直到发现最大似然码字或已经对所述MILP子解码器添加了某一最大数量的二元约束为止。
4.根据权利要求1所述的多级解码器,其中,针对特定低密度奇偶校验LDPC码而设计所述子解码器的数量和对所述子解码器的选择。
5.根据权利要求1所述的多级解码器,其中,当所述传入消息的集合的改变超过阈值时,更新所述传出消息的集合。
6.根据权利要求1所述的多级解码器,其中,将所要更新的节点添加到节点的活动集中。
7.根据权利要求1所述的多级解码器,其中,所述纠错码是从以下组中选择的,该组由低密度奇偶校验码、turbo码、turbo乘积码、重复累积码、luby变换码及raptor码构成。
8.根据权利要求1所述的多级解码器,其中,所述多个子解码器包括顺序地连接的:
量化可信度传播QBP子解码器;
非量化可信度传播UBP子解码器,以及
线性规划子解码器。
9.一种多级解码器,其用于将经由有噪声信道接收的符号块解码为纠错码的码字,该多级解码器包括:
顺序地连接的多个子解码器,其中,后一个子解码器具有比前一个子解码器更慢的处理时间和更好的字错误率,并且其中,仅当所述前一个解码器对所述符号序列块解码失败时,才执行所述后一个子解码器,并执行最后一个子解码器直到达到终止条件为止;
其中,使用了迭代解码方法的任何子解码器均利用活动集解码器,所述信道是二元对称信道,并且其中,所述活动集解码器进一步包括:
迭代可信度传播解码器,其包括:
校验节点的集合;以及
变量节点的集合,其中,各变量节点具有可信度,并且其中,仅当所述可信度改变时,才更新来自所述变量节点的传出消息的集合,并且其中,仅当到所述校验节点的传入消息改变时,才更新来自所述校验节点的传出消息的集合。
10.根据权利要求9所述的多级解码器,其中,仅当所述变量节点的可信度的改变超过阈值时,才更新来自所述变量节点的所述传出消息,并且仅当到所述校验节点的所述传入消息的集合的改变超过所述阈值时,才更新来自所述校验节点的所述传出消息的集合。
11.根据权利要求9所述的多级解码器,其中,将所要更新的节点添加到节点的活动集中。
12.根据权利要求9所述的多级解码器,其中所述多个子解码器包括顺序地连接的如下子解码器:
量化可信度传播QBP子解码器;
非量化可信度传播UBP子解码器;以及
混合整数线性规划MILP子解码器。
13.根据权利要求12所述的多级解码器,其中,所述MILP子解码器的执行进一步包括以下操作:
迭代地添加二元约束,直到发现最大似然码字或已经对所述MILP子解码器添加了某一最大数量的二元约束为止。
14.根据权利要求9所述的多级解码器,其中,针对特定低密度奇偶校验LDPC码而设计所述子解码器的数量和对所述子解码器的选择。
15.根据权利要求9所述的多级解码器,其中,所述纠错码是从以下组中选择的,该组由低密度奇偶校验码、turbo码、turbo乘积码、重复累积码、luby变换码及raptor码构成。
16.根据权利要求9所述的多级解码器,其中,所述多个子解码器包括顺序地连接的:
量化可信度传播QBP子解码器;
非量化可信度传播UBP子解码器,以及
线性规划子解码器。
17.一种用于将经由有噪声信道接收的符号块解码为纠错码的码字的方法,该方法包括以下步骤:
利用第一解码器对符号块进行解码,以及在由所述第一解码器进行的解码失败的情况下;
利用第二解码器对所述符号块进行解码,该第二解码器具有比所述第一解码器更慢的处理时间和更好的字错误率;
其中,使用了迭代解码方法的任何子解码器均利用活动集解码器,所述信道是二元对称信道,并且其中,所述活动集解码器进一步包括:
迭代可信度传播解码器,其包括:
校验节点的集合;
变量节点的集合;以及
用于在所述校验节点的集合与所述变量节点的集合之间传送消息的装置,并且其中,仅当到所述校验节点的传入消息的集合改变时,才更新来自所述校验节点的传出消息的集合,并且仅当到所述变量节点的传入消息改变时,才更新来自所述变量节点的所述传出消息的集合。
18.一种用于将经由有噪声信道接收的符号块解码为纠错码的码字的方法,该方法包括以下步骤:
利用第一解码器对符号块进行解码,以及在由所述第一解码器进行的解码失败的情况下;
利用第二解码器对所述符号块进行解码,该第二解码器具有比所述第一解码器更慢的处理时间和更好的字错误率;
其中,使用了迭代解码方法的任何子解码器均利用活动集解码器,所述信道是二元对称信道,并且其中,所述活动集解码器进一步包括:
迭代可信度传播解码器,其包括:
校验节点的集合;以及
变量节点的集合,其中,各变量节点具有可信度,并且其中,仅当所述可信度改变时,才更新来自所述变量节点的传出消息的集合,并且其中,仅当到所述校验节点的传入消息改变时,才更新来自所述校验节点的传出消息的集合。
19.一种用于将经由有噪声信道接收的符号块解码为纠错码的码字的方法,该方法包括以下步骤:
利用第一解码器对所述符号块进行解码,在由所述第一解码器进行的解码失败的情况下;
利用第二解码器对所述符号块进行解码,该第二解码器具有比所述第一解码器更慢的处理时间和更好的字错误率,并且在由所述第二解码器进行的解码失败的情况下;
利用第三解码器对所述符号块进行解码,该第三解码器具有比所述第二解码器更慢的处理器时间和更好的字错误率;
其中,使用了迭代解码方法的任何子解码器均利用活动集解码器,所述信道是二元对称信道,并且其中,所述活动集解码器进一步包括:
迭代可信度传播解码器,其包括:
校验节点的集合;
变量节点的集合;以及
用于在所述校验节点的集合与所述变量节点的集合之间传送消息的装置,并且其中,仅当到所述校验节点的传入消息的集合改变时,才更新来自所述校验节点的传出消息的集合,并且仅当到所述变量节点的传入消息改变时,才更新来自所述变量节点的所述传出消息的集合。
20.一种用于将经由有噪声信道接收的符号块解码为纠错码的码字的方法,该方法包括以下步骤:
利用第一解码器对所述符号块进行解码,在由所述第一解码器进行的解码失败的情况下;
利用第二解码器对所述符号块进行解码,该第二解码器具有比所述第一解码器更慢的处理时间和更好的字错误率,并且在由所述第二解码器进行的解码失败的情况下;
利用第三解码器对所述符号块进行解码,该第三解码器具有比所述第二解码器更慢的处理器时间和更好的字错误率;
其中,使用了迭代解码方法的任何子解码器均利用活动集解码器,所述信道是二元对称信道,并且其中,所述活动集解码器进一步包括:
迭代可信度传播解码器,其包括:
校验节点的集合;以及
变量节点的集合,其中,各变量节点具有可信度,并且其中,仅当所述可信度改变时,才更新来自所述变量节点的传出消息的集合,并且其中,仅当到所述校验节点的传入消息改变时,才更新来自所述校验节点的传出消息的集合。
CN201010130444.9A 2009-01-27 2010-01-27 多级解码器和符号块解码方法 Active CN101814975B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/360,832 2009-01-27
US12/360,832 US8261170B2 (en) 2007-06-19 2009-01-27 Multi-stage decoder for error-correcting codes

Publications (2)

Publication Number Publication Date
CN101814975A CN101814975A (zh) 2010-08-25
CN101814975B true CN101814975B (zh) 2014-08-27

Family

ID=42355153

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010130444.9A Active CN101814975B (zh) 2009-01-27 2010-01-27 多级解码器和符号块解码方法

Country Status (3)

Country Link
US (1) US8261170B2 (zh)
JP (1) JP5464990B2 (zh)
CN (1) CN101814975B (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101652452B1 (ko) * 2010-03-02 2016-08-30 시게이트 테크놀로지 인터내셔날 디코더와 상기 디코더를 포함하는 장치들
US8756473B1 (en) 2010-12-23 2014-06-17 Sk Hynix Memory Solutions Inc. Solid state device coding architecture for chipkill and endurance improvement
JP5790029B2 (ja) * 2011-03-01 2015-10-07 ソニー株式会社 復号装置、復号方法、およびプログラム
US8756479B2 (en) 2011-01-14 2014-06-17 Marvell World Trade Ltd. LDPC multi-decoder architectures
US8726122B2 (en) 2011-05-11 2014-05-13 Samsung Electronics Co., Ltd. High throughput LDPC decoder
JP5574340B2 (ja) * 2011-06-09 2014-08-20 日本電信電話株式会社 線形符号におけるlp復号器及び整数解計算方法及びプログラム
US8774324B2 (en) * 2011-12-14 2014-07-08 Xilinx, Inc. Systems and methods for changing decoding parameters in a communication system
US8918705B1 (en) 2012-01-11 2014-12-23 Sk Hynix Memory Solutions Inc. Error recovery by modifying soft information
US20130339814A1 (en) * 2012-06-15 2013-12-19 Shantanu Rane Method for Processing Messages for Outsourced Storage and Outsourced Computation by Untrusted Third Parties
GB2505228B (en) * 2012-08-23 2014-12-03 Canon Kk Method and apparatus for controlling the decoding of codewords received by a linear block code pipelined decoder from an input buffer
US9612903B2 (en) 2012-10-11 2017-04-04 Micron Technology, Inc. Updating reliability data with a variable node and check nodes
US9183095B1 (en) 2013-06-28 2015-11-10 Sk Hynix Memory Solutions Inc. Recovering from a program failure by combining write data
MY191154A (en) 2014-02-11 2022-06-02 Huawei Tech Co Ltd Channel decoding method and apparatus, and distributed decoder
TWI543178B (zh) * 2014-06-10 2016-07-21 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
GB2533639B (en) * 2014-12-24 2017-11-22 Imagination Tech Ltd Low density parity check decoder
CN107005253B (zh) * 2015-02-10 2020-05-19 松下知识产权经营株式会社 一种解码装置
US9600364B2 (en) 2015-03-09 2017-03-21 Kabushiki Kaisha Toshiba Memory controller, storage device and decoding method
US10587288B1 (en) * 2015-06-04 2020-03-10 Marvell International Ltd. Systems and methods for iterative coding of product codes in nand FLASH controllers
EP3151458B1 (en) * 2015-10-02 2019-03-20 Mitsubishi Electric R&D Centre Europe B.V. A method for determining features of an error correcting code system
US10205469B2 (en) 2016-08-11 2019-02-12 SK Hynix Inc. Low latency soft decoder architecture for generalized product codes
CN106681856B (zh) * 2016-08-23 2020-03-17 合肥兆芯电子有限公司 解码方法、存储器存储装置及存储器控制电路单元
CN107249144B (zh) * 2017-05-12 2020-05-15 北京小鸟看看科技有限公司 多媒体文件解码的方法、多媒体播放器和播放设备
EP3451561A1 (en) * 2017-08-28 2019-03-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Hybrid decoder for coded slotted aloha
US10637511B2 (en) 2017-12-18 2020-04-28 Western Digital Technologies, Inc Dynamic multi-stage decoding
KR102475805B1 (ko) * 2018-08-20 2022-12-09 에스케이하이닉스 주식회사 디코더, 그것의 동작 방법 및 메모리 시스템
EP4290776A1 (en) * 2022-06-08 2023-12-13 Nokia Solutions and Networks Oy Low-density parity-check decoder with scaling to reduce power consumption

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1968071A (zh) * 2005-11-16 2007-05-23 恩益禧电子股份有限公司 解码装置、解码方法、和接收设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2722995B1 (en) * 2003-10-06 2023-04-19 QUALCOMM Incorporated Soft-Decision Decoding of Multi-Stage Chain Reaction Codes
EP1536568A1 (en) * 2003-11-26 2005-06-01 Matsushita Electric Industrial Co., Ltd. Belief propagation decoder cancelling the exchange of unreliable messages
US7373585B2 (en) 2005-01-14 2008-05-13 Mitsubishi Electric Research Laboratories, Inc. Combined-replica group-shuffled iterative decoding for error-correcting codes
US7856584B2 (en) * 2005-03-30 2010-12-21 Intel Corporation Unequal error protection apparatus, systems, and methods
JP4245602B2 (ja) * 2005-11-25 2009-03-25 シャープ株式会社 デジタル復調装置、デジタル受信装置、デジタル復調装置の制御方法、デジタル復調装置の制御プログラム、及び、この制御プログラムを記録した記録媒体
US7971129B2 (en) * 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US8042029B2 (en) * 2006-05-21 2011-10-18 Ramot At Tel Aviv University Ltd. Error correction decoding by trial and error
US7533328B2 (en) * 2006-07-04 2009-05-12 Sandisk Il, Ltd. Method of error correction in a multi-bit-per-cell flash memory
JP2008271312A (ja) * 2007-04-23 2008-11-06 Matsushita Electric Ind Co Ltd 無線パケット通信装置
US9128868B2 (en) * 2008-01-31 2015-09-08 International Business Machines Corporation System for error decoding with retries and associated methods
TW201008135A (en) * 2008-06-23 2010-02-16 Univ Ramot Using damping factors to overcome LDPC trapping sets

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1968071A (zh) * 2005-11-16 2007-05-23 恩益禧电子股份有限公司 解码装置、解码方法、和接收设备

Also Published As

Publication number Publication date
US20100192040A1 (en) 2010-07-29
JP2010178328A (ja) 2010-08-12
US8261170B2 (en) 2012-09-04
JP5464990B2 (ja) 2014-04-09
CN101814975A (zh) 2010-08-25

Similar Documents

Publication Publication Date Title
CN101814975B (zh) 多级解码器和符号块解码方法
JP5068537B2 (ja) レプリカ結合グループシャッフル反復デコーダ及びこの生成方法
Smith et al. Staircase codes: FEC for 100 Gb/s OTN
US7774689B2 (en) Encoding and decoding methods and systems
US7607063B2 (en) Decoding method and device for decoding linear code
US11115051B2 (en) Systems and methods for decoding error correcting codes
JP2008035524A (ja) 反復確率伝搬を使用して記号ブロックを復号化する装置および方法
EP1432130A1 (en) Decoding device and decoding method
JPWO2003073621A1 (ja) Ldpc符号用検査行列生成方法および検査行列生成装置
Zimmermann et al. Reduced complexity LDPC decoding using forced convergence
US20060059401A1 (en) Design of rate-compatible LDPC codes using optimal extending
US20020002695A1 (en) Method and system for decoding
Hirst et al. Decoding of generalised low-density parity-check codes using weighted bit-flip voting
Hussein et al. Comparisons of soft decision decoding algorithms based LDPC wireless communication system
Palanki et al. Iterative decoding of multiple-step majority logic decodable codes
Remmanapudi et al. An FPGA Implementation of low density Parity-check codes construction & Decoding
Marotkar et al. Decoding techniques of LDPC codes
Mitchell Mathematical approach to channel codes with a diagonal matrix structure
Lulu Construction Of Ldpc Codes Using Randomly Permutated Copies Of Parity Check Matrix
Soleymani et al. Low Density Parity Check Codes
Moon et al. An introduction to low-density parity-check codes
양필웅 Low-Complexity Decoding Schemes for LDPC Codes Using Efficient Unreliable Path Search
Narang et al. imAGE PRoCEssiNG
WO2002037731A2 (en) Decoding of low density parity check codes
Yuan et al. Doubly multistage decoding of low-density parity-check codes over ℤ2m

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant