一种极化码的球形译码方法转让专利

申请号 : CN201610890295.3

文献号 : CN106452675B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李立欣谢文姣马旋朱梦高昂李旭张会生

申请人 : 西北工业大学

摘要 :

本发明提供了一种极化码的球形译码方法,采用将初始化球心搬移至发送序列附近的策略,可有效缩减搜索范围。此外本发明采用删枝策略,以此避免不必要的路径搜索,加快收敛速率,降低算法译码复杂度。本发明先采用SC译码得到较接近发送序列的比特序列,并以此为初始化球心,可有效缩减搜索范围,大大降低传统SD的盲目性;本发明优先检测具有高概率量度的分支,采用变化的半径和概率量度共同作为限定条件删除不必要的分支,使球心以更快的收敛速率收敛至接收序列,在保证译码性能的同时进一步降低了算法译码复杂度,更适合实际应用。

权利要求 :

1.一种极化码的球形译码方法,其特征在于包括下述步骤:(1)假设极化码的码长为N、信息位个数为K,1≤K≤N;采用SC译码算法对接收序列y=(y1,y2,...,yN)进行译码,将得到的译码序列 对应的码字 作为长度为N的初始球心,并将初始球心与接收序列y之间的欧氏距离 作为初始半径的平方r2,其中,1N表示长度为N的全1向量,为根据高斯近似方法从生成矩阵G中选取的K×N的子矩阵;将初始球心和初始半径对应的球外的码字全部删除;计算初始球心所对应的概率度量值(2)挑选出除初始球心以外的K条信息序列,将一条信息序列视为一条路径,则此K条路径的深度分别为1 ,2 ,… ,K;依次计算K条路径与接收序列y的欧氏距离其中, 表示从第N比特到第l比特,深度为(N-l+1)的路径;分别计算幸存路径的概率度量值 并按值降序排列后压入栈内;

(3)将栈顶路径 出栈;若该路径深度为K,则将该路径对应码字与接收序列间的欧氏距离 与r2比较,若 则更新半径 其中,gjt是生成矩阵G第j行第t列元素;同时更换新的球心序列 和新的概率度量值并转至步骤(6);若栈顶路径深度不为K,则转至步骤(4);

(4)将目前路径 扩展为两个新的路径 并计算每个路径的欧氏距离 两个新的路径分别为(0,ul,ul+1,…,uK)和(1,ul,ul+1,…,uK);

(5)检测扩展得到的两条新路径,将同时满足条件 和 的路径入栈,不符合条件的直接删除;

(6)检查此时栈是否为空,若栈不为空,则继续执行步骤(7),若为空,则输出最终译码结果 译码结束;

(7)将此时栈中存储的路径按PM值降序排列,并转向步骤(3)。

说明书 :

一种极化码的球形译码方法

技术领域

[0001] 本发明涉及一种极化码的译码方法,尤其设计一种极化码的球形译码(Sphere Decoding,SD)方法,属于信道编码领域。

背景技术

[0002] 极化码(polar codes)是由Arikan Erdal提出的一种具有较低编译码复杂度的信道编码技术,且是现有可证明的唯一一种在二进制输入离散无记忆信道下能够达到香农极限的码。然而在码长有限时,极化码的SC(Successive Cancellation)译码的错误传播使其译码性能低于现有LDPC码。针对这个问题,一些基于SC译码算法的改进算法被陆续提出,包括SCL(Successive Cancellation List)译码算法、SCS(Successive Cancellation Stack)译码算法和基于CRC(Cyclic Redundancy Check)辅助的SC译码算法等。然而,所有这些基于SC译码算法的衍生算法在有限码长时性能依旧欠佳,尤其在低信噪比环境下与最优的最大似然译码(MLD)算法相比有着较大的性能差距。
[0003] Sinan Kahraman在“Code Based Efficient Maximum-Likelihood Decoding of Short Polar Codes”一文中首次将空时块码的球形译码(SD)思想中长度优先的搜索机制应用于极化码的译码算法中。所谓长度优先即优先搜索路径较长的序列。对于码长为N、信息位个数为K的极化码,在球形译码初始化阶段,将一个全零序列 对应的码字 作为初始化球心(其中, 为根据高斯近似方法求得的K×N的生成矩阵),将球心与接收序列之间的均方欧氏距离(Square Euclidean Distance,SED)作为初始化半径。译码过程实际是在球内按照长度优先的策略寻找是否具有更小SED的码字全长序列:如果有,将该全长码字设置为新的球心,倘若没有,则输出当前长度为N的球心所对应的长为K的信息序列为译码结果。这种长度优先的搜索策略在搜索过程中只考虑了路径长度这个单一信息,而忽略了接收序列带来的影响。这种盲目的更换球心的尝试步骤导致译码复杂度较高,不适用于实际应用。

发明内容

[0004] 为了克服现有技术的不足,本发明提供一种改进的极化码球形译码方法,初始化球心不再是全零码字,而使其尽可能接近接收序列。初始化球心之后,计算该球心对应的初始球半径。显而易见,这样的一个初始化的球型范围是包含在传统算法的初始球内的,即新方法不再需要搜索传统算法的2K个码字,因此可以避免大量的码字搜索步骤。此外,为了进一步缩减译码复杂度,本发明还引入了概率度量的概念来描述任意长路径成为最优解的可能性。进而提出了基于概率度量的删枝策略。通过删枝能使球心以更快的速率收敛至接收序列,而不是用长度优先策略盲目搜索。仿真结果表明,本发明在误块率性能与最大似然译码算法相同的情况下大大降低译码复杂度。
[0005] 本发明解决其技术问题所采用的技术方案包括以下步骤:
[0006] (1)假设极化码的码长为N、信息位个数为K,1≤K≤N;采用SC译码算法对接收序列y=(y1,y2,...,yN)进行译码,将得到的译码序列 对应的码字 作为长度为N的初始球心,并将初始球心与接收序列y之间的欧氏距离
作为初始半径的平方r2,其中,1N表示长度为N的全1向量,为根据高斯近似方法从生成矩阵G中选取的K×N的子矩阵;将初始球心和初始半径对应的球外的码字全部删除;计算初始球心所对应的概率度量值
[0007] (2)挑选出除初始球心以外的K条信息序列,将一条信息序列视为一条路径,则此K条路径的深度分别为1,2,…,K;依次计算K条路径与接收序列y的欧氏距离其中, 表示从第N比特到第l比特,深度为(N-l+1)的路径;分别计算幸存路径的概率度量值 并按值降
序排列后压入栈内;
[0008] (3)将栈顶路径 出栈;若该路径深度为K,则将该路径对应码字与接收序列间的欧氏距离 与r2比较,若 则更新半径其中,gjt是生成矩阵G第j行第t列元素;同时更换新的球心序列 和新的概率度量值并转至步骤(6);若栈顶路径深度不为K,则转至步骤(4);
[0009] (4)将目前路径 扩展为两个新的路径 并计算每个路径的欧氏距离 两个新的路径分别为(0,ul,ul+1,…,uK)和(1,ul,ul+1,…,uK);
[0010] (5)检测扩展得到的两条新路径,将同时满足条件 和 的路径入栈,不符合条件的直接删除;
[0011] (6)检查此时栈是否为空,若栈不为空,则继续执行步骤(7),若为空,则输出最终译码结果 译码结束;
[0012] (7)将此时栈中存储的路径按PM值降序排列,并转向步骤(3)。
[0013] 本发明的有益效果是:传统的球形译码初始化球心为全零序列,而本发明先采用SC译码尽可能得到接近发送序列的球心码字序列,并以此为作为初始化球心,通过球心的设置,可以大幅度缩减搜索范围,大大降低传统球心译码算法传统的SD按照长度优先的方式访问2K个序列的盲目性。此外,本发明还优先检测具有高概率量度(probability measurement)的分支,采用变化的半径和概率量度共同作为限定条件删除不必要的分支,使球心以更快的收敛速率收敛至接收序列,在保证译码性能的同时进一步降低了算法译码复杂度,更适合实际应用。

附图说明

[0014] 图1是本发明的译码流程图;
[0015] 图2是采用SC译码的(8,5)极化码的一个码树示例图;
[0016] 图3是本发明球形译码算法初始阶段除球心外的K条路径示意图;
[0017] 图4是传统SD与本发明SD误块率性能对比仿真图;
[0018] 图5是传统SD与本发明SD译码复杂度对比仿真图。

具体实施方式

