低密度奇偶校验(ldpc)解码器的制作方法

文档序号:7538124阅读:426来源:国知局
专利名称:低密度奇偶校验(ldpc)解码器的制作方法
技术领域
本发明一般涉及通信系统,并且尤其涉及一种处理低密度奇偶校验(LDPC)编码的数据的接收器。
背景技术
近些年来,LDPC码因为其接近香农(Shannon)极限纠错能力而得到了普及。例如,第二代数字视频广播标准(DVB-S2)采用了LDPC码作为主要纠错码,来代替第一代DVB标准中所用的卷积码(例如,见欧洲电信标准协会(ETSI)草案EN 302307,v.1.1.1,(2004年6月))。
通常,(N,K)LDPC码是奇偶校验码,其中K是待编码的位数,N是所得编码块的大小(长度),(N-K)是由该码添加的附加纠错位。可以用矩阵形式将(N,K)LDPC码表示为以下矩阵方程HxT=0T的解x的集合。该方程也称为“奇偶校验方程”,其中上标T指关联矩阵的转置,且H被称为M×N维的“奇偶校验矩阵”,其中如上所述,N对应于所得编码块的大小,且M=N-K。修饰语“低密度”传达以下事实奇偶校验矩阵H中的非零元素的部分很小,并且具体而言,与码块长度N成线性关系(相反,“随机”线性块码是1的预期数目以N2关系增长的码)。
如该技术领域所周知的,也可用双向图来表示LDPC码,双向图用于理解LDPC解码过程。在M×N维的奇偶校验矩阵H的环境下,对应的双向图包含与奇偶校验矩阵的N列对应的N个位节点(也称为变量节点或消息节点),而且也包含与该奇偶校验矩阵的M行对应的M个校验节点。每个校验节点都连接到一个或多个位节点。具体地说,当且仅当Hm,n=1,边(或分支)将校验节点m连接到变量节点n,其中0≤n<N且0≤m<M。对于双向图,术语“位节点度”是指位节点所连接到的校验节点的数目。类似,术语“校验节点度”是指校验节点所连接到的位节点的数目。也应该观察到,校验节点度和位节点度也对应于奇偶校验矩阵H的各行和各列中1的数目。暂且转到图1,其示出了说明性的奇偶校验矩阵5和对应的双向图6,其中N=7且M=3。说明性地,位节点x7的位节点度为1,且校验节点c3的校验节点度为4。
如上所述,双向图用于理解LDPC解码过程。在该环境下,在LDPC解码器中,使校验节点与校验节点处理器相关联,并使位节点与位节点处理器相关联。不幸的是,虽然LDPC解码器的解码算法在概念上简单,但是对于大码块或接近随机的奇偶校验矩阵,LDPC解码器的结构造成了重大的实施难题。对于LDPC解码器的实施,有三种周知的结构。第一种结构是全并行结构,其中所有校验节点、位节点以及它们的连接都被映射为硬件。该结构产生了超高速解码器。然而,由于高硬件复杂性,该结构对于长块长的LDPC码的解码是不切实际的。第二种结构是串行结构,其中只实施一个校验节点处理单元(CPU)和一个位节点处理单元(BPU),并将它们多次重用来完成所有解码操作。不幸的是,因为所有处理都以串行方式处理,所以串行结构产生了超低速解码器。最后,第三种结构是部分并行结构,它是第一种和第二种结构的折衷。在此,实施和重用多个BPU和多个CPU,实际上是在期望的LDPC解码器的硬件复杂性和解码等待时间之间进行折衷。不幸的是,还没有一种高效实现部分并行LDPC解码器的一致的设计方法。

发明内容
我们已观察到,可能通过利用LDPC奇偶校验矩阵的某些特性来减小LDPC解码器的复杂性从而设计一种具有部分并行结构的更高效LDPC解码器。因此,根据本发明的原理,一种接收器执行包括以下步骤的LDPC解码方法接收LDPC编码的数据;以及处理该接收的LDPC编码的数据,以提供解码的数据;其中该处理步骤将位节点消息分成Y组,并将校验节点消息分成q组,其中q随码率的而变化。
在本发明的实施例中,卫星接收器包括前端、解调器和LDPC解码器。该前端接收DVB-S2 LDPC编码的信号,并提供下变频的信号给解调器。该解调器对该下变频的信号进行解调,并提供解调的信号给LDPC解码器。该LDPC解码器具有部分并行结构,并将位节点消息分成N/360组,将校验节点消息分成q组,其中q=M/360。分别用360个位节点处理器或360个校验节点处理器来处理每一组。说明性地,该LDPC解码器包括这样划分的存储器,以致与位节点组关联的消息被连续寻址。
在本发明的实施例中,卫星接收器包括前端、解调器和LDPC解码器。该前端接收DVB-S2 LDPC编码的信号,并提供下变频的信号给解调器。该解调器对该下变频的信号进行解调,并提供解调的信号给LDPC解码器。该LDPC解码器具有部分并行结构,并将位节点消息分成N/360组,将校验节点消息分成q组,其中q=M/360。分别用360个位节点处理器或360个校验节点处理器来处理每一组。说明性地,该LDPC解码器包括这样划分的存储器,以致与校验节点组关联的消息被连续寻址。


