首页 > 专利 > 北京交通大学 > 基于深度学习的极化码分区译码方法专利详情

基于深度学习的极化码分区译码方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2019-06-19
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2019-10-22
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2020-12-01
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2039-06-19
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201910532774.1 申请日 2019-06-19
公开/公告号 CN110278001B 公开/公告日 2020-12-01
授权日 2020-12-01 预估到期日 2039-06-19
申请年 2019年 公开/公告年 2020年
缴费截止日
分类号 H03M13/13 主分类号 H03M13/13
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 5
权利要求数量 6 非专利引证数量 0
引用专利数量 0 被引证专利数量 0
非专利引证
引用专利 被引证专利
专利权维持 3 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 北京交通大学 当前专利权人 北京交通大学
发明人 张建勇、徐想、张语晏 第一发明人 张建勇
地址 北京市海淀区西直门外上园村3号 邮编 100044
申请人数量 1 发明人数量 3
申请人所在省 北京市 申请人所在市 北京市海淀区
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
北京市商泰律师事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
黄晓军
摘要
本发明提供了一种基于深度学习的极化码分区译码方法。该方法包括:将待译码的极化码划分为多个子块,将各个子块依次串联连接,利用基于深度学习的神经网络译码器通过SC译码算法分别计算出每个子块的译码结果,将各个子块的译码结果按照顺序连接起来,得到所述待译码的极化码的译码结果。本发明通过将深度学习应用到码长较长的极化码译码中,且经过一次训练可以对任意码长任意码率的极化码进行译码,不再受到训练码长与码率与实际译码码长和码率必须相同的限制。本发明实施例的方法利用深度学习的计算优势,提高极化码SC译码算法的译码效率,从而提高通信系统的吞吐率。
  • 摘要附图
    基于深度学习的极化码分区译码方法
  • 说明书附图:图1
    基于深度学习的极化码分区译码方法
  • 说明书附图:图2
    基于深度学习的极化码分区译码方法
  • 说明书附图:图3
    基于深度学习的极化码分区译码方法
  • 说明书附图:图4
    基于深度学习的极化码分区译码方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2020-12-01 授权
2 2019-10-22 实质审查的生效 IPC(主分类): H03M 13/13 专利申请号: 201910532774.1 申请日: 2019.06.19
3 2019-09-24 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种基于深度学习的极化码分区译码方法,其特征在于,包括:
将待译码的极化码划分为多个子块,将各个子块依次串联连接;
利用基于深度学习的神经网络译码器通过SC译码算法分别计算出每个子块的译码结果;
将各个子块的译码结果按照顺序连接起来,得到所述待译码的极化码的译码结果;
所述的利用基于深度学习的神经网络译码器通过SC译码算法分别计算出每个子块的译码结果,包括:
根据各个子块的码长和信息位分别选择不同的深度学习模型来实现各个子块对应的神经网络译码器,使用训练集对神经网络译码器进行训练;
将训练好的各个子块对应的基于深度学习的神经网络译码器通过SC译码算法进行耦合,将所述待译码的极化码根据第一个子块的码长和信息位采用递归算法计算出所述第一个子块的LLR信息,将所述第一个子块的LLR信息作为所述第一个子块对应的基于深度学习的神经网络译码器NND1的输入,NND1输出所述第一个子块的译码结果;根据所述第一个子块的译码结果通过SC译码算法计算出第二个子块的LLR信息,将所述第二个子块的LLR信息作为所述第二个子块对应的基于深度学习的神经网络译码器NND2的输入,NND2输出所述第二个子块的译码结果;根据所述第二个子块的译码结果通过SC译码算法计算出第三个子块的LLR信息,将所述第三个子块的LLR信息作为所述第三个子块对应的基于深度学习的神经网络译码器NND3的输入,NND3输出所述第三个子块的译码结果;依此类推,直到得到所有子块的译码结果。

2.根据权利要求1所述的方法,其特征在于,所述的将待译码的极化码划分为多个子块,将各个子块依次串联连接,包括:
根据所述待译码的极化码的编码过程获取所述待译码的极化码的信息位位置,根据所述待译码的极化码的信息位位置将所述待译码的极化码划分为多个子块,保证每个子块的神经网络译码器的训练复杂度在实际可行的范围内,所有子块的码长总和等于所述待译码的极化码的码长,所有子块的信息位个数总和等于所述待译码的极化码的信息位个数;
将各个子块按照SC译码算法的顺序从左到右依次串联连接。

3.根据权利要求1所述的方法,其特征在于,所述的使用训练集对神经网络译码器进行训练,包括:
确定神经网络译码器的网络规模及各个参数,使用2k个码字作为训练集,将训练集码字调制,模拟信道传输添加干扰,模拟接收过程计算对数似然比LLR,将LLR传入神经网络译码器中,得出判决结果,根据判决结果与正确结果之间的误差来调整神经网络译码器的参数,通过训练集的迭代进行多次训练,直到神经网络译码器的参数趋于收敛时,神经网络译码器训练完成。

4.根据权利要求1所述的方法,其特征在于,所述的根据第一个子块的码长和信息位采用递归算法计算出所述第一个子块的LLR信息,包括:
第一个子块的LLR信息αl的计算公式如下:
s-1 s-1
αl[i]=sgn(α[i])sgn(α[i+2 ])min(|α[i]|,|α[i+2 ]|)
其中,s表示SC译码树的层数,α[i]表示SC译码树中αl所在节点的父节点包含的LLR信息,α[i+2s-1]表示SC译码树中αl所在节点的父节点包含的LLR信息。

5.根据权利要求4所述的方法,其特征在于,所述的根据所述第一个子块的译码结果通过SC译码算法计算出所述第二个子块的LLR信息,包括:
αr[i]=α[i+2s-1]+(1-2βl[i])α[i]
其中,αr表示SC译码树的右分支的LLR信息,它的计算需要根据父节点的LLR信息α和左分支节点的βl信息,而每个节点的β信息的计算需要该节点的左分支节点的β信息βl和右分支节点的β信息βr,按照SC译码算法的过程依次进行各个子块的译码。

6.根据权利要求1所述的方法,其特征在于,所述的方法还包括:
将待译码的极化码划分为多个子块时,各个子块的码长相等,各个子块的信息位个数分别为1,2,…,2i,i为子块的顺序编号;
根据各个子块的码长和信息位分别设计各个子块对应的基于深度学习的神经网络译码器,将各个子块对应的基于深度学习的神经网络译码器进行训练;
在译码时根据信息位的位置信息,计算每2ibits中信息位的比特数,将该比特数作为码率,在译码器选择模块中根据不同的码率选择对应的基于深度学习的神经网络译码器,将前一个子块的神经网络译码器的译码结果传输到下一个子块的神经网络译码器,直到完成所有子块的译码处理,将各个子块的译码结果按照顺序连接起来,得到所述待译码的极化码的译码结果。
说明书

技术领域

[0001] 本发明涉及信道编码技术领域,尤其涉及一种基于深度学习的极化码分区译码方法。

背景技术