[0019] 下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。
[0020] 对于码长为N,信息位个数为K的极化码,由于极化码生成矩阵的下三角特性,本发明球形译码算法采用倒序译码方式,按照N→N-1→...→1的顺序译码。本发明用表示从第N比特到第l比特,深度为(N-l+1)的路径。采用本发明SD算法进行译码的步骤如下:
[0021] (1)假设极化码的码长为N、信息位个数为K,其中1≤K≤N。该方案优先采用SC译码算法对已知的接收到序列y=(y1,y2,…,yN)进行译码,将得到的译码序列 对应的码字作为长度为N的初始球心,并将初始球心与接收序列y之间的欧氏距离(SED值)作为初始半径的平方r2。将欧式距离大于初始球半径的路径全部删除,也就是说,在初始球内的路径才能参与后续的路径扩展操作。后续的译码将在此初始化的球内进行搜索,球外的码字全部删除。此外,还需计算初始球心所对应的概率度量值将值存储,作为后续译码中路径删除的参考值。其中,1N表示长
度为N的全1向量, 为根据高斯近似方法从生成矩阵G中选取的K×N的子矩阵。
[0022] (2)挑选出除初始球心以外的K条信息序列,此K条路径的深度分别为1,2,…,K(倘若将这K条序列全展开,可以得到K层、2K个分支的完整码树)。接着,依次计算K条路径与接收序列y的SED值 其中, 表示从第N比特到第l比特,深度为(N-l+1)的路径(长度为1到K的K条序列的l值从K取到1)。最后,分别计算幸存路径的概率度量值 并按值降序排列后压入栈内,即概率度
量(PM)值最小的路径最先入栈,也就是说,最有可能成为最优解的路径将优先参与接下来的路径扩展操作;
[0023] (3)将栈顶路径 出栈。若该路径深度为K(即l=1),计算该路径序列对应码字与接收序列间的SED值 并与r2比较,若 则更新半径其中,gjt是矩阵G第j行第t列元素。同时更换新的球
心序列 和新的概率度量值 并转至步骤(6);若栈顶路径深度不为K,则转至步骤(4);
[0024] (4)将目前路径 扩展为 并计算每个路径的SED值
[0025] 其具体扩展方式为:将路径 扩展为两个新的路径(0,ul,ul+1,…,uK)和(1,ul,ul+1,…,uK)。
[0026] (5)检测扩展得到的两条新路径,将同时满足条件 和 的路径入栈,不符合条件的直接删除;
[0027] (6)检查此时栈是否为空,若栈不为空,则继续执行步骤(7),若为空,则输出最终译码结果 译码结束;
[0028] (7)将此时栈中存储的路径按PM值降序排列,并转向步骤(3),并计算新入栈路径对应码字与接收序列间的SED值。
[0029] 以码长N=8,信息位K=5的极化码为例,本发明提出的球形译码算法流程如图1所示,具体步骤如下:
[0030] 第一步:初始化阶段
[0031] 采用SC译码算法对已知接收序列y=(y1,y2,...,yN)进行译码,现假定得到的译码序列为 其码树结构如图2所示,则初始化球形译码的球心为序列 对应的码字 初始化半径为 同时存储序列 对应的路径度量
值PM,且有
[0032]
[0033]
[0034] 其中1≤l≤5,18表示长度为8的全1向量,为根据高斯近似方法从生成矩阵G中选取的5×8的子矩阵,且 表示F的3倍克罗内克积,是一个下三角矩阵。
[0035] 第二步:待扩展路径选取
[0036] 挑选出除初始球心所对应的信息序列外的5条深度分别为1,2,…,5的路径序列(如图3所示),计算5条路径对应的SED值 并将其与初始半径 比较,挑选出SED值小于初始半径的路径,删除其余路径。分别计算符合条件路径的PM值,并按PM值降序排列,将其依此压入栈中,PM值最小的路径最先入栈,以此类推,直到所有符合条件的路径均入栈完成。其中SED值和PM值计算公式分别如下:
[0037]
[0038]
[0039] 第三步:判断路径长度
[0040] 栈顶路径(即PM值最大路径) 出栈,检测该路径深度是否为5:若栈顶路径深度为5(即l=1),则计算该路径序列对应码字与接收序列间的SED值 并与r2比较,若则更新半径 其中,gjt是矩阵G第j行第t列
元素。同时存储新的球心序列 和新的路径度量值 并直接转向第六步;若栈顶路径深度不为5,则继续执行第四步路径扩展。
[0041] 第四步:路径扩展
[0042] 将目前路径 扩展为两个新的路径(0,ul,ul+1,…,u5)和(1,ul,ul+1,…,u5),并按公式(3)计算每个路径的
[0043] 第五步:入栈
[0044] 检测扩展得到的两条新路径,将同时满足条件 和 的路径入栈,不符合条件的直接删除。
[0045] 第六步:检测
[0046] 检查此时栈内是否为空,若为空,则输出最终译码结果 结束译码;若不为空,则继续执行排序操作。
[0047] 第七步:排序
[0048] 将此时栈中存储的路径按PM值降序排列,并重复步骤三到七,直到译码结束。
[0049] 由图4、图5可知,本发明提出的极化码球形译码算法,的确可以保证在译码误块率与最大似然译码相同的情况下大大降低译码复杂度。