一种循环冗余校验辅助的极化码译码方法

文档序号:7853862阅读:254来源:国知局
专利名称:一种循环冗余校验辅助的极化码译码方法
技术领域
本发明涉及一种循环冗余校验辅助的极化码译码方法,用于解决数字通信系统中由于信道对通信过程的干扰,使得传输数据出现差错的问题;确切地说,涉及一种采用极化码作为纠错编码的实际数字通信系统中,通过利用循环冗余校验信息来辅助译码的方法;属于数字通信的信道编码技术领域。
背景技术
循环冗余校验是一种信道检错方法,它在实际数字通信系统中已经得到了非常广 泛地使用。参见图1,在发送数据前,消息发送端首先使用循环冗余校验模块对原始的消息比特序列进行校验计算,得到一个校验比特序列。循环冗余校验比特序列和原始的消息比特一起组成了信道编码器的输入比特。信道编码器的输出比特被送入信道。经过信道传输后,得到一系列接收信号。然后,经过信道译码后的比特序列被送到消息接收端,由消息接收端对该比特序列进行循环冗余校验操作。如果计算得到的校验值为零,就认为信道译码得到的比特序列是正确的。否则,即校验值不为零,则说明接收到的比特序列中包含了一定数量的错误。对于这种情况,实际系统中的消息接收端往往通过反馈信道请求消息,要求发送端重新发送一次该原始的消息比特序列。对于采用迭代译码方法进行信道译码的系统,可以将循环冗余校验与迭代信道译码过程相结合,即在每次迭代后,都对当前迭代所得到的比特序列进行一次循环冗余校验;且一旦在校验值为零时,就让信道译码器提前结束迭代过程,以减低译码复杂度。一个实际应用事例是在WCDMA系统中,对Turbo码进行迭代译码时,就是采用这种方法来节省译码过程中的操作步骤,以减少译码时间。本发明则是针对信道编码为极化码的情况,设计并实现了两种循环冗余校验辅助的译码方法。先介绍极化码极化码(Polar Codes)是2009年由E. Arikan提出的一种被严格证明可以达到信道容量的构造性的信道编码方法。在进行极化编码之前,首先要对N= 2n个独立的二进制输入信道(或先后N次反复使用同一个信道,即一个信道的N个可用时隙),再利用图2所示的信道极化的基本单元对二进制输入离散信道反复进行极化,式中,η为自然数。最基本的信道极化是对两个相同的未经极化的信道W : X —y进行单步极化操作,其中,X是信道输入符号的集合,对于二进制输入信道,X的取值范围为{0,1} ;y是信道输出符号的集合。如图2所示,该极化信道的输入比特分别标记为U1和U2,这两个输入比特通过一个模二加法器输出得到X1,同时将U2直接赋值给x2,即A =U1 n2,X2=U2, 为模二加运算。把&和&分别送入未经极化信道W,其输出为71和72。从该信道极化基本单元的输入U1和u2)和两个信道的输出(yi和y2)看,原本独立的两个未经极化的信道W被合并成一个两输入两输出的向量信道W2: X 2 — y2,其中,-T2 =JU,运算. 为笛卡尔积。该向量信道包含两个子信道时、少 K输入为U1输出为yiy2)和的2): ,Y y (输入为U2输出为yiy2Ul),这两个子信道即是两个极化信道。经过该单步极化过程,从信道容量上看 其中Ι(·)表示求信道容量
的函数。也就是说单步极化后,在和容量保持不变的情况下,相比原本未经极化的信道,极化后的信道容量发生了偏离一个增加,一个减少。如果对两组已经完成一次极化操作的信道,再在两组互相独立的转移概率相同的极化信道之间,分别进行单步极化操作,该偏离会更加明显,这一组单步极化操作被称为第二层极化操作,而前一组单步极化操作则称为第一层极化操作。每多做一层极化操作,需要的信道数就会比原先多一倍。因此,对Ν = 2η个信道进行完全的极化,共需要η层极化操作,且每一层的极化操作包括了 N次单步极化操作。如不加特殊说明,“对N个信道进行极化操作”是指完全极化。理论上已证明,对接近无穷多个信道进行极化操作后,会出现一部分信道的容量为I (即通过其传输的比特肯定会被正确接收),其余信道容量为O (即完全无法在其上可靠地传输比特)的现象,而容量为I的信道占全部信道的比例正好为原二进制输入离散信道的容量。参见图3,介绍一个实用的信道极化装置的递归结构长度为N (对N个信道进行
极化)的信道极化装置可以用长度为*的信道极化装置作递归操作来表示,递归过程中的
最小单元(即当N = 2时)就是图2所示的基本单元。图3中的信道极化装置中有一个长度为N的比特反转交织器,其功能是先将输入端的十进制序号i按二进制表示为Ov1Iv^K),其中,H=Iog2N,再将该二进制序列反序而得到(I3ciIvlv1),最后重新按十进制表示成n (i),并作为输入序号i对应的输出序号。比特反转交织器的作用是将输入端序号为i的比特映射到序号η (i)处。根据编码速率(R)对N个信道进行极化,并选取其中容量最大的K个信道(或者等价地,选取可靠性最高的K个信道;可靠性度量是采用密度进化(DensityEvolution)工具或者计算巴塔恰里亚(Bhattacharyya)参数得到的数值),以承载用于传输消息的比特,称该部分比特为信息比特,并称该部分信道为信息信道(其中,L-J为向下取整运算),其余未被选中的信道则传输一个约定的比特序列,称其为固定比特序列,并称该部分信道为固定信道(若信道对称则可简单地传输全零序列),从而形成一个从承载信息的K个比特到最终送入信道的N个比特的映射关系,这样的一种映射关系即为极化码,码长(编码后得到的二进制信号所包含的比特数)等于信道极化装置的长度N。由信息比特和固定比特组成的、送入信道极化装置的二进制信号序列(ιν··%)为编码码块,该编码码快的顺序与其送入的极化信道的序号一致,即Ui送入时),其中序号i是I到N的自然数,坪f表示将N个信道W极化后得到的序号为i的极化信道。编码码块经过信道极化装置后,得到的信号序列x^·· xN,再通过N个独立信道W传输后,接收到的信号序列为(y^yN)。译码器的任务就是根据接收信号序列(ynN)得到发送比特序列Ον··Un)的一组比特估计值("i ■··"、,)。极化码可以使用串行抵消译码方法对编码码块中的每个比特按序号i顺序地从I到N依次进行判决,还可以将串行抵消译码方法描述为一个码树上的搜索过程(参见图4所示的一个简单范例)。串行抵消译码是在码树上逐步扩展,每次从两条候选路径中选择其中概率值相对较大的一条,并在那一条路径的基础上继续进行下一步的路径扩展。作为串行抵消译码的一种改良方法串行抵消列表译码允许将候选路径保留多条,而不是仅仅一条,以此扩大搜索的范围和减小在搜索过程中离开正确路径的概率。所有的候选路径与其对应的可靠性度量值都被存储在一个列表中。该列表中所有的候选路径都被同步扩展;所以每次扩展后,列表中候选路径数量就会翻倍。此时要丢弃那些可靠性度量值较小的部分候选路径,以保证候选路径数始终不大于列表数量的一半。在译码结束时,再从该列表中找出可靠性度量值最大的那条路径,其对应的比特估计序列即为译码结果。串行抵消译码的另一种改良方法是串行抵消堆栈译码使用一个有序堆栈,而不是列表, 用于存储候选路径。在串行抵消堆栈译码过程中,每次都只基于可靠性度量最大的那一条候选路径(位于堆栈栈顶)进行扩展。当出现栈顶路径到达码树的某一个叶子节点时,就停止译码过程,并且将该路径所对应的比特估计序列输出,作为译码结果。总之,现有技术的缺点是实用编码系统的码长是不可能无限长的,而对有限个信道进行极化操作后,仍然会存在一部分传输性能不是特别好、也不是特别差的信道。因此,有限码长的极化码在现有的译码方法下所得到的抗噪性能并不理想。而现有译码方法都是独立于循环冗余校验而进行的,没有使用“发送序列的循环冗余校验值为零”这个有利信息。因此,如何对这种译码方法进行改进,就成为业内科技人员关注的新课题。

发明内容
本发明的目的是提供一种循环冗余校验辅助的极化码译码方法,以便能够大大提高采用极化码作为信道编码的通信系统的纠错能力,且其操作比较简单,运算复杂度与WCDMA系统中使用Turbo码的编译码方法相当、甚至更低,因此该方法具有很好的实用化前

ο为了达到上述发明目的,本发明提供了一种循环冗余校验辅助的极化码译码方法,其特征在于对极化码进行译码时,在极化码所对应的码树上,从根节点到叶子节点、且其所对应比特估计序列的循环冗余校验值为零的所有路径中,采用列表或堆栈作为路径搜索的辅助,寻找其中可靠性度量值最大的一条路径,并输出该路径对应的比特估计序列作为译码结果;所述方法包括以下操作步骤(I)根据搜索辅助方法确定参数对码长为N的极化码进行译码,设定搜索宽度为L,并确定使用列表还是堆栈进行路径搜索;若使用堆栈译码,还需设定堆栈最大深度D ;其中,N、L、D都是自然数;(2)构造译码方法的辅助结构,包括下述两种操作内容若选用列表译码,则构造一个包含2XL条路径记录的列表,该列表中的每条路径记录分别用于存储一个最大长度为N的比特估计序列及其对应的可靠性度量值;若选用堆栈译码,则构造一个最大深度为D的有序堆栈,该堆栈中的每条记录用于存储一个最大长度为N的比特估计序列及其对应的可靠性度量值;且堆栈中的记录是根据可靠性度量值的数值从大到小顺序排列,即位于堆栈顶部的记录的可靠性度量值最大;再构造用自然数对其进行编号排序的N个计数器;(3)搜索候选比特估计序列使用列表或堆栈分别在码树上进行搜索,得到可靠性度量值最大的L条互不相同的从根节点到叶子节点的长度为N的路径,这L条路径所对应的比特估计序列即为L个候选比特估计序列;(4)执行循环冗余校验按照可靠性度量值从大到小的顺序,对每个候选比特估计序列进行循环冗余校验,一旦遇到某个比特估计序列的校验值为零时,就停止译码,并输出该比特估计序列作为译码结果;如果对步骤(3)得到的L个候选比特估计序列进行循环冗余校验的过程中没有校验值为零,则译码失败。所述极化码的码树结构如下一个码长为N的极化码所对应的码树是一棵由(2N+1-1)个节点和(2n+1-2)条边组成的满二叉树,其中除去叶子节点以外的每个节点,与其左、右两侧两个后继节点之间的边都分别被标记为O和1,并对该码树中的边根据其到根节点所需经过的节点数进行分层,故序号为d的层是由2d条不同的边所组成;其中,自然数d的取值范围为I到N,即直接连接根节点的边的层序号d = I,而连接叶子节点的边的层序号d = N ;从序号d = I的层到序号d = i的层,分别逐层选取一条边,就形成一条包含i条边的路径,再将该路径中各边的标记O或I按照层序号从小到大的顺序排列,就能得到一个长度为I = i的比特估计序列(4,4,…,4);为方便表示,使用符号xf表示实数序列或二进制的比特序列(Xl,x2,…,xN),再用 符号<表示A的一个子序列(Xs,Xs+1,…,Xt-P Xt),即用下标S和上标t分别表示子序列中第一个元素和最后一个元素在其原序列中的序号,其中I < S < N,I < t < N ;且当s>t时,次表示一个空序列,记作Φ,空序列的长度1=0 ;还设置的子序列<中分别由奇数序号的
元素所构成的奇数子序列为,以及由偶数序号的元素所构成的偶数子序列为。当设定固定比特序列为一个全零序列时,对于给定的接收信号>^,其长度为I = i的比特估计序列$的可靠性度量值^ P; |);)的计算方法有下述三种第I种比特估计序列为空序列Φ时,其可靠性度量值) = O,第2种若序号为i的比特属于信息比特时,其可靠性度量值的计算公式为
弋中 M{,) ( ' , Wlni Wn} ();ι X1 = nIlItli=11,)
集合X = {0,1},Xk表示k个X作笛卡尔积所得到的集合为序号为i的比特所对应的极化信道的转移概率函数,即发送信号ui通过极化信道得到输出和U的概率,ln( ·)表示以自然对数e为底的对数函数;函数/(句)的取值规则是当序列g中属于固定比特的部分取值都为零时,/(旬=0,否则,/(句)=- ;c 为无穷大的实数;为序号为i的比特所对应的极化信道的转移概率函数,第3种若序号为i的比特属于固定比特时,其可靠性度量值的计算公式为
R{K1 A =o|VfJ = ^(C1Iif),=i|〕.f) = -*>。所述可靠性度量值中的的计算方法是利用信道极化的递归结构并按
照下述递归运算进行的当i为奇数时,令i = 2k_l,M (u[ = [ |>f ) = Mf'-1'1 ("f -1 = uf-1 |>f )=max* { Mm2 (Uk = lhk-l,l4—1 = C-2 C-2 |>,Γ2 ) + Μν)ζ (Uk = 0,-1 = C-2 |j4/2+1 ),;[m 2 (ut = Q2^1 ΦI," --1 = C—-2 ΦC——2 |).f2 ) + ("S. = i r = C—2 卜:2+1)]}当i为偶数时,令i = 2k,
=制== (wf =C C|vf,2)+<Mw" =CK+1);
其中,运算符号 表示模二加操作,< vf表示对这两个序列逐比特做模二加操作,即 wf ={iil vl,u2 v2,---,uN vN) ; max*(a, b)表示雅可比对数式,即 max*(a,b) =In (ea+eb) =max (a, b)+In (l+e_|a_b|), max (a, b)表示选取 a、b 中的较大值,式中 a 和 b 均为实数;因计算max*(a,b)需要的计算资源多,且有对数和指数运算,硬件不易实现;故预先为函数g(a) = ln(l+e-c)设置一个表,其定义域为大于或等于零的实数,即c > O ;这样计算max* (a, b) = max (a, b) +g (| a_b |)时,其中的g (I a_b |)就直接查表;且为继续降低复杂度,能直接用max (a, b)代替max* (a, b)操作,但这样会引入一定程度的性能损失。所述步骤(3)使用列表的候选比特估计序列进行搜索译码时,首先执行下述初始化操作清空列表后,向该列表中添加一条其内容为一个长度为零的空序列Φ的记录,且
设置其可靠性度量值为零。所述步骤(3)使用列表的候选比特估计序列进行搜索译码时,在初始化操作后,执行下列操作内容(3A)扩展列表中的候选比特估计序列此时列表中各个记录的比特估计序列具有相等的长度1,逐一取出列表中的各条记录,并在被取出的每条记录中的比特估计序列后分别添加一个O比特或一个I比特,得到两个新的长度为1+1的比特估计序列;接着分别计算这两个长度为1+1的比特估计序列的可靠性度量值,并以该两个新的比特估计序列及其对应的可靠性度量值为内容生成两条记录;待列表中所有记录被全部取出后,将新产生的记录存入列表中;(3B)列表中候选比特估计序列进行竞争完成步骤(3A)操作后,如果列表中的记录数量小于或等于L,则直接跳过本步骤而执行步骤(3C);如果列表中的记录数量大于L,则保留可靠性度量值最大的L项,并删除其余各项;(3C)判断是否停止搜索判断此时列表中记录中的比特估计序列长度是否小于N,若是,则返回继续重新执行步骤(3A);否则,此时列表中各个记录中的比特估计序列即为步骤(4)所需要的候选比特估计序列,结束步骤(3)的操作,执行后续步骤(4)。所述步骤(3)使用堆栈的候选比特估计序列进行搜索译码时,首先执行下述初始化操作用非负整数序列(知%,···,&)中的各个元素分别表示各计数器的数值,并设其为一个全零序列,在清空堆栈后;向堆栈中添加一条其内容为一个长度为零的空序列Φ的记录,且设置其可靠性度量值为零。所述步骤(3)使用堆栈的候选比特估计序列进行搜索译码时,在初始化操作后,执行下列操作内容
(3a)执行弹栈操作将堆栈顶部的记录弹出,查得该记录的所对应的比特估计序列长度为1,若I不为0,就将序号为I的计数器的数值Q1加I ;(3b)栈中候选比特估计序列进行竞争如果序号为I的计数器的数值已经达到了L,即qi = L,则检查堆栈中的所有记录,并删除所有比特估计序列长度小于或等于I的记录;然后,判断堆栈最大深度减去当前堆栈中的记录数量之差是否大于或等于2,如果是,则删除当前位于堆栈底部的那条记录;否则,执行后续步骤(3c);(3c)扩展堆栈中的候选比特估计序列在步骤(3b)中被弹出记录中的比特估计序列后添加一个O比特或一个I比特,得到两个新的长度为1+1的比特估计序列,接着分别计算这两个长度为1+1的比特估计序列的可靠性度量值;(3d)执行压栈操作以步骤(3c)中得到的长度为1+1的两个新比特估计序列及其各自的可靠性度量值为内容,生成两条新记录,并压入堆栈中;再按照可靠性度量值从大到
小的顺序重新排列堆栈中的记录,以使位于堆栈顶部的记录具有最大可靠性度量值;(3e)判断是否停止搜索判断此时堆栈中是否已经没有任何记录,若是,则结束该步骤(3)的操作,执行后续步骤(4);否则,再判断位于堆栈顶部的记录中的比特估计序列的长度是否为N,若是,则将该记录弹出堆栈,该记录中存储的比特估计序列作为步骤(4)所需要的一个候选比特估计序列,并使序号为N的计数器的数值qNW I后,接着判断该序号为N的计数器数值qN是否已经等于或大于L,若是,则结束该步骤(3)的操作,执行后续步骤(4);否则,返回执行步骤(3a)。所述步骤(3)中,采用列表译码时,L个候选比特估计序列是同时得到的;而采用堆栈译码时,L个候选比特估计序列是按照可靠性度量值从大到小的顺序逐一分别得到的。采用堆栈译码方法时,能够将路径搜索步骤中的(3e)和步骤(4)的循环冗余校验结合起来,使得路径搜索过程能够提前结束,以降低计算复杂度;此时,执行的操作内容是循环冗余校验辅助下比特估计序列的选择若堆栈中已经没有任何记录,就停止译码,表明译码失败;如果位于堆栈顶部的记录中的比特估计序列的长度为N,则将该记录弹出堆栈,并使序号为N的计数器的数值qNW I ;然后,对该比特估计序列进行循环冗余校验;若校验值为零,则停止译码并输出该比特估计序列作为译码结果;若校验值不为零,且qNS等于或大于L,则停止译码,表明译码失败;否则,返回执行步骤(3a)。本发明循环冗余校验辅助的极化码译码方法的技术关键是首先定义比特估计序列的可靠性度量值,并设计该可靠性度量值的迭代计算方法。另外,提供了实用的循环冗余校验辅助的列表译码和堆栈译码的两种方法,其中,列表译码方法是在列表译码过程停止时,按照可靠性度量值的从大到小顺序,逐一对列表中所有候选比特估计序列进行循环冗余校验,并输出第一个校验值为零的序列作为译码结果;而不是具有最大可靠性度量值的那个序列。堆栈译码方法是引入搜索宽度,允许译码过程中多次输出长度等于码长的比特候选序列,而不是如同传统的堆栈译码方法,只要遇到一条就停止搜索。每当译码方法输出一条长度等于码长的比特候选序列,就对其进行循环冗余校验,若校验值为零,则将其最终输出作为译码结果。因此,与现有技术相比较,本发明译码方法的优点是利用了送入极化码编码器比特序列的循环冗余校验值为零的信息,在没有付出额外计算复杂度的前提下,相比已有的极化码译码方案,具有更强的纠错能力。另外,本发明在对有限码长的极化码进行译码时,能获得与WCDMA系统中使用Turbo码的编译码方案更好的性能,并且其运算复杂度与其相当、甚至更低。由于具备上述特性,使得本发明方法更适合应用于实际通信系统,因此,其推广应用前景看好。


图I是使用循环冗余校验检错的编码通信方案操作步骤流程方框图。图2是信道极化的基本单元结构组成示意图。图3是长度为N的信道极化装置的递归结构组成示意图,其中递归的最小单元(SPN= I时)为图2所示的基本单元。图4是一个码长N = 4的极化码的码树,图中黑实线指示了一条串行抵消译码得到的路径,对应的比特估计序列为(0110)。 图5是本发明循环冗余校验辅助的极化码译码方法操作步骤流程图。图6是本发明极化码译码方法采用列表的码树扩展示意图。图7是本发明循环冗余校验辅助的列表译码方法操作步骤流程图。图8是本发明极化码译码方法采用堆栈的码树扩展示意图。图9是本发明循环冗余校验辅助的堆栈译码方法操作步骤流程图。图10是本发明循环冗余校验辅助的列表译码性能曲线图。图11是本发明循环冗余校验辅助的堆栈译码性能曲线图。图12是各种译码方法的平均计算复杂度曲线。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图和仿真实施例对本发明的实施过程及性能分析作进一步的详细描述。参见图5,介绍本发明循环冗余校验辅助的极化码译码方法在对极化码进行译码时,在极化码所对应的码树上,从根节点到叶子节点、且其所对应比特估计序列的循环冗余校验值为零的所有路径中,采用列表或堆栈作为路径搜索的辅助,寻找其中可靠性度量值最大的一条路径,并输出该路径对应的比特估计序列作为译码结果。该方法包括以下四个操作步骤步骤1,根据搜索辅助方法确定参数对码长为N的极化码进行译码,设定搜索宽度为L,并确定使用列表还是堆栈进行路径搜索;若使用堆栈译码,还需设定堆栈最大深度D ;其中,N、L、D都是自然数;步骤2,构造译码方法的辅助结构,包括下述两种操作内容若选用列表译码,则构造一个包含2XL条路径记录的列表,该列表中的每条路径记录分别用于存储一个最大长度为N的比特估计序列及其对应的可靠性度量值;若选用堆栈译码,则构造一个最大深度为D的有序堆栈,该堆栈中的每条记录用于存储一个最大长度为N的比特估计序列及其对应的可靠性度量值;且堆栈中的记录是根据可靠性度量值的数值从大到小顺序排列,即位于堆栈顶部的记录的可靠性度量值最大;再构造用自然数对其进行编号排序的N个计数器;步骤3,搜索候选比特估计序列使用列表或堆栈分别在码树上进行搜索,得到可靠性度量值最大的L条互不相同的从根节点到叶子节点的长度为N的路径,这L条路径所对应的比特估计序列即为L个候选比特估计序列;步骤4,执行循环冗余校验按照可靠性度量值从大到小的顺序,对每个候选比特估计序列进行循环冗余校验,一旦遇到某个比特估计序列的校验值为零时,就停止译码,并输出该比特估计序列作为译码结果;如果对步骤(3)得到的L个候选比特估计序列进行循环冗余校验的过程中没有校验值为零,则译码失败。本发明已经进行了多次实施试验,下面简要说明实施例的情况循环冗余校验码的生成多项式为g(D) = D24+D23+D6+D5+D+l,其校验比特长度k=24,极化码的码长N = 1024,码率R = 0.5。再以WCDMA系统中的Turbo码作为实施例的对比方案。Turbo码的分量码为两个8状态递归系统卷积码,其生成多项式为[1,1+D+D3/1+D2+D3],并使用速率比配算法调整码率为R = O. 5、码长N = 1024。两者的信道一致,都是二进制相移键控(BPSK)调制的加性高斯白噪声(AWGN)信道。先参见图6和图7,介绍采用循环冗余校验辅助的列表译码方法设定译码方法的搜索宽度L = 32,对接收到的信号按照图7所示的本发明循环冗余校验辅助的列表译码方法的操作流程进行译码,其误码块性能如图10所示。作为参照,图10中还给出了原有的串行抵消译码和串行抵消列表译码两种方法的性能曲线以及Turbo码在使用对数最大后验概率迭代译码算法(最大迭代次数设定为8次)下的译码性能曲线。
从四条性能曲线可以看出,极化码在使用本发明循环冗余校验辅助的列表译码时,其性能明显优于两种对比的已有极化码译码方法。与使用对数最大后验概率译码的Turbo方法相比较,极化码使用循环冗余校验辅助的列表译码方法还能够获得可观的
O.5dB增益。再参见图8和图9,介绍采用循环冗余校验辅助的堆栈译码方法设定译码方法的搜索宽度L = 32,最大堆栈深度D = 1000,对接收到的信号按照图9所示的循环冗余校验辅助的堆栈译码方法的操作流程进行译码,其误码块性能如图11所示。作为参照,图11中还给出了原有的串行抵消译码和串行抵消堆栈译码两种方法的性能曲线以及Turbo码在使用对数最大后验概率迭代译码算法(最大迭代次数设定为8次)下的译码性能曲线。从四种不同的性能曲线可以得到与循环冗余校验辅助的列表译码类似的结论。并且,结合图10与图11,可以发现在搜索宽度设置相同时,两种译码方法获得的性能大致是
一样的。接着,对本发明循环冗余校验辅助的极化码译码的两种方法进行复杂度分析(参见图12):通过对一个码块完成译码的过程中度量值更新操作的平均次数的统计数,来衡量各种极化码译码算法的复杂度。等价地,对Turbo码是统计对数最大后验概率译码过程中四类度量值的平均更新次数。图12是这些译码方法的平均复杂度的统计曲线。Turbo码在进行译码时,每经过一次迭代都要进行一次循环冗余校验,如果校验值为零,则直接停止译码操作,因此其复杂度是随着信噪比的提高而降低的。对于极化码的循环冗余校验辅助列表译码,由于其搜索范围是固定的,不会随着信噪比的改变而明显变化(其发生轻微变化的原因是极化码的构造会随着信噪比而改变)。而循环冗余校验辅助堆栈译码方法则不同,随着信噪比的提高,正确的路径会越来越容易地保持其位于栈顶的位置,从而计算复杂度会明显下降。可以看到,循环冗余校验辅助的堆栈译码具有与Turbo码相当的计算复杂度。虽然循环冗余校验辅助的列表译码比循环冗余校验辅助堆栈译码的计算 复杂度更高些,但是前者对存储空间的开销明显较后者要小。以上所述仅为本发明的一个实施案例的介绍而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种循环冗余校验辅助的极化码译码方法,其特征在于对极化码进行译码时,在极化码所对应的码树上,从根节点到叶子节点、且其所对应比特估计序列的循环冗余校验值为零的所有路径中,采用列表或堆栈作为路径搜索的辅助,寻找其中可靠性度量值最大的一条路径,并输出该路径对应的比特估计序列作为译码结果;所述方法包括以下操作步骤 (1)根据搜索辅助方法确定参数对码长为N的极化码进行译码,设定搜索宽度为L,并确定使用列表还是堆栈进行路径搜索;若使用堆栈译码,还需设定堆栈最大深度D ;其中,N、L、D都是自然数; (2)构造译码方法的辅助结构,包括下述两种操作内容 若选用列表译码,则构造一个包含2XL条路径记录的列表,该列表中的每条路径记录分别用于存储一个最大长度为N的比特估计序列及其对应的可靠性度量值; 若选用堆栈译码,则构造一个最大深度为D的有序堆栈,该堆栈中的每条记录用于存储一个最大长度为N的比特估计序列及其对应的可靠性度量值;且堆栈中的记录是根据可靠性度量值的数值从大到小顺序排列,即位于堆栈顶部的记录的可靠性度量值最大;再构造用自然数对其进行编号排序的N个计数器; (3)搜索候选比特估计序列使用列表或堆栈在码树上进行搜索,得到可靠性度量值最大的L条互不相同的从根节点到叶子节点的长度为N的路径,这L条路径所对应的比特估计序列即为L个候选比特估计序列; (4)执行循环冗余校验按照可靠性度量值从大到小的顺序,对每个候选比特估计序列进行循环冗余校验,一旦遇到某个比特估计序列的校验值为零时,就停止译码,并输出该比特估计序列作为译码结果;如果对步骤(3)得到的L个候选比特估计序列进行循环冗余校验的过程中没有校验值为零,则译码失败。
2.根据权利要求I所述的方法,其特征在于所述极化码的码树结构如下一个码长为N的极化码所对应的码树是一棵由(2N+1-1)个节点和(2n+1-2)条边组成的满二叉树,其中除去叶子节点以外的每个节点,与其左、右两侧两个后继节点之间的边都分别被标记为O和1,并对该码树中的边根据其到根节点所需经过的节点数进行分层,故序号为d的层是由2d条不同的边所组成;其中,自然数d的取值范围为I到N,即直接连接根节点的边的层序号d = 1,而连接叶子节点的边的层序号d = N ;从序号d = I的层到序号d = i的层,分别逐层选取一条边,就形成一条包含i条边的路径,再将该路径中各边的标记O或I按照层序号从小到大的顺序排列,就能得到一个长度为I = i的比特估计序列⑷名,…^ 为方便表示,使用符号if表示实数序列或二进制的比特序列(Xl,X2,…,xN),再用符号4表示<的一个子序列(xs,xs+1,…,Xh,xt),即用下标s和上标t分别表示子序列中第一个元素和最后一个元素在其原序列中的序号,其中KsS N,KtSN ;且当s>t时,乂表示一个空序列,记作Φ,空序列的长度1=0 ;还设置<的子序列<中分别由奇数序号的元素所构成的奇数子序列为,以及由偶数序号的元素所构成的偶数子序列为。
3.根据权利要求I所述的方法,其特征在于当设定固定比特序列为一个全零序列时,对于给定的接收信号,其长度为I = i的比特估计序列劣的可靠性度量值A的计算方法有下述三种 第I种比特估计序列为空序列Φ时,其可靠性度量值
4.根据权利要求3所述的方法,其特征在于所述可靠性度量值中的|>f)的计算方法是利用信道极化的递归结构并按照下述递归运算进行的 当i为奇数时,令i = 2k-l,
5.根据权利要求I所述的方法,其特征在于所述步骤(3)使用列表的候选比特估计序列进行搜索译码时,首先执行下述初始化操作 清空列表后,向该列表中添加一条其内容为一个长度为零的空序列Φ的记录,且设置其可靠性度量值为零。
6.根据权利要求5所述的方法,其特征在于所述步骤(3)使用列表的候选比特估计序列进行搜索译码时,在初始化操作后,执行下列操作内容(3A)扩展列表中的候选比特估计序列此时列表中各个记录的比特估计序列具有相等的长度I,逐一取出列表中的各条记录,并在被取出的每条记录中的比特估计序列后分别添加一个O比特或一个I比特,得到两个新的长度为1+1的比特估计序列;接着分别计算这两个长度为1+1的比特估计序列的可靠性度量值,并以该两个新的比特估计序列及其对应的可靠性度量值为内容生成两条记录;待列表中所有记录被全部取出后,将新产生的记录存入列表中; (3B)列表中候选比特估计序列进行竞争完成步骤(3A)操作后,如果列表中的记录数量小于或等于L,则直接跳过本步骤而执行步骤(3C);如果列表中的记录数量大于L,则保留可靠性度量值最大的L项,并删除其余各项; (3C)判断是否停止搜索判断此时列表中记录中的比特估计序列长度是否小于N,若是,则返回继续重新执行步骤(3A);否则,此时列表中各个记录中的比特估计序列即为步骤(4)所需要的候选比特估计序列,结束步骤(3)的操作,执行后续步骤(4)。
7.根据权利要求I所述的方法,其特征在于所述步骤(3)使用堆栈的候选比特估计序列进行搜索译码时,首先执行下述初始化操作 用非负整数序列gf=(ft,%,···,如)中的各个元素分别表示各计数器的数值,并设其为一个全零序列,在清空堆栈后;向堆栈中添加一条其内容为一个长度为零的空序列Φ的记录,且设置其可靠性度量值为零。
8.根据权利要求7所述的方法,其特征在于所述步骤(3)使用堆栈的候选比特估计序列进行搜索译码时,在初始化操作后,执行下列操作内容 (3a)执行弹栈操作将堆栈顶部的记录弹出,查得该记录的所对应的比特估计序列长度为1,若I不为O,就将序号为I的计数器的数值Q1加I ; (3b)栈中候选比特估计序列进行竞争如果序号为I的计数器的数值已经达到了 L,即Q1 = L,则检查堆栈中的所有记录,并删除所有比特估计序列长度小于或等于I的记录;然后,判断堆栈最大深度减去当前堆栈中的记录数量之差是否大于或等于2,如果是,则删除当前位于堆栈底部的那条记录;否则,执行后续步骤(3c); (3c)扩展堆栈中的候选比特估计序列在步骤(3b)中被弹出记录中的比特估计序列后添加一个O比特或一个I比特,得到两个新的长度为1+1的比特估计序列,接着分别计算这两个长度为1+1的比特估计序列的可靠性度量值; (3d)执行压栈操作以步骤(3c)中得到的长度为1+1的两个新比特估计序列及其各自的可靠性度量值为内容,生成两条新记录,并压入堆栈中;再按照可靠性度量值从大到小的顺序重新排列堆栈中的记录,以使位于堆栈顶部的记录具有最大可靠性度量值; (3e)判断是否停止搜索判断此时堆栈中是否已经没有任何记录,若是,则结束该步骤(3)的操作,执行后续步骤(4);否则,再判断位于堆栈顶部的记录中的比特估计序列的长度是否为N,若是,则将该记录弹出堆栈,该记录中存储的比特估计序列作为步骤(4)所需要的一个候选比特估计序列,并使序号为N的计数器的数值qN加I后,接着判断该序号为N的计数器数值qN是否已经等于或大于L,若是,则结束该步骤(3)的操作,执行后续步骤(4);否则,返回执行步骤(3a)。
9.根据权利要求I所述的方法,其特征在于所述步骤(3)中,采用列表译码时,L个候选比特估计序列是同时得到的;而采用堆栈译码时,L个候选比特估计序列是按照可靠性度量值从大到小的顺序逐一分别得到的。
10.根据权利要求8所述的方法,其特征在于采用堆栈译码方法时,能够将路径搜索步骤中的(3e)和步骤(4)的循环冗余校验结合起来,使得路径搜索过程能够提前结束,以降低计算复杂度;此时,执行的操作内容是循环冗余校验辅助下比特估计序列的选择若堆栈中已经没有任何记录,就停止译码,表明译码失败;如果位于堆栈顶部的记录中的比特估计序列的长度为N,则将该记录弹出堆栈,并使序号为N的计数器的数值%加I ;然后,对该比特估计序 列进行循环冗余校验;若校验值为零,则停止译码并输出该比特估计序列作为译码结果;若校验值不为零,且qN已等于或大于L,则停止译码,表明译码失败;否则,返回执行步骤(3a)。
全文摘要
一种循环冗余校验辅助的极化码译码方法,是对极化码进行译码时,在极化码所对应的码树上,从根节点到叶子节点、且其所对应比特估计序列的循环冗余校验值为零的所有路径中,采用列表或堆栈作为路径搜索的辅助,寻找其中可靠性度量值最大的一条路径,并输出该路径对应的比特估计序列作为译码结果。该方法的操作步骤包括根据搜索辅助方法确定参数,构造译码方法的辅助结构,搜索候选比特估计序列和执行循环冗余校验。本发明能大大提高采用极化码作为信道编码的通信系统的纠错能力,且其操作步骤比较简单,运算复杂度与WCDMA系统中使用Turbo码的编译码方法相当、甚至更低,因此该方法具有很好的实用化前景。
文档编号H04L1/00GK102694625SQ201210202279
公开日2012年9月26日 申请日期2012年6月15日 优先权日2012年6月15日
发明者牛凯, 陈凯 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1