[0002] 在信道编码方案中,极化码的编译码复杂度低,并且已经被严格证明能达到香农极限,因此,具有极高的研究意义。极化码一经提出,立刻受到了众多学者的关注,成为信息领域的研究热点。在近些年的研究中,极化码的译码算法主要有SC(Successive Cancelation,连续删除)译码算法、最大似然译码算法、线性规划译码算法及置信传播译码算法。其中,SC译码算法的复杂度最低,且被证明极化码在SC译码算法下可以达到香农极限,因此SC译码算法一直备受学者们的关注,如何改进SC译码算法是目前研究的重点。
[0003] 近年来,随着深度学习开源库的出现和计算能力的提升,深度学习发展迅猛。深度学习经过不断地发展与完善,如今在人工智能领域已经拥有了举足轻重的地位,在各个应用领域中都表现得十分出色,并且仍然具有广阔的应用前景。深度学习的并行分布式处理、学习及容错能力,在信号处理方面具有巨大的潜力。利用深度学习的计算优势,将其应用于信道译码领域,可以有效降低译码延时,提高通信系统的吞吐率。
[0004] 现有技术中的一种极化码的SC译码算法的方案为:对于参数为 的极化码,其中AC表示冻结比特集,信息序列 分为两部分,信息部分uA,即信息位,和固定比特部分 即冻结位。信息序列由信道WN传输后,输出 被译码器接收,且转移概率SC译码器根据 得出 的估计值
[0005] 按照接收的顺序依次进行判决,当i∈Ac时,ui是约定好的固定比特,所以判决到第i个元素时,直接令 此判决比特将用于后面比特的判决。当i∈A时,要基于接收到的和前面判决出的i-1个估计值 计算当 和 时的转移概率 最后通过判决函数来进行判决。各比特的判决规则为:
[0006]
[0007] 式(1-1)直观来说就是当i∈Ac时,判决的位置是冻结位,直接判决 当i∈A时,判决的位置是信息位,此时需要计算判决函数:
[0008]
[0009] 其中 和 的转移概率的比值为似然比(Likelihood Ratio,LR),表示为[0010]
[0011] 因此,信息比特的判决规则可以写成
[0012]
[0013] 接下来,给出极化信道的似然比的递归计算公式:
[0014]
[0015]
[0016] SC译码算法是单项传递的,不会再对估算值进行修正,因此SC算法的复杂性在很大程度上取决于LRs的计算复杂度。式(1-5)和式(1-6)表示,长度为N的LR计算可以递归为长度为N/2的两个LRs的计算,当LR递归至长度为1时停止。当N=1时,可以由信道转移概率直接计算出LR,即:
[0017]
[0018] 现有技术中的一种SC译码的译码过程示意图如图1所示,为一个参数分别为(8,5,{3,5,6,7,8},(0,0,0))的极化码SC译码的示意图,每个节点均具有两个标签,分别为该节点相对应的似然比和译码的顺序号。所有节点按照图1中标记的1到32的顺序进行译码。译码时,最左边的列为第一列,它需要计算长度等于8的似然比,左边第二列需要计算的似然比的长度等于4,第三列为2,第四列为1。按照图1中标注的译码顺序,译码是从判决节点1开始进行的,因此需要计算节点l的似然比 是根据节点2的似然比
和节点9的似然比 计算而得。节点2的似然比 是根据节点3的似然比
和节点6的似然比 计算而得。节点3的似然比 是根据用到节点4的似然
比 和节点5的似然比 计算而得。节点4和节点5的似然比可以直接计算,将其反向回溯计算,可以得到节点1的似然比,根据其正负来得出u1的估计值 若ui为冻结位,则直接判定, 类似地,可以得到全部的估计值。
[0019] 若极化码在编码时,生成矩阵GN经过了比特翻转处理,那么译码就可以到此为止,目前的结果可以直接输出。若编码时没有进行比特翻转,此时的译码结果顺序是错误的,必须要对得出的判决比特进行一次比特翻转计算,从而得到正确的比特顺序。
[0020] 上述现有技术中的极化码的SC译码算法的缺点为:在译码时需要按照接收比特的顺序依次进行译码,计算过程中需要递归计算,在具有冻结比特的分支上的计算在一定程度上会造成计算上的冗余,所以,该SC译码算法的计算速度不高。

发明内容

