CN107872232B - 新型衔尾卷积码用最大似然解码算法 - Google Patents
新型衔尾卷积码用最大似然解码算法 Download PDFInfo
- Publication number
- CN107872232B CN107872232B CN201710687027.6A CN201710687027A CN107872232B CN 107872232 B CN107872232 B CN 107872232B CN 201710687027 A CN201710687027 A CN 201710687027A CN 107872232 B CN107872232 B CN 107872232B
- Authority
- CN
- China
- Prior art keywords
- path
- algorithm
- convolutional code
- backward
- behind
- 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
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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/413—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors tail biting Viterbi decoding
-
- 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/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1125—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
-
- 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/23—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明涉及数据处理领域,其公开了一种新型衔尾卷积码用最大似然解码算法,包括如下步骤:(A)后向环绕的网格上执行维特比算法VA;获取前一后向维特比算法VA轮次所保留的信息;(B)将优先级优先搜索算法应用于所有子网格的前向方向之中。本发明的有益效果是:采用有效早期停止标准,以减少解码复杂度;在加性白高斯噪声信道中涉及(2,1,6)衔尾卷积码的模拟在解码复杂度的最大值和方差方面都显示出超越BEAST和CMLDA的显著节省。
Description
【技术领域】
本发明涉及数据处理领域,尤其涉及一种新型衔尾卷积码用最大似然解码算法MLWAVA。
【背景技术】
自从卷积码发明以来它们便被广泛用于在数位通信中提供有效的出错防止能力。在卷积编码器的实际执行中,通常在信息位序列的末尾附加一定数量的零,以清除移位寄存器的内容,使得下一个信息序列的编码过程可以直接进行而无需进行初始化。这些零尾位可以增强卷积码的出错防止能力。对于足够长的信息序列,归因于这些零尾位的码率损失几乎可以忽略不计;然而,当信息序列较短时,这些零尾位引入了显著的码率损失。
在文献中,已经提出了几种方法来减轻上述(短长度)零尾卷积码的码率损失,例如直接截断[1]和扰散[1]及衔尾[2]、[3]、[4]。具体来说,衔尾卷积码以直接的方式克服了码率的损失,并且引起较小的性能下降。文献[1]中已经证实了这一点,其中展示了衔尾卷积码具有比扰散及零尾卷积码更好的出错防止性能。与始终起止于全零状态的零尾卷积编码器不同,衔尾卷积编码器仅确保初始状态和最终状态相同(其中特定状态由输入数据决定)。由于任何状态都可能是衔尾卷积编码器的初始状态,解码复杂度急剧增加。
类似于零尾卷积码的解码,尾部卷积码的解码在网格上执行,而码字通过该网格现对应于起止于相同(不一定是全零)状态的路径。出于方便起见,衔尾卷积码网格上具有相同初始状态和最终状态的路径被称为衔尾路径。由于“码字”和“衔尾路径”之间存在一对一的对应关系,这两个术语在本文中可以互换使用。
令衔尾卷积码网格的所有可能初始状态(等价于最终状态)的数量为Ns。则,网格可以分解成Ns个具有相同初始状态和最终状态的子网格。依照先前的命名约定,这些子网格被称为衔尾子网格,或者若没有缩写所产生的歧义,则可称为简单子网格。为了方便起见,将用T表示一个衔尾卷积码网格,并用Tk表示其第k个子网格。可以清楚地看到,与相似大小的零尾卷积码相比,衔尾卷积码的解码复杂度将增加多倍,这是因为每个子网格中的所有衔尾路径必须进行查验。
为了降低解码复杂度,文献[2]、[3]、[5]、[6]、[7]中已经提出了用于衔尾卷积码的几种次优解码算法,在这些算法中环绕维特比算法(WAVA)的解码复杂度最小[2]。概念上而言,WAVA以环绕方式重复地将维特比算法(VA)应用于衔尾卷积码的网格上。在其执行期间,WAVA不仅检查衔尾路径,而且还检查起止于不同状态的路径;因此,它可能产生没有码字对应的路径。WAVA可以被等同地视为VA在“超级网格”上的应用,其由预先指定数量、以串联方式彼此连接的网格所形成。通过模拟显示,最多环绕四个网格就足以获得近似最优性能[2]。
在需要最优解码性能的情况下,因为WAVA不能保证将总会找到最大似然(ML)衔尾路径,所以它不再是合适的选择。通过在所有衔尾子格上执行VA,ML衔尾路径可以直接获得;然而,这种强力方法却因其高计算复杂度显得不切实际。
在2005年,Bocharova等人提出了用于衔尾卷积码的ML解码算法,这被称为搜索树的双向有效算法(BEAST)[8]。从概念上讲,BEAST在向前和向后的方向上都会重复地及同时地对特定节点进行探索,这些节点所具有的解码度量低于每个子网格上的某一阈值。它在每个步骤中不断增加阈值,直到找到一个ML路径。[8]中所提供的模拟结果表明,BEAST具有非常低的解码复杂度并且在高信噪比(SNR)下行之有效。
一年后,Shankar等人[9]提出了另一种用于衔尾卷积码的ML解码算法,为了方便起见称之为创造性最大似然解码算法(CMLDA)。CMLDA具有两个阶段。第一阶段将VA应用于衔尾卷积码的网格以获得某些网格信息。基于这些网格信息,算法A*会在第二阶段的所有子网格上并行地执行以产生ML判定。正如[9]所展示的那样,在不牺牲性能最优性的情况下,CMLDA将解码复杂度从强力逼近方法所需的Ns次VA执行次数降低至大约1.3倍的VA执行次数。为了在解码复杂性方面寻求CMLDA的进一步改进,[10]和[11]的作者重新定义了[9]中给出的启发式函数。前一种算法[10]提出在第一阶段应用后向VA,而不是以如[9]和[11]所述的前向方式应用VA。本文在此提供了一个对[10]的重要延伸,并第一阶段中考虑了后向VA的多重迭代。
最近,Wang等人提出了不使用堆栈的另一种ML解码算法[12]。它比较两次连续WAVA迭代之间的残存路径,并且每当[12]所述的关键性残存路径在非ML路径上被“捕获”时,它都会在特定的衔尾子网格上启动VA。然而,[12]的解码复杂度结果是比[9]高得多。
【发明内容】
为了解决现有技术中的问题,本发明提供了一种新型衔尾卷积码用最大似然解码算法,解决现有技术中存在较高的最大解码复杂度的问题。
本发明是通过以下技术方案实现的:设计、制造了一种新型衔尾卷积码用最大似然解码算法,包括如下步骤:(A)后向环绕的网格上执行维特比算法VA;获取前一后向维特比算法VA轮次所保留的信息;(B)将优先级优先搜索算法应用于所有子网格的前向方向之中。
作为本发明的进一步改进:所述步骤(A)中,后向环绕维特比算法WAVA被应用于衔尾卷积码网格T,并检查衔尾路径以及检查辅助超级代码中的所有路径。
作为本发明的进一步改进:所述辅助超级代码由网格上的所有路径组成,其中,表示具有L个信息比特的(n,1,m)衔尾卷积码,目标卷积映射从1个信息比特限制为n个码位,m是存储器顺序。
作为本发明的进一步改进:网格T中路径的度量采用如下方式设定:令l为满足0≤l≤L的一个固定整数,对于一个二进制标签为的路径;其结束于网格T中的水平与其相关的路径
度量定义为其中为对应的比特度量,该路径的所谓累积度量是预先指定的初始度量及与之相关的上述路径度量的总和。
作为本发明的进一步改进:所述步骤(A)中,获得最大似然ML判断按以下方式进行:在第一次迭代结束时,若最佳的后向存活路径是一个衔尾路径,则它就是ML判定,对于首个迭代以外剩余的迭代,若
适用于每个其中是后向WAVA直到第i次迭代所遇到的衔尾存活路径所有结束状态的集合,则最佳衔尾存活路径就是ML判定。
作为本发明的进一步改进:所述步骤(B)中,采用两个数据结构进行优先级优先搜索算法,两个数据结构为开放堆栈和封闭表;开放堆栈通过优先级优先搜索算法存储目前为止已经访问过的路径,封闭表跟踪先前时间曾经处于开放堆栈顶部的那些路径。
作为本发明的进一步改进:根据其累积度量的升序对从步骤(A)中获得的多个子网格后向存活路径进行排序,并获得最大似然ML判断后停止算法。
作为本发明的进一步改进:采用有效早期停止标准以减少解码复杂度。
本发明的有益效果是:采用有效早期停止标准,以减少解码复杂度;在加性白高斯噪声信道中涉及(2,1,6)衔尾卷积码的模拟在解码复杂度的最大值和方差方面都显示出超越BEAST和CMLDA的显著节省。
【附图说明】
图1用于[24,12,8]扩展戈洛码和[96,48,10]分组码的WAVA(2)和ML解码器(如MLWAVA,TDMLDA,CMLDA或BEAST)的字出错率(WER);
图2是表I所展示用于[24,12,8]扩展戈雷码解码算法的每信息位分支度量计算数量的方差;
图3是表I所展示用于[96,48,10]分组码解码算法的每信息位分支度量计算数量的方差;
图4是[192,96,10]和[96,48,16]分组码的ML解码器字出错率(WERs);
图5是表I所展示用于[24,12,8]扩展戈雷码解码算法的每信息比特分支度量平均计算数量;
图6是表I所展示用于[96,48,10]分组码解码算法的每信息比特分支度量平均计算数量;
图7是表II所展示用于[192,96,10]分组码解码算法的每信息比特分支度量平均计算数量;
图8是表II所展示用于[96,48,16]分组码解码算法的每信息比特分支度量平均计算数量。
【具体实施方式】
下面结合附图说明及具体实施方式对本发明进一步说明。
一种新型衔尾卷积码用最大似然解码算法,包括如下步骤:(A)后向环绕的网格上执行维特比算法VA;获取前一后向维特比算法VA轮次所保留的信息;(B)将优先级优先搜索算法应用于所有子网格的前向方向之中。
所述步骤(A)中,后向环绕维特比算法WAVA被应用于衔尾卷积码网格T,并检查衔尾路径以及检查辅助超级代码中的所有路径。
所述辅助超级代码由网格上的所有路径组成,其中,表示具有L个信息比特的(n,1,m)衔尾卷积码,目标卷积映射从1个信息比特限制为n个码位,m是存储器顺序。
网格T中路径的度量采用如下方式设定:令l为满足0≤l≤L的一个固定整数,对于一个二进制标签为 的路径;
其结束于网格T中的水平与其相关的路径度量定义为
始度量及与之相关的上述路径度量的总和。
所述步骤(A)中,获得最大似然ML判断按以下方式进行:在第一次迭代结束时,若最佳的后向存活路径是一个衔尾路径,则它就是ML判定,对于首个迭代以外剩余的迭代,若
适用于每个其中是后向WAVA直到第i次迭代所遇到的衔尾存活路径所有结束状态的集合,则最佳衔尾存活路径就是ML判定。
所述步骤(B)中,采用两个数据结构进行优先级优先搜索算法,两个数据结构为开放堆栈和封闭表;开放堆栈通过优先级优先搜索算法存储目前为止已经访问过的路径,封闭表跟踪先前时间曾经处于开放堆栈顶部的那些路径。
根据其累积度量的升序对从步骤(A)中获得的多个子网格后向存活路径进行排序,并获得最大似然ML判断后停止算法。采用有效早期停止标准以减少解码复杂度。
本发明提出了一种新型衔尾卷积码用最大似然WAVA(MLWAVA)解码算法。与WAVA不同,MLWAVA的超级网格在概念上通过以后向方式连接网格来形成。具体来说,MLWAVA首先在后向环绕的网格上执行VA,然后基于从前一后向VA轮次所保留的信息,将优先级优先搜索算法应用于所有子网格的前向方向之中。请注意,优先级优先搜索算法是算法A*的简化版本。类似于[9]中的ML解码算法,MLWAVA也可以看作是一种两阶段解码算法,其中VA的后向执行和优先级优先搜索算法的前向执行分别被视为第一和第二阶段;尽管如此,本文仍然分别针对第一和第二阶段设计了一个新ML解码度量和一个新评估函数。此外,其还提出了针对两个阶段之每一阶段的有效早期停止标准,以进一步减少解码复杂度。针对信息长度为48之(2,1,6)衔尾卷积码的模拟结果表明,MLWAVA的平均解码复杂度小于[9]和[12]中的ML解码算法在SNRb=4dB下的平均解码复杂度,其中SNRb表示每信息比特的信噪比。虽然BEAST在高SNR下的平均解码复杂度优于MLWAVA,但是在SNRb=4dB时,MLWAVA的解码复杂度的方差比BEAST的低了7234倍。这使得MLWAVA在解码延迟时间为关注重点时成为两者之间的更好选择。与近乎最优的WAVA[2]相比,最优MLWAVA在平均和最大解码复杂度两方面都更低。
令表示具有L个信息比特的(n,1,m)衔尾卷积码,其中为了简单起见仅将目标卷积映射从1个信息比特限制为n个码位,而m是存储器顺序。这样的系统也可以被称为[nL,L,dmin]分组码。1基于该设置,衔尾卷积码的网格T在每个水平具有Ns=2m个状态,并且具有L+1个水平。虽然只有限制自身具有相同的初始状态和最终状态的衔尾路径对应于的码字,但是引入了一个辅助超级代码其由网格上的所有路径组成,并且该网格现在可以起止于不同的状态。
不妨用来表示的二进制码字,其中N=nL。将对应于接收向量r=(r0,r1,…,rN-1)的硬判定序列y=(y0,y1,…,yN-1)定义为
则,
其中
y的校正子相应地由所给出,其中是的等效分组码奇偶校验矩阵。令E(s)是校正子为s的所有错误模式的集合。则接收向量r的ML解码输出等于
其中满足
并且为模2加法。由此对网格T中路径的度量做出如下定义。
定义1:令l为满足0≤l≤L的一个固定整数。对于一个二进制标签为的路径;其结束于网格T中的水平将与其相关的路径度量定义为
1因为一个具有特定长度的衔尾卷积码同样也是分组码。所以[nL,L,dmin]在全文中被用来将衔尾卷积码表示为分组码的形式,其中dmin表示该代码的最小成对汉明距离。
其中为对应的比特度量。该路径的所谓累积度量是预先指定的初始度量及与之相关的上述路径度量的总和。请注意,初始度量对于第一次WAVA迭代而言为零并且根据迭代(第一次迭代除外)的先前迭代来设置成一个特定值。
因为在所提出的解码算法中执行后向VA而不是前向VA,所以定义1对后向VA的细化可通过一个直接的方式来获得。例如,与带有标签的后向路径相关联的度量由下式给出
因此,该后向路径的累积度量是针对起始状态处于水平L而指定的初始度量和上面所给出关联度量的总和。应该强调的是,二进制标签可以唯一地确定路径及其起始和结束状态。
如引言部分所述,提出的算法可以划分为两个阶段。在第一阶段中,后向WAVA被应用于网格T,其不仅检查衔尾路径,而且检查中的所有路径。那么将在第i个WAVA迭代中位于水平l的每个Ns状态具有一个VA向后存活路径,并且若该向后存活路径(在水平l)的结束状态为则其关联的累积度量可由表示。请注意,将会被设置为第(i+1)个WAVA迭代开始时水平L处状态的初始度量值;因此,标签为x[ln]=(xN-1,...,xln)的后向存活路径将具有累积度量
其中和s分别为该后向存活路径在水平L处的起始状态和在水平l处的结束状态。所有的度量(其中s∈S,0≤l≤L且1≤i≤I)均被保留以供将来在第二阶段中使用。在此,I为所执行WAVA迭代的最大数量。在第一阶段结束时,将产生在水平0(而不是水平L)处于某种状态的Ns后向存活路径。再次指出,这些后向存活路径仅保证存在于中,但可能不是中的码字。
一些随后在后向WAVA的算法描述中使用的符号介绍如下。最佳后向存活路径的标签在第i个WAVA迭代结束时的所有后向存活路径中最小的累积路径度量,其由表示。最佳后向存活路径的关联累积度量由表示。同样地,如果对应于第i个WAVA迭代结束时的最佳衔尾存活路径存在的话,用来表示它,并且用来表示其关联累积路径度量。令和分别为和中具有最小累积度量的标签,并且将它们的累积路径度量分别表示为和以下的定理是[2]中定理的一个修改版本,其为迭代后向WAVA提供了一个早期停止标准。
定理1([2]):在第一次迭代结束时,若最佳的后向存活路径是一个衔尾路径,则它就是ML判定。对于首个迭代以外剩余的迭代,若
适用于每个其中是后向WAVA直到第i次迭代所遇到的衔尾存活路径(在水平0)所有结束状态的集合,则最佳衔尾存活路径就是ML判定。
由定理1,ML判定可能在后向WAVA达到最大迭代次数前被找出;因此,解码复杂度可得到降低。考虑到完整性,提出如下后向WAVA的算法步骤,其基本上与WAVA相同,不同的方面有:它以后向的方式执行并且需要记录路径度量其中0≤l≤L且1≤i≤I。
<第一阶段:后向WAVA>
第1步:为每个状态初始化
第2步:将VA以后向的方式应用至网格T,即从水平L回到水平0。从l=L-1下至l=0,为位于水平l的每个状态s记录查找并且若存在,也一并查找。
第3步:若则将输出为ML判定,并且停止该算法。
第4步:若I=1,停止该算法。
第5步:令i=2。
第6步:为每个状态s∈S初始化
第7步:将VA以后向的方式应用至网格T,即从水平L回到水平0。从l=L-1下至l=0,为位于水平l的每个状态s记录查找并且若存在,也一并查找。
第8步:若满足(3)中的停止标准,则将输出为ML判定,并且停止该算法。
第9步:若i<I,则执行i=i+1并转至第6步;否则,停止该算法。
在继续介绍第二阶段的解码算法之前,应该提及一个重要的事实。很显然,如果I次迭代之后后向WAVA不输出ML判定,则为ML判定的度量之上的一个上界。该事实将被用于加速第二阶段。再次强调,与第一阶段在网格T中以后向的方式运算不同,第二阶段以前向的方式将优先级优先搜索解码应用于所有Ns衔尾子网格。这保证了第二阶段的输出始终是中的码字。
对于子网格Tk上一个标签为xk,(ln-1)=(xk,0,xk,1,...,xk,ln-1)的路径,一个与之关联的新评估函数如下给出:
f(xk,(ln-1))=g(xk,(ln-1))+h(xk,(ln-1)), (4)
其中按照定义1,
具有初始值g(xk,(-1))=0,并且
在(6)中,s为前向路径xk,(ln-1)结束时所处的状态(位于水平l),并且sk为网格Tk的单个初始(也是最终)状态。可以看出f(xk,(N-1))=g(xk,(N-1)),这是因为
因此,具有最小f函数值的衔尾路径是(2)中具有最小ML度量的衔尾路径。
优先级优先搜索算法需要两个数据结构。第一个称为开放堆栈,其通过优先级优先搜索算法存储目前为止已经访问过的路径。另一个称为封闭表,其可以跟踪先前某些时间曾经处于开放堆栈顶部的那些路径。它们之所以如此命名的原因是:开放堆栈中的路径在将来可能会被进一步扩展并由此保持打开状态,而封闭表中的路径不能再被扩展并因此会被关闭以备将来扩展。接下来,在下面总结Ns子网格的优先级优先搜索算法。
<第二阶段:优先级优先搜索算法>
第1步:根据其累积度量的升序对从第一阶段获得的Ns后向存活路径进行排序。若具有最小累积度量的后向存活路径同样是一个(起止于相同状态的)衔尾路径,则将其输出为最终ML判定并停止算法。
第2步:若其存在,初始化和否则,将cUB=∞和xUB设置成=空。删除累积度量不小于cUB的所有后向存活路径。
第3步:将子网格的初始零长度前向路径加载到开放堆栈中,其在水平0的初始状态与剩余的后向存活路径的任何结束状态一致。按照开放堆栈中这些零长度路径的f函数值的升序来排列它们。
第4步:若开放堆栈为空,则输出xUB作为最终的ML判定,并停止算法。2
第5步:若开放堆栈中的当前顶部路径在其相应的子网格中达到水平L,则将该路径输出为最终的ML判定,并停止算法。
第6步:若开放堆栈中的当前顶部路径已经被记录在封闭表中,则从开放表中舍弃它并转至第4步否则;将关于该顶部路径的信息记录在封闭表中。3
第7步:计算开放堆栈中顶部路径之后继路径的f函数值。然后,从开放堆栈中删除顶部路径。删除f函数值≥cUB的那些后继路径。
第8步:若一个后继xk,(Ln-1)达到具有f(xk,(Ln-1))<cUB的水平L,则更新xUB=xk,(Ln-1)以及cUB=f(xk,(Ln-1))。重复前面的更新,直到所有达到水平L的后元都受到检查。删除所有达到水平L的后元。
第9步:将剩余的后继路径插入到开放堆栈中,并根据升序的f函数值对开放堆栈重新排序。转至第4步。
2请注意,当开放堆栈为空时,xUB不能为空。这是因为,只有当不存在时,xUB才能在第2步中被初始地清空,此时cUB=∞。在这种情况下,第8步将用第一个继任者xk,(Ln-1)替换xUB,其达到了水平L并且开放堆栈在该替换之前必不为空。因此,当通过删除f函数值≥cUB的路径对开放堆栈进行强制清空时,xUB永不会为空。
3请注意,为了唯一地标识路径,只有起始和结束状态以及结束水平才需要记录在封闭表中。
从上述算法可以看出,开放堆栈与传统顺序解码算法中堆栈运转的方式类似。然而,封闭表的引入是为了消除结束于先前某些时间访问过之状态的顶部路径。(8)中随后将展示,这些顶部路径具有比先前访问过、结束于相同状态的顶部路径更差的f函数值;因此,可以直接消除它们以加快解码过程。
想指出的是,所提出的MLWAVA可以通过采用其对应的超级网格和子网格来应用于一个通用(n,k,m)(其中1<k≤n)衔尾卷积码。此外,人们也可以在第一阶段中使用前向WAVA,并且在第二阶段中以后向的方式执行优先级优先搜索。考虑到解码器通常倾向于以前向方式列出输出码位,选择在第二阶段以前向方式执行优先级优先搜索算法。
三、优先搜索算法的早期停止标准
在该部分中,评估函数f的特性将得到推导,并且随后被用于加速优先级优先搜索解码算法。从一个引理开始,此引理对于在本部分中证明主要定理3而言至关重要。
引理2:对于结束于网格Tk中处于水平l之状态s的路径xk,(ln-1),
若记录了水平L上开始状态为sk之后向存活路径的累积路径度量。4
证明:显然,赋予的后向存活路径为网格Tk中的一个有效后向路径,这是因为其开始于水平L上的状态sk。令xk,(N-1)为结合xk,(ln-1)和此存活路径的衔尾路径。假设存在i2使得
对于一些i2≠i1。由于f函数值顺着子网格Tk中的所有路径都是非递减的,所以得到
f(xk,(ln-1))≤f(xk,(N-1))=g(xk,(N-1))+h(xk,(N-1)). (9)
还可以导出
4请注意,通过符号中所指定的参数,该后向存活路径必在第i1个WAVA迭代期间获得,并且必结束于水平l上的状态s。方程(9)和(10)则联合表明
这与函数h的定义相矛盾,其确保h(xk,(N-1))=0。
定理3:令xk,(ln-1)=(xk,0,xk,1,...,xk,ln-1)开放堆栈中的当前顶部路径,并且用s来表示其水平l上的结束状态。假设记录了水平L上开始状态为sk、水平l上结束状态为s的后向存活路径的累积路径度量,其在第i1次WAVA迭代期间获得。则将前向路径xk,(ln-1)与后向路径合并得到期望ML衔尾路径,即
证明:令路径为路径xk,(ln-1)沿着后向存活路径的紧接后元,并且以来表示其结束状态。根据后向WAVA,得到
那么,路径xk,((l+1)n-1)的f函数值则可进行如下计算:
其中(12)有引理2暗示得出,而(13)遵循(11)。通过类似的论证,可以连续地证明:沿着后向路径的每个下一后元的f函数值保持不变。因为顶部路径xk,(ln-1).具有开放堆栈内与之共存的所有路径当中最小的f函数值,并且f函数值沿着所有路径都是非递减的,所以组合前向路径xk,(ln-1)与后向路径给出了ML衔尾路径,其在长度为N的所有衔尾路径中具有最小f函数值。
定理3随即提供了第二阶段程序步骤的早期停止标准,使得优先级优先搜索过程不一定得达到水平L才能确定最终的ML判定。因此,可以相应地修改第二阶段的第5步,通过补充“若顶部路径的h函数值由一个(水平L上的)初始状态与该顶部路径之初始状态相同的后向存活路径所确定,则将组合路径输出为ML判定并停止算法”以加快解码算法。
从定理3的证明可以看出,f(xk,((l+1)n-1))和f(xk,ln-1))的等效性主要依赖于(12)的有效性,其中最大化的WAVA迭代数量i1应该得到识别。当迭代次数I等于1时,i1必为1。在这种情况下,沿着从第一阶段所获得后向存活路径之紧接后元的f函数值总是保持不变。在接下来的推论中总结这个事实。
推论1:将WAVA迭代的最大数量固定为I=1。令路径xk,(ln-1)表示开放堆栈中的当前顶部路径,并以s表示其在水平l上的结束状态。假设路径为在水平l上结束状态为s的后向存活路径。则,
f(xk,((l+1)n-1))=f(xk,(ln-1)),
其中
推论1的意义在于,当I=1时,它可以极大地加快第二阶段的优先级优先搜索过程。具体地说,可以证实,每个子网格具有从水平m到水平L-m之间,除水平0到(m-1)以及水平(L-m+1)到L以外的全部Ns状态S0,…,SNs-1,其中m是(n,1,m)衔尾卷积码的存储顺序。因此,通过上述推论,当优先级优先搜索算法将结束于m和L-m间一个水平的当前顶部路径xk,(ln-1)扩大时,其紧接后元中的一个应该具有与该顶部路径相同的f函数值。具有相同f函数值之xk,(ln-1)的紧接后元随后可以通过从第一阶段所获得的后向存活路径快速地求出,并且应该成为下一个顶部路径。后元f函数值的计算因此变得没必要并且可以被节省。
尽管如此,结束于0和m-1间一个水平的顶部路径沿着满足该顶部路径的第一阶段后向存活路径并不一定具有一个紧接后元。这是因为不是所有的Ns状态在子网格中的水平0到m-1都可用。因此,对于以小于m之某水平结束的顶部路径,原始优先级优先搜索步骤仍然应该得到执行。另一方面,当一个路径达到水平L-m时,它具有沿其相应子网格至水平L的唯一轨迹;因此,可以将其直接扩展至水平L以形成一个长度为N的衔尾路径,并且通过将其f函数值与开放堆栈中的f函数值进行比较来测试所得到的衔尾路径是否是最终的ML判定。
由推论1可知,的第二阶段过程可以简化为一个深度优先算法,并且解码复杂度大大降低。第二阶段算法的第7步可以相应地通过如下附加条件来修改:若所有剩余后元结束于一个小于m的水平,则转至下一步(即第8步);否则,执行如下操作:
●直接将(达到水平m的)后元依次沿着第一阶段后向存活路径扩展至水平L-m,并将长度为(L-m)n之扩展后元的f函数值设置成与刚才为长度为mn之原始非扩展后元所计算出的值相同。
●进一步沿着位于其相应子网格上的唯一轨迹将长度为(L-m)n的后元扩展至水平L,并且计算所产生N长度衔尾路径的f函数值。
回想一下,在第二部分的结尾已经说过,所提出的两阶段解码算法可以替代性地实施为前向迭代WAVA,并后跟一个优先级优先搜索算法。虽然这种替代性实施在性能上也是最佳的,但是对于给定的接收向量,其可能导致不同的解码复杂度;而平均来说,两种算法的解码复杂度仍然应该是一样的。
考虑到复杂性的降低,人们实际上可以在网格的任何预先选择水平上启动所提出的两阶段解码算法,因为衔尾卷积码网格本质上是“循环相同的”。一个等效却可能更直接的处理是通过循环旋转水平数列0,1,…,L来将网格上所选择的起始水平重新编号为水平0。[13]中的模拟表明,如果可以根据接收矢量的“可靠性”正确地选择起始水平,就可以实现一定程度的复杂度降低。例如,起始水平l*[13]可以选择为
对于一些恰当选择的λ。值得注意的是,对起始水平及其后续对齐的选择应该在第一阶段算法开始之前执行,并且与两阶段解码的解码复杂度相比,其复杂度几乎可以忽略不计。
四、通过AWGN信道的模拟实验
在这一部分中,借助模拟、通过加性白高斯噪声(AWGN)信道探究了所提出ML解码算法的计算工作量和字错误率。假设发送的二进制码字υ=(υ0,υ1,...,υN-1)是二进制相移键控(BPSK)调制的。因此,接收向量r=(r0,r1,...,rN-1)由下式给出
其中ε为每信道位的信号功率,而是每赫兹单面噪声功率为N0之白高斯过程的独立噪声样本。因此,信噪比(SNR)由给出。为了解决不同码率的码冗余,在以下讨论中使用每信息比特的SNR,即
注意,对于AWGN信道,与定义1中的路径x(ln-1)相关联的度量可以等效地简化为
在模拟中使用分别具有发生器103,166(八进制)和133,171(八进制)的两个(2,1,6)衔尾卷积码,以获得表I中所展示的结果。前者的信息长度为12和48,其为[24,12,8]扩展戈洛码[14],而后者相当于[96,48,10]分组码。
在介绍的仿真结果之前,想指出,顺序搜索算法(比如MLWAVA第二阶段所执行的那个算法)的计算量不仅包括解码度量的评估,而且包括在搜索和重新排序堆栈元素方面消耗的工作量。通过采用一个优先级队列数据结构[15],后者的工作量可以做到与前者相当。人们可以进一步采用基于硬件的堆栈结构[16],并为每个堆栈插入运算获得恒定的复杂性。这些注释将每信息比特之度量计算数量的惯常采纳证明为基于顺序搜索算法的一个算法复杂度度量。
现在准备提供解码复杂性的模拟结果以及MLWAVA的、与MLWAVA进行比较的四种解码算法的相应字出错率(WER)。为了便于指定各种图表内这些算法中所使用的参数,具有最大迭代数量I和参数λ(其通过(14)决定起始位置l*)的MLWAVA由MLWAVAλ(I)来表示,并且具有A最大迭代数量I的WAVA[2]、基于陷阱侦测的ML解码算法[12]、创新性ML解码算法[9]和基于双向阈值的顺序解码算法[8]分别表示为WAVA(I)、TDMLDA、CMLDA和BEAST。请注意,MLWAVAλ(I)、TDMLDA、CMLDA和BEAST是ML解码器。对于所有模拟,确保发生至少100个字错误,以使得模拟结果中不存在偏向性。
作为参考,首先根据对比在图1中展示了WAVA(2)和ML解码器(如MLWAVA,TDMLDA,CMLDA或BEAST)的WER性能。图1表明在WER=10-3,与采用[24,12,8]扩展戈洛码时的ML性能相比,WAVA(2)具有约0.5dB的编码损失,但在[96,48,10]分组码取而代之得到采用时接近于最优性能。该结果表明,当使用较长的衔尾卷积码时,WAVA可以仅使用少量(在此为两次)迭代来实现近似最优性能。
在表I中列出了WAVA(2)、MLWAVA6(1)、TDMLDA、CMLDA和BEAST的分支度量计算的平均和最大数量。得出四个观察结果。第一,因为在最坏的情况下SNRb值只是遍历整个网格两次,所以无论该值如何,分支度量计算的最大数量对于WAVA(2)而言都是一个常数。事实上,WAVA的每信息比特双重迭代的计算量可以由2m×n×I=26×2×2=256直接给出。第二,MLWAVA6(1)对于BEAST之外所有SNRb而言,在平均解码复杂度方面优于其他解码算法。第三,对于所采用的短衔尾卷积码,BEAST在五种解码算法中具有最小的平均解码复杂度,并且对于SNRb≥3dB的长衔尾卷积码,其同样具有最小的平均解码复杂度。然而,当SNRb降低时,其平均解码复杂度显着增加,并且对于长衔尾卷积码,其在SNRb=1dB时超过了WAVA(2)、MLWAVA6(1)和CMLDA的平均解码复杂度。第四,对于所模拟的每个SNR值,MLWAVA6(1)所需的每信息比特分支度量计算的最大数量在所有ML解码算法中是最低的,并且其减少量与其他ML解码算法相比是显著的。例如,在SNRb=4dB时,对于[96,48,10]分组码,MLWAVA6(1)的最大解码复杂度分别比TDMLDA、CMLDA和BEAST的最大解码复杂度小4倍、4倍和8倍。因为解码延迟主要由最坏情况的复杂性决定,所以这种改善具有实际重要性。
表I
WAVA(2)、MLWAVA6(1)、TDMLDA、CMLDA和BEAST的每信息比特分支度量计算的平均(AVE)和最大(MAX)数量。定理1中的停止标准已经实施于WAVA(2)和MLWAVA6(1)。为了易于找出最佳值,每列中的最小数字已被粗体示出。
此外,在表I中展示了五种解码算法之解码复杂度的方差,并在图2和图3中总结了所得结果。两图都表明,MLWAVA具有显著小于表I所列出其他四个解码器的方差。特别是对于[96,48,10]分组码,MLWAVA解码复杂度方差和其他四种解码算法解码复杂度方差至少差了两个数量级。当仅考BEAST和MLWAVA时,表I和图2和图3中所展示的结果共同表明,即使BEAST对于SNR的许多值而言在平均解码复杂度方面更优越,但其方差远远高于MLWAVA。例如,在SNRb=4dB时,对于[96,48,10]分组码而言,MLWAVA的解码复杂度方差比BEAST低7,234倍。这再次表明,当解码延迟实践在实际应用中受到特别关注时,MLWAVA是两者之间的更好选择。
在先前从表I得出的观察结果中,注意到,对于长衔尾卷积码,除了低SNR区域外,Beast在平均解码复杂度方面击败了其他四种解码算法。此外,BEAST和MLWAVA在解码复杂度方差方面的比较有利于MLWAVA,特别是对于长度为96的衔尾卷积码。沿着这条主线,接下来检查码字长度对BEAST和MLWAVA的解码复杂度的影响。通过将表I中[96,48,10]分组码的长度翻倍,获得了适合本实验的[192,96,10]分组码。表II然后显示,当与表I中[96,48,10]分组码的每信息比特平均解码复杂度比较时,对于新型双倍长度衔尾卷积码而言MLWAVA的每信息比特平均解码复杂度保持不变或略微降低;尽管如此,当信息长度加倍时,BEAST的平均和最大解码复杂度都会大大增加。这表明MLWAVA的解码复杂度对于变化的码字长度是高度稳定的,而当码字长度增加时,BEAST的解码复杂度可能会显著增加。
可能影响解码复杂度的另一个因素是代码约束长度。该因素对MLWAVA和BEAST的此类影响已经得到了检验,并且也总结于表II中。本实验采用的代码是具有发生器5135,14477(八进制)的(2,1,12)衔尾卷积码[17]。它的信息长度为48,其等价于[96,48,16]分组码。
表II
MLWAVAλ(I)和BEAST的每信息比特分支度量计算的平均(AVE)和最大(MAX)数量。定理1中的停止标准已对MLWAVAλ(I)进行实施。为了易于找出最佳值,每列中的较小数字已被粗体示出。
如预期那样,表II展示了当约束长度增加时,MLWAVA和BEAST的解码复杂度会显著地增加;然而,它们的平均解码复杂度之比也在SNRb=1dB时从298/131=2.275增加到19910/8299=2.399。这意味着在低SNR下,BEAST的解码复杂度随着约束长度的增加比MLWAVA的解码复杂度要适度地更快。在这里想补充说,在BEAST中存在隐藏的解码成本,这就是检查前向子网格和后向子网格之间匹配节点的复杂度。类似于针对基于顺序之搜索算法的计算量说明,其中用于搜索和重新排序堆栈元素的工作量可以通过采用优先级队列数据结构[15]或甚至基于硬件的堆栈结构[16]来显著地减轻,BEAST的节点检查过程的成本可以通过将所有扩展节点的状态存储在适当结构的阵列中来缓解,其中匹配的节点可以位于存储奇取的一个步骤中。
然而,对于[96,48,16]分组码,这种成本将具有的次序,这对于实际的实施可能是不可行的。在没有节点匹配之单步存储器访问实现的情况下,的实验表明,对于[96,48,16]分组码,在SNRb=3:5dB处,BEAST完成一个分支度量计算的时间将比MLWAVA12(1)要多859倍。
表II中可能观察到的不明显结果是,MLWAVAλ(2)有时比MLWAVAλ(1)运行得更快,特别是在低SNR下。具体地说,在SNRb=1dB下,对于[192,96,10]分组码,MLWAVA6(2)具有比MLWAVA6(1)更小的最大复杂度。这表明,从第一阶段保留信息中所获得的更优预测,连同提出的早期停止标准,确实有助于在第二阶段降低优先级优先搜索的复杂度。
对于完整性而言,在图4中描述了用于[192,96,10]和[96,48,16]分组码的ML解码器字出错率性能,并在图5和6中对表I中平均解码复杂度与解码算法的关系进行了绘图。对应于表II的解码复杂度曲线则展示在图7和8中。
指出MLWAVA和CMLDA都需要记录来自各自第一阶段算法的信息;尽管如此,这种来自MLWAVA和CMLDA的存储需求分别位于ILNs和LNs的大多数次序。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (8)
1.一种新型衔尾卷积码用最大似然解码算法,其特征在于:包括如下步骤:(A)后向环绕的网格上执行维特比算法VA;获取前一后向维特比算法VA轮次所保留的信息;(B)将优先级优先搜索算法应用于所有子网格的前向方向之中;所述步骤(A)中,获得最大似然ML判断按以下方式进行:在第一次迭代结束时,若最佳的后向存活路径是一个衔尾路径,则它就是ML判定,对于首个迭代以外剩余的迭代,若适用于每个其中是后向WAVA直到第i次迭代所遇到的衔尾存活路径所有结束状态的集合,则最佳衔尾存活路径就是ML判定。
2.根据权利要求1所述的新型衔尾卷积码用最大似然解码算法,其特征在于:组合前向路径与后向路径给出了ML衔尾路径,其在长度为N的所有衔尾路径中获得具有最小f函数值,最小f函数值的计算公式获取具体为:路径为路径xk,(ln-1)沿着后向存活路径的紧接后元,并且以来表示其结束状态,路径xk,((l+1)n-1)的f函数值
其中,xk,(ln-1)=(xk,0,xk,1,...,xk,ln-1开放堆栈中的当前顶部路径,并且用s来表示其水平l上的结束状态,记录了水平L上开始状态为sk、水平l上结束状态为s的后向存活路径的累积路径度量,其在第i1次WAVA迭代期间获得。
3.根据权利要求1所述的新型衔尾卷积码用最大似然解码算法,其特征在于:所述步骤(A)中,后向环绕维特比算法WAVA被应用于衔尾卷积码网格T,并检查衔尾路径以及检查辅助超级代码中的所有路径。
4.根据权利要求2所述的新型衔尾卷积码用最大似然解码算法,其特征在于:辅助超级代码由网格上的所有路径组成,其中,表示具有L个信息比特的(n,1,m)衔尾卷积码,目标卷积映射从1个信息比特限制为n个码位,m是存储器顺序。
5.根据权利要求2所述的新型衔尾卷积码用最大似然解码算法,其特征在于:网格T中路径的度量采用如下方式设定:令l为满足0≤l≤L的一个固定整数,对于一个二进制标签为 的路径;其结束于网格T中的水平l,与其相关的路径度量定义为其中为对应的比特度量,该路径的所谓累积度量是预先指定的初始度量及与之相关的上述路径度量的总和。
6.根据权利要求1所述的新型衔尾卷积码用最大似然解码算法,其特征在于:所述步骤(B)中,采用两个数据结构进行优先级优先搜索算法,两个数据结构为开放堆栈和封闭表;开放堆栈通过优先级优先搜索算法存储目前为止已经访问过的路径,封闭表跟踪先前时间曾经处于开放堆栈顶部的那些路径。
7.根据权利要求1所述的新型衔尾卷积码用最大似然解码算法,其特征在于:根据其累积度量的升序对从步骤(A)中获得的多个子网格后向存活路径进行排序,并获得最大似然ML判断后停止算法。
8.根据权利要求1所述的新型衔尾卷积码用最大似然解码算法,其特征在于:采用有效早期停止标准以减少解码复杂度。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710687027.6A CN107872232B (zh) | 2017-08-11 | 2017-08-11 | 新型衔尾卷积码用最大似然解码算法 |
PCT/CN2017/097667 WO2018171110A1 (zh) | 2017-08-11 | 2017-08-16 | 新型衔尾卷积码用最大似然解码算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710687027.6A CN107872232B (zh) | 2017-08-11 | 2017-08-11 | 新型衔尾卷积码用最大似然解码算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107872232A CN107872232A (zh) | 2018-04-03 |
CN107872232B true CN107872232B (zh) | 2019-10-22 |
Family
ID=61761279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710687027.6A Active CN107872232B (zh) | 2017-08-11 | 2017-08-11 | 新型衔尾卷积码用最大似然解码算法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107872232B (zh) |
WO (1) | WO2018171110A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100544213C (zh) * | 2005-04-25 | 2009-09-23 | 中兴通讯股份有限公司 | 一种咬尾卷积码的译码方法及其译码器 |
US8707145B2 (en) * | 2011-03-29 | 2014-04-22 | Intel Corporation | System, method and apparatus for tail biting convolutional code decoding |
CN103634015B (zh) * | 2012-08-28 | 2017-06-27 | 上海无线通信研究中心 | 咬尾码的最大似然译码算法 |
US9729264B2 (en) * | 2013-01-18 | 2017-08-08 | Lg Electronics Inc. | Interference-removed reception method and terminal |
CN104796160B (zh) * | 2014-01-22 | 2019-04-12 | 华为技术有限公司 | 译码方法和装置 |
CN106301391B (zh) * | 2016-08-08 | 2019-07-16 | 西安电子科技大学 | 一种改进的软输出咬尾卷积码译码方法 |
-
2017
- 2017-08-11 CN CN201710687027.6A patent/CN107872232B/zh active Active
- 2017-08-16 WO PCT/CN2017/097667 patent/WO2018171110A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2018171110A1 (zh) | 2018-09-27 |
CN107872232A (zh) | 2018-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102543149B (zh) | 使用混合解码器执行有效解码的系统和方法 | |
CN109643258A (zh) | 使用高速率最小存储再生擦除代码的多节点修复 | |
US10719294B2 (en) | Hardware sort accelerator sharing first level processor cache | |
CN102893529B (zh) | 用于ldpc码的解码的方法和系统 | |
CN101656541A (zh) | Rs码的译码方法和装置 | |
CN109889205A (zh) | 编码方法及系统、解码方法及系统、编解码方法及系统 | |
CN104242957B (zh) | 译码处理方法及译码器 | |
Schewe et al. | Determinising parity automata | |
CN110535477A (zh) | 并行的极化码译码方法 | |
CN106374940A (zh) | 一种多进制ldpc译码方法及译码器 | |
CN102386935B (zh) | 维特比译码方法及维特比译码器 | |
CN107872232B (zh) | 新型衔尾卷积码用最大似然解码算法 | |
CN105677521A (zh) | 一种面向移动智能终端处理器的基准测试程序合成方法 | |
CN108809330A (zh) | 一种针对NAND-Flash存储介质的LDPC码译码方法 | |
US11165447B2 (en) | GCC decoding and polar code successive-cancellation list decoding with decomposition into concatenated inner and outer codes | |
CN107294656B (zh) | 一种基于深度优先的分布式算术码解码方法 | |
CN111404558B (zh) | 一种Polar码译码的方法、译码器及计算机存储介质 | |
CN105610550B (zh) | 一种用于电力线载波通信的Viterbi译码方法 | |
CN104202127B (zh) | 基于路径度量值的低复杂度mimo系统球译码信号检测方法 | |
US7426457B2 (en) | FSM closure of generalized tree models | |
CN103326731B (zh) | 一种基于分布式算术编码的隐马尔科夫相关信源编码方法 | |
US8706792B1 (en) | Low-complexity q-ary LDPC decoder | |
Mount | KMlocal: a testbed for k-means clustering algorithms | |
Wilson | factorOracle: an Extensible Max External for Investigating Applications of the Factor Oracle Automaton in Real-Time Music Improvisation | |
US10164655B2 (en) | Cache oblivious algorithm for butterfly code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |