CN101154948B - 解码代码的方法和解码器 - Google Patents

解码代码的方法和解码器 Download PDF

Info

Publication number
CN101154948B
CN101154948B CN200710192917.6A CN200710192917A CN101154948B CN 101154948 B CN101154948 B CN 101154948B CN 200710192917 A CN200710192917 A CN 200710192917A CN 101154948 B CN101154948 B CN 101154948B
Authority
CN
China
Prior art keywords
node
bit
check
value
message
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.)
Expired - Fee Related
Application number
CN200710192917.6A
Other languages
English (en)
Other versions
CN101154948A (zh
Inventor
埃里希·F·哈拉特施
鲁万·N·S·拉塔雅克
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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Edgar Ray Systems Co Ltd
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 Edgar Ray Systems Co Ltd filed Critical Edgar Ray Systems Co Ltd
Publication of CN101154948A publication Critical patent/CN101154948A/zh
Application granted granted Critical
Publication of CN101154948B publication Critical patent/CN101154948B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1131Scheduling of bit node or check node processing
    • 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
    • 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/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions

Abstract

提供了用于解码代码的方法和设备,所述代码可以利用具有互连比特节点和校验节点的二分图进行描述。基于连接到所述校验节点j的多个比特节点的比特-校验节点消息的变换后的量值之和减去比特节点i和校验节点j的比特-校验节点消息的变换后的量值,计算从校验节点j到比特节点i的校验-比特节点消息的量值。通过将连接到校验节点j的多个比特节点中的比特-校验节点消息的符号的乘积Sj,乘以比特节点i和校验节点j的比特-校验节点消息的符号,也可以计算从校验节点j到比特节点i的校验-比特节点消息的符号。还公开了解码代码的解码器的体系结构,所述代码能够被描述为利用具有互连的比特节点和校验节点的二分图。公开的解码器可以与软输出解码器级联。

Description

解码代码的方法和解码器
技术领域
本发明一般涉及编码及解码技术,尤其涉及一种用于解码被编码信号的解码器算法和体系结构。
背景技术
在数字信息的传输过程中,编码被广泛应用以减少比特和分组错误的可能性。在很多应用中,卷积码被用于这个目的。卷积码由状态机利用由将被编码的输入比特所确定的状态转换而定义。用于卷积码或者基于卷积码的代码的最常见的两种解码算法是维特比算法和最大后验概率(MAP)算法。
对于需要更好纠错能力的应用,通常使用特播码或者LDPC码。对级联码,例如特播码的解码,需要代码网格的解码结果作为下一个代码网格的解码输入,并且对于后续的代码网格执行同样的处理。特播码的解码算法的迭代特性提供了很大的实现挑战。
LDPC码是很有前景的下一代纠错码,在编码增益方面可以超过特播码。很多技术已经被提出或者被建议用于对LDPC码进行平行的或者顺序的解码。例如,A.J.Blanksby和C.J.Howland,″A690-mW1-Gb/s1024-b,Rate-1/2Low-DensityParity-CheckDecoder,″IEEEJ.Solid-StateCircuits,Vol.37,404-412(2002年3月)以及美国专利No.6,539,367,申请人Blanksby等,描述了低密度奇偶校验(LDPC)码的块-平行解码。
LDPC解码器的顺序实现可以共享了一些硬件,于是相对于平行解码方法,需要较少数量的计算单元和并不复杂的路由机制。然而,由于沿着二分图边界的所有消息都需要被保存,因此顺序解码方法典型地需要附加存储器空间,并且由于顺序实现编码块的解码需要大量的时钟周期,因而吞吐量受到限制。通常,二分图是表示LDPC码所使用的奇偶校验矩阵的图形。典型的存储器需求与代码边界的数量的两倍成正比,并且时钟周期的数量典型地与代码中校验节点和比特节点的数量之和成正比。
例如,ZiningWu和GregoryBurd已经提出了通信系统的顺序体系结构,其中LDPC解码器与信道检测器级联。其公开的体系结构相对于传统顺序实现减少存储器需求。参见,Z.Wu和G.Burd,″EquationBasedLDPCDecoderforIntersymbolInterferenceChannels,″IEEEProc.ofAcoustics,Speech,andSignalProcessing2005(ICASSP′05)Vol.5,757-60(2005年3月18-23日)。D.E.Hocevar提出了独立的LDPC解码器的顺序体系结构,其能够相对于传统顺序实现减少存储器需求。参见,D.E.Hocevar″LDPCCodeConstructionWithFlexibleHardwareImplementation,″IEEEInt′lConf.onComm.(ICC),Anchorage,AK,2708-2712(2003年5月)。
仍然存在一些对于顺序LDPC解码体系结构的要求,即对于独立的和级联的LDPC解码器,要求相对于平行和顺序实现来说,在存储器需求或每次迭代的周期数量(或者二者)以及比特差错率性能方面提供进一步的改进。
发明内容
通常,为解码代码,例如LDPC码提供方法和设备,所述代码可以利用具有互连比特节点和校验节点的二分图进行描述。二分图例如可以是奇偶校验矩阵的图形化表示。
根据本发明的一个方面,计算从校验节点j到比特节点i的校验-比特节点消息的量值,其中所述量值基于连接到所述校验节点j的多个比特节点的比特-校验节点消息的变换后的量值之和减去比特节点i和校验节点j的比特-校验节点消息的变换后的量值。通过将连接到校验节点j的多个比特节点中的比特-校验节点消息的符号的乘积Sj,乘以比特节点i和校验节点j的比特-校验节点消息的符号,也可以计算从校验节点j到比特节点i的校验-比特节点消息的符号。
在本发明的相关实施例中,计算从校验节点j到比特节点i的校验-比特节点消息的量值,其中所述量值基于连接到所述校验节点j的多个比特节点的先验信息值的变换后的量值之和减去比特节点i的先验信息值的变换后的量值。通过将连接到校验节点j的多个比特节点的先验信息值的符号的乘积Sj,乘以比特节点i的先验信息值的符号,也可以计算校验节点j到比特节点i的校验-比特节点消息的符号。所述计算由与软输出检测器级联的LDPC解码器执行。所述先验信息值由软输出检测器生成,或者基于由软输出检测器提供的软输出而计算。
根据本发明的再一个方面,公开了一个解码器体系结构用于解码代码,所述代码可以利用具有互连比特节点和校验节点的二分图进行描述。所公开的解码器可以以独立模式实现,或者与软输出检测器相级联。所公开的解码器包括比特节点更新单元;和多个平行校验节点更新单元,连接到所述比特节点更新单元,用于计算多个校验-比特节点消息。
在备选的实施例中,所述校验节点更新单元基于多个比特-校验节点消息的变换后的量值之和减去比特-校验节点消息的单个变换后的量值,计算所述校验-比特节点消息的量值。在相关实施例中,所述校验节点更新单元基于多个比特节点的先验信息值的变换后的量值之和减去比特节点的先验信息值的单个变换后的量值,计算所述校验-比特节点消息的量值。
公开了大量与存储器相连的多个电路单元。这些电路单元由数字逻辑单元,例如加法器、减法器或者XOR门、以及读取电路或读取/写入电路组成。所公开的电路单元在独立模式中,对于变换后的量值和多个比特-校验节点消息的符号执行各种操作,并且在相关实施例中对于先验信息值的变换后的量值和符号执行操作。
本发明更为完整的理解,以及本发明进一步的特征和优点将通过参考下列详细说明和附图得到。
附图说明
图1描述了LDPC矩阵H的总体结构;
图2是表示LDPC码的示例性二分图;
图3是示例性共享硬件的LDPC解码器体系结构的框图;
图4是具有本发明特征的LDPC解码器的框图;
图5是具有与软输入软输出(SISO)检测器级联的LDPC解码器的典型通信系统的框图;并且
图6是与SISO检测器级联的LDPC解码器的框图。
具体实施方式
本发明提供了利用共享硬件及顺序和-积体系结构进行LDPC解码的方法和设备。公开的LDPC解码器执行和-积解码算法,相比于传统的实现其需要较少的存储器空间和较少的时钟周期。
低密度奇偶校验码
下面的背景讨论LDPC码和LDPC解码是基于A.J.Blanksby和C.J.Howland,″A690-mW1-Gb/s1024-b,Rate-1/2Low-DensityParity-CheckDecoder,″IEEEJ.Solid-StateCircuits,Vol37,404-412(2002年3月)中的讨论,这些文献被包含于此作为参考。更详细的描述,请读者参考Blanksby和Howland的全部论文。
表示LDPC码的矩阵
LDPC码是线性块码。所有代码字的集合,X∈CX,跨越奇偶校验矩阵H的空空间:
HxT=0, ∀ x ∈ C x - - - ( 1 )
LDPC码的奇偶校验矩阵是一个稀疏二进制矩阵。
图1描述了LDPC矩阵H的通常体系结构100。如图1所示,奇偶校验矩阵H的每一行对应于一个奇偶校验,并且设置的元素hji指示参与奇偶校验j的数据比特i。在一个n比特的块中,存在m个冗余奇偶比特。编码率有下列公式给出:
r=(n-m)/n(2)
奇偶校验矩阵H的设置的行或者列元素被选定以满足期望的行或者列的加权分布,其中行或者列的加权被定义为分别在指定行或者列设置元素的数量。在一个常规的LDPC码中,所有的行具有统一的权重,并且所有列也一样。如果行和列不具备统一的权重,LDPC码就被认为是非常规的。
表示LDPC码的图
LDPC码也可以采用二分图表示,其中节点的一个集合表示奇偶校验约束,而另一个集合表示数据位。图2是表示LDPC码的示例性二分图表示200。奇偶校验矩阵是该图的关联矩阵,其中对应于矩阵H中的列i的比特节点i连接于对应于矩阵H中的列j的校验节点j,如果设置了H的条目hji为非零的话。
用于解码LDPC码的算法被称为和-积算法。该算法为了很好的解码性能,很重要的是表示LDPC码的图的周期长度要尽量的长。在图2表示的实例中,已经描述了示例性的4个周期的短周期。短周期,例如图2中描述的长度为4的周期,使和-积算法的执行退化。
和-积算法
和-积算法是用于解码LDPC码的迭代算法。和-积算法也被称作消息传递算法或者置信传播算法。对于和-积算法更详细的讨论,例如请参见A.J.Blanksby和C.J.Howland,″A690-mW1-Gb/s1024-b,Rate-1/2Low-DensityParity-CheckDecoder,″IEEEJ.Solid-StateCircuits,Vol37,404-412(2002年3月)以及D.E.Hocevar″LDPCCodeConstructionWithFlexibleHardwareImplementation,″IEEEInt′lConf.onComm.(ICC),Anchorage,AK,2708-2712(2003年5月),每一篇文件都作为参考包含于此。
从比特节点i到校验节点j的消息由下面的公式给出:
Q i , j = Σ l ∈ B i , l ≠ j R l , i + λ i - - - ( 3 )
请注意此处使用的符号在说明书的最后的表中被定义。从校验节点j到比特节点i的消息由下面的公式给出:
R j , i = S j , i · φ ( Σ l ∈ C j , l ≠ i φ ( | Q l , j | ) ) - - - ( 4 )
其中
s j , i = Π l ∈ C j . l ≠ i sign ( Q l , j ) ;
φ ( x ) = - log tanh ( x / 2 ) = log e x + 1 e x - 1 .
其中后验信息值也称为后验的对数似然率(LLR),对于比特i,Λi来说,由下列公式给出:
Λ i = Σ l ∈ B i R l , i + λ l .
LDPC解码器
在实现解码LDPC码的和-积算法时的最大挑战是管理消息的传递。由于校验和比特节点的功能相对简单,它们的分别实现仅仅涉及少量的门电路。主要的问题是在功能节点之间传递消息所需的操作实现。
共享硬件的解码器体系结构
图3是示例性的共享硬件LDPC解码器体系结构300的框图。如图3中所示,通用LDPC解码器体系结构300包括多个功能单元310,320,它们分别地实现校验或者比特码节点功能,并且存储结构350用于存储消息以及实现图形连接。控制逻辑330控制存储结构350的配置。对于共享LDPC解码器体系结构300的实现的细节讨论,例如请参见E.Yeoetal.,″VLSIArchitecturesforIterativeDecodersinMagneticRecordingChannel,″IEEETrans.OnMagnetics,Vol.37,No.2,748-755(2001年3月)。
已经认识到这种共享硬件体系结构减少了解码器的区域。
修改后的LDPC奇偶校验公式
本发明认识到上述LDPC奇偶校验公式的各个部分可以被重新组织以在存储器空间和时钟周期方面产生改进。公式(4)显示的校验节点的计算可以被拆分成若干部分,如下:
ρi,j=φ(|Qi,j|)(5)
其中ρi,j于是成为在比特节点i和校验节点j之间的比特-校验节点消息Qi,j的变换后的量值,并且″||″是量值的计数法。
σi,j=sign(Qi,j)(6)
于是,σi,j是在比特节点i和校验节点j之间的比特-校验节点消息Qi,j的符号值。
P i , j = Σ l ∈ C j ρ l , j - - - ( 7 )
为校验节点j计算Pj,作为连接到校验节点j的所有比特节点的比特-校验节点消息的变换后的量值之和。
S i = Π l ∈ C j σ l , j - - - ( 8 )
给定节点j的Sj于是就是连接到校验节点j的所有比特节点的比特-校验节点消息符号的乘积。
于是,由下列公式给出校验节点j到比特节点i的消息的量值和符号值。
|Rj,i|=φ(Pji,j)(9)
sign(Rj,i)=Sj·σi,j(10)
于是,当根据公式(4)计算传统的校验-比特节点消息时,从计算(l∈Ci,l≠i)中排除当前的比特节点i,而本发明计算中间值Pj作为所有连接到校验节点j的比特节点l的比特-校验节点消息的变换后的量值ρi,j,并且随后从Pj中减去ρl,j,以计算从校验节点j到比特节点i的消息Rj,i的量值。
在示例性的实施例中,比特节点的计算以2′s-补码的形式执行,并且校验节点的计算以符号量值(SM)形式执行。
具有顺序和-积体系结构的LDPC解码器
图4是包括本发明特征的LDPC解码器400的框图。图4所示的LDPC解码器400描述了一个示例,其中dc等于3,并且Bi等于{j1,j2,j3}。元素430,435,440,450,470,475,478和480构成了校验节点更新块,包括平行校验节点更新单元。在每一个时间周期,执行属于一个比特节点的计算。于是为了完成从比特节点1到n的计算需要n个周期。假设在第一个时间周期计算比特节点1。那么在第(n·(k-1)+i)时间周期,比特节点更新单元410生成dc消息其在第k次迭代对应于第i个比特节点。这些dc消息在状态430从2′s-补码转换成符号量值数量表示。所述量值部分被发送到平行转换单元435-1到435-3,它们执行函数φ并且从单元435中输出由公式(5)定义的 ρ i , j k j ∈ B i .
这些j∈Bi被馈入dc变换后的量值更新单元440(为了计算所有连接到校验节点j的比特节点上的和,并且接着在随后的迭代中得出),其包括加法器以及读取/写入电路。平行变换后的量值更新单元440可以从存储器460中的m个存储单元访问任何dc元素,其中每个单元存储q个比特,其中q是在示例性实施例中用于表示的比特的数量。这些平行变换后的量值更新单元440更新相关的存储单元,使得在一次迭代(即,第(n·k)次时钟周期)结束时存在如公式(7)定义的j∈1…m,并且j∈1…m被存储在m存储单元中。也就是说,这些存储单元保存相关ρ值的运行和。
如果第k次迭代的存储单元中的中间值被给出,其中i=1…n,那么在第(n·(k-1)+i)次时间实例中,运行和由下列公式给出:
P j k ( i ) = P j k ( i - 1 ) + ρ i , j k if j ∈ B i P j k ( i - 1 ) else - - - ( 11 )
于是,在一次迭代结束时,例如在第(n·k)次时间实例中:
P j k = P j k ( n ) - - - ( 12 )
这个由公式(6)定义的比特-校验节点消息的符号,其中j∈Bi,在下面进行处理。与前面讨论的过程相似,j∈Bi被馈入dc符号更新单元450的另一组,其包括XOR门和读取/写入电路。平行符号更新单元更新在存储器460中的相关存储单元,使得在一次迭代的结束,如公式(8)定义的j∈1…m被存储在m个存储单元中,其中每个存储单元存储一个比特。也就是说,这些存储单元保存有符号比特σ值的运行乘积。所述乘积通过XOR门获取。如前面各段所解释的,如果第k次迭代的存储单元j的中间值被给出,其中i=1…n,那么运行乘积被下列公式给出:
S j k ( i ) = S j k ( i - 1 ) · σ i , j k if j ∈ B i S j k ( i - 1 ) else - - - ( 13 )
于是,在一次迭代的结束,例如在第(n·k)次时间实例中:
S j k = S j k ( n ) - - - ( 14 )
每一个时间周期计算的j∈Bi也被发送给先入先出(FIFO)缓存器420-1(图4中的缓存器-1)。所述FIFO420-1包括dc·q列(其中ρ值的dc数生成于每个周期并且每个ρ使用示例性实施例中的q比特表示)以及n行。在时间周期n·(k-1)+i,集合j∈Bi被馈入到FIFO420-1的后端并且从缓存器420-1的前端读出上一次迭代的集合j∈1…m。在第(n·k)个时间周期中,所有的j∈1…m都可以在存储器460中得到,并且全部i=1…n,j∈Bi可以在第一FIFO缓存器420-1中得到。于是,FIFO420-1的最顶一行保持了j∈B1,而接下来的一行保持了j∈B2,并且缓存器420-1的最后一行包含了j∈Bn
每一时间周期计算出来的j∈Bi都被馈入到另一个FIFO缓存器420-2(图4中的缓存器-2)。所述第二FIFO缓存器420-2包括dc个一比特的列(由于每个σi,j使用一个比特表示)以及n行。在时间周期n·(k-1)+i,集合j∈Bi被馈入到FIFO420-2的后端,并且从缓存器420-2的前端读出上一次迭代的集合j∈Bi
现在,下列过程被解释用于根据前次k-1次迭代,从存储在存储器460中的j=1…m以及存储在第一FIFO缓存器420-1的j∈Bi,计算校验-比特节点消息的量值。从存储器460中读取所需的j∈Bi,并且从第一FIFO缓存器420-1中读取j∈Bi。于是通过平行变换后的量值减法单元470-1到470-3为每个j∈Bi计算的差值,并且相应的结果被传送给平行变换单元475-1到475-3,这些单元执行Φ函数。这些变换单元475的输出是在第(k-1)次迭代中从dc列校验节点到第i个比特节点的相应消息的量值,也即根据公式(9)的j∈Bi
以相似的方式计算在第(k-1)次迭代的校验-比特节点消息的符号从存储器460中读出所需的j∈Bi并且从第二FIFO缓存器420-2中读出j∈Bi。于是,使用平行符号处理单元478-1到478-3(在示例性实施例中,每一个都使用一个XOR门)为每个j∈Bi计算乘积这些乘积是第(k-1)次迭代中,从dc校验节点到第i个比特节点的相应消息的符号比特,也即,根据公式(10)的j∈Bi
校验-比特节点消息的符号和量值通过dc符号量值被传送给2′s-补码变换单元480。这些单元480输出的结果是j∈Bi,其随后被输入到比特节点更新单元410。比特节点更新单元410根据下列公式(也参见公式(3))为第k次迭代计算比特-校验节点消息
Q i , j k = Σ l ∈ B i , l ≠ j R l , i k - 1 + λ i - - - ( 15 )
存储器需求和吞吐量
示例的第一FIFO缓存器420-1具有n·dc·q比特的大小并且示例的第二FIFO缓存器420-2具有n·dc比特的大小。
Pj,j等于1…m需要的存储器的数量是2·q·m比特,其中乘以2是用于k和k-1次迭代相关的值。
Sj,j等于1…m需要的存储器的数量是2·m比特,其中乘以2是用于k和k-1次迭代相关的值。
总的存储器需求是(2·m+n·dc)·(q+1)比特。
在每一个时间周期,所公开的方法用于计算dc校验-比特节点消息以及dc比特-校验节点消息。于是,一个比特节点更新单元410在每一次迭代时需要n时间周期来处理长度为n的数据块。
与标准的LDPC解码体系结构相比较,所公开的体系结构仅需要(2·m+n·dc)·(q+1)比特的存储器空间,并且在每一次迭代时仅需要n时间周期。请注意典型的顺序和-积体系结构需要2·n·dc·(q+1)比特的存储器空间,并且每次迭代需要m+n周期。
具有顺序和-积体系结构的级联LDPC解码器
LDPC码被用于由符号间干扰和噪声所消弱的信道,以改进比特错误率。图5显示了一个典型的通信系统500,包括LDPC编码器510,ISI信道520(其引入符号间干扰及噪声),软-输入软-输出(SISO)检测器615,和LDPC解码器600。在图5中,LDPC解码器600与SISO解码器615相级联,它们进一步结合下面的附图6进行讨论。SISO检测器615接收信道输出和来自LDPC解码器600的非本征信息值,该信息值被用作先验信息值。SISO解码器615给出非本征信息值,其被LDPC解码器600用作下一次迭代的先验信息值λi。来自LDPC解码器的非本征信息值被用作SISO检测器的先验信息值,并且来自SISO检测器的非本征信息值被用作LDPC解码器的先验信息值。SISO检测器考虑ISI信道以计算非本征信息值,例如使用本领域普通技术人员已知的MAP算法或者软输出维特比算法(SOVA),而LDPC解码器考虑LDPC码以计算非本征信息值。系统的迭代包括由SISO检测器615和LDPC解码器600一起处理数据。
图6显示了公开的级联SISO检测器和LDPC解码器体系结构的更多细节。SISO检测器615接收信道输出和来自LDPC解码器600的非本征信息值,并且输出非本征信息值,这些非本征信息值被LDPC解码器600用作下一次迭代的先验信息值λi。本发明揭示了每次通过LDPC解码器600时,从比特节点i到其校验节点的dc信息,即都与先验信息值或者比特节点i的先验LLRλi相等的事实,例如:
Q ^ i , j = λ i , ∀ j ∈ B i - - - ( 16 )
校验节点计算以与上述相似的方式分离为多个部分。
ρ ^ i = φ ( | λ i | ) - - - ( 17 )
σ ^ i = sign ( λ i ) - - - ( 18 )
P ^ j = Σ l ∈ C J ρ ^ l - - - ( 19 )
S ^ j = Π l ∈ C J σ ^ l - - - ( 20 )
从校验节点j到比特节点i的信息的符号和量值被下列公式给出:
R ^ j , i = φ ( P ^ j - ρ ^ i ) - - - ( 21 )
sign ( R ^ j , i ) = S ^ j · σ i - - - ( 22 )
使用这些j∈Bi,来自LDPC解码器的非本征信息值传送到SISO检测器615,并且可以由非本征信息计算单元610计算出来:
Λ ext , i = Σ l ∈ B i R l , i . - - - ( 23 )
该非本征信息值被SISO检测器615用作先验信息值。
图6显示了为级联系统建议的体系结构600的框图,其中,dc等于3,Bi等于{j1,j2,j3}。每一个先验LLRλi附属于比特节点i,其等于SISO检测器615输出的非本征信息值,并且被送到2′-补码单元到符号量值变换单元630。量值被送给执行φ函数的变换单元635并且单元635的输出为如公式(17)所定义的。第k次迭代以及第i个比特节点的变换量值被馈入dc变换后的量值更新单元640,其更新在存储器中的同理,被送入另一组dc符号更新单元650,其更新在存储器中的更进一步,被分别馈入第一FIFO缓存器620-1以及第二缓存器620-2。
第k-1次迭代的校验-比特节点消息,即j∈Bi,结合图4上面讨论的过程以相同的方式被计算。然而,从第一FIFO缓存器620-1仅使用一个值(被用于获取量值),从第二FIFO缓存器620-2仅使用一个值(被用于获取符号)。于是,FIFO缓存器620的存储器需求比结合图4描述的独立体系结构的存储器需求减少dc倍。
存储器需求和吞吐量
示例的第一FIFO缓存器620-1具有n·q比特的大小并且示例的第二FIFO缓存器620-2具有n比特的大小。
Pj,j等于1…m需要的存储器的数量是2·q·m比特。
Sj,j等于1…m需要的存储器的数量是2·m比特。
总的存储器需求是(2·m+n)·(q+1)比特。
在每一个时间周期,所公开的方法用于计算dc校验-比特节点消息以及非本征信息值。于是,在每一次迭代时需要n个时间周期来处理长度为n的数据块。
所公开的体系结构执行由公式(17)到(23)定义的和-积算法。这里公开的方法具有比Wu和Burd提出的较不优化的算法更好的错误率性能,在Wu和Burd方法中,在和-积算法时仅仅考虑最小的LLR值。而且,Wu和Burd提出的方法仅应用在级联LDPC解码器系统中。本发明仅需要(2·m+n)·(q+1)的存储器空间并且在每一次迭代时仅需要n时间周期。
符号
此处使用下列符号:
i是比特节点的索引;
j是校验节点的索引;
k是迭代索引;
Qi,j是从比特节点i到校验节点j的消息;
Ri,j是从校验节点j到比特节点i的消息;
λi是与比特i相关的先验信息值或者先验对数似然率(LLR);
Λl是涉及比特i的后验信息值或者后验LLR;
Λext,i是涉及比特i的非本征信息值或者非本征LLR;
Bi是与比特节点i相连的校验节点j的集合;
Cj是与校验节点j相连的比特节点i的集合;
n是比特节点的数量;
m是奇偶校验节点的数量;
dr是校验矩阵的行权重;
dc是校验矩阵的列权重;
比特节点是1…n;
校验节点是1…m。
尽管本发明的示例性实施例已经参考数字逻辑单元进行描述,但是对于本领域技术人员很清楚的是,不同的功能可以在数字领域实现,作为软件程序的处理步骤,通过电路单元或状态机以硬件形式实现,或者作为软件和硬件的结合。这样的软件例如可以应用于数字信号处理器,微控制器,或者通用计算机。这种硬件和软件都可以在集成电路内实现的电路上具体实施。
于是,本发明的功能能够以多种形式的方法以及实现这些方法的设备实现。本发明的一个或者多个方面可以被程序代码形式实现,例如,存储在存储介质中,载入和/或被机器执行,或者经由一个传输媒体传输,其中,当程序代码被载入机器并且被机器,例如计算机执行时,机器成为实现本发明的设备。当在通用处理器上实现本方法时,程序代码段将结合处理器,提供对于特定逻辑电路进行类似操作的设备。
如同本领域技术人员熟知的那样,此处讨论的方法和设备可以被作为一个产品发布,其自身包括计算机可读介质,在所述介质上嵌入计算机可读代码单元。计算机可读程序代码单元与计算机系统相结合而可操作,执行所有或者部分方法的步骤或者生成此处讨论的设备。计算机可读介质可以是可记录介质(例如,软盘,硬盘,压缩盘,记忆卡,半导体器件,芯片,专用集成电路(ASIC)),或者可以是传输媒体(例如,包括光纤的网络,国际互联网,有线网,或者使用分时多址,码分多址的无线信道,以及其他射频信道)。可以使用适当用于计算机系统的、任何已知或者开发的存储信息的介质。计算机可读编码单元是允许计算机读取指令和数据的机制,例如磁性介质的磁性变化,或者压缩盘介质表面的高度变化。
存储器和缓存器可以是分布的或者本地的,并且处理器可以是分布的或者单个的。存储器和缓存器应该由电、磁或光存储器、或者它们的任何组合、或者与其他类型的存储设备的任何组合来实现。而且,术语″存储器″,″缓存器″,″FIFO缓存器″应该被足够宽泛的构建,以便包含能够从介质读取或者写入介质的任何信息。根据此定义,网络上的信息也在存储器范围内,因为相关的处理器能够从网络上检索上述信息。
应该明白的是,此处描述和显示的实施例和其变化都是对本发明原理的阐述,并且可以由本领域普通技术人员在不背离发明范围和精神的情况下作出各种修改。

Claims (7)

1.一种解码代码的方法,所述代码能够利用具有互连比特节点和校验节点的二分图进行描述,包括:
计算从校验节点j到比特节点i的校验-比特节点消息的量值,其中所述量值基于连接到所述校验节点j的多个比特节点的比特-校验节点消息的变换后的量值之和减去比特节点i和校验节点j的比特-校验节点消息的变换后的量值,并且
通过将连接到校验节点j的多个比特节点中的比特-校验节点消息的符号的乘积Sj,乘以比特节点i和校验节点j的比特-校验节点消息的符号,计算从校验节点j到比特节点i的所述校验-比特节点消息的符号。
2.根据权利要求1的方法,其中所述二分图是奇偶校验矩阵的图化表示。
3.一种用于解码代码的解码器,所述代码能够利用具有互连比特节点和校验节点的二分图进行描述,包括:
比特节点更新单元;
如下之一:
(1)多个平行校验节点更新单元,连接到所述比特节点更新单元,用于计算多个校验-比特节点消息,其中所述校验节点更新单元的其中一个基于多个比特-校验节点消息的变换后的量值之和减去比特-校验节点消息的单个变换后的量值,计算所述校验-比特节点消息的量值;和
(2)多个平行校验节点更新单元,连接到所述比特节点更新单元,用于计算多个校验-比特节点消息,其中所述校验节点更新单元的其中一个基于多个比特节点的先验信息值的变换后的量值之和减去比特节点的先验信息值的变换后的量值,计算所述校验-比特节点消息的量值;以及
平行符号处理单元,连接到所述比特节点更新单元,用于计算多个校验-比特节点消息,其中所述平行符号处理单元中的其中一个通过将多个比特-校验节点消息的符号的乘积,乘以比特-校验节点消息的符号,计算所述校验-比特节点消息的符号。
4.根据权利要求3的解码器,其中所述校验节点更新单元的其中一个包括连接到存储器的加法器和读取/写入电路,以计算多个比特-校验节点消息的变换后的量值之和或者先验信息值的变换后的量值之和。
5.一种解码代码的方法,所述代码能够利用具有互连比特节点和校验节点的二分图进行描述,包括:
计算从校验节点j到比特节点i的校验-比特节点消息的量值,其中所述量值基于连接到所述校验节点j的多个比特节点的先验信息值的变换后的量值之和减去比特节点i的先验信息值的变换后的量值;以及
通过将连接到校验节点j的多个比特节点的先验信息值的符号的乘积Sj,乘以比特节点i的先验信息值的符号,计算从校验节点j到比特节点i的所述校验-比特节点消息的符号。
6.根据权利要求5的方法,其中所述先验信息值由软输出检测器生成。
7.根据权利要求5的方法,其中所述计算步骤由与软输出检测器级联的LDPC解码器执行。
CN200710192917.6A 2006-07-31 2007-07-31 解码代码的方法和解码器 Expired - Fee Related CN101154948B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/496,121 2006-07-31
US11/496,121 US7647548B2 (en) 2006-07-31 2006-07-31 Methods and apparatus for low-density parity check decoding using hardware-sharing and serial sum-product architecture

Publications (2)

Publication Number Publication Date
CN101154948A CN101154948A (zh) 2008-04-02
CN101154948B true CN101154948B (zh) 2015-12-16

Family

ID=38973433

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710192917.6A Expired - Fee Related CN101154948B (zh) 2006-07-31 2007-07-31 解码代码的方法和解码器

Country Status (5)

Country Link
US (1) US7647548B2 (zh)
JP (2) JP2008035527A (zh)
KR (1) KR101459135B1 (zh)
CN (1) CN101154948B (zh)
DE (1) DE102007035210A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341506B2 (en) * 2007-03-30 2012-12-25 HGST Netherlands B.V. Techniques for correcting errors using iterative decoding
US8739009B1 (en) * 2007-12-27 2014-05-27 Marvell International Ltd. Methods and apparatus for defect detection and correction via iterative decoding algorithms
US8230312B1 (en) * 2008-01-09 2012-07-24 Marvell International Ltd. Iterative decoder memory arrangement
US8130228B2 (en) * 2008-06-13 2012-03-06 International Business Machines Corporation System and method for processing low density parity check codes using a deterministic caching apparatus
US8775913B2 (en) 2010-03-31 2014-07-08 Lsi Corporation Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems
US8429500B2 (en) 2010-03-31 2013-04-23 Lsi Corporation Methods and apparatus for computing a probability value of a received value in communication or storage systems
US8504885B2 (en) 2010-03-31 2013-08-06 Lsi Corporation Methods and apparatus for approximating a probability density function or distribution for a received value in communication or storage systems
JP5310701B2 (ja) * 2010-10-29 2013-10-09 株式会社Jvcケンウッド 復号装置および復号方法
US9362933B1 (en) 2011-07-12 2016-06-07 Marvell International Ltd. Noise-predictive detector adaptation with corrected data
US8996952B2 (en) 2012-01-04 2015-03-31 Marvell World Trade Ltd. High-throughput iterative decoding's defect scan in retry mode of storage system channel
US9633740B1 (en) * 2016-02-11 2017-04-25 Seagate Technology Llc Read retry operations where likelihood value assignments change sign at different read voltages for each read retry

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1697329A (zh) * 2004-05-03 2005-11-16 美国博通公司 解码ldpc码及在二分图两侧使用乘法或对数域的加法的图
CN1701515A (zh) * 2003-05-13 2005-11-23 索尼株式会社 解码方法、解码装置和程序
CN1716786A (zh) * 2004-06-30 2006-01-04 株式会社东芝 用奇偶校验矩阵对低密度奇偶校验码解码的解码器和方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539367B1 (en) * 2000-05-26 2003-03-25 Agere Systems Inc. Methods and apparatus for decoding of general codes on probability dependency graphs
WO2003021440A1 (en) * 2001-09-01 2003-03-13 Bermai, Inc. Decoding architecture for low density parity check codes
JP4165329B2 (ja) * 2002-07-31 2008-10-15 不二製油株式会社 大豆ホエー分画物の製造法
US7178080B2 (en) * 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
JP4225163B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号装置および復号方法、並びにプログラム
CN100521553C (zh) * 2003-05-13 2009-07-29 索尼株式会社 解码设备和解码方法
JP4296949B2 (ja) 2004-02-03 2009-07-15 ソニー株式会社 復号装置及び方法、並びに情報処理装置及び方法
FR2871976B1 (fr) * 2004-06-22 2006-08-11 St Microelectronics Sa Decodeur ldpc
US7181676B2 (en) * 2004-07-19 2007-02-20 Texas Instruments Incorporated Layered decoding approach for low density parity check (LDPC) codes
US7760880B2 (en) * 2004-10-13 2010-07-20 Viasat, Inc. Decoder architecture system and method
WO2006059688A1 (ja) * 2004-12-02 2006-06-08 Mitsubishi Denki Kabushiki Kaisha 復号装置及び通信装置
US7451361B2 (en) * 2005-01-27 2008-11-11 General Instrument Corporation Method and apparatus for forward error correction in a content distribution system
JP4526451B2 (ja) * 2005-06-30 2010-08-18 ルネサスエレクトロニクス株式会社 復号装置と方法並びにプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1701515A (zh) * 2003-05-13 2005-11-23 索尼株式会社 解码方法、解码装置和程序
CN1697329A (zh) * 2004-05-03 2005-11-16 美国博通公司 解码ldpc码及在二分图两侧使用乘法或对数域的加法的图
CN1716786A (zh) * 2004-06-30 2006-01-04 株式会社东芝 用奇偶校验矩阵对低密度奇偶校验码解码的解码器和方法

Also Published As

Publication number Publication date
US7647548B2 (en) 2010-01-12
CN101154948A (zh) 2008-04-02
JP2014099944A (ja) 2014-05-29
KR101459135B1 (ko) 2014-11-07
DE102007035210A1 (de) 2008-02-28
JP2008035527A (ja) 2008-02-14
KR20080011631A (ko) 2008-02-05
US20080052595A1 (en) 2008-02-28

Similar Documents

Publication Publication Date Title
CN101154948B (zh) 解码代码的方法和解码器
US20230336189A1 (en) Low density parity check decoder
EP1442527B1 (en) Node processors for use in parity check decoders
Zhang et al. Reduced-latency SC polar decoder architectures
US7673223B2 (en) Node processors for use in parity check decoders
US7343548B2 (en) Method and apparatus for encoding and decoding data
US7219288B2 (en) Running minimum message passing LDPC decoding
US8799346B2 (en) Belief propagation processor
CN101471674A (zh) 低密度奇偶校验码译码方法及装置
US20220255560A1 (en) Method and apparatus for vertical layered decoding of quasi-cyclic low-density parity check codes built from clusters of circulant permutation matrices
Thi et al. Two-extra-column trellis min–max decoder architecture for nonbinary LDPC codes
Tian et al. Optimized trellis-based min-max decoder for NB-LDPC codes
WO2010053152A1 (ja) 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置
Kestel et al. Polar code decoder exploration framework
Boncalo et al. Memory trade-offs in layered self-corrected min-sum LDPC decoders
JP5510447B2 (ja) 復号装置および復号方法
Zhu et al. Efficient VLSI architecture for soft-decision decoding of Reed–Solomon codes
Beuschel Fully programmable LDPC decoder hardware architectures
Valle Low-complexity LDPCC decoder based on layered decoding and MIN-SUM approximation
Zeineddine et al. A reconfigurable TDMP decoder for Raptor codes
Cai Low-Complexity decoding algorithms and architectures for non-binary LDPC codes
Toriyama High-Performance and Energy-Efficient Decoder Design for Non-Binary LDPC Codes
Ratnayake et al. Serial Sum-Product Architecture for Low-Density Parity-Check Codes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: Delaware

Applicant after: Agere Systems Inc.

Address before: American Pennsylvania

Applicant before: AGERE SYSTEMS Inc.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: EGREE SYSTEM CO. LTD. TO: AGERE SYSTEMS GUARDIAN CORP.

C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee
CP02 Change in the address of a patent holder

Address after: American Pennsylvania

Patentee after: Agere Systems Inc.

Address before: Delaware

Patentee before: Agere Systems Inc.

TR01 Transfer of patent right

Effective date of registration: 20160918

Address after: Singapore Singapore

Patentee after: Avago Technologies General IP (Singapore) Pte. Ltd.

Address before: American Pennsylvania

Patentee before: Agere Systems Inc.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20151216

Termination date: 20170731

CF01 Termination of patent right due to non-payment of annual fee