图1示出了关于LDPC编码的奇偶校验矩阵和双向图;图2示出了表1,该表1示出了一些DVB-S2 LDPC编码参数;
图3-5示出了关于DVB-S2 LDPC奇偶校验矩阵的一些周知的观察;图6示出了表2,该表2进一步示出了关于DVB-S2 LDPC编码的一些观察;图7-12示出了根据本发明原理的奇偶校验矩阵的重新组织;图13示出了具体实施本发明原理的说明性通信系统的一部分;图14示出了根据本发明原理的接收器的说明性实施例;图15示出了根据本发明原理的LDPC解码器的说明性实施例;图16和17示出了一种供根据本发明原理的LDPC解码器之用的说明性存储器结构;图18示出了根据本发明原理的,供图15的LDPC解码器之用的说明性流程图;图19示出了关于图15所示实施例的消息传递;图20示出了一种供根据本发明原理的LDPC解码器之用的说明性存储器结构;图21示出了图15的循环移位器的操作;图22示出了一种供图15的LDPC解码器之用的说明性校验节点处理单元;图23和24示出了一种供图15的LDPC解码器之用的说明性位节点处理单元;图25-28示出了根据本发明原理的另一说明性实施例;以及图29示出了根据本发明原理的另一说明性实施例。
具体实施例方式
除本发明的概念以外,图中所示的元素都是众所周知的,并且将不详细描述。例如,除本发明的概念以外,卫星转发器、下行链路信号、符号星座图、载波恢复、插值、锁相环(PLL)、射频(rf)前端、或接收器部分如低噪声块下变频器,用于产生传输位流的格式化和编码方法(如运动图像专家组(MPEG)-2系统标准(ISO/IEC 13818-1)、LDPC编码等),以及解码方法如对数似然比、软输入软输出(SISO)解码器、维特比(Viterbi)解码器,都是众所周知的,不在此描述。另外,可以利用常规编程技术来实施本发明的概念,因而不在此描述。而且,假定读者熟悉基于卫星的系统(例如DVB-S2)和上述ETSI草案EN 302307,v.1.1.1,(2004年6月),并且不在此详细描述。最后,图中相同的附图标记代表相似的元素。
在继续描述本发明的概念之前,先简要回顾LDPC解码器的现有技术解码算法。应该注意,如该技术领域所周知的,LDPC解码器的解码算法有时被称为消息传递算法或置信传播算法。消息传递算法本身好像相当简单。具体而言,定义一组校验节点Mn={mHm,n=1}和一组位节点Nm={nHm,n=1}。令um,n(l)为第1次迭代期间从校验节点m到位节点n的消息,令vn,m(l)为第1次迭代期间从位节点n到校验节点m的消息,并且令λn(l)表示1次迭代后第n位的后验对数似然比(LLR)的估计。如果将LDPC码块的信道观测表示为矢量r,则消息传递算法如下。初始化时,计算以下λn(0)=logPr(r|bn=0)Pr(r|bn=1)...(1)]]>以及,令vn,m(0)=λn(0),]]>对于所有n∈{0,...,N-1}和m∈Mn(2)初始化后,即对于迭代l=1,2,...,lmax,对每次校验节点更新和位节点更新都执行以下计算。对于每次校验节点更新对于m∈{0,1,...,M-1}和n∈Nm,计算um,n(l)=(Πi∈Nm-{n}sign{vi,m(l-1)})f(Σi∈Nm-{n}f(|vi,m(l-1)|)...(3)]]>其中f(x)=logex+1ex-1]]>并且,对于每次位节点更新对于n∈{0,1,...,N-1}和m∈Mn,计算λn(l)=λn(0)+Σm∈Mnum,n(l)...(4)]]>vn,m(l)=λn(l)-um,n(l)]]>解码算法的硬决策与终止判据如下如果λn(l)>0,]]>则bn=0,否则bn=1 (5)其中检验位序列b0,b1,...,bN-1是否满足由奇偶校验矩阵H定义的所有奇偶校验方程。如果满足,则迭代终止,否则令l←(l+1),并继续迭代,直到达到最大迭代次数为止。
如上所述,消息传递算法本身相当简单。然而,由于硬件约束、LDPC码长、以及位节点与校验节点之间的接近随机连接,使得LDPC解码器的实际实施不一定简单。DVB-S2卫星系统中所用的LDPC码尤其说明了这一点,将利用该DVB-S2卫星系统来说明本发明的概念。然而,本发明的概念不因此而受限,而是可应用于任何类型的LDPC解码器,而不管它是否为卫星系统的一部分。
在DVB-S2中,有四种可能的调制方案四相相移键控(QPSK)、八相相移键控(8-PSK)、16幅度相移键控(16-APSK)和32幅度相移键控(32-APSK)。在调制前,利用串行级联码方案对数据进行编码,其中LDPC码是内码,且BCH(Bose-Chaudhuri-Hochquenghem)码是外码。除QPSK调制外,在调制前也对LDPC码字位进行交织。关于编码过程,BCH码是很弱的码,它用于在LDPC解码过程后校正残差,以便实现10-7的分组误码率。关于LDPC编码,有两种类型的LDPC码。第一种类型在此被称为“正常LDPC码”,它具有64800位的码块长度。第二种类型是短LDPC码,它具有16200位的码块长度。因为这两种类型的码具有相似结构,所以在此将描述正常LDPC码。仅仅为方便起见、且除非另有说明,随后对术语“LDPC码”的任何引用都表示正常LDPC码。然而,权利要求书中对术语“LDPC码”的使用不因此而受限。
对于DVB-S2系统(例如,见上述ETSI草案EN 302307,v.1.1.1,(2004年6月)),有多种不同的可用LDPC码率,如图2的表1所示。表1中标记为“率”的第一列列出了这些不同的LDPC码率。下一列“K”列出了在那种特定的LDPC码率下在LDPC编码块中编码的数据量。在DVB-S2系统的环境中,该数据包括前述BCH编码的数据。例如,对于1/4码率,未编码的数据块具有16008位的大小(表1中未示出)。然后,将该未编码的数据块进行BCH编码为16200位的BCH编码块(表1中对应于LDPC 1/4码率的相应K值)。然后,在该特定码率下对该BCH编码块进行LDPC编码。因为在该例子中LDPC码率为1/4,所以所得LDPC编码块的大小为68400位(表1中未示出)。应该注意,对应的接收器根据接收的DVB-S2信号格式的预定义部分中所包含的数据,来确定码率。
如可从表1观察到的,有11种可能的码率,在1/4到9/10的范围内变化。然而,如DVB-S2中所定义的,不同码率的码具有不同的奇偶校验矩阵。因而,不能通过刺破(puncture)低码率码字来得到高码率码字。因而,大码块长度和多种码率使LDPC解码器的硬件实施变得非常复杂。
如前所述,对于LDPC解码器的实施,有三种主要结构。在DVB-S2的环境下,LDPC码块长度为64800位,这是相当大的。另外,DVB-S2解码器要求短等待时间。因此,全并行或串行结构不适于实施解码器,而需要设计部分并行结构。然而,还没有一致的设计方法来实施高效的部分并行LDPC解码器。
为克服该困难,并且根据本发明的原理,有可能通过利用DVB-S2奇偶校验矩阵的某些特性来减小LDPC解码器的复杂性。对于不规则LDPC码,一条期望的规则是,校验节点度(DC)的分布尽可能均匀。关于DVB-S2 LDPC码,可以确定对于每个关联的奇偶校验矩阵,除奇偶校验矩阵的第一个校验节点具有(DC-1)的校验节点度以外每个校验节点都有相同的校验节点度(DC)。因而,DVB-S2中的LDPC码遵从上述规则。
另外,已知所有DVB-S2奇偶校验矩阵都具有[A/T]形式,如图3所示。矩阵A是M×K维的矩形矩阵,其中M=N-K。图4中进一步示出了矩阵A。应该注意,可以将矩阵A本身看作由两个子矩阵A1和A2组成的奇偶校验矩阵,其中A1是M×L维的矩阵,A2是M×(K-L)维的矩阵。矩阵A1中的位节点具有相同的位节点度,表示为DV1,同样,矩阵A2中的位节点的位节点度也相同,且固定为DV2=3。现在转到矩阵T,该矩阵是特殊的M×M维的下三角矩阵,如图5所示。这种类型的结构有时称为阶梯结构,对于给定的度分布、它提供位节点度为2的位节点,即DV3=2。此外,应该注意,该下三角矩阵使能快速LDPC编码(例如,见ETSI草案EN 302307,v.1.1.1,(2004年6月))。
现在转到图6,表2示出了对于不同DVB-S2码率的上述L、DV1、q和DC值。表2中被标记为“率”和“K”的头两列与图2的表1所示的那些列相同。
根据本发明的原理,对矩阵A结构的进一步分析使LDPC解码器的实施更清楚明白地显示出来。具体而言,对于每一组360个位节点{360×k,...,360×k+359},可以通过索引为(360×k)的第一个位节点的校验节点,来指定这组位节点所涉及的校验节点。例如,如果这组位节点中的第一个位节点涉及一组校验节点{C1,C2,...,CDV},其中DV是位节点度,则索引为(360×k+m)的位节点涉及如下给出的一组校验节点{c|c=(x+m×q)modM,x∋{C1,C2,···,CDV}}...(6)]]>其中q=M360.]]>根据上述观察,并且根据本发明的原理,位节点和校验节点每种节点都被组织为多组,以便同时执行位节点更新或校验节点更新操作。关于该特例,并且如方程(6)所示,每360个位节点{360×k,...,360×k+359}可以被处理为一组,即对位节点连续分组,如对于n∈{0,1,...,(K/360)-1},第n位节点组将包含位节点{360n,360n+1,...,360n+358,360n+359}。
这些位节点在此也称为系统位节点。
关于校验节点,校验节点被如下重新排列为q组(其中,如上所述,q=M360,]]>即q随码率而变化)组0{0,q,2×q,3×q,...,359×q};组1{1,1+q,1+2×q,1+3×q,...,1+359×q}...
组q-2{q-2,q-2+q,...,q-2+359×q};以及组q-1{q-1,q-1+q,...,q-1+359×q}。
因为LDPC编码块的大小为N=64,800位,所以以下将描述更小尺寸的A矩阵,以进一步说明本发明的概念。图7示出了根据本发明原理重新组织的矩阵10(A形式的矩阵)。矩阵10用于具有以下参数的LDPC码N=10×360=3600;M=5×360=1800;q=5;DV1=4;以及L=360。
每个正方形11都代表360×360维子矩阵。除本发明的概念以外,应该注意,图7所示的符号在关于类似码结构的技术领域中是周知的(例如,见David J.C.Mackay,Simon T.Wilson和Matthew C.Davey的″Comparison of Constructionsof Irregular Gallager Codes″,IEEE通信学报(Transactions onCommunications),47卷,1449-1454页,1999年10月;以及D.Sridhara,T.Fuja和R.M.Tanner的″Low density parity check codes from permutationmatrices,″信息、科学与系统会议(Conf.On Info.Sciences and Sys.),TheJohn Hopkins University,2001年3月)。具体而言,空白正方形代表全零矩阵,且正方形内圆中的整数代表重叠在周围正方形上的循环单位(identity)矩阵的数量。数1代表具有特定偏移量的单个循环单位矩阵,而数2代表两个循环单位矩阵的组合。图8和9中进一步说明了这一点。首先转到图8,该图示出了在左移位循环单位矩阵的环境下的不同偏移量。矩阵21示出了单位矩阵。在此,这也称为无偏移、即零偏移的循环单位矩阵。在图8中从左移到右,使矩阵21左移位一次,产生了矩阵22。如果将矩阵22中的元素24的位置与它先前在矩阵21中的位置进行比较,则可以观察到,元素24出现在同一行,但是已经向左移位了一列(实际上,使列环绕)。因而,矩阵22是偏移量为1的循环单位矩阵。再使矩阵22左移位一次,现在产生了矩阵23。再一次,从图8可以观察到,元素24已从它先前在矩阵22中的位置向左移位了一列。因为矩阵23是两次左移位的结果,所以矩阵23是偏移量为2的循环单位矩阵。可以用类似的方式得到其它偏移量,并且虽然图8中没有示出,但是也可在另一方向上等效执行右移位操作。为方便起见在此将左移位循环单位矩阵表示为矩阵I(y),其中上标值代表偏移量值。
现在参考图9,其示出了组合循环单位矩阵的概念。组合循环单位矩阵是两个或多个循环单位矩阵的组合。关于图9,该图示出了两个循环单位矩阵的组合。具体而言,矩阵26是图8的矩阵21和22的组合,矩阵27是图8的矩阵22和23的组合,矩阵28是图8的矩阵21和23的组合。可以用类似方式得到其它组合。
按照以上,图10再次示出了图7的矩阵10(A形式的矩阵),其示出了特定的左移位循环单位矩阵和组合循环单位矩阵的图案。如果子矩阵内有线,则这代表线越过的对应子矩阵元素具有“1”值,且其它子矩阵元素具有“0”值。对于里面没有线的子矩阵,这代表全零子矩阵。
结果,由图7和10可以观察到,对于所有的LDPC码,奇偶校验矩阵的A矩阵包括三种类型的360×360维子矩阵—零矩阵;—循环单位矩阵I(y),对于0≤y≤359;以及—组合循环单位矩阵I(x)+I(y),对于x≠y、且0≤x,y≤359。
现在,有另一种方式来描述LDPC奇偶校验矩阵。具体而言,令H(m,n)表示与校验节点组m和位节点组n对应的奇偶校验矩阵的A矩阵,并且只显示非零子矩阵。对于奇偶校验位累加器表的地址中的第n行(除本发明的概念以外,在ETSI草案EN 302307,v.1.1.1,(2004年6月)中描述了奇偶校验位累加器的地址),获得与第n位节点组对应的一组子矩阵。对于该表第n行中的给定数x,对应的校验节点组为m=x模q,左循环移位数的值为 且对应的子矩阵为H(m,n)=I(y)。例如,由图6,对于1/2码率,q值等于90,并且由ETSI草案EN 302307,v.1.1.1,(2004年6月)的附录B,奇偶校验位累加器表的地址的第零行(n=0)为54,9318,14392,27561,26909,10219,2534,8597。
(根据ETSI草案中的命名法,1/2码率的奇偶校验位累加器表的第零行,对应于在列中有“1”的第零个位节点的奇偶校验矩阵的行)。
因此,A矩阵的对应子矩阵为54H(54,0)=I(0);9318H(48,0)=I(103);14392H(82,0)=I(159);27561H(21,0)=I(306);26909H(89,0)=I(298);10219H(49,0)=I(113);2534H(14,0)=I(28);以及9597H(47,0)=I(95)。
同样,考虑相同奇偶校验位累加器表的第一行(n=1)(再次根据ETSI草案EN 302307,v.1.1.1,(2004年6月)的附录B)55,7263,4635,2530,28130,3033,23830,3651。
因此,A矩阵的对应子矩阵为55H(55,1)=I(0);3033,7263H(63,1)=I(33)+I(80);4635H(45,1)=I(51);2530H(10,1)=I(28);28130H(50,1)=I(312);23830H(70,1)=I(264);以及3651H(51,1)=I(40)。
应该注意,关于第一行的3033和7263的计算都产生了相同的子矩阵H(63,1),但分别具有不同的循环单位矩阵I(33)和I(80)。因此,子矩阵H(63,1)是如上所示的这两个循环单位矩阵之和。
如前所述,所有DVB-S2奇偶校验矩阵都具有[A/T]形式。根据本发明的原理,以不同于矩阵A中位节点的方式,对矩阵T中的位节点进行分组。对于n∈{(K/360),...,(N/360)-1},第n个位节点组包含以下位节点K+(n-K/360)+{0,q,2×q,3×q,...,359×q}一个位节点组中的奇偶校验位节点的不连续性是由奇偶校验方程的重新排序引起的。图11示出了所得T矩阵的例子。由图11可以观察到,矩阵T中有三种可能的360×360维正方形—零矩阵;—单位矩阵I(0);以及—包含图12所示的360×360维特定子矩阵的正方形H(0,(N/360)-1)。
现在,利用上述奇偶校验矩阵的重新排列,来实施根据本发明原理的LDPC解码器。图13示出了根据本发明原理的通信系统的说明性部分。如可以从图13观察到的,信号104被接收器105接收。信号104传送代表控制信令、内容(例如视频)等的信息。在该例子的环境下,假定信号104代表被天线(未示出)接收后的DVB-S2下行链路卫星信号。接收器105根据本发明的原理(下述)来处理信号104,并提供信号106,以将特定内容传送给如电视机(TV)90所代表的多媒体终端进行显示。
现在转到图14,其示出了根据本发明原理的接收器105的说明性部分。接收器105包括前端滤波器110、模数(A/D)转换器115、解调器120、LDPC解码器125和BCH解码器135。前端滤波器110对接收的信号104执行下变频(例如从卫星传输带)和滤波,以提供接近基带信号给A/D转换器115,A/D转换器115对该下变频的信号进行采样,以便将该信号转换到数字域,并提供作为采样序列的信号116给解调器120。解调器120对信号116执行解调(包括载波恢复),并提供解调的信号121给LDPC解码器125,LDPC解码器125根据本发明的原理对该解调的信号点流121进行解码,以提供代表BCH编码信号或数据流的信号126。信号126被应用于BCH解码器135,以恢复如信号136所表示的发送数据。信号136的至少一些数据最终通过信号106被提供(图14中未示出)给TV 90。(在这点上,接收器105可以在数据应用于TV 90之前另外处理数据,和/或直接提供数据给TV 90)。
根据本发明的原理,图15示出了LDPC解码器125的说明性实施例。LDPC解码器125包括对数似然比(LLR)计算元件205、LLR缓冲器210、复用器(mux)215、边(edge)存储器220、循环移位器225和235、多个校验节点处理单元(组CPU处理)230、多个位节点处理单元(组BPU处理)240、迭代终止决策元件245和控制器290。控制器290代表存储了程序的受控处理器(例如微处理器和关联存储器)或状态机等。
LLR计算元件205接收解调的信号点流信号121,并如该技术领域周知的那样计算LLR,以提供代表所计算的LLR值的信号206,所计算的LLR值代表接收的LDPC编码块。具体而言,LLR计算元件205基于调制方案和接收信号的信噪比,来计算码字位的LLR为λn(0)=logPr(r|bn=0)Pr(r|bn=1).]]>为简便起见,利用查找表(未示出)来实现该功能。另外,在经由信号206将LLR值发送到LLR缓冲器210之前,LLR计算元件205也对LLR值进行解交织(如前所述,除非使用QPSK调制,否则在调制之前对LDPC编码位流进行交织)。LLR缓冲器210是存储元件,且包括例如双缓冲器结构,以便交替存储代表所接收的LDPC编码块的数据。因而,当一个缓冲器充满时,处理经由信号211来自另一个缓冲器的数据,以便对先前收到的LDPC编码块解码。图16示出了一种供矩阵A的系统位节点的LLR缓冲器之用的说明性存储器结构315;而图17示出了一种供矩阵T的位节点的LLR缓冲器之用的说明性存储器结构320。由图16和17,所需的存储字数为N/360=64800/360=180,其中如果假定需要6位来存储初始信道信息(λn(0)),则一个存储字的位宽为360×6=2160位。因而,LLR缓冲器210经由信号211提供LDPC编码块给复用器215。复用器215受如控制器290所表示的处理器的控制,该控制器290控制LDPC解码器125的各元件,为简便起见用虚箭头来表示。复用器215经由信号216提供以下三种类型数据的任一种给边存储器220接收的待解码的LDPC编码块(经由信号211);位节点处理数据(经由信号241);或校验节点处理数据(经由信号236)。
现在应该参考图18,该图示出了在用于执行LDPC解码的LDPC解码器125中所使用的全过程的说明性流程图。在步骤405中,从LLR缓冲器210提供LDPC编码块给边存储器220,以存储在边存储器220中。在步骤410和415中,执行LDPC解码。具体而言,对边存储器220中存储的数据执行校验节点更新(步骤410)和位节点更新(步骤415)(下述)。在步骤420中,例如由以上的方程(5)来检查是否应该终止解码过程。如果过程被终止,则执行返回到步骤405,开始对下一个LDPC编码块解码,否则通过步骤410和415继续执行另一轮校验节点和位节点更新的解码。应该注意,为简便起见,在图18的流程图中没有示出错误条件。
如上所述,边存储器220存储LDPC编码的数据,并在图18所示的校验节点更新和位节点更新步骤中都访问边存储器220。边存储器220代表存储元件。虽然可以利用允许快速存取(虽然具有更高的设计复杂性)的寄存器来实现边存储器220,但是给定LDPC编码块的长度,优选地存储体是更适合的实现。在LDPC解码过程中,消息通过双向图的边在位节点和校验节点之间传递。图19在概念上说明了这一点,该图示出了说明性双向图的一部分。例如,位节点n通过边40连接到校验节点m,边40使能位节点n与校验节点m之间的消息传递,如位节点消息41和校验节点消息42所表示。因为LDPC解码过程中使用的存储器与校验节点和位节点之间的边关联,所以该存储器在此被称为边存储器。因而,边存储器220存储经由信号236从校验节点到位节点的消息{um,n(l)},或经由信号241从位节点到校验节点的消息{vn,m(l)}。具体而言,并且如可以从图18的流程图观察到的,LDPC解码器125具有至少两个阶段校验节点更新阶段(例如图18的步骤410)和位节点更新阶段(例如图18的步骤415)。在校验节点更新阶段开始,{vn,m(l-1)}被存储在边存储器220的存储位置;而在校验节点更新阶段结尾,{um,n(l)}被计算并存储在相同的存储位置。同样,在位节点更新阶段,读出{um,n(l)}并计算{vn,m(l)},并将其存储到相同的存储位置。因而,在部分并行结构中,取决于LDPC解码器的阶段,利用相同的存储位置来存储{vn,m(l)}或{um,n(l)}。
根据本发明的原理,可以根据上述奇偶校验矩阵的重新组织,按照位节点或校验节点来组织边存储器220。应该注意,所需的总存储量对于这两种情况是相同的,因为对于特定的奇偶校验矩阵,边数是固定的。
在一个实施例中,按照位节点来说明性地组织边存储器220。在这种情况下,利用一个存储字来存储与循环移位单位矩阵(上述)对应的所有消息。与位节点组关联的存储字被存储在连续地址位置,这使位节点更新变得简单。图20示出了一种供边存储器220之用的说明性存储器结构325。因为边存储器220的存储器是按照位节点组织的,所以该存储器也可称为位节点存储体。
返回到图15,边存储器220中存储的数据经由信号221被提供给位节点处理路径或校验节点处理路径。关于校验节点处理路径,该路径在校验节点更新阶段起作用(图18的步骤410)。具体而言,数据(不管是初始LDPC编码的数据还是随后的消息数据){vn,m(l-1)}经由循环移位器225被提供给组CPU处理230。因为边存储器220是按照位节点组织的,所以循环移位器225循环移位存储字中的数据,以致一个校验节点组的数据被对准。图21中说明了这一点,该图示出了校验节点组0/位节点组0的循环移位量。组CPU处理230包括360个校验节点处理单元(以下进一步描述),用于计算{um,n(l)}以及提供{um,n(l)}给循环移位器235,循环移位器235再次重定向存储字中的数据,以致一个位节点组的数据被对准。循环移位器235通过信号236,经由复用器215和信号216提供{um,n(l)}给边存储器220。应该注意,可以通过在时域对循环移位器的操作进行复用,使用一个循环移位器来代替两个。现在转到位节点处理路径,该路径在位节点更新阶段起作用(图18的步骤415)。具体而言,数据{um,n(l)}被提供给组BPU处理240。组BPU处理240说明性地包括360个位节点处理单元(以下进一步描述),用于计算{vn,m(l)},以及通过信号241、经由复用器215和信号216提供{vn,m(l)}给边存储器220。
如上所述,组CPU处理230包括360个校验节点处理单元。图22示出了说明性校验节点处理单元(CPU)230-J,其中0<J≤360。CPU 230-J处理一组输入消息{e0,e1,...,eDC-1},以提供一组对应的输出消息{e0′,e1′,...,eDC-1′}。如前所述,在LDPC解码中利用方程(3)来产生这组输出消息。然而,如果实现方程(3)中的准确公式,则每个校验节点处理单元的复杂性将增加。的确,因为最大可能的校验节点度为30,所以即使可通过简单的查找表来实现函数f(·),加法器阵列和所有函数f(·)的实现也将变得很复杂。为了减小校验节点处理单元的复杂性,CPU 230-J实施以下方法。具体而言,假定{e0,e1,...,eDC-1}是校验节点处理单元(CPU)的一组输入消息。则计算sk=sign(ek) (7)S=Πk=0DC-1sk...(8)]]>现在,选择这组输入消息|e0|,|e1|,...,|eDC-1|中的3个最小值,并令它们的对应索引为m0,m1,m2。此后,计算以下四个值λ0=g(|em1|,|em2|),...(9)]]>λ1=g(|em0|,|em2|),...(10)]]>λ2=g(|em0|,|em1|),...(11)]]>
λ3=g(g(|em0|,|em1|),|em2|)...(12)]]>其中g(x,y)≅sign(x)sign(y){min(|x|,|y|)-h(||x|-|y||)}...(13)]]>h(x)=ln(1+e-x) (14)然后,如下计算一组输出消息{e0′,e1′,...,eDC-1′}ek′=sk×S×λ0,fork=m0λ1,fork=m1λ2,fork=m2λ3,fork≠m0,m1,m2...(15)]]>其中0<k≤DC-1。在上述方法中,只利用输入消息中的三个最小值来计算CPU的输出消息。模拟显示出,由于该近似引起的性能损失对于DVB-S2中的所有LDPC码可以忽略。
现在转到位节点处理,组BPU处理240包括360个位节点处理单元。图23示出了说明性位节点处理单元(BPU)240-I,其中0<I≤360。BPU 240-I处理一组输入消息{e0,e1,...,eDV-1},以提供一组对应的输出消息{e0′,e1′,...,eDV-1′}。位节点处理操作相当简单,并在图24中对其进行进一步说明。在图24中,术语LLR表示通过信号211从LLR缓冲器210提供的关联的位节点的对数似然比。
LDPC解码器125的最后元件是实施图18的上述步骤420的迭代终止决策元件245。如可以从图15和23观察到的,信号242从位节点处理路径被提供给迭代终止决策元件245,以供其使用。如果LDPC解码被终止,则所得的LDPC解码的数据经由信号126被提供给上述BCH解码器135。迭代终止决策元件245向控制器290提供关于继续LDPC解码过程或开始新的、例如下一个LDPC编码块的LDPC解码过程的信令(未示出)。
如前所述,DVB-S2支持多种具有预定义奇偶校验矩阵的码率,并且接收器根据收到的DVB-S2信号格式的预定义部分中所包含的数据,来确定码率。在该环境下,控制器290利用确定的调制类型,为前述LLR计算选择不同的查找表(未示出),以及选择不同的交织方案(如DVB-S2中所定义的)。控制器290也根据本发明的原理来配置LDPC解码器125,以便根据按照前述原理组织的奇偶校验矩阵,以不同的码率处理所接收的LDPC编码的信号。例如,可以事前将上述子矩阵计算(H(m,n))存储在存储器(例如图15的配置存储器295)中,以便随后用于对于如图6的表2所示的不同参数,处理接收的LDPC编码的数据。
图25示出了LDPC解码器125的另一说明性实施例。除了边存储器220是按照校验节点组织的(并且也可称为校验节点存储体),该配置类似于图15所示的配置,并且以类似的方式起作用(例如见图18、22、23和24)。因而,两个循环移位器225和235现在位于组BPU处理240之前和之后。再一次应该注意,通过在时域对循环移位器的操作进行简单复用,可以使用一个循环移位器来代替两个。
关于按照校验节点来组织边存储器220,与一个校验节点组对应的校验节点存储器被放在一起,并且使用一个存储位置例如存储字,来存储与特定循环单位矩阵对应的所有消息。换句话说,一个存储字存储通过与特定循环单位矩阵关联的边发送的所有消息。如前所观察到的,并且如图6的表2所示,对于LDPC码,除第0个校验节点具有校验节点度(DC-1)以外,所有校验节点的度DC都相同。说明性地,考虑以下使用1/2码率LDPC码的例子,其中由图6的表2,DC=7,且第63个校验节点组对应于以下作为奇偶校验矩阵中子矩阵的方阵(如前所述进行计算)H(63,1)=I(33)+I(80);
H(63,9)=I(0);H(63,29)=I(324);H(63,34)=I(132);H(63,62)=I(0);以及H(63,63)=I(0)。
图26示出了与第63个校验节点组对应的边存储器220内的说明性存储体305。如果将存储体305的每一行都看作单个存储字,则如图所示,校验节点组只需要DC=7个存储字。的确,然后可以将所有校验节点的所有存储体都放在一起,并以线性方式寻址。图27示出了边存储器220的该说明性存储器结构310。存储器结构310的边存储器220的地址空间是{0,1,2,...,qDC-1}。换句话说,该地址空间的大小为(q×DC)。图28的表3示出了对于不同LDPC码率所需的存储空间。如可以从表3观察到的,所需的最大存储字数为792。如果再次假定每个位节点消息或校验节点消息为6位宽,则存储字的位宽为360×6=2160位。
图29示出了本发明的概念的另一说明性实施例。在该说明性实施例中,供接收器(未示出)之用的集成电路(IC)705包括LDPC解码器720和至少一个寄存器710,该寄存器710连接到总线751。说明性地,IC 705是集成解调器/解码器。然而,只示出了与本发明的概念相关的IC 705的那些部分。例如,为简便起见,没有示出模数转换器、滤波器、解码器等。总线751提供和如处理器750所表示的接收器的其它部件之间的来往通信。寄存器710代表IC 705的一个或多个寄存器,其中每个寄存器都包括如位709所表示的一位或多位,用于控制IC 705的操作。IC 705的寄存器或寄存器的部分可以是只读、只写或可读/写的。LDPC解码器720经由内部总线711连接到寄存器710,该内部总线711代表IC 705的其它信号路径和/或部件,用于将LDPC解码器720与寄存器710对接,如该技术领域所周知的。根据本发明的原理,LDPC解码器720包括上述组CPU和组BPU。在图14的环境下,IC 705经由IC 705的输入引脚或引线接收IF信号701(例如图14的信号116)以便处理。该信号的衍生物702被应用于LDPC解码器720,以便根据如上所述的本发明的原理(例如图15和24)对其进行LDPC解码。LDPC解码器720提供作为LDPC解码的位流的信号721。IC 705提供如信号706所表示的一个或多个已恢复信号。例如,信号706代表来自IC 705的BCH解码器(未示出)的信号136。在IC 705的另一种变型中,信号706代表图13的信号106。
如上所述,并且根据本发明的原理,描述和显示了一种能够处理多种不同码率的LDPC解码器。而且,应该注意,可以将上述循环移位单位矩阵等效推广到置换矩阵。在这种情况下,用置换网络来代替上述循环移位器。
鉴于以上,应该注意,虽然在卫星通信系统的环境下描述了本发明的概念,但是本发明的概念不因此而受限。例如,图13的元件可以代表其它类型的系统和其它形式的多媒体终端,例如卫星无线电、地面广播、有线电视等。而且,虽然在此在单个解调器的环境下进行了描述,但是应该认识到,本发明的概念可应用于其中可在不同信号层传送信息的多调制接收器,例如分层调制接收器、分级调制接收器或它们的组合等。当然,本发明可应用于其中执行LDPC解码的任何类型的接收器。因而,本发明的概念不限于DVB-S2 LDPC码的解码。
因而,上述描述仅仅说明了本发明的原理,从而应该理解,本领域技术人员将能够设计出许多虽然没有在此明确描述,但是具体实施本发明的原理,且在本发明精神和范围内的替换配置。例如,虽然在分离的功能元件的环境下进行了说明,但是可以在一个或多个集成电路(IC)上具体实施这些功能元件。类似,虽然被显示为分离的元件,但是可以在存储有程序的受控处理器中,如执行例如与图14、15和/或24所示元件的一个或多个元件相对应的关联软件的数字信号处理器(DSP)或微处理器等中,实施任何或所有元件。此外,虽然被显示为分离的元件,但是其中的元件可以以任何组合方式分布在不同单元中。例如,接收器105可以是TV 90的一部分,或者接收器105可以位于分布系统的更上游,例如位于头端,于是可将内容重发给网络的其它节点和/或接收器。因此,应该理解,在不脱离如所附权利要求所定义的本发明精神和范围的情况下,可以对说明性实施例进行诸多修改,并且可以设计其它配置。
权利要求
1.一种用于接收器的方法,所述方法包括接收低密度奇偶校验(LDPC)编码的数据;以及利用校验节点消息和位节点消息来处理所述接收的低密度奇偶校验编码的数据,以提供解码的数据;其中所述处理步骤将所述位节点消息分成Y组,并将所述校验节点消息分成q组,其中q随与所述接收的低密度奇偶校验编码的数据相关联的码率而变化。
2.根据权利要求1所述的方法,其中所述接收的低密度奇偶校验编码的数据是从接收的数字视频广播系统-2信号得到的。
3.根据权利要求1所述的方法,其中所述接收的低密度奇偶校验编码的数据代表(N,K)低密度奇偶校验码,其中M=N-K,且q=Y(N-K)/N。
4.根据权利要求3所述的方法,其中Y=N/360。
5.根据权利要求1所述的方法,其中所述接收的低密度奇偶校验编码的数据代表具有M×N维奇偶校验矩阵的(N,K)低密度奇偶校验码,且其中所述处理步骤包括用J个处理器来处理每一组校验节点消息;以及用J个处理器来处理每一组位节点消息;其中J代表正方形子矩阵的维数,以致整数个正方形子矩阵适配于所述奇偶校验矩阵。
6.根据权利要求5所述的方法,其中所述处理校验节点消息的步骤包括以下步骤对每一组校验节点消息进行循环移位;用J个处理器来处理每一组循环移位的校验节点消息,以提供一组新消息;以及对每一组新消息进行循环移位,以形成一组位节点消息。
7.根据权利要求5所述的方法,其中所述处理位节点消息的步骤包括以下步骤对每一组位节点消息进行循环移位;用J个处理器来处理每一组循环移位的位节点消息,以提供一组新消息;以及对每一组新消息进行循环移位,以形成一组校验节点消息。
8.根据权利要求1所述的方法,其中所述接收的低密度奇偶校验编码的数据代表具有M×N维奇偶校验矩阵的(N,K)低密度奇偶校验码,且其中所述处理步骤包括用J个处理器来处理每一组校验节点消息;以及用J个处理器来处理每一组位节点消息;其中J=N/Y。
9.根据权利要求8所述的方法,其中所述处理校验节点消息的步骤包括以下步骤对每一组校验节点消息进行循环移位;用J个处理器来处理每一组循环移位的校验节点消息,以提供一组新消息;以及对每一组新消息进行循环移位,以形成一组位节点消息。
10.根据权利要求8所述的方法,其中所述处理位节点消息的步骤包括以下步骤对每一组位节点消息进行循环移位;用J个处理器来处理每一组循环移位的位节点消息,以提供一组新消息;以及对每一组新消息进行循环移位,以形成一组校验节点消息。
11.一种用于接收器的设备,所述设备包括解调器,提供低密度奇偶校验编码的数据;低密度奇偶校验解码器,对所述低密度奇偶校验编码的数据进行解码,以提供解码的数据;其中所述低密度奇偶校验解码器通过将位节点消息分成Y组、并将校验节点消息分成q组,来处理所述低密度奇偶校验编码的数据,其中q随与所述低密度奇偶校验编码的数据相关联的码率而变化。
12.根据权利要求11所述的设备,其中所述低密度奇偶校验编码的数据是从接收的数字视频广播系统-2信号得到的。
13.根据权利要求11所述的设备,其中所述低密度奇偶校验编码的数据代表(N,K)低密度奇偶校验码,其中M=N-K,且q=Y(N-K)/N。
14.根据权利要求13所述的设备,其中Y=N/360。
15.根据权利要求11所述的设备,其中所述低密度奇偶校验编码的数据代表具有M×N维奇偶校验矩阵的(N,K)低密度奇偶校验码,且其中所述低密度奇偶校验编码器包括用于处理每一组位节点消息的J个处理器;以及用于处理每一组校验节点消息的J个处理器;其中J代表正方形子矩阵的维数,以致整数个正方形子矩阵适配于所述奇偶校验矩阵。
16.根据权利要求11所述的设备,其中所述低密度奇偶校验编码的数据代表具有M×N维奇偶校验矩阵的(N,K)低密度奇偶校验码,且其中所述低密度奇偶校验编码器包括用于处理每一组位节点消息的J个处理器;以及用于处理每一组校验节点消息的J个处理器;其中J=N/Y。
17.根据权利要求11所述的设备,其中所述低密度奇偶校验解码器包括存储器,存储所述校验节点消息和所述位节点消息;用于对所述校验节点消息进行移位的循环移位器;一组位节点处理器,处理所述循环移位的校验节点消息,以提供新消息;用于对所述新消息进行移位,以形成新的位节点消息的循环移位器;以及一组校验节点处理器,处理所述位节点消息来提供新的校验节点消息,以便存储在所述存储器中;其中所述存储器的构成使得所述新的位节点消息被连续存储。
18.根据权利要求11所述的设备,其中所述低密度奇偶校验解码器包括存储器,存储所述校验节点消息和所述位节点消息;一组位节点处理器,处理所述校验节点消息来提供新的位节点消息,以便存储在所述存储器中;用于对所述位节点消息进行移位的循环移位器;一组校验节点处理器,处理所述循环移位的位节点消息,以提供新消息;以及用于对所述新消息进行移位,以形成新的校验节点消息的循环移位器;其中所述存储器的构成使得所述新的校验节点消息被连续存储。
19.根据权利要求11所述的设备,其中所述低密度奇偶校验解码器包括存储器,所述存储器的构成使得多组位节点消息被连续存储。
20.根据权利要求11所述的设备,其中所述低密度奇偶校验解码器包括存储器,所述存储器的构成使得多组校验节点消息被连续存储。
全文摘要
一种卫星接收器,包括前端、解调器和低密度奇偶校验(LDPC)解码器。该前端接收DVB-S2LDPC编码的信号,并提供下变频的信号给解调器。该解调器对该下变频的信号进行解调,并提供解调的信号给LDPC解码器。该LDPC解码器具有部分并行结构,并将位节点消息分成N/360组,将校验节点消息分成q组,其中q=M/360。分别用360个位节点处理器或360个校验节点处理器来处理每一组。说明性地,该LDPC解码器包括这样划分的存储器,以致与位节点组关联的消息被连续寻址。作为选择,该LDPC解码器包括这样划分的存储器,以致与校验节点组关联的消息被连续寻址。
文档编号H03M13/00GK101032084SQ200580032823
公开日2007年9月5日 申请日期2005年9月19日 优先权日2004年10月1日
发明者高文, 库马尔·拉马斯瓦米, 约翰·赛迪·斯图尔特 申请人:汤姆逊许可公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1