CN102067458A - 用于低密度奇偶校验解码器的节点信息存储方法和*** - Google Patents
用于低密度奇偶校验解码器的节点信息存储方法和*** Download PDFInfo
- Publication number
- CN102067458A CN102067458A CN2009801230737A CN200980123073A CN102067458A CN 102067458 A CN102067458 A CN 102067458A CN 2009801230737 A CN2009801230737 A CN 2009801230737A CN 200980123073 A CN200980123073 A CN 200980123073A CN 102067458 A CN102067458 A CN 102067458A
- Authority
- CN
- China
- Prior art keywords
- father
- row
- nonzero element
- sub
- access address
- 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
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1165—QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
-
- 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
-
- 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Error Detection And Correction (AREA)
Abstract
一种用于接收与低密度奇偶校验(LDPC)码相关联的信号的接收机。该接收机包括存储器设备、地址生成器、和LDPC解码器。LDPC解码器包括行指示器和位置指示器。存储器设备存储与LDPC解码过程相关的数据。地址生成器生成存储数据的存取地址。LDPC解码器执行LDPC解码过程。行指示器将奇偶校验矩阵中的行指示为父行,并将奇偶校验矩阵中的多个相应的行指示为子行。位置指示器根据父行中每个父非零元素的实际位置顺序,指示父行的每个父非零元素的原始位置顺序。实际位置顺序包括父非零元素的数字顺序。
Description
技术领域
本发明涉及节点信息存储方法和***,更具体地,涉及用于低密度奇偶校验解码器的节点信息存储方法和***。
背景技术
在信息理论中,低密度奇偶校验(LDPC)码,或Gallager码,是误差修正码。LDPC编码是在噪音传输信道上传输消息的方法。LDPC码允许数据传输率接近在噪音传输信道上传输消息的理论最大值,称为香农极限。通过稀疏奇偶校验矩阵(主要填充了零的矩阵)定义LDPC码。该稀疏矩阵通常随机产生,并且受到稀疏性限制。
LDPC码是利用二元稀疏M×N奇偶校验矩阵H描述的块码。矩阵H的每行(M)与奇偶校验相对应,以及每列(N)表示解调符号。每行或列中的非零元素的数量分别被称为行重或列重。具有一致的行重和列重的LDPC码被称为常规码。否则它就被称为非常规码。如果每个变量节点具有每变量节点相同度(degree)的j校验节点连接,以及每个校验节点具有每校验节点相同度的k变量节点连接。
通过以下给出长度N=10以及维数M=5的LDPC码的示例性奇偶校验矩阵H。
其中,每列或每个变量节点具有两个1,以及每行或每个校验节点具有四个1。奇偶校验矩阵H的任何行的最左边是LDPC码的开始,以及任何行的最右边是LDPC码的结束。如矩阵H中所示,每列两个1意味着每个变量节点有两个边缘连接,以及每行4个1意味着每个校验节点有四个边缘连接。
Tanner图是双向图,该双向图的顶分为不相交的集合。LDPC码可以由在一侧的N个节点和在另一个侧的M个节点之间的Tanner图表示,在一侧的N个节点被称为与码字的集合相对应的变量(或消息)节点,在另一个侧的M个节点被称为与奇偶校验约束的集合相对应的校验(或约束)节点。每个边缘与奇偶校验矩阵中的非零条目相对应。在迭代LDPC解码过程期间,存储和更新节点信息。
图1描述了传统的Tanner图100。图1的所描述的传统Tanner图100与以上描述的长度N=10以及维数M=5的LDPC码的示例性奇偶校验矩阵H相对应。传统的Tanner图100包括校验节点102、变量节点104、校验至变量消息106、以及变量至校验消息108。
行为j(j=1,…,M)以及列为i(i=1,…,N)的奇偶校验矩阵中的1表示第i个变量节点vi以及第j个校验节点cj之间的边缘连接。与第i个变量节点vi相关联的边缘数量被称为等于列i中的1的数量的变量节点度d(vi)。类似地,与第j个校验节点cj相连接的边缘数量被称为等于行j中的1的数量的校验节点度d(cj)。
如图1中所述,每个变量节点104具有与每个变量节点104上的边缘连接的数量相对应的d(vi)=2的列重或度,此外,每个校验节点102具有与每个校验节点102上的边缘连接的数量相对应的d(cj)=4的行重或度。因此,图1描述了(2,4)常规LDPC码。在编码理论中,线性块码C的奇偶校验矩阵是码的二重的生成器矩阵。这样,有且仅有矩阵矢量积H·c=0时,码字c在C中。可以通过迭代置信传播(BP)算法(也已知为和-乘算法)有效地对LDPC码进行解码。BP解码算法的结构直接匹配传统Tanner图100的约束。消息的解码在每个传统的变量节点104和每个传统的校验节点102上进行计算,并且通过相邻节点之间的边缘连接迭代地进行传送。在解码期间,延边缘连接交换置信消息,且更新变量和校验节点的信息。
一般地,LDPC解码器硬件实施方式使用固定点的方法。由于非线性函数用于BP算法的计算中,所以实施方式的复杂性相对高。传统的解码***可以使用超大规模集成电路(VLSI)解决方案,来对LPDC块码进行解码。然而,典型的VLSI解决方案由于路由选择拥塞(尤其是对于不规则LDPC)可以导致的校验节点和变量节点之间的消息拥塞。此外,由于试图同时访问相同节点的信息,典型的VLSI解决方案会造成数据拥塞。
发明内容
描述了***的实施例。在一个实施例中,***是用于接收与低密度奇偶校验(LDPC)码相关联的信号的接收机。该接收机包括存储器设备、地址生成器、和LDPC解码器。LDPC解码器包括行指示器和位置指示器。存储器设备存储与LDPC解码过程相关的数据。地址生成器生成针对所存储数据的存取地址。LDPC解码器执行LDPC解码过程。行指示器将奇偶校验矩阵中的行指示为父行,并将奇偶校验矩阵中的多个相应的行指示为子行。位置指示器根据父行中每个父非零元素的实际位置顺序,指示父行的每个父非零元素的原始位置顺序。实际位置顺序包括父非零元素的数字顺序。也描述了该***的其它实施例。
也描述了LDPC解码方法的实施例。在一个实施例中,该方法是用于将LDPC码进行解码的方法。该方法包括存储与LDPC解码过程相关的数据。该方法还包括生成针对所存储数据的存取地址。该方法还包括将奇偶校验矩阵中的行指示为父行。该方法还包括将奇偶校验矩阵中的多个相应的行指示为子行。该方法还包括根据父行中每个父非零元素的实际位置顺序指示父行的每个父非零元素的原始位置顺序。实际位置顺序包括父非零元素的数字顺序。也描述了该方法的其它实施例。
附图说明
结合附图,从以下的详细描述中,通过本发明的原则的示例解释,本发明的实施例的其它方面和优点将变得显而易见。
图1描述了传统的Tanner图。
图2描述了用于卫星陆地交互式多服务基础设施(STiMi)的Tanner图。
图3描述了低密度奇偶校验(LDPC)***的一个实施例的示意性框图。
图4描述了与图3的LDPC解码器一起使用的变量节点信息存储方案的一个实施例的示意性框图。
图5描述了与图3的LDPC解码器一起使用的校验节点信息存储方案的一个实施例的示意性框图。
图6描述了与图3的模加器一起使用的节点信息存储方法的一个实施例的示意性流程框图。
在整个说明书中,类似的参考数字可以用于标识类似的元素。
具体实施方式
图2描述了用于卫星陆地交互式多服务基础设施(STiMi)的Tanner图。STiMi规定了用于卫星传输的LDPC码。所描述的STiMi Tanner图200包括STiMi校验节点202、STiMi变量节点204、STiMi校验至变量消息206、以及STiMi变量至校验消息208。
图2的STiMi Tanner图200与长度N=9216以及维数M=4608的LDPC码(对应于1/2码率)的奇偶校验矩阵H相对应。在示例性STiMi Tanner图200中,每列中有3个1,每行中有6个1。因此,针对1/2码率,每个变量节点具有三个边缘连接(变量节点总数为9216),以及每个校验节点具有六个边缘连接(校验节点的总数为4608)。同样,针对3/4码率(未示出),每个变量节点具有三个边缘连接(变量节点总数为9216),以及每个校验节点具有十二个边缘连接(校验节点的总数为2304)。在图2中,仅出于示例性解释的目的,示出用于STiMi示例的边缘连接。可以利用与图2不同的连接实现特定STiMi变量节点204和特定STiMi校验节点202之间的实际边缘连接。
在LDPC解码过程中,解码操作包括在每个节点处Bayes法则的本地应用和与邻近节点的消息或结果的交换。在任何给定的迭代中,传递两种类型的消息一从符号节点至校验节点的概率或“置信(belief)”,以及从校验节点至符号节点的概率或“置信”。在图2的STiMi Tanner图200中示出了迭代置信传播(BP)算法的框架。在一个实施例中,结合BP算法使用原始的位置节点信息存储(OPNS)过程。在一些实施例中,结合基于BP的算法和/或基于BP算法的修改使用OPNS。
令M(n)表示与变量节点连接的校验节点的集合(例如在H的第n个列中1的位置),以及令N(m)表示参与第m个奇偶校验等式的变量节点的集合(例如H的第m个行中1的位置)。N(m)\n表示从集合N(m)中排除n。M(n)\m表示从集合M(n)中排除m。此外,qmn(0)和qmn(1)表示从变量节点n到校验节点m的消息,这些消息分别表示:基于包括n(除去m)的所有校验,符号n为0和1的概率。类似地,rmn(0)和rmn(1)表示从第m个校验节点到第n个符号节点的消息,这些消息分别表示:基于通过m(除去n)校验的所有变量,符号n为0和1的概率。yn表示在通过加性白高斯噪声(AWGN)信道的传输之后接收机所调制的字,以及Fn是变量节点的初始信息。
x=[x1,x2,…,xN]表示所传输的码字,以及y=[y1,y2,…,yN]表示所接收的字。
在初始化期间,根据以下,针对每个位置(m,n)为每个变量节点n分配后验的对数似然比(LLR):
L(xn|yn)=log(P(xn=0|yn)/P(xn=1|yn)
从而Hm,n=1,
在校验节点更新期间,针对每个m,以及针对每个n∈N(m):
其中
在变量节点更新期间,针对每个n:
最后,针对每个n:
针对基于BP的算法,用以下来替换校验节点更新步骤:
在STiMi示例中,LDPC码具有2个码率,1/2和3/4。码长N是9216比特。一个特定的配置列于表1中。
表1LDPC码配置
数据速率 | 信息比特长度K | 码长N |
1/2 | 4,608比特 | 9,216比特 |
3/4 | 6,912比特 | 9,216比特 |
针对1/2码率STiMi示例,可以利用移位参数s将奇偶校验矩阵中的第i行的非零元素位置追踪回其父行:
s=i mod 18。
如果非零是父行中的第j列,则子行中该非零元素的位置的数字j’可以通过以下计算:
j’=j+s×36
父行中的非零位置(在行中的第i个非零元素)被称为原始位置。不论实际的位置顺序如何,根据原始位置顺序存储子行的节点信息。例如,从左到右,针对1/2码率STiMi奇偶校验矩阵中每行中的6个非零元素,有6个位置,位置0、位置1、位置2、位置3、位置4以及位置5。在STiMi奇偶校验矩阵中,第6个非零元素的列“F”在第五行、或在第五父行的第9189列。通过“F”生成第22行中的第一非零元素(第5行的第一子行)。根据OPNS原理,针对第22行的变量和校验节点信息仍然存储在第6位置、第5位置,从而使用模加器和/或计数器实现迭代过程。
图3描述了低密度奇偶校验(LDPC)***300的一个实施例的示意性框图。LDPC***300包括发射机302和接收机304。尽管结合图3的LDPC***300示出了特定组件部分,但是其它实施例可以包括更少、或更多的组件部分,或等同部分,来执行更少或更多的LDPC节点存储功能。此外,尽管LDPC***300的组件在图3中示出为分离的组件,但是这些组件中的一些可以是集成的。作为示例,发射机302的组件和/或接收机304的组件可以在单个收发机集成电路芯片中实现。此外,LDPC***300的组件中的一些可以以软件、硬件、和/或固件的组合实现。
如图3中所描述的,发射机302包括输出处理器306、发射机存储器设备308、数据源310、LDPC编码器312、块交织器314、调制器316、以及至少一个发射机天线318。一般地,发射机302将数据传输至接收机304。在一个实施例中,发射机是陆地数据网络中的基站(BS)。在一些实施例中,发射机是在地球轨道上的卫星,将数据分组传输至地球上的接收机304。在一些实施例中,发射机是将数据分组传输至也在太空中和/或轨道中的另一个卫星、或某一接收机304。在一些实施例中,发射机302通过噪声信道传输数据,其中数据比特中的一些有损地到达接收机304。
在一个实施例中,输出处理器306控制分组化过程,包括存取数据、编码数据、以及调制数据以便传输。传输存储器设备308存储通过发射机302传输的数据。数据源310提供存储在传输存储器设备308中的数据的一部分,以包括在分组化传输分组中。
在一个实施例中,LDPC编码器312根据LDPC编码方案,将数据源310提供的数据的一部分进行编码。在一些实施例中,LDPC编码器将数据的一部分编码为编码数据的连续块。针对特定码率,LDPC编码器生成特定块大小的编码数据的连续块。在一些实施例中,LDPC编码器312实现卷积LDPC码,以对传输分组进行编码。卷积码是前向纠错(FEC)方案,其中通过使用与来自数据源110提供的数据的相同部分的先前编码数据组合的当前编码数据比特,以算法获得编码序列。
在一个实施例中,块交织器314对LDPC编码器312生成的编码数据进行交织。交织是通过以非连续的顺序设置比特,来保护传输避免出错的方法。在一个实施例中,调制器316实现正交频分多址调制(OFDMA)方案以在物理层(PHY)调制传输分组,以及利用所调制的传输分组来驱动发射机天线318。在一些实施例中,发射机使用四相移键控(QPSK)或其它类似调制来调制传输分组。然后,发射机天线318将调制后的传输分组信号传输至接收机304。
如图3中所描述的,接收机304包括至少一个接收机天线320、解调器322、块解交织器324、LDPC解码器326、地址生成器328、数据接收装置330、接收机存储器设备332、以及输入处理器334。接收机304通过接收机天线320从发射机302接收调制后的传输分组信号。当通过噪声信道发送传输分组时,传输分组中的数据的一部分可能会丢失或损坏,这会呈现包含在接收机304最初难以破译的数据分组中的数据的至少一些。有许多类型的噪声。噪声的一个示例性类型是衰落。衰落指调制后的信号在特定传播介质上经历的失真。在无线***中,衰落是由于多路径传播,以及有时称为多路径引发的衰落。其它类型的噪声包括频率选择性、干扰、自干扰、地形分块、非线性、以及分散。
接收机天线320接收从发射机302传输的调制后的传输分组。解调器322感知天线320接收到的调制传输分组,并将调制后传输分组进行解调。在一个实施例中,解调器322是配置用于将OFDMA调制信号进行解调的正交解调器。在一些实施例中,解调器322将QPSK调制信号或其它类似调制信号进行解调。
在调制后的传输分组的解调之后,在一个实施例中,块解交织器324对应用于传输分组的块交织模式进行解交织。针对每个块交织模式,存在互补块解交织方案。
在块解交织模式的解交织之后,LDPC解码器326根据LDPC解码过程,对包含在接收码块中的每个比特段进行解码。正如所描述的,LDPC解码器326包括位置指示器338、以及行指示器336。在一些实施例中,LDPC解码器326在奇偶校验矩阵的行和列中确定循环移位特征。在一些实施例中,LDPC解码器326使用地址生成器328来存储、存取(access)、和更新与LDPC解码过程的校验节点202和变量节点204相关联的节点信息。然后,数据接收装置330存储解码后的比特。其它实施例可以实现其它类型的解码器。
在一个实施例中,LDPC解码器326确定奇偶校验矩阵的行和列中的循环移位特征,以及将奇偶校验矩阵中的特定行指示为父行,并将奇偶校验矩阵中的其它行指示为子行。在使用1/2码率的STiMi示例中,行中的元素沿右向每18行循环移位36列,以及列中的元素沿下向每36列循环移位18行。针对3/4码率,行中的元素沿右向每18行循环移位72列,以及列中的元素沿下向每72列循环移位18行。确定奇偶校验矩阵的行和列中的循环移位特征允许根据行或列对节点信息存储进行寻址。
存取地址用于存取和更新奇偶校验矩阵中的非零条目。存取地址与和矩阵中的非零元素相对应的行和列的数量相关联。针对STiMi示例,在LDPC解码中存取的全部地址是针对1/2码率的4,608×6行+9,216×3列,以及针对3/4码率的2,304×12行+9,216×3列。在一个实施例中,利用查找表(TLU)344来生成对与父非零元素相关联的节点信息的寻址(以下将更详细地进行描述)。在STiMi示例中,表的大小针对1/2码率是108+216,以及针对3/4速率是216+432。根据父非零元素的实际位置,存储与父非零元素相关联的节点信息。根据相应的父非零元素的原始位置,存储与子非零元素相关联的节点信息。根据相应的父非零元素的原始位置,存储子非零元素的节点信息允许通过模加器340和/或计数器342生成对与子非零元素相关联的节点信息的寻址。
在一些实施例中,行指示器336将奇偶校验矩阵中的行指示为父行。父行包括具有特定数量的非零元素的PDPC码字。在一些实施例中,行指示器336指示奇偶校验矩阵中的其它行为子行。每个子行包括父行的LDPC码字的循环移位版本。在一些实施例中,位置指示器338根据父行中每个父非零元素的实际位置顺序,指示父行的每个父非零元素的原始位置顺序。实际的位置顺序是从LDPC码字中最左边的父非零元素处的第一位置到LDPC码字中最右边的父非零元素处的最后位置的父非零元素的数字顺序。在一些实施例中,位置指示器338将子行中的子非零元素与和子非零元素相对应的父非零元素的原始位置顺序相关。
所描述的地址生成器328包括至少一个模加器340、和至少一个计数器342。所描述的接收机存储器设备332包括查找表(TLU)344。LDPC解码器326在LDPC解码过程中实现地址生成器328和存储器设备332。具体地,LDPC解码器326实现TLU 344,以生成针对奇偶校验矩阵的父行的寻址信息。换言之,在一些实施例中,TLU 344仅针对奇偶校验矩阵的父行提供存取地址。在一些实施例中,LDPC解码器326实现模加器340和计数器342,以根据针对与子行相对应的父行的通过TLU 344生成的地址信息,生成针对子行的寻址信息。
在一个实施例中,所描述的地址生成器328生成用于LDPC解码器326的LDPC过程的地址。在一些实施例中,以软件和/或硬件实现模加器340。在一些实施例中,模加器340是加法器集成电路(IC)。在一些实施例中,地址生成器328使用至少一个模加器340来生成地址,用于LDPC解码器326的LDPC解码过程。在一些实施例中,模加器340生成与奇偶校验矩阵的子行相关联的地址。在一些实施例中,LDPC解码器326使用TLU 344生成奇偶校验矩阵的父行的地址,以及针对相应的父行,使用模加器340,根据TLU 344生成的地址生成子行的地址。在一些实施例中,LDPC解码器326在LDPC解码过程的初始步骤中(例如根据父非零元素的实际位置顺序来存储父非零元素的初始节点信息,以及根据相应父非零元素的原始位置来存储子非零元素的初始节点信息)使用TLU 344和模加器340。
在一个实施例中,以软件、固件、硬件、或其组合实现计数器342。在一些实施例中,计数器342是计数器集成电路(IC)。在一些实施例中,地址生成器328使用至少一个计数器342来生成地址,用于LDPC解码器326的LDPC解码过程。在一些实施例中,计数器342生成与奇偶校验矩阵的子行相关联的地址。在一些实施例中,LDPC解码器326使用TLU 344生成奇偶校验矩阵的父行的地址,以及针对相应的父行,根据TLU 344生成的地址,使用计数器342生成子行的地址。在一些实施例中,LDPC解码器326在初始步骤之后的LDPC解码过程的更新步骤中,使用TLU 344和计数器342。在一些实施例中,TLU 344生成偏移以存取和更新父行的节点信息。在一些实施例中,LDPC解码器326结合由TLU生成的偏移,使用计数器342来存取和更新子行的节点信息。
在一个实施例中,LDPC解码器326发现特定未知或不可破译的变量节点的值、在从发射机302到接收机304的传输期间损坏的数据块的比特。使用图2的STiMi Tanner图作为示例,为了完成恢复不可破译比特的任务,STiMi变量节点204和STiMi校验节点202迭代地相互通信。从STiMi校验节点202到STiMi变量节点204,每个STiMi校验节点202给特定STiMi变量节点204基于来自其它相邻STiMi变量节点204的信息,提供关于该特定STiMi变量节点204的值的估计。从STiMi变量节点204到STiMi校验节点202,每个STiMi变量节点204根据基于连接至该STiMi变量节点204的其它边缘的、来自其它相邻STiMi校验节点202的反馈,将关于其自身值的估计中继至相连的STiMi校验节点202。针对STiMi变量节点204具有多于两个STiMi校验节点连接的情况,STiMi变量节点204针对来自其它STiMi校验节点连接的反馈,执行多数投票(软判决),之后将该判决报告给它正在通信的STiMi校验节点202。在一些实施例中,重复上述过程,直到认为所有的STiMi变量节点204正确,或直到达到迭代的预定最大次数,并且宣告解码失败。
在一些实施例中,存储器设备308和332是随机存取存储器(RAM)或另一种类型的动态存储器设备。在其它实施例中,存储器设备308和332是只读存储器(ROM)或另一种类型的静态存储器设备。在其它实施例中,所示出的存储器设备308和332表示LDPC***300内的RAM和静态存储器设备二者。在一些实施例中,存储器设备308和332是内容可寻址存储器(CAM)。在其它实施例中,存储器设备308和332是电子可编程只读存储器(EPROM)或另一类型的存储器设备。此外,一些实施例存储指令作为固件,例如,嵌入式基础码、基本输入/输出***(BIOS)码、LDPC解码码、模加器码、节点信息存储码、以及其它类似的码。
在一些实施例中,接收机存储器设备332配置用于存储所接收的数据块相关联的奇偶校验矩阵。在一些实施例中,接收机存储器设备332配置用于存储与奇偶校验矩阵的父行相关联的节点信息。在一些实施例中,接收机存储器设备332配置用于存储与奇偶校验矩阵的子行相关联的节点信息。在一些实施例中,接收机存储器设备332配置用于根据与子非零元素相对应的父非零元素的原始位置(不论子行中子非零元素的实际位置如何),存储与子非零元素相关联的节点信息。在解交织和LDPC解码成功的情况下(即解交织和解码比特可破译并且没有检测到错误),将比特存储在接收机存储器设备332中,或传输至上层(L2/L3)用于进一步处理。
在一个实施例中,输入处理器334计算与LDPC解码过程相关联的计算。在一些实施例中,处理器306和334是具有一个或多个处理内核的中央处理单元(CPU)。在其它实施例中,处理器306和334是网络处理单元(NPU)、或另一类型的处理设备(例如通用处理器、应用专用处理器、多核处理器、或微处理器)。可选地,至少一个单独的处理器可以耦合至LDPC解码器326和/或地址生成器328。一般地,处理器306和334执行一个或多个指令,以分别向发射机302和接收机304提供操作性功能。指令可以本地存储在处理器302和304中、或存储在存储器设备308和332中。可选地,指令可以分布于一个或多个设备,例如处理器306和334、存储器设备308和332、或另一个数据存储器设备。
图4描述了与图3的LDPC解码器326一起使用的变量节点信息存储方案400的一个实施例的示意性框图。所描述的变量节点信息存储方案400包括变量节点存储块的第一行402、变量节点存储块的第二行404、直到变量节点存储块的最后一行406。在STiMi示例中,奇偶校验矩阵的每行有6个1,所以在所描述的变量节点信息存储方案400中有6列存储块。可选地,一些变量节点信息存储方案具有或多或少列的存储块。在一些实施例中,并行处理的度取决于所实现的存储块的数量。
针对变量节点更新步骤,216和432偏移点分别用于1/2和3/4码率。这利用TLU 344来实现。在一些实施例中,同时更新变量节点的父行。为了获得相对高的解码速度,可以实现并行处理。因而,针对H矩阵中的每行,同时执行变量节点更新。因而,可以分别针对1/2和3/4码率同时访问12和24个校验节点,这可以利用TLU 344生成的12或24个偏移点来获得。针对OPNS,可以利用偏移点加1访问第一子行所需的校验节点信息,可以利用偏移点加2访问第二子行所需的校验节点信息。因而,通过使用计数器342可以访问和更新校验节点信息的全部,其中TLU 344生成的偏移点是初始值。例如,当更新存储在M0-Z的第1单元中的变量信息时,偏移点是M0-Z中的256和M6-Z中的0。即,存储在M0-Z的第257单元和M6-Z的第1单元中的校验节点信息用于更新存储在M0-Z的第1单元中的变量节点。当更新存储在M0-Z的第2单元中的变量信息时,存储在M0-Z的第258单元和M6-Z的第2单元中的校验节点信息用于更新存储在M0-Z的第2单元中的变量节点。即,存取地址是偏移点加1。因而,可以通过计数器342执行所有变量节点信息更新,其中偏移点将会是初始值。
在一些实施例中,变量节点信息存储方案400的每个变量节点存储块包括与两个父行以及这两个父行所关联的子行的非零元素相关联的变量节点信息。例如,变量节点存储器块402的第一行包括与第一和第二父行、以及与第一和第二父行相关联的子行中的非零元素相关联的变量节点信息。在示例性STiMi LDPC解码过程中,在奇偶校验矩阵中有18个父行。因而,STiMi示例中的变量节点信息存储方案400包括9行的变量节点存储块,每行有两个父行。根据父行的非零元素的原始位置,存储针对每个父行和子行的变量节点信息。例如,第一父行的第一非零元素(奇偶校验矩阵中的行1)存储在变量节点存储块的第一行402的位置0存储块中。因而,每个父行的所有第一非零元素存储在位置0中,每个父行的所有第二非零元素存储在位置1中,以此类推,每个非零元素存储在存储块的适合的行中。在示例性STiMi LDPC解码过程中,针对总共4,608行,有与奇偶校验矩阵中18个父行中的每个相应的255个子行。同样地,根据子非零元素的位置存储与第一父行相对应的子行的每个非零元素,因为它涉及父非零元素的位置,原始位置,而不是子行中子非零元素的实际位置。
STiMi奇偶校验矩阵的每行有6个非零元素,因而在图4的变量节点信息存储方案400中有6个位置。父非零元素的每个集合的顺序在STiMi奇偶校验矩阵中排序为1-2-3-4-5-6,由于每个父行是LDPC码字的唯一版本。在第一个18行之后的每个18行的集合(父行)是18个父行的循环移位版本。行19-36是子行的第一集合,以此类推。例如,STiMi奇偶校验矩阵中的第19行是第一子行,并与第一父行或STiMi奇偶校验矩阵中的第1行相对应。也像父行一样以123456的顺序排列第19行中子非零元素的实际位置。然而,由于子行的非零元素是相应父行的非零元素的循环移位版本,所以子非零元素的顺序(由于它们涉及相应父行的原始位置)可以是1-2-3-4-5-6,2-3-4-5-6-1,3-4-5-6-1-2,4-5-6-1-2-3,5-6-1-2-3-4,6-1-2-3-4-5。例如,如果第19行的子非零元素的位置的是3-4-5-6-1-2(由于它们与第1行相对应),那么第19行的实际第一子非零元素与第1行的第3非零元素相对应,第19行的实际第二子非零元素与第1行的第四子非零元素相对应,以此类推。因而,第19行的第一子非零元素存储在变量节点存储块的第一行402的位置2中,第19行的第二子非零元素存储在变量节点存储块的第一行402的位置3中,以此类推。
在一个实施例中,在变量节点信息存储方案400中有54个存储块,每行6个存储块并且有9行。每个存储块包括512个存储单元:从单元0至单元511。可选地,变量节点信息存储方案400包括具有每存储块或多或少的存储单元的或多或少的存储块。
在一个实施例中,与奇偶校验矩阵的第1父行的第一非零元素相关联的节点信息存储在变量节点存储块的第一行402中的第一存储块列(位置0)的第一单元(单元0)中。与奇偶校验矩阵的第1父行的第二非零元素相关联的节点信息存储在变量节点存储块的第一行402中的第二存储块列(位置1)的第一单元(单元0)中,以此类推。与和第一父行的第一父非零元素相对应的第19行的子非零元素相关联的节点信息存储在变量节点存储块的第一行402中的第一存储块列(位置0)的第二单元(单元1)中。与和第一父行的第二父非零元素相对应的第19行的子非零元素相关联的节点信息存储在变量节点存储块的第一行402中的第二存储块列(位置1)的第二单元(单元1)中,以此类推。与和第一父行的第一父非零元素相对应的第37行的子非零元素相关联的节点信息存储在变量节点存储块的第一行402中的第一存储块列(位置0)的第三单元(单元2)中。与和第一父行的第二父非零元素相对应的第37行的子非零元素相关联的节点信息存储在变量节点存储块的第一行402中的第二存储块列(位置1)的第三单元(单元2)中。
此外,与奇偶校验矩阵的第2父行的第一非零元素相关联的节点信息存储在变量节点存储块的第一行402中的第一存储块列(位置0)的第257单元(单元256)中。与奇偶校验矩阵的第2父行的第二非零元素相关联的节点信息存储在变量节点存储块的第一行402中的第二存储块列(位置1)的第257单元(单元256)中,以此类推。换言之,将与第1父行的第一非零元素相关联的变量节点信息、以及与和第1父行的第一非零元素的循环移位版本相对应的每个子非零元素相关联的变量节点信息按照各行的顺序,存储在变量节点存储块的第一行402中的第一存储块列(位置0)的第一256个单元中。将与第1父行的第二非零元素相关联的变量节点信息、以及与和第1父行的第二非零元素的循环移位版本相对应的每个子非零元素相关联的变量节点信息按照各行的顺序,存储在变量节点存储块的第一行402中的第二存储块列(位置1)的第一256个单元中,以此类推。
奇偶校验矩阵的存储和存取节点信息可以包括:针对LDPC解码过程的每次迭代,至接收机存储器设备332的成百上千或成千上万的存储和存取例程。根据相应父行中非零元素的原始位置,将与父行的特定非零元素相关联的节点信息存储在单个存储块的连续单元中,这允许地址生成器328利用模加器340和/或计数器342来生产针对LDPC解码过程的地址。在一些实施例中,接收机存储器设备332包括变量节点信息存储方案400的变量节点存储块。可选地,变量节点信息存储方案400的变量节点存储块包括在单独和/或专用的存储器设备中。在一些实施例中,变量节点信息存储方案400的变量节点存储块分布在几个专用存储器设备上。
图5描述了与图3的LDPC解码器一起使用的校验节点信息存储方案500的一个实施例的示意性框图。所描述的校验节点信息存储方案500包括校验节点存储块的第一行502、校验节点存储块的第二行504、至校验节点存储块的最后一行506。
在STiMi示例中,奇偶校验矩阵的每行有6个1,所以在所描述的STiMi校验节点信息存储方案500中有六列存储块。可选地,一些变量节点信息存储方案具有或多或少列的存储块。
在一些实施例中,校验节点信息存储方案500的存储例程基本与参照图4的变量节点信息存储方案400的存储例程类似。换言之,将与第1父行的第一非零元素相关联的校验节点信息、以及与和第1父行的第一非零元素的循环移位版本相对应的每个子非零元素相关联的校验节点信息按照各行的顺序,存储在校验节点存储块的第一行502中的第一存储块列(位置0)的第一256个单元中。将与第1父行的第二非零元素相关联的节点信息、以及与和第1父行的第二非零元素的循环移位版本相对应的每个子非零元素相关联的校验节点信息按照各行的顺序,存储在校验节点存储块的第一行502中的第二存储块列(位置1)的第一256个单元中,以此类推。
针对校验节点更新步骤,校验节点接收变量节点信息,以及逐行更新校验节点信息。例如,在校验节点中读取和处理存储在图4中的存储块的第一单元中的变量节点信息,以产生存储在图5的校验节点信息存储块的单元中的更新的校验节点信息。因而,在一些实施例中,计数器342生成用于校验节点更新步骤的存取地址。
在一些实施例中,校验节点信息存储方案500的每个校验节点存储块包含与两个父行和两个父行的相关联的子行的非零元素相关联的校验节点信息。例如,校验节点存储块的第一行502包含与第一和第二父行、以及与第一和第二父行相关联的子行的非零元素相关联的校验节点信息。在示例性STiMi LDPC解码过程中,在奇偶校验矩阵中有18个父行。因而,图5的校验节点信息存储方案500包括9行校验节点存储块,校验节点存储块的每行有两个父行。在一些实施例中,校验节点信息存储方案500包括54个存储块,每个存储块有512个存储单元(单元0至单元511)。可选地,校验节点信息存储方案500包括或多或少的存储块,每个存储块有或多或少的存储单元。
在一些实施例中,接收机存储器设备332包括校验节点信息存储方案500的校验节点存储块。可选地,校验节点信息存储方案500的校验节点存储块包括在单独和/或专用存储器设备中。在一些实施例中,校验节点信息存储方案500的校验节点存储块分布在几个专用存储器设备上。
STiMi的奇偶校验矩阵中的总共4,608行中,将第一个18行指示为父行。将奇偶校验矩阵中接下来的行指示为子行。每个子行是父行之一的循环移位版本。在STiMi示例中,每个父行与255个子行相关。此外,特定子行的每个非零元素、或子非零元素,与相关的父行的父非零元素相关。每个父非零元素的实际位置(例如第一、第二、第三、第四、第五、或第六位置)称为原始位置。根据所检测的每个父非零元素的实际位置,存储与父非零元素相关的节点信息。同样地,根据相关的父非零元素的原始位置顺序,存储与子非零元素相关的节点信息,而不论奇偶校验矩阵的子行中的子非零元素的实际位置顺序如何。换言之,特定父行的第一父非零元素与特定子行的子非零元素之一相关。然而,与第一父非零元素相关的子非零元素可以在子行上遵循任何顺序,如特定子行的第三非零元素。即使相关的子非零元素的实际位置可以是第三位置,但是当子行的第三子非零元素与第一位置中、或其原始位置是第一位置的父非零元素相关时,该子行的第三子非零元素存储在第一位置存储块中。
遵循行顺序存储和更新包括变量节点204和校验节点202的节点信息。在STiMi示例的LDPC解码过程的初始步骤期间,从分别针对1/2或3/4码率的TLU 344获取针对父行的108和216列号(存取地址),而利用模加器340生成针对子行的存取地址。针对校验节点更新步骤,基于变量节点204传输的变量节点信息,逐行更新校验节点信息。针对STiMi变量节点更新步骤,通过TLU 344分别生成216和432个偏移点,并针对1/2或3/4码率进行使用。在一个实施例中,同时更新变量节点204的父行。因而,分别针对1/2或3/4码率使用来自12和24个校验节点202的信息,这可以利用TLU 344生成的12或24个偏移点获取。针对OPNS,利用偏移点加1存取针对第一子行的校验节点信息,以及利用偏移点加2存取针对第二子行的校验节点信息,以此类推。因而,加法器342获取变量信息,其中偏移点是初始值。
图6描述了与图3的模加器340一起使用的原始位置节点信息存储(OPNS)方法600的一个实施例的示意性流程框图。尽管结合图3的模加器340描述OPNS方法600,但是OPNS方法600的一些实施例可以利用其他类型的模加器实现。在块602处,LDPC解码器326在奇偶校验矩阵的行和列中确定循环移位特征。每行包括特定码长的LDPC码。在一些实施例中,接收机304将奇偶校验矩阵中的行的集合指示为父行。父行包含与特定LDPC编码方案相关联的单独LDPC码的集合。在父行之后,LDPC码在集合中重复为先前集合的循环移位版本。在示例性STiMi***中,有18个单独LDPC码,以及每行是具有9,216比特长度的LDPC码。奇偶校验矩阵的第一18行是父行,LDPC码的第一集合,以及然后将父行之后的LDPC码的每个集合指示为子行。
在块604处,OPNS位置指示器338确定奇偶校验矩阵中父非零元素的实际位置,以及将父非零元素的实际位置指示为父非零元素的原始位置。
在块606处,行指示器336将每个子行与父行相关。行指示器33还将子行非零元素与相关的父行的相应父非零元素的原始位置相关。换言之,使用STiMi示例,将STiMi奇偶校验矩阵中的第1行(第一父行)的6个非零元素的位置的实际顺序指示为原始位置1-2-3-4-5-6。同样,将奇偶校验矩阵的第一个18行的每行的非零元素指示为原始位置1-2-3-4-5-6。然而,不论每个子行的6个非零元素的位置的实际顺序如何,每个子非零元素与相应的父非零元素相关。
在块608处,LDPC解码器326根据父非零元素的原始位置,存储与父非零元素相关联的节点信息。根据父非零元素的原始位置存储父节点信息允许LDPC解码器326通过TLU 344存取和更新父节点信息。
在块610处,LDPC解码器326根据相关的父非零元素的原始位置存储与子非零元素相关联的节点信息。根据相关父非零元素的原始位置存储子节点信息允许LDPC解码器326通过模加器340存取和更新子节点信息。在块612处,根据TLU 344生成的偏移,LDPC解码器326使用计数器342生成与LDPC解码过程所存储的节点信息相关联的存取地址。
在一个实施例中,针对BP算法,实现OPNS方法600。在一些实施例中,实现基于BP的算法。可以使用基于BP的算法(例如基于偏移BP的算法以及基于归一化BP的算法)的修改,从而逼近BP算法的性能。在一些实施例中,利用基于BP的、Log-BP、基于Log-BP的、基于归一化BP的、基于偏移BP的和/或置信传播算法的其它变形来实现OPNS方法600。在一些实施例中,利用设计用于以串行模式操作的LDPC解码器326实现OPNS方法600。在一些实施例中,利用设计用于以并行模式操作的LDPC解码器326实现OPNS方法600。OPNS方法600的实施例降低了LDPC解码过程的存储器需求。此外,与传统技术相比,OPNS方法600的实施例基于LDPC的结构和属性降低了地址生成器328的复杂度。
应该注意,使用存储在计算机可用存储介质上的由计算机执行的软件指令,可以实现针对上述方法的操作中的至少一些。作为示例,计算机程序产品的实施例包括存储计算机可读程序的计算机可用存储介质,当在计算机上执行该程序时,该程序可以使计算机执行操作,包括:通过TLU 344存取和更新与奇偶校验矩阵的父行相关联的节点信息,通过模加器344存取和更新与奇偶校验矩阵的子行相关联的节点信息,以及根据与子非零元素相对应的父非零元素的原始位置,存储与子非零元素相关联的节点信息。如上所述,在OPNS方法600中,可以利用计数器342生成用于节点信息更新的存取地址。模加器340和计数器342比TLU 344消耗更少的硅。在OPNS中,利用TLU 344仅生成父行。利用TLU 344仅生成父行减小了TLU 344的大小,并且利用模加器340和/或计数器342生成子地址比仅利用TLU 344生成地址消耗更少的硅。简化了迭代LDPC解码过程的存储和存储存取过程的复杂度,并且减少了存储存取次数,充分地将LDPC过程的处理时间最小化。
本发明的实施例可以采用完全的硬件实施例、完全的软件实施例、或包含硬件和软件元件的实施例的形式。在一个实施例中,以软件(包括但不限于固件、驻留软件、微码等)实现本发明。
此外,本发明的实施例可以采用从提供了计算机或任何指令执行***使用的或与相关联的程序代码的计算机可用或计算机可读存储介质中存取的计算机程序产品的形式。针对该说明书的目的,计算机可用或计算机可读存储介质可以是可以存储指令执行***、仪器或设备所使用或与其相关联的程序的任何设备。
计算机可用或计算机可读存储介质可以是电、磁、光学、电磁、红外、或半导体的***(或仪器或设备)、或传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘、以及光盘。光盘的当前示例包括具有只读存储器(CD-ROM)的光盘、具有读/写(CD-R/W)的光盘、以及数字视频盘(DVD)。
适合存储和/或执行程序代码的数据处理***的实施例包括通过***总线(例如数据、地址、和/或控制总线)直接或间接耦合至存储元件的至少一个处理器。存储元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储器、以及提供至少某程序代码的临时存储以减少在执行期间必须从大容量存储器检索码的次数的高速缓冲存储器。
可以直接或通过***的I/O控制器来将输入/输出或I/O设备(包括但不限于键盘、显示器、指向设备等)耦合至***。此外,网络适配器还可以耦合至该***,以使数据处理***通过***的个人或公共网络与其他数据处理***或远程打印机或存储器设备相耦合。调制解调器、电缆调制解调器以及以太网卡是网络适配器当前可用类型的几个。
尽管以特定的顺序于此示出和描述了该方法(多个方法)的操作,但是可以改变每个方法操作的顺序,从而可以以相反的顺序执行特定操作、或从而与其他操作同步(至少部分地)执行特定操作。在另一个实施例中,可以以间断地和/或变化的方式实现各个操作的指令或次操作。
尽管示出和描述了本发明的特定实施例,但是本发明不限于所描述和示出的特定形式或部分的设置。通过权利要求以及等同权利要求来限定本发明的范围。
Claims (20)
1.一种接收机,用于接收与低密度奇偶校验LDPC码相关联的信号,所述接收机包括:
存储器设备,用于存储与LDPC解码过程相关的数据;
与所述存储器设备耦合的地址生成器,用于生成针对所存储数据的存取地址;以及
与所述地址生成器耦合的LDPC解码器,用于执行所述LDPC解码过程,其中所述LDPC解码器包括:
行指示器,用于将奇偶校验矩阵中的行指示为父行,并将奇偶校验矩阵中的多个相应的行指示为子行;以及
与行指示器耦合的位置指示器,所述位置指示器根据父行中每个父非零元素的实际位置顺序,指示所述父行的每个父非零元素的原始位置顺序,其中,所述实际位置顺序包括所述父非零元素的数字顺序。
2.如权利要求1所述的接收机,其中所述位置指示器还配置用于:将每个子非零元素与相应父非零元素的原始位置顺序相关。
3.如权利要求1所述的接收机,其中所述存储器设备还配置用于:根据父行中所述父非零元素的原始位置顺序,存储与每个父非零元素相关联的数据。
4.如权利要求1所述的接收机,其中所述存储器设备还配置用于:根据所述相应父非零元素的原始位置顺序,存储与每个子非零元素相关联的数据。
5.如权利要求4所述的接收机,其中所述存储器设备还包括与所述LDPC解码器耦合的查找表TLU,所述TLU生成针对每个父非零元素的父节点信息的父存取地址,其中所述父存取地址包括:
与父行的列相关联的列存取地址;以及
偏移存取地址,其中所述TLU配置用于根据与所述父行相关联的子行的数量生成偏移。
6.如权利要求5所述的接收机,其中所述地址生成器还配置用于:生成针对与每个子非零元素相关联的数据的子存取地址,其中所述子存取地址基于TLU生成的父存取地址。
7.如权利要求6所述的接收机,其中所述地址生成器还包括与LDPC解码器耦合的模加器,所述模加器基于列存取地址生成子存取地址。
8.如权利要求6所述的接收机,其中所述地址生成器还包括与LDPC解码器耦合的计数器,所述计数器基于偏移生成子存取地址,其中通过偏移加1生成第一子行存取地址,以及通过偏移加N生成第N子行存取地址。
9.一种LDPC解码方法,包括:
存储与LDPC解码过程相关的数据;
生成针对所存储数据的存取地址;
将奇偶校验矩阵中的行指示为父行;以及将奇偶校验矩阵中的多个相应的行指示为子行;以及
根据父行中每个父非零元素的实际位置顺序,指示父行中每个父非零元素的原始位置顺序,其中所述实际位置顺序包括父非零元素的数字顺序。
10.如权利要求9所述的LDPC解码方法,还包括:将每个子非零元素与相应父非零元素的原始位置顺序相关。
11.如权利要求9所述的LDPC解码方法,还包括:根据父行中所述父非零元素的原始位置顺序,存储与每个父非零元素相关联的数据。
12.如权利要求9所述的LDPC解码方法,还包括:根据相应父非零元素的原始位置顺序,存储与每个子非零元素相关联的数据。
13.如权利要求12所述的LDPC解码方法,还包括:生成针对每个父非零元素的父节点信息的父存取地址,其中生成所述父存取地址还包括:
生成与父行的列相关联的列存取地址;以及
生成与由查找表所生成的偏移相关联的偏移存取地址,其中根据与所述父行相关联的子行的数量,生成所述偏移。
14.如权利要求13所述的LDPC解码方法,还包括:
生成针对与每个子非零元素相关联的数据的子存取地址,其中所述子存取地址基于由查找表生成的父存取地址。
15.如权利要求14所述的LDPC解码方法,还包括:基于所述列存取地址生成所述子存取地址。
16.如权利要求14所述的LDPC解码方法,还包括:基于所述偏移生成所述子存取地址,其中通过所述偏移加1来生成第一子行存取地址,以及通过所述偏移加N来生成第N子行存取地址。
17.一种计算机程序产品,包括:用于存储计算机可读程序的计算机可用存储介质,当在计算机上执行所述计算机可读程序时,使所述计算机执行以下操作,所述操作包括:
存储与LDPC解码过程相关的数据;
生成针对所存储数据的存取地址;
将奇偶校验矩阵中的行指示为父行,并将奇偶校验矩阵中的多个相应的行指示为子行;
根据父行中每个父非零元素的实际位置顺序,指示所述父行的每个父非零元素的原始位置顺序,其中,所述实际位置顺序包括所述父非零元素的数字顺序。
18.如权利要求17所述的计算机程序产品,其中当在计算机上执行时,所述计算机可读程序使所述计算机执行以下操作:将每个子非零元素与相应父非零元素的原始位置顺序相关。
19.如权利要求17所述的计算机程序产品,其中当在计算机上执行时,所述计算机可读程序使所述计算机执行以下操作:
根据父行中所述父非零元素的原始位置顺序,存储与每个父非零元素相关联的数据;以及
根据所述相应父非零元素的原始位置顺序,存储与每个子非零元素相关联的数据。
20.如权利要求19所述的计算机程序产品,其中当在计算机上执行时,所述计算机可读程序使所述计算机执行以下操作,所述操作包括:
生成与父行的列相关联的列存取地址;
生成与由查找表生成的偏移相关联的偏移存取地址,其中根据与父行相关联的子行的数量,生成所述偏移;
基于所述列存取地址生成子存取地址;以及
基于所述偏移生成所述子存取地址,其中通过所述偏移加1来生成第一子行存取地址,以及通过所述偏移加N来生成第N子行存取地址。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US7343308P | 2008-06-18 | 2008-06-18 | |
US61/073,433 | 2008-06-18 | ||
PCT/IB2009/052592 WO2009153746A2 (en) | 2008-06-18 | 2009-06-18 | Node information storage method and system for a low-density parity-check decoder |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102067458A true CN102067458A (zh) | 2011-05-18 |
Family
ID=41434507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801230737A Pending CN102067458A (zh) | 2008-06-18 | 2009-06-18 | 用于低密度奇偶校验解码器的节点信息存储方法和*** |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110202817A1 (zh) |
CN (1) | CN102067458A (zh) |
WO (1) | WO2009153746A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109792309A (zh) * | 2016-08-10 | 2019-05-21 | 瑞典爱立信有限公司 | 传输块内的校验位置 |
CN111384976A (zh) * | 2018-12-29 | 2020-07-07 | 泰斗微电子科技有限公司 | 稀疏校验矩阵的存储方法和读取方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677214B2 (en) * | 2011-10-04 | 2014-03-18 | Cleversafe, Inc. | Encoding data utilizing a zero information gain function |
WO2012167564A1 (zh) * | 2011-11-17 | 2012-12-13 | 华为技术有限公司 | 一种编码方法、译码方法及编码装置、译码装置 |
US10776740B2 (en) * | 2016-06-07 | 2020-09-15 | International Business Machines Corporation | Detecting potential root causes of data quality issues using data lineage graphs |
CN111106837B (zh) * | 2018-10-26 | 2023-09-08 | 大唐移动通信设备有限公司 | 一种ldpc译码方法、译码装置及存储介质 |
KR20200079134A (ko) | 2018-12-24 | 2020-07-02 | 에스케이하이닉스 주식회사 | 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN110768679B (zh) * | 2019-10-30 | 2023-08-22 | 湖南国科微电子股份有限公司 | 64进制ldpc的码字校验方法及*** |
CN112187286A (zh) * | 2020-09-24 | 2021-01-05 | 复旦大学 | 应用于ccsds卫星深空通信的多模式ldpc译码器 |
CN113572481B (zh) * | 2021-05-26 | 2023-09-29 | 西安空间无线电技术研究所 | 一种基于fpga的高速码率兼容dvb-s2的ldpc编码器及编码方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040034828A1 (en) * | 2002-08-15 | 2004-02-19 | Texas Instruments Incorporated | Hardware-efficient low density parity check code for digital communications |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7162684B2 (en) * | 2003-01-27 | 2007-01-09 | Texas Instruments Incorporated | Efficient encoder for low-density-parity-check codes |
FR2871976B1 (fr) * | 2004-06-22 | 2006-08-11 | St Microelectronics Sa | Decodeur ldpc |
US7627805B2 (en) * | 2005-06-08 | 2009-12-01 | Cimarron Mittelsteadt | Data coding with an efficient LDPC encoder |
US8028214B2 (en) * | 2006-08-17 | 2011-09-27 | Mobile Techno Corp. | Low density parity check codes decoder and method thereof |
CN101212277A (zh) * | 2006-12-29 | 2008-07-02 | 中兴通讯股份有限公司 | 支持多协议标准的ldpc码译码装置 |
US8418023B2 (en) * | 2007-05-01 | 2013-04-09 | The Texas A&M University System | Low density parity check decoder for irregular LDPC codes |
US8291283B1 (en) * | 2008-06-06 | 2012-10-16 | Marvell International Ltd. | Layered quasi-cyclic LDPC decoder with reduced-complexity circular shifter |
-
2009
- 2009-06-18 CN CN2009801230737A patent/CN102067458A/zh active Pending
- 2009-06-18 WO PCT/IB2009/052592 patent/WO2009153746A2/en active Application Filing
- 2009-06-18 US US13/000,262 patent/US20110202817A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040034828A1 (en) * | 2002-08-15 | 2004-02-19 | Texas Instruments Incorporated | Hardware-efficient low density parity check code for digital communications |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109792309A (zh) * | 2016-08-10 | 2019-05-21 | 瑞典爱立信有限公司 | 传输块内的校验位置 |
US11063691B2 (en) | 2016-08-10 | 2021-07-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Check positions within a transport block |
CN109792309B (zh) * | 2016-08-10 | 2021-12-31 | 瑞典爱立信有限公司 | 传输块内的校验位置 |
CN111384976A (zh) * | 2018-12-29 | 2020-07-07 | 泰斗微电子科技有限公司 | 稀疏校验矩阵的存储方法和读取方法 |
CN111384976B (zh) * | 2018-12-29 | 2023-09-05 | 泰斗微电子科技有限公司 | 稀疏校验矩阵的存储方法和读取方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2009153746A3 (en) | 2010-04-08 |
WO2009153746A2 (en) | 2009-12-23 |
US20110202817A1 (en) | 2011-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102067458A (zh) | 用于低密度奇偶校验解码器的节点信息存储方法和*** | |
CN1866751B (zh) | 一种低密度奇偶校验码的构造方法及装置 | |
CN101689866B (zh) | 低密度奇偶校验卷积码编码器和低密度奇偶校验卷积码解码器 | |
CN100382472C (zh) | 提供短块长度低密度奇偶校验(ldpc)码的方法和*** | |
US8176383B2 (en) | Method of constructing low density parity check code, method of decoding the same and transmission system for the same | |
KR100602027B1 (ko) | 저밀도 패리티 검사(ldpc) 부호를 이용한비트-인터리브형 부호화 변조 | |
KR100543154B1 (ko) | 저밀도 패리티 검사 코드 생성 방법 및 시스템 | |
US7831895B2 (en) | Universal error control coding system for digital communication and data storage systems | |
CN100568755C (zh) | 用于编码和解码具有可变编码率的块低密度奇偶校验码的装置和方法 | |
EP2351230B1 (en) | Channel-encoding/decoding apparatus and method using low-density parity-check codes | |
CN102412843B (zh) | 自适应的归一化最小和ldpc译码方法及译码器 | |
CN102349257A (zh) | 设计用于多边型低密度奇偶校验编码调制的多路分用器的方法和装置 | |
US20170317695A1 (en) | Methods and devices for error correcting codes decoding | |
US20160344411A1 (en) | Method and apparatus for encoding and decoding low density parity check codes | |
CN101273531B (zh) | 低密度奇偶校验码的改进turbo-译码消息传递方法、设备和*** | |
CN116964945A (zh) | 原模图准循环极化码及相关的低密度生成矩阵族 | |
JP5522641B2 (ja) | Ldpc符号を利用した多重入力ハードウェアの再利用 | |
CN106656211B (zh) | 一种基于Hoey序列的非规则Type-II QC-LDPC码构造方法 | |
US20070127387A1 (en) | Partial-parallel implementation of LDPC (low density parity check) decoders | |
CN102412844B (zh) | 一种ira类ldpc码的译码方法及译码装置 | |
US20160049962A1 (en) | Method and apparatus of ldpc encoder in 10gbase-t system | |
CN1822509B (zh) | 低密度奇偶校验解码器及其解码方法 | |
CN100593911C (zh) | 一种对通信***中接收到的层数据进行解码的方法和*** | |
CN102801432A (zh) | 一种多进制ldpc的串行fht-bp译码方法及装置 | |
CN103338044B (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 |
Application publication date: 20110518 |