[0021] 本发明的实施例提供了一种基于深度学习的极化码分区译码方法,以克服现有技术的问题。
[0022] 为了实现上述目的,本发明采取了如下技术方案。
[0023] 一种基于深度学习的极化码分区译码方法,包括:
[0024] 将待译码的极化码划分为多个子块,将各个子块依次串联连接;
[0025] 利用基于深度学习的神经网络译码器通过SC译码算法分别计算出每个子块的译码结果;
[0026] 将各个子块的译码结果按照顺序连接起来,得到所述待译码的极化码的译码结果。
[0027] 优选地,所述的将待译码的极化码划分为多个子块,将各个子块依次串联连接,包括:
[0028] 根据所述待译码的极化码的编码过程获取所述待译码的极化码的信息位位置,根据所述待译码的极化码的信息位位置将所述待译码的极化码划分为多个子块,保证每个子块的神经网络译码器的训练复杂度在实际可行的范围内,所有子块的码长总和等于所述待译码的极化码的码长,所有子块的信息位个数总和等于所述待译码的极化码的信息位个数;
[0029] 将各个子块按照SC译码算法的顺序从左到右依次串联连接。
[0030] 优选地,所述的利用基于深度学习的神经网络译码器通过SC译码算法分别计算出每个子块的译码结果,包括:
[0031] 根据各个子块的码长和信息位分别选择不同的深度学习模型来实现各个子块对应的神经网络译码器,使用训练集对神经网络译码器进行训练;
[0032] 将训练好的各个子块对应的基于深度学习的神经网络译码器通过SC译码算法进行耦合,将所述待译码的极化码根据第一个子块的码长和信息位采用递归算法计算出所述第一个子块的LLR信息,将所述第一个子块的LLR信息作为所述第一个子块对应的基于深度学习的神经网络译码器NND1的输入,NND1输出所述第一个子块的译码结果;根据所述第一个子块的译码结果通过SC译码算法计算出所述第二个子块的LLR信息,将所述第二个子块的LLR信息作为所述第二个子块对应的基于深度学习的神经网络译码器NND2的输入,NND2输出所述第二个子块的译码结果;根据所述第二个子块的译码结果通过SC译码算法计算出所述第三个子块的LLR信息,将所述第三个子块的LLR信息作为所述第三个子块对应的基于深度学习的神经网络译码器NND3的输入,NND3输出所述第三个子块的译码结果;依此类推,直到得到所有子块的译码结果。
[0033] 优选地,所述的使用训练集对神经网络译码器进行训练,包括:
[0034] 确定神经网络译码器的网络规模及各个参数,使用2k个码字作为训练集,将训练集码字调制,模拟信道传输添加干扰,模拟接收过程计算对数似然比LLR,将LLR传入神经网络译码器中,得出判决结果,根据判决结果与正确结果之间的误差来调整神经网络译码器的参数,通过训练集的迭代进行多次训练,直到神经网络译码器的参数趋于收敛时,神经网络译码器训练完成。
[0035] 优选地,所述的根据第一个子块的码长和信息位采用递归算法计算出所述第一个子块的LLR信息,包括:
[0036] 第一个子块的LLR信息αl的计算公式如下:
[0037] αl[i]=sgn(α[i])sgn(α[i+2s-1])min(|α[i]|,|α[i+2s-1]|)
[0038] 其中,s表示SC译码树的层数,α[i]表示SC译码树中αl所在节点的父节点包含的LLR信息,α[i+2s-1]表示SC译码树中αl所在节点的父节点包含的LLR信息。
[0039] 优选地,所述的根据所述第一个子块的译码结果通过SC译码算法计算出所述第二个子块的LLR信息,包括:
[0040] αr[i]=α[i+2s-1]+(1-2βl[i])α[i]
[0041]
[0042] 其中,αr表示SC译码树的右分支的LLR信息,它的计算需要根据父节点的LLR信息α和左分支节点的βl信息,而每个节点的β信息的计算需要该节点的左分支节点的β信息βl和右分支节点的β信息βr。按照SC译码算法的过程依次进行各个子块的译码。
[0043] 优选地,所述的方法还包括:
[0044] 将待译码的极化码划分为多个子块时,各个子块的码长相等,各个子块的信息位i个数分别为1,2,…,2,i为子块的顺序编号;
[0045] 根据各个子块的码长和信息位分别设计各个子块对应的基于深度学习的神经网络译码器,将各个子块对应的基于深度学习的神经网络译码器进行训练;
[0046] 在译码时根据信息位的位置信息,计算每2ibits中信息位的比特数,将该比特数作为码率,在译码器选择模块中根据不同的码率选择对应的基于深度学习的神经网络译码器,将前一个子块的神经网络译码器的译码结果传输到下一个子块的神经网络译码器,直到完成所有子块的译码处理,将各个子块的译码结果按照顺序连接起来,得到所述待译码的极化码的译码结果。
[0047] 由上述本发明的实施例提供的技术方案可以看出,本发明实施例通过将深度学习应用到码长较长的极化码译码中,且经过一次训练可以对任意码长任意码率的极化码进行译码,不再受到训练码长与码率与实际译码码长和码率必须相同的限制。本发明实施例的方法利用深度学习的计算优势,提高极化码SC译码算法的译码效率,从而提高通信系统的吞吐率。
[0048] 本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

实施方案

[0054] 下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0055] 本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
[0056] 本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
[0057] 为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
[0058] 本发明实施例根据极化码的基本原理可知,对于码长N=2n,信息位为k的极化码,码率为R=k/N,可以看作是由两个长度为N/2的极化码串联而得。极化码的编码过程概括来说就是找到k个最可靠的极化信道来传输信息位,其余N-k个最不可靠的信道来传输冻结位,通常将冻结位设置为0。以一个N=8,k=4的极化码为例,编码后的码字 经过调制进入噪声信道传输,噪声信道输出的 为极化码译码器的输入。
[0059] 根据输入 前面的判决比特 和冻结位的位置AC,得到每个比特的估计值判决规则为:若该比特为冻结位,直接判决为0;若该比特为信息位,当最大似然比大于等于0时,判决为1,小于0时,判决为0。
[0060] 译码器的输入为N比特的LLR信息,首先根据式(2-1)一直计算到第一个子块的LLR信息α,将此信息作为NND1的输入,将第一分区的译码结果根据式(2-3)进行处理,此处需要特别注意,第一分区的译码结果并不是经过一次式(2-3)中的运算,而是一个递归计算的过程。然后根据SC译码算法的计算过程直到计算出第二分区的LLR信息α,将此信息作为NND2的输入,得到第二分区译码结果后,继续上述过程,直到所有子块全部完成译码。
[0061] 1.分区神经网络译码器
[0062] 根据所述待译码的极化码的编码过程获取所述待译码的极化码的信息位位置,根据所述待译码的极化码的信息位位置将所述待译码的极化码划分为多个子块,保证每个子块的神经网络译码器的训练复杂度在实际可行的范围内,所有子块的码长总和等于所述待译码的极化码的码长,所有子块的信息位个数总和等于所述待译码的极化码的信息位个数;
[0063] 将各个子块按照SC译码算法的顺序从左到右依次串联连接。各子块码长和信息位个数选择不是固定的,越长越好,但是因为信息位个数增加时,神经网络译码器的训练集(为2k个全部可能的码字)会呈指数增长,导致难以实现训练,所以需要在硬件条件允许的情况下尽量增加每个子块的长度。
[0064] 将传统的SC译码算法进行分区,各个分区使用神经网络译码器,然后再将各子块进行串联,在本发明实施例中将这种译码器称为PNND(Partitioned Neural Network Decoder,分区神经网络译码器)。本发明实施例提供的一种具有两个分区的PNND的示意图如图2所示,在图2中所示的两个分区的码树结构中,按照SC译码的步骤,先计算出左边的子节点的含有2n-1bits的LLR(Log Likelihood Ratio,对数似然比)信息α,然后使用NND1进行该分支的译码,译码得出的估计值 经过式(2-4)处理后传回第n层的节点中,再利用式(2-3)计算出右边的子节点的含有2n-1bits的LLR信息α,再使用NND2进行右边分支的译码,得到估计值 从而得到所有的估计值:
[0065] 包含比特码字的信息,这两种信息分别为:含有2s比特的LLR值的软信息,记作α。由一个节点的α向下一层计算左右两个分支的α需要不同的计算方式,左分支的αl见式(2-
1)和(2-2),式中的α[i]与α[i+2s-1]的意义为:将α分为按原顺序等长的两个向量,两个向量s-1
中的相同的位置;例如,α=[0,1,1,1],此时s=2,则当i=0时,α[i]与α[i+2 ]分别为:α[0]=0,α[2]=1;当i=1时,α[i]与α[i+2s-1]分别为:α[1]=1,α[3]=1。
[0066] 右分支的αr的计算方式见式(2-3),即当左分支的β信息的相应位置βl[i]=0时,αr[i]=α[i+2s-1]+α[i];当βl[i]=1时,αr[i]=α[i+2s-1]-α[i]。
[0067] αl[i]=sgn(α[i])sgn(α[i+2s-1])min(|α[i]|,|α[i+2s-1]|)   (2-1)[0068] αr[i]=α[i+2s-1]+(1-2βl[i])α[i]   (2-2)
[0069]
[0070] 其中,2s比特码字的硬比特估计值,记作β,计算公式为式(4-4)。β的前半段为βl与βr的模2加,后半段直接为βr。例如βl=[0,1,1,0],βr=[1,0,1,1],则β=[1,1,0,1,1,0,1,1]。
[0071] 其中,αl[i],αr[i]中的分别表示相对于父节点的左右两个节点的信息,βl[i],βr[i]同理。并且β[i]被称为部分和。
[0072] 上述为一个具有两个分区的PNND的计算原理,在对极化码进行分区时可以根据具体需要进行灵活的分区,各个子块也可以不在码树的同一层中。实现PNND的算法过程为:
[0073]
[0074]
[0075] 以码长N=128,码率R=0.5的极化码为例,实现上述PNND,对于码长N=128,码率R=0.5的极化码的PNND的结构,本发明实施例提供的一种将PNND分为四个子块进行译码的示意图如图3所示。
[0076] 具体的实现过程如下:
[0077] (1)确定信息位与冻结位所在位置。
[0078] 使用统一的方式确定出信息位所在位置,通常为通过计算巴氏参数Z(W)来选择巴氏参数最大的k个最佳信道来传送信息比特,其余信道传送冻结比特。经过计算得到的信息位信息A,此处为了方便展示将信息位信息A表示为一个8×16的矩阵,记为B,第i行表示1≤i≤16,则
[0079]
[0080] (2)根据信息位的个数将码字分区。
[0081] 在一定的训练复杂度下,对极化码分区,使各子块的码字长度可以实现神经网络译码。根据(1)中计算出的信息位位置信息矩阵B,在一定的训练复杂度的条件下,将码长N=128,码率R=0.5的极化码的译码分为四个子块进行,第一个子块为码长N=64,信息位个数k=15的极化码,第二个子块为码长N=32,信息位个数k=18的极化码,第三个子块为码长N=16,信息位个数k=15的极化码,第四个子块码长N=16,信息位个数k=16的极化码,四个子块需要分别对其设计适当的神经网络译码器来对其进行译码。
[0082] (3)为每一个子块设计不同的NND,对各译码器进行训练。根据各个子块的码长和信息位分别设计各个子块对应的基于深度学习的神经网络译码器,将各个子块对应的基于深度学习的神经网络译码器进行训练。可以选择不同的深度学习模型来实现神经网络译码器,设计模型的网络规模及各个参数,使用2k个全部可能的码字作为训练集,将训练集码字调制,模拟信道传输添加干扰,模拟接收过程计算LLR,最后将LLR传入神经网络译码器中,得出判决结果,根据判决结果与正确结果之间的误差来调整网络中的参数,通过训练集的迭代,基于深度学习的神经网络译码器的误码性能越来越好,直到趋于收敛时训练完成。
[0083] (4)将训练好的NND通过SC译码算法进行耦合,利用基于深度学习的神经网络译码器通过SC译码算法分别计算出每个子块的译码结果。
[0084] 译码器的输入为N比特的LLR信息,首先根据式(2-1)一直计算到第一个子块的LLR信息α,将此信息作为NND1的输入,将第一分区的译码结果根据式(2-3)进行处理,此处需要特别注意,第一分区的译码结果并不是经过一次式(2-3)中的运算,而是一个递归计算的过程。然后根据SC译码算法的计算过程直到计算出第二分区的LLR信息α,将此信息作为NND2的输入,得到第二分区译码结果后,继续上述过程,直到所有子块全部完成译码。
[0085] (5)各分区的译码结果按照顺序连接起来得到最终的译码结果,将各个子块的译码结果按照顺序连接起来,得到所述待译码的极化码的译码结果。
[0086] 2.定长分区的分区神经网络译码器
[0087] 为了对不同码长不同码率的极化码通用,在对极化码分区时各个分区采用固定的长度,本发明实施例提供的一种定长分区的PNND的基本结构如图4所示。其中NND1,NND2,…,NND2i分别代表码长为2ibits,信息位分别为1,2,…,2i的神经网络译码器。在译码树的第i层开始采用神经网络译码,此时的LLR信息为2ibits,也就是说要对码长为2i的极化码进行译码,因此需要对码长为2i,信息位为1至2i的极化码分别设计神经网络译码器,并预i先训练好,在译码时根据信息位的位置信息,计算每2bits中信息位的比特数,即码率,在译码器选择模块中根据不同的码率选择适当的NND。另外,当全部为冻结比特时,直接输出全0码字。各分区间并不是独立的,当每个分区的神经网络译码器译码完成后,要将译码结果返回至第i层节点中,并根据式(2-3)进行处理后继续向上传递到父节点中。
[0088] 本发明实施例的定长分区的PNND的译码算法过程为:
[0089]
[0090]
[0091] (1)根据极化码的码长N和信息位个数k计算出每2i比特码字的码率
[0092] (2)定义变量L=N
[0093] (3)根据式(2-3)定义任意层数通用的比特转换函数trans(x);
[0094] (4)若此时L=2i+1,即此时L等于两倍的定长分区的长度,此时利用当前节点的α信息计算左分支的α信息αl,将其传入与码率匹配的基于深度学习的神经网络译码器中,得到译码结果,将该结果经过trans(x)后得到该左分支节点的β信息,然后当前节点的α信息与左分支的β信息计算出右分支的α信息αr,并将其传入与码率匹配的基于深度学习的神经网络译码器中,得出两个子块判决结果。
[0095] 若此时L大于两倍的定长分区的长度,此时需要继续左分支的α信息αl的计算,将αl作为α递归执行(4),直到L=2i+1,得到两个子块的译码结果。然后,逐层跳出递归过程,每一层中利用父节点α信息与左分支的β信息计算右分支的α信息αr,将αr作为α信息递归执行i+1(4),直到L=2 ,得到两个子块的译码结果。
[0096] (5)最后,将各个子块的译码结果依次连接,得到最终的译码结果。
[0097] 综上所述,本发明实施例提供的基于深度学习的极化码分区译码方法是在SC译码算法的基础上,对极化码进行分区译码,各个分区利用神经网络译码器译码,分区间利用SC译码算法耦合。其中各个子块使用NND进行译码,深度学习模型经过训练后是静态的,译码时只需通过神经网络中参数的处理,不需要递归计算,且深度学习可以实现分布式并行计算,在计算速度方面具有强大的优势。因此,本发明的方法可以降低SC译码算法的译码延时,提高极化码的译码效率,从而提升整个通信系统的吞吐率。并且当i的值越大,即每个分区的码长越长时,能够越有效地提高整个译码器的译码速度。
[0098] 本发明实施例可以将深度学习应用到码长较长的极化码译码中,且经过一次训练可以对任意码长任意码率的极化码进行译码,不再受到训练码长与码率与实际译码码长和码率必须相同的限制。
[0099] 本发明实施例的方法利用深度学习的计算优势,提高极化码SC译码算法的译码效率,从而提高通信系统的吞吐率。本发明解决了神经网络译码器在适用码长方面的限制,本发明实施例中的方案经过一次训练,可以将基于深度学习的译码器应用到任意码长任意码率的译码过程中。
[0100] 本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0101] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0102] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0103] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

附图说明

[0049] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0050] 图1为现有技术中的一种SC译码的译码过程示意图;
[0051] 图2为本发明实施例提供的一种具有两个分区的PNND的示意图;
[0052] 图3为本发明实施例提供的一种将PNND分为四个子块进行译码的示意图;
[0053] 图4为本发明实施例提供的一种定长分区的PNND的基本结构示意图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号