CN103580699B - 无速率码的固定窗长边消除置信传播译码方法 - Google Patents
无速率码的固定窗长边消除置信传播译码方法 Download PDFInfo
- Publication number
- CN103580699B CN103580699B CN201310505288.3A CN201310505288A CN103580699B CN 103580699 B CN103580699 B CN 103580699B CN 201310505288 A CN201310505288 A CN 201310505288A CN 103580699 B CN103580699 B CN 103580699B
- Authority
- CN
- China
- Prior art keywords
- code
- node
- variable node
- decoding
- limit
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 239000013589 supplement Substances 0.000 claims abstract description 5
- 238000012216 screening Methods 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 14
- 238000012795 verification Methods 0.000 claims description 10
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000003491 array Methods 0.000 claims description 3
- 239000000654 additive Substances 0.000 claims 1
- 230000000996 additive effect Effects 0.000 claims 1
- 230000008030 elimination Effects 0.000 abstract description 7
- 238000003379 elimination reaction Methods 0.000 abstract description 7
- 230000000750 progressive effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000035611 feeding Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Abstract
本发明公开了一种无速率码的固定窗长边消除置信传播译码方法。发送端采用无速率码的编码方式向接收端发送信息,接收端根据接收到的编码包的置信度选择固定数目(窗长)的变量节点进行译码。在一个固定窗长的译码器中尝试数轮“边消除”置信传播译码后,若未能译码成功,目前通过消边操作移除了多少个变量节点,则补充多少个新的变量节点进入译码器,再次尝试译码,直至译码成功或者消边操作无法再移除变量节点为止。应用本发明可以很好地保证译码运算复杂度和规模不会随着译码的进行不断增大,也不会不断地作不确定变化,便于硬件的处理实现。
Description
技术领域
本发明涉及无线通信领域,具体涉及一种无速率码的固定窗长边消除置信传播译码方法。
背景技术
常用的无速率码编码方式是Raptor Code(见“Raptor Codes”,IEEETransactions on Information Theory,Vol.52,No.6,pp.2551-2567,June2006)。其应用场景一般分为两种。其一是当无速率码的编码符号通过删除信道(BEC)时,由于接收端获得的是0,1比特序列,我们可以首先译出度数为1的输出变量节点(符号)所对应的输入变量节点(符号),进而通过“边消除”来消除这些译出来的输入符号对其他输出符号的影响并简化Tanner图,此过程称为一次迭代,最终通过多次迭代以译出所有的输入符号。另一种是当无速率编码符号通过二元白高斯噪声信道(BI-AWGNC)时,由于接收端获得的是映射符号叠加上白高斯噪声的实数序列,我们此时使用“置信传播Belief Propagation(BP)”译码算法,通过在Tanner图中的边上来回迭代更新并传递LLR信息,使不确定性随着迭代逐渐减小,最终达到译出所有输入符号的目的。
这两种方法本质上都是消息传播的译码方法,不同的是“边消除”方法在Tanner图中的边上所传递的都是确定性的0,1消息,并在此确定性消息传递完毕后通过消边来简化Tanner图,使得Tanner图中的连接关系随着译码的进行越来越简单(边的数目越来越少),最终通过边的不断消减和相应信息的更新完成译码;BP译码算法在Tanner图中的边上传递的则是LLR信息,通过迭代使得LLR信息不断收敛(不断偏向+∞或-∞的方向),最终通过不确定性的不断减小完成译码,然而译码复杂度和Tanner图的规模始终不变。如果将两种译码方法的思想结合到一起,应用在无速率编码符号通过噪声信道传输的情况,那么就可以在一边进行LLR信息迭代更新的同时,一边消除那些置信度已经足够高的节点所连接的边(同时消除它们对其他节点后续译码的影响),使得不确定性不断减小的同时,Tanner图的连接关系也不断简化,从而能在保证译码成功的同时减少译码运算复杂度。根据“是否利用已完成的子图的迭代译码所保存的信息”可将译码方法分为非渐进的BP算法和渐进的BP算法。
“非渐进”的译码方法特点是:在一张小图中采用“边消除”BP译码算法未能成功译码时,继续在一张扩充后的大图中尝试译码,再次尝试译码时并未保留小图译码结束时已获得的LLR信息、边消除信息等,因此随着译码的进行,进入译码器的节点个数越来越多,Tanner图的规模越来越大。“渐进”的译码方法特点是:在一张小图中采用“边消除”BP译码算法未能成功译码时,继续在一张扩充后的大图中,在保留小图译码结束时已获得的LLR信息、边消除信息等的基础上再次尝试译码,直至译码成功为止。“渐进”方式的译码会导致Tanner图的规模随着译码的进行,一方面由于图的扩充而增大,另一方面又由于保留了已有的消边信息而减小,因此在每张Tanner图中译码时译码器中参与运算的节点个数是不固定的(每次被移除的节点个数不固定,而每次进入的节点个数固定为译码步进ΔN)。由此可见,在译码过程中,译码器所需的存储空间,计算复杂度等都在不断地变化,这给硬件电路的实现带来不便。因此,如果能够保证译码器的运算复杂度和Tanner图的规模不会随着译码的进行不断增大或者作不确定的变化,那将更加有利于硬件的处理实现。
发明内容
本发明的目的是消除译码器在硬件实现时所需存储空间,计算复杂度等的不确定性,提供一种无速率码的固定窗长边消除置信传播译码方法。
本发明的目的是通过以下技术方案来实现的。
无速率码的固定窗长边消除置信传播译码方法是:发送端采用无速率码对需要传输的信息进行编码,接收端采用置信传播译码;“窗长”定义为每次译码时译码器中所存储的变量节点的个数,也就是参与运算的变量节点的个数,在固定窗长的边消除置信传播译码方法中,译码器中所存储的变量节点的个数始终是固定的;接收端将设定一个门限值来筛选出置信度超过该门限值的LT码的输出变量节点,并选择和窗长大小相等的若干个经过筛选后的变量节点送入译码器开始译码;在尝试数轮边消除置信传播译码之后,若未能译码成功,目前通过消边操作移除了多少个变量节点,则补充多少个新的LT码的输出变量节点进入译码器,并再次尝试译码,直至译码成功或者消边操作无法再移除变量节点为止;
设:LDPC码的校验节点和变量节点的数目分别为m和n,参与第一轮译码操作的LT码的校验节点和变量节点的数目分别为N和N+n,窗长为W=n+N,变量节点记为vi,i=1,2,...,n+N,校验节点记为cj,j=1,2,...,m+N,N(vi)\cj表示除了cj之外的其他和vi相连的校验节点,N(cj)\vi表示除了vi之外的其他和cj相连的变量节点,ei,j表示连接vi和cj的边,ELDPC={ei,j|i=1,2,...,n,j=1,2,...,m}表示对应于LDPC码校验矩阵的边, 表示在第l轮译码操作时对应于LT码生成矩阵的边,表示在第l轮译码操作时连接了LT码校验节点和输出变量节点的边,表示在第l轮译码操作时vi传递给cj的对数似然比,表示在第l轮译码操作时cj传递给vi的对数似然比,表示在第l轮译码操作时来自信道的输入对数似然比,由于LDPC码的输出变量节点未经过信道传输,所以L(l)(vi)表示在第l轮译码操作时对应于vi,i=1,2,...,n+N的用来做硬判决的对数似然比取值,ξ和T分别表示判决L(l)(vi),i=1,2,...,n置信度足够高时需要达到的门限值以及达到此门限值的次数,对于f(l)(ei,j)=0表示在第l轮译码操作时ei,j连接了一个被消去的变量节点vi,f(l)(ei,j)=1表示在第l轮译码操作时并且它连接了一个被消去的变量节点vi,f(l)(ei,j)=2表示在第l轮译码操作时ei,j∈ELDPC并且它连接了一个被消去的变量节点vi;对于由于这些边不参与消边操作,所以f(l)(ej-m+n,j)=0;对于LDPC码的输出变量节点vi,i=1,2,...,n,F(l)(vi)=0表示在第l轮译码操作时该节点尚未完成消边操作,F(l)(vi)=1则表示在第l轮译码操作时该节点已经完成了消边操作;表示在第l轮译码操作时所有信息的集合,表示在第l轮译码操作时所有信息的结合,和num(l)(vi)分别表示在第l轮译码操作时所存储的vi的用来做硬判决的对数似然比取值和该值已经连续达到门限ξ的次数,对每一个LDPC码的校验节点cj,j=1,2,...,m设置两个数组和并初始化取值为0,Nr表示译码结束时接收端实际接收的LT码的编码比特数目;
具体步骤如下:
1)初始化:令l=1,选择经过筛选后的个LT码的编码比特进入译码器,将窗长为的译码器填充完毕,此时有令对LT码的输入变量节点vi,i=1,2,...,n设置F(1)(vi)=0,num(1)(vi)=0;对 设置flag(1)(ei,j)=0;
2)若l=1,则进入步骤3);否则在当前窗长为W,即包含了个LT码的输入变量节点和个LT码的输出变量节点的译码器中进行译码,对LT码的输入变量节点vi设置F(l)(vi)=F(l-1)(vi),num(l)(vi)=0;对 设置flag(l)(ei,j)=flag(l-1)(ei,j);对 设置flag(l)(ej-m+n,j)=0;对若F(l)(vi)=0则设置flag(l)(ei,j)=0,若F(l)(vi)=1则设置flag(l)(ei,j)=1并更新其更新规则如下:
3)对于满足F(l)(vi)=0的LT码的输入变量节点vi,i=1,2,...,n,以及译码器中所有LT码的输出变量节点利用下式更新其向相邻校验节点传递的信息:
4)对于译码器中的每个校验节点对其所有连接的边{ei,j|vi∈N(cj)}做判决,若flag(l)(ei,j)=0,则利用下式更新其向相邻变量节点传递的信息:
5)对于满足F(l)(vi)=0的LT码的输入变量节点vi,i=1,2,...,n,利用下式更新其用来做硬判决的对数似然比信息:
6)对于满足F(l)(vi)=0的LT码的输入变量节点vi,i=1,2,...,n,估算其对应的编码比特wi的值:
若此时已满足LDPC码的校验节点所限制的校验关系,则进入步骤9);若不满足校验关系且未达到所设定的最大迭代次数Imax,则进入步骤7),否则进入步骤8);
7)判断LDPC码的输出变量节点其L(l)(vi)是否连续T次达到门限值ξ且|L(l)(vi)|逐渐增大,具体判断方法如下:对每一个满足F(l)(vi)=0的变量节点vi,i=1,2,...,n进行如下操作,当时,如果|L(l)(vi)|≥ξ,则令且num(l)(vi)=1;反之,不进行任何操作;当时,又可以分为以下五种情况,当且|L(l)(vi)|≥ξ和则令且num(l)(vi)=num(l)(vi)+1,如果num(l)(vi)≥T,则进行消边更新操作,即令F(l)(vi)=1且对设置f(l)(ei,j)=1,对ei,j∈ELDPC设置f(l)(ei,j)=2,如果且|L(l)(vi)|≥ξ和则令且num(l)(vi)=1,如果且|L(l)(vi)|<ξ,则令且num(l)(vi)=0,如果且|L(l)(vi)|<ξ,则令且num(l)(vi)=0,如果且|L(l)(vi)|≥ξ,则令且num(l)(vi)=1,若发现某些L(l)(vi)连续T次达到门限值ξ且|L(l)(vi)|逐渐增大,则消去这些LDPC码的输出变量节点及其所连接的边并完成消边更新操作,即令F(l)(vi)=1且对设置f(l)(ei,j)=1,对ei,j∈ELDPC设置f(l)(ei,j)=2;为了消除这些操作对其他节点后续迭代译码的影响,对满足flag(l)(ei,j)=2的边,将以后由vi向cj传递的信息设为该节点被消去时的L(l)(vi),即一个定值并不再计算由cj向vi传递的信息li=l+1,l+2,...;一旦有新的边被设置为flag(l)(ei,j)=2,将其当前的L(l)(vi)存入中,并将消去的节点vi所译出的比特wi的值存入中,在以后每次更新由cj向其他未被消去的变量节点输出的对数似然比信息的时候,中的每一个元素只传递各自的L(l)(vi);同时,在以后每次判决译出比特是否满足LDPC码的校验关系式时,中的每一个wi也参与异或运算,返回步骤3),开始新一轮的迭代译码;
8)记录下F(l)(vi)(i=1,2,...,n)、flag(l)(ei,j) 的值;若在第l次译码尝试中没有LT码的输入变量节点被移出译码器,则进入步骤9);若在第l次译码尝试中有N(l)个LT码的输入变量节点被移出译码器,则再选择N(l)个经过筛选后的LT码的编码比特进入译码器,即令将窗长为W的译码器填充完毕后,令l=l+1,并进入步骤2),开始新一轮的译码尝试;
9)停止译码。
所述的步骤1)和步骤8)中的选择经过筛选后的LT码的编码比特进入译码器为:设定一个门限值来筛选出置信度超过该门限值的LT码的编码比特,并将这些经过筛选后的编码比特送入译码器;假设叠加在接收序列上的噪声ni为加性白高斯噪声,其方差为σ2,LT码的第i个编码比特为xi,则接收码字yi=1-2xi+ni,设定一个译码器进入门限ζ,只有当接收码字的初始对数似然比绝对值超过此门限,即:
才将此接收码字,即LT码的输出变量节点送入译码器进行译码处理。
本发明可以保证译码器中所存储的变量节点的个数始终是固定的,尽管接收端源源不断地收到新的编码比特(LT码的输出变量节点),但实际进行操作的变量节点(译码器的窗长)始终为一个定值,运算复杂度和Tanner图的规模不会随着译码的进行不断增大(如“非渐进”的BP算法),也不会不断地作不确定的变化(如“渐进”的BP算法),便于硬件的处理实现。
附图说明
图1是无速率码的固定窗长边消除置信传播译码方法的示意图;
图2是给定窗长W=24250,25200,26150,27100四种情况时,误比特率随窗长变化的仿真曲线图,并标出了每个窗长条件下译码停止时的平均码率的倒数R-1=Nr/(n-m)和译码停止时所尝试的平均译码次数lave。
具体实施方式
无速率码的固定窗长边消除置信传播译码方法是:发送端采用无速率码对需要传输的信息进行编码,接收端采用置信传播译码;无速率编码方式可以采用Raptor Code(见“Raptor Codes”,IEEE Transactions on Information Theory,Vol.52,No.6,pp.2551-2567,June2006);“窗长”定义为每次译码时译码器中所存储的变量节点的个数,也就是参与运算的变量节点的个数,在固定窗长的边消除置信传播译码方法中,译码器中所存储的变量节点的个数始终是固定的;接收端将设定一个门限值来筛选出置信度超过该门限值的LT码的输出变量节点,并选择和窗长大小相等的若干个经过筛选后的变量节点送入译码器开始译码;在尝试数轮边消除置信传播译码(见“Belief Propagation with Gradual Edge Removalfor Raptor Codes over AWGN Channel”,accepted by PIMRC2013)之后,若未能译码成功,目前通过消边操作移除了多少个变量节点,则补充多少个新的LT码的输出变量节点进入译码器,并再次尝试译码,直至译码成功或者消边操作无法再移除变量节点为止;
设:LDPC(低密度奇偶校验)码的校验节点和变量节点的数目分别为m=500和n=10000,参与第一轮译码操作的LT码的校验节点和变量节点的数目分别为N=1.5×9500=14250和N+n=14250+10000=24250,窗长为W=n+N=24250,变量节点记为vi,i=1,2,...,n+N,校验节点记为cj,j=1,2,...,m+N,N(vi)\cj表示除了cj之外的其他和vi相连的校验节点,N(cj)\vi表示除了vi之外的其他和cj相连的变量节点,ei,j表示连接vi和cj的边,ELDPC={ei,j|i=1,2,...,n,j=1,2,...,m}表示对应于LDPC码校验矩阵的边, 表示在第l轮译码操作时对应于LT码生成矩阵的边,表示在第l轮译码操作时连接了LT码校验节点和输出变量节点的边,表示在第l轮译码操作时vi传递给cj的对数似然比,表示在第l轮译码操作时cj传递给vi的对数似然比,表示在第l轮译码操作时来自信道的输入对数似然比,由于LDPC码的输出变量节点未经过信道传输,所以L(l)(vi)表示在第l轮译码操作时对应于vi,i=1,2,...,n+N的用来做硬判决的对数似然比取值,ξ=18和T=2分别表示判决L(l)(vi),i=1,2,...,n置信度足够高时需要达到的门限值以及达到此门限值的次数,对于表示在第l轮译码操作时ei,j连接了一个被消去的变量节点vi,f(l)(ei,j)=1表示在第l轮译码操作时并且它连接了一个被消去的变量节点vi,f(l)(ei,j)=2表示在第l轮译码操作时ei,j∈ELDPC并且它连接了一个被消去的变量节点vi;对于由于这些边不参与消边操作,所以f(l)(ej-m+n,j)=0;对于LDPC码的输出变量节点vi,i=1,2,...,n,F(l)(vi)=0表示在第l轮译码操作时该节点尚未完成消边操作,F(l)(vi)=1则表示在第l轮译码操作时该节点已经完成了消边操作;表示在第l轮译码操作时所有信息的集合,表示在第l轮译码操作时所有信息的结合,和num(l)(vi)分别表示在第l轮译码操作时所存储的vi的用来做硬判决的对数似然比取值和该值已经连续达到门限ξ的次数,对每一个LDPC码的校验节点cj,j=1,2,...,m设置两个数组和并初始化取值为0,Nr表示译码结束时接收端实际接收的LT码的编码比特数目;
无速率码的固定窗长边消除置信传播译码方法的示意图如图1所示,具体步骤如下:
1)初始化:令l=1,选择经过筛选后的个LT码的编码比特进入译码器,将窗长为的译码器填充完毕,此时有令对LT码的输入变量节点vi,i=1,2,...,n设置F(1)(vi)=0,num(1)(vi)=0;对设置flag(1)(ei,j)=0;
2)若l=1,则进入步骤3);否则在当前窗长为W,即包含了个LT码的输入变量节点和个LT码的输出变量节点的译码器中进行译码,对LT码的输入变量节点vi设置F(l)(vi)=F(l-1)(vi),num(l)(vi)=0;对 设置flag(l)(ei,j)=flag(l-1)(ei,j);对 设置flag(l)(ej-m+n,j)=0;对若F(l)(vi)=0则设置flag(l)(ei,j)=0,若F(l)(vi)=1则设置flag(l)(ei,j)=1并更新其更新规则如下:
3)对于满足F(l)(vi)=0的LT码的输入变量节点vi,i=1,2,...,n,以及译码器中所有LT码的输出变量节点利用下式更新其向相邻校验节点传递的信息:
4)对于译码器中的每个校验节点对其所有连接的边{ei,j|vi∈N(cj)}做判决,若flag(l)(ei,j)=0,则利用下式更新其向相邻变量节点传递的信息:
5)对于满足F(l)(vi)=0的LT码的输入变量节点vi,i=1,2,...,n,利用下式更新其用来做硬判决的对数似然比信息:
6)对于满足F(l)(vi)=0的LT码的输入变量节点vi,i=1,2,...,n,估算其对应的编码比特wi的值:
若此时已满足LDPC码的校验节点所限制的校验关系,则进入步骤9);若不满足校验关系且未达到所设定的最大迭代次数Imax=50,则进入步骤7),否则进入步骤8);
7)判断LDPC码的输出变量节点其L(l)(vi)是否连续T次达到门限值ξ且|L(l)(vi)|逐渐增大,具体判断方法如下:对每一个满足F(l)(vi)=0的变量节点vi,i=1,2,...,n进行如下操作,当时,如果|L(l)(vi)|≥ξ,则令且num(l)(vi)=1;反之,不进行任何操作;当时,又可以分为以下五种情况,当且|L(l)(vi)|≥ξ和则令且num(l)(vi)=num(l)(vi)+1,如果num(l)(vi)≥T,则进行消边更新操作,即令F(l)(vi)=1且对设置f(l)(ei,j)=1,对ei,j∈ELDPC设置f(l)(ei,j)=2,如果且|L(l)(vi)|≥ξ和则令且num(l)(vi)=1,如果且|L(l)(vi)|<ξ,则令且num(l)(vi)=0,如果且|L(l)(vi)|<ξ,则令且num(l)(vi)=0,如果且|L(l)(vi)|≥ξ,则令且num(l)(vi)=1,若发现某些L(l)(vi)连续T次达到门限值ξ且|L(l)(vi)|逐渐增大,则消去这些LDPC码的输出变量节点及其所连接的边并完成消边更新操作,即令F(l)(vi)=1且对设置f(l)(ei,j)=1,对ei,j∈ELDPC设置f(l)(ei,j)=2;为了消除这些操作对其他节点后续迭代译码的影响,对满足flag(l)(ei,j)=2的边,将以后由vi向cj传递的信息设为该节点被消去时的L(l)(vi),即一个定值并不再计算由cj向vi传递的信息li=l+1,l+2,...;一旦有新的边被设置为flag(l)(ei,j)=2,将其当前的L(l)(vi)存入中,并将消去的节点vi所译出的比特wi的值存入中,在以后每次更新由cj向其他未被消去的变量节点输出的对数似然比信息的时候,中的每一个元素只传递各自的L(l)(vi);同时,在以后每次判决译出比特是否满足LDPC码的校验关系式时,中的每一个wi也参与异或运算,返回步骤3),开始新一轮的迭代译码;
8)记录下F(l)(vi)(i=1,2,...,n)、flag(l)(ei,j) 的值;若在第l次译码尝试中没有LT码的输入变量节点被移出译码器,则进入步骤9);若在第l次译码尝试中有N(l)个LT码的输入变量节点被移出译码器,则再选择N(l)个经过筛选后的LT码的编码比特进入译码器,即令将窗长为W的译码器填充完毕后,令l=l+1,并进入步骤2),开始新一轮的译码尝试;
9)停止译码。
所述的步骤1)和步骤8)中的选择经过筛选后的LT码的编码比特进入译码器为:设定一个门限值来筛选出置信度超过该门限值的LT码的编码比特,并将这些经过筛选后的编码比特送入译码器;假设叠加在接收序列上的噪声ni为加性白高斯噪声,其方差为σ2=0.9577,LT码的第i个编码比特为xi,则接收码字yi=1-2xi+ni,设定一个译码器进入门限ζ=1,只有当接收码字的初始对数似然比绝对值超过此门限,即:
也就是|yi-n|≥0.478829时,才将此接收码字,即LT码的输出变量节点送入译码器进行译码处理。
图2仿真了窗长W=24250,25250,26150和27100四种情况,仿真的重复次数设置为NUM=1000。图中横轴的每一个点代表一个窗长,纵轴则是相应译码停止时的平均误比特率(BER)。另外图中还标出了在每个窗长下译码时,译码停止时所尝试的平均译码次数,分别为lave=1.009,2.002,3.776,1.097,以及译码停止时的平均码率的倒数R-1=Nr/(n-m),分别为R-1=1.95253,2.08347,2.41263,2.38674。可以看到,随着窗长的增大,译码过程中译码器获得的信息量越大,因此BER随之下降。当窗长很小时(如W=24250),每次译码尝试时译码器获得的信息太少,在完成一次译码尝试后基本没有LT码的输入变量节点达到移除条件被移出译码器,故没有新的节点补充进入译码器,译码无法进行下去,译码停止(lave=1.009)。当窗长并非足够大时(如W=25200,26150),每次译码尝试时译码器获得的信息并非足够多,在经过几次译码尝试后(lave分别为2.002和3.776),就没有LT码的输入变量节点达到移除条件被移出译码器,故译码停止。当窗长足够大时(如W=27100),每次译码尝试时译码器获得的信息足够多,加上其利用的是经过筛选后的初始信息较好的接收编码符号,故只需要很少的译码尝试(1次到2次,lave=1.097)就能成功译码,BER降至10-7以下。最后,译码停止时的码率是由接收端接收到的编码比特总数Nr(包括送入译码器的和被筛掉的两部分)所决定的,因此W=27100成功译码时的接收编码比特总数比W=26150时数轮译码尝试后译码终止时所接收的编码比特总数要少,即R-1反而要小一些。
Claims (2)
1.一种无速率码的固定窗长边消除置信传播译码方法,其特征在于,发送端采用无速率码对需要传输的信息进行编码,接收端采用置信传播译码;“窗长”定义为每次译码时译码器中所存储的变量节点的个数,也就是参与运算的变量节点的个数,在固定窗长的边消除置信传播译码方法中,译码器中所存储的变量节点的个数始终是固定的;接收端将设定一个门限值来筛选出置信度超过该门限值的LT码的输出变量节点,并选择和窗长大小相等的若干个经过筛选后的变量节点送入译码器开始译码;在尝试数轮边消除置信传播译码之后,若未能译码成功,目前通过消边操作移除了多少个变量节点,则补充多少个新的LT码的输出变量节点进入译码器,并再次尝试译码,直至译码成功或者消边操作无法再移除变量节点为止;
设:LDPC码的校验节点和变量节点的数目分别为m和n,参与第一轮译码操作的LT码的校验节点和变量节点的数目分别为N和N+n,窗长为W=n+N,变量节点记为vi,i=1,2,...,n+N,校验节点记为cj,j=1,2,...,m+N,N(vi)\cj表示除了cj之外的其他和vi相连的校验节点,N(cj)\vi表示除了vi之外的其他和cj相连的变量节点,ei,j表示连接vi和cj的边,ELDPC={ei,j|i=1,2,...,n,j=1,2,...,m}表示对应于LDPC码校验矩阵的边,表示在第l轮译码操作时对应于LT码生成矩阵的边,表示在第l轮译码操作时连接了LT码校验节点和输出变量节点的边,表示在第l轮译码操作时vi传递给cj的对数似然比,表示在第l轮译码操作时cj传递给vi的对数似然比,表示在第l轮译码操作时来自信道的输入对数似然比,由于LDPC码的输出变量节点未经过信道传输,所以L(l)(vi)表示在第l轮译码操作时对应于vi,i=1,2,...,n+N的用来做硬判决的对数似然比取值,ξ和T分别表示判决L(l)(vi),i=1,2,...,n置信度足够高时需要达到的门限值以及达到此门限值的次数,对于f(l)(ei,j)=0表示在第l轮译码操作时ei,j连接了一个被消去的变量节点vi,f(l)(ei,j)=1表示在第l轮译码操作时并且它连接了一个被消去的变量节点vi,f(l)(ei,j)=2表示在第l轮译码操作时ei,j∈ELDPC并且它连接了一个被消去的变量节点vi;对于由于这些边不参与消边操作,所以f(l)(ej-m+n,j)=0;对于LDPC码的输出变量节点vi,i=1,2,...,n,F(l)(vi)=0表示在第l轮译码操作时该节点尚未完成消边操作,F(l)(vi)=1则表示在第l轮译码操作时该节点已经完成了消边操作;表示在第l轮译码操作时所有信息的集合,表示在第l轮译码操作时所有信息的结合,和num(l)(vi)分别表示在第l轮译码操作时所存储的vi的用来做硬判决的对数似然比取值和该值已经连续达到门限ξ的次数,对每一个LDPC码的校验节点cj,j=1,2,...,m设置两个数组和并初始化取值为0,Nr表示译码结束时接收端实际接收的LT码的编码比特数目;
具体步骤如下:
1)初始化:令l=1,选择经过筛选后的个LT码的编码比特进入译码器,将窗长为的译码器填充完毕,此时有令对LT码的输入变量节点vi,i=1,2,...,n设置F(1)(vi)=0,num(1)(vi)=0;对设置flag(1)(ei,j)=0;
2)若l=1,则进入步骤3);否则在当前窗长为W,即包含了个LT码的输入变量节点和个LT码的输出变量节点的译码器中进行译码,对LT码的输入变量节点vi设置F(l)(vi)=F(l-1)(vi),num(l)(vi)=0;对设置flag(l)(ei,j)=flag(l-1)(ei,j);对设置flag(l)(ej-m+n,j)=0;对若F(l)(vi)=0则设置flag(l)(ei,j)=0,若F(l)(vi)=1则设置flag(l)(ei,j)=1并更新其更新规则如下:
3)对于满足F(l)(vi)=0的LT码的输入变量节点vi,i=1,2,...,n,以及译码器中所有LT码的输出变量节点利用下式更新其向相邻校验节点传递的信息:
4)对于译码器中的每个校验节点对其所有连接的边{ei,j|vi∈N(cj)}做判决,若flag(l)(ei,j)=0,则利用下式更新其向相邻变量节点传递的信息:
5)对于满足F(l)(vi)=0的LT码的输入变量节点vi,i=1,2,...,n,利用下式更新其用来做硬判决的对数似然比信息:
6)对于满足F(l)(vi)=0的LT码的输入变量节点vi,i=1,2,...,n,估算其对应的编码比特wi的值:
若此时已满足LDPC码的校验节点所限制的校验关系,则进入步骤9);若不满足校验关系且未达到所设定的最大迭代次数Imax,则进入步骤7),否则进入步骤8);
7)判断LDPC码的输出变量节点其L(l)(vi)是否连续T次达到门限值ξ且|L(l)(vi)|逐渐增大,具体判断方法如下:
对每一个满足F(l)(vi)=0的变量节点vi,i=1,2,...,n进行如下操作,当时,如果|L(l)(vi)|≥ξ,则令且num(l)(vi)=1;反之,不进行任何操作;当时,又可以分为以下五种情况,当且|L(l)(vi)|≥ξ和则令且num(l)(vi)=num(l)(vi)+1,如果num(l)(vi)≥T,则进行消边更新操作,即令F(l)(vi)=1且对设置f(l)(ei,j)=1,对ei,j∈ELDPC设置f(l)(ei,j)=2,如果且|L(l)(vi)|≥ξ和则令且num(l)(vi)=1,如果且|L(l)(vi)|<ξ,则令且num(l)(vi)=0,如果且|L(l)(vi)|<ξ,则令且num(l)(vi)=0,如果且|L(l)(vi)|≥ξ,则令且num(l)(vi)=1,若发现某些L(l)(vi)连续T次达到门限值ξ且|L(l)(vi)|逐渐增大,则消去这些LDPC码的输出变量节点及其所连接的边并完成消边更新操作,即令F(l)(vi)=1且对设置f(l)(ei,j)=1,对ei,j∈ELDPC设置f(l)(ei,j)=2;为了消除这些操作对其他节点后续迭代译码的影响,对满足flag(l)(ei,j)=2的边,将以后由vi向cj传递的信息设为该节点被消去时的L(l)(vi),即一个定值并不再计算由cj向vi传递的信息一旦有新的边被设置为flag(l)(ei,j)=2,将其当前的L(l)(vi)存入中,并将消去的节点vi所译出的比特wi的值存入中,在以后每次更新由cj向其他未被消去的变量节点输出的对数似然比信息的时候,中的每一个元素只传递各自的L(l)(vi);同时,在以后每次判决译出比特是否满足LDPC码的校验关系式时,中的每一个wi也参与异或运算,返回步骤3),开始新一轮的迭代译码;
8)记录下F(l)(vi)(i=1,2,...,n)、flag(l)(ei,j) 的值;若在第l次译码尝试中没有LT码的输入变量节点被移出译码器,则进入步骤9);若在第l次译码尝试中有N(l)个LT码的输入变量节点被移出译码器,则再选择N(l)个经过筛选后的LT码的编码比特进入译码器,即令将窗长为W的译码器填充完毕后,令l=l+1,并进入步骤2),开始新一轮的译码尝试;
9)停止译码。
2.根据权利要求1所述的一种无速率码的固定窗长边消除置信传播译码方法,其特征在于所述的步骤1)和步骤8)中的选择经过筛选后的LT码的编码比特进入译码器为:设定一个门限值来筛选出置信度不低于该门限值的LT码的编码比特,并将这些经过筛选后的编码比特送入译码器;假设叠加在接收序列上的噪声ni为加性白高斯噪声,其方差为σ2,LT码的第i个编码比特为xi,则接收码字yi=1-2xi+ni,设定一个译码器进入门限只有当接收码字的初始对数似然比绝对值不低于此门限,即:
其中i≥n+1
才将此接收码字,即LT码的输出变量节点送入译码器进行译码处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310505288.3A CN103580699B (zh) | 2013-10-22 | 无速率码的固定窗长边消除置信传播译码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310505288.3A CN103580699B (zh) | 2013-10-22 | 无速率码的固定窗长边消除置信传播译码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103580699A CN103580699A (zh) | 2014-02-12 |
CN103580699B true CN103580699B (zh) | 2016-11-30 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108650029A (zh) * | 2018-05-16 | 2018-10-12 | 清华大学 | 一种适用于量子安全直接通信的纠错编译码方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101345602A (zh) * | 2008-08-21 | 2009-01-14 | 上海交通大学 | 低密度校验码迭代译码的提前中止方法 |
CN101534129A (zh) * | 2009-04-21 | 2009-09-16 | 北京邮电大学 | 基于不对等消息更新的置信传播ldpc译码方法 |
CN101695016A (zh) * | 2009-10-22 | 2010-04-14 | 浙江大学 | 基于无速率码的多用户随机接入***及其编译码方法 |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101345602A (zh) * | 2008-08-21 | 2009-01-14 | 上海交通大学 | 低密度校验码迭代译码的提前中止方法 |
CN101534129A (zh) * | 2009-04-21 | 2009-09-16 | 北京邮电大学 | 基于不对等消息更新的置信传播ldpc译码方法 |
CN101695016A (zh) * | 2009-10-22 | 2010-04-14 | 浙江大学 | 基于无速率码的多用户随机接入***及其编译码方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108650029A (zh) * | 2018-05-16 | 2018-10-12 | 清华大学 | 一种适用于量子安全直接通信的纠错编译码方法 |
CN108650029B (zh) * | 2018-05-16 | 2020-07-31 | 清华大学 | 一种适用于量子安全直接通信的纠错编译码方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106230555B (zh) | 极化码的分段循环冗余校验方法 | |
CN109660264B (zh) | 高性能极化码译码算法 | |
CN107026656B (zh) | 一种基于扰动的CRC辅助中短码长Polar码有效译码方法 | |
CN103259545B (zh) | 基于振荡的准循环低密度奇偶校验码置信传播译码方法 | |
CN101345601B (zh) | 一种译码方法和译码器 | |
CN106130687B (zh) | 衰落信道下基于译码比特可靠性的Polar码删余方法 | |
CN106803759A (zh) | 基于高斯构造的Polar码有效自适应译码方法 | |
CN105763203B (zh) | 一种基于硬可靠度信息的多元ldpc码译码方法 | |
CN107204780B (zh) | polar-LDPC级联码的合并BP解码算法及装置 | |
CN109981112A (zh) | 一种部分循环冗余校验辅助的排序统计译码方法 | |
CN103973314A (zh) | 一种基于ldpc的信号编解码方法、及接收端和发送端 | |
CN105207682A (zh) | 基于动态校验矩阵的极化码置信传播译码方法 | |
CN110100403A (zh) | 使用极化编码数据传输的通信***中的错误检测 | |
CN107395319A (zh) | 基于打孔的码率兼容极化码编码方法及*** | |
CN106301388A (zh) | 多进制ldpc码译码方法 | |
CN103208995A (zh) | 一种低密度奇偶校验码译码的提前终止方法 | |
CN106941394B (zh) | 极化码编码的scma的联合检测译码方法及装置 | |
CN108092742A (zh) | 一种基于极化码的通信方法 | |
CN110233628A (zh) | 极化码的自适应置信传播列表译码方法 | |
CN106254030B (zh) | 无速率Spinal码的双向编译码方法 | |
CN109921803A (zh) | 基于神经网络的高密度线性分组码译码方法 | |
CN100508442C (zh) | 一种编译码方法及编译码装置 | |
CN101562456A (zh) | 基于低密度奇偶校验码译码软信息的码辅助帧同步方法 | |
CN105227191A (zh) | 基于修正最小和算法的准循环ldpc码译码方法 | |
CN110995279A (zh) | 一种极化码联合scf球形列表翻转译码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |