一种基于多门限的Polar码SC-FLIP译码方法、设备及存储设备转让专利

申请号 : CN201911203284.3

文献号 : CN111082813B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈明康王家豪罗杰陈振兴卢春华

申请人 : 中国地质大学(武汉)

摘要 :

本发明提供了一种基于多门限的Polar码SC‑FLIP译码方法、设备及存储设备,其方法通过翻转Polar码中译码容易出错的译码位置的译码值,针对错误位置的LLR值与正确位置的LLR值明显的差异对SC译码容易出错的位置设置多个门限,对相应译码位置LLR值低于门限的译码值进行翻转,提升SC译码的误码性能;同时提供一种基于多门限的Polar码SC‑FLIP译码设备及存储设备,用于实现基于多门限的Polar码SC‑FLIP译码方法。本发明的有益效果是:通过对每个容易出错的信息比特设置独立的门限,将容易出错的位置的译码值进行翻转,有效提升译码的性能,同时能够在相同的误码性能下,降低算法复杂度;针对SC‑FLIP低信噪比时算法复杂度大的问题进行优化,本发明的算法复杂度和误码率都优于传统SC‑FLIP译码算法。

权利要求 :

1.一种基于多门限的Polar码SC‑FLIP译码方法,应用于多门限比特翻转SC译码算法SC‑FLIP的通信译码过程中,SC‑FLIP包括统计模块、译码模块、CRC模块和翻转译码模块;其特征在于:所述译码算法针对通信译码过程中每个出错的位置设立独立的门限;

所述一种基于多门限的Polar码SC‑FLIP译码方法,包括以下步骤:S101:统计模块通过统计仿真环境下每次译码的LLR值得出SC译码出错的位置,根据每个错误位置的LLR值与对应位置译码正确时的LLR概率密度函数计算得出该位置LLR值的门限λi;λi的集合为门限集α,根据α实际译码修复错误个数进行排序,得到排序后的门限集合β;其中,i为译码错误位置的索引;具体包括:S201:在同一仿真条件下,通过蒙特卡洛方法统计SC译码算法译码错误时首个错误位置的LLR值和对应位置译码正确时的LLR值,得到多个错误位置,且每个错误位置都对应有多个译码正确时的LLR值和多个译码错误时该位置为首个错误位置时的LLR值;

S202:通过MATLAB对S201中统计得到的LLR值分别进行统计,得到每个错误位置LLR值的概率分布点和译码正确时的该位置LLR值的概率分布点,其中每个错误位置LLR值为本次译码的首个译码错误时的LLR值;

S203:通过MATLAB分别对步骤S202中得到的两组LLR值的概率分布点进行拟合,得到各个错误位置对应的两条概率密度函数FCi(x)和FEi(x);

对于每个错误位置的FCi(x)和FEi(x),求得FCi(x)和FEi(x)的交点,并将交点的横坐标作为该错误位置的门限λi;i为对应错误位置的索引;

将所有错误位置的门限λi的集合作为门限集α;门限集α加入SC‑FLIP方法中进行译码,并统计每个门限实际修正的错误译码个数,进而根据每个门限实际修正的错误译码个数从大到小对门限集α中的所有门限进行排序,得到排序后的门限集合β;

S102:将门限集β加入SC‑FLIP方法中,作为衡量SC‑FLIP方法翻转的标准,并采用加入门限集β的SC‑FLIP方法进行译码;

S103:若译码成功,即SC译码能够成功通过CRC模块的CRC校验,那么SC‑FLIP方法与SC译码算法译码步骤完全相同,即采用译码模块进行正常译码,并到步骤S105;

S104:若译码失败,即SC译码不能够通过CRC模块的CRC校验,则进入翻转译码模块:将门限集β中的各个位置的门限值与译码中对应位置的LLR值进行比较;若LLR值小于对应门限值,则将出错位置的译码值进行翻转,每次译码按照门限集β中门限值的排列顺序依次进行翻转,且每次译码只翻转一个错误位置的译码值,直至译码结果能够通过CRC模块的校验或者累计翻转次数达到最大翻转次数;

S105:本次译码结束。

2.如权利要求1所述的一种基于多门限的Polar码SC‑FLIP译码方法,其特征在于:步骤S101中,所述仿真环境为根据实际通信环境建立的仿真通信环境。

3.如权利要求1所述的一种基于多门限的Polar码SC‑FLIP译码方法,其特征在于:步骤S201中,统计LLR值的方式是针对译码正确和译码错误分别统计;如果SC译码能够成功译码,则将每个信息比特的LLR值全部统计,并放入对应正确位置数组中;如果SC译码失败,则将第一个错误位置的LLR值放入对应错误位置数组中,即每次只记录首个译码错误位置的LLR值。

4.如权利要求1所述的一种基于多门限的Polar码SC‑FLIP译码方法,其特征在于:步骤S104中,将译码中出错位置的LLR值与门限集β中的对应位置的门限值进行比较;若LLR值小于对应门限值,则将该出错位置的译码值进行翻转,每次译码按照门限集β中门限值的排列顺序依次进行翻转,且每次译码只翻转一个位置的译码值,直至译码结果能够通过CRC模块的校验或达到最大翻转译码次数,具体为:S301:根据门限集β中的位置顺序所对应的门限值,与译码时对应位置的LLR值进行比较;

S302:若LLR值小于对应门限值,则到步骤S303;否则到步骤S304;

S303:将该出错位置的译码值进行翻转,并再次进行译码;若译码通过,则结束翻转,到步骤S305;否则,将该位置的译码值还原,并将累计翻转次数T加1,到步骤S304;

S304:继续按照门限集β中的门限对应的位置顺序比较下一个译码出错位置的LLR值和对应的门限值;若LLR值小于对应门限值,则返回步骤S303;否则,判断是否所有错误位置都进行了比较;若是,则到步骤S305;否则,继续执行步骤S304;

S305:结束。

5.如权利要求4所述的一种基于多门限的Polar码SC‑FLIP译码方法,其特征在于:步骤S304中,定义译码最大翻转次数为Tmax,若累计翻转次数T=Tmax或所有错误位置都进行了比较,且仍无法通过CRC模块的CRC校验,则认为本次译码无法通过SC‑FLIP方法译码,可采用其他方法进行译码,以防止译码复杂度过大。

6.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质存储指令及数据用于实现权利要求1~5任意一项所述的一种基于多门限的Polar码SC‑FLIP译码方法。

7.一种基于多门限的Polar码SC‑FLIP译码设备,其特征在于:包括:处理器及存储设备;所述处理器加载并执行存储设备中的指令及数据用于实现权利要求1~5任意一项所述的一种基于多门限的Polar码SC‑FLIP译码方法。

说明书 :

一种基于多门限的Polar码SC‑FLIP译码方法、设备及存储

设备

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种基于多门限的Polar码SC‑FLIP译码方法、设备及存储设备。

背景技术

[0002] 2016年11月18日,在美国内华达州里诺刚刚结束的3GPP RAN1#87次会议上,全球多家公司在统一的比较准则下,经过公司代表多轮技术讨论,国际移动通信标准化组织
3GPP最终确定Polar码作为5G eMBB(增强型移动宽带)场景的控制信道编码技术方案。
[0003] Polar码是基于信道极化理论所构建的一种新的信道编码方式,Polar码具有确定性的构造方法,并且是已知的唯一一种能够被严格证明“达到”信道容量的信道编码方法。
Polar码通过对N个信道进行一系列的信道合并(Channel Combining)和信道分割(Channel 
Splitting)操作,得到极化之后的N个信道。这些信道将会出现极化现象:部分信道的信道
容量增大,而另一部分信道的信道容量减小。并且根据理论证明,当信道数量趋于无穷大
时,部分信道容量趋于1,而另外一部分信道趋于0。对于Polar码译码,最初使用串行抵消译
码(Successive Cancellation,SC),虽然SC译码复杂度低、译码结构简单,但是SC译码算法
性能并不突出;所以在SC译码的基础上提出了串行抵消列表译码算法(Successive 
Cancellation List,SCL),基于SCL译码算法提出了带循环冗余(Cyclic Redundancy 
Check,CRC)校验的连续消除列表(CRC‑aided Successive Cancellation List,CA‑SCL),
CA‑SCL译码算法使得Polar码在与Turbo码,LDPC码以及传统的线性分组码相比时,能够获
得更优的块误码率(BLER)。
[0004] 但是CA‑SCL结构较为复杂,由于其不可并行性,导致译码时延较长;CA‑SCL译码算法中路径搜索算法的限制,需要存储大量数据。所以基于SC译码算法提出SC‑FLIP
(Successive Cancellation‑FLIP)译码算法,通过CRC校验检测译码的正确性,翻转SC译码
中容易出错的位置从而能够在小幅度上升算法复杂度的前提下获得更优的块误码率,并且
SC‑FLIP算法翻转存储数据较少,能够有效节省内存资源。
[0005] 目前为了提升SC‑FLIP译码算法的块误码率,降低计算的复杂度,主流的优化思路有两种:第一种改变优化CRC的位置提升的SC‑FLIP的译码性能,使CRC能够在SC‑FLIP译码
算法中找到更多的错误;第二种通过寻找SC‑FLIP译码算法中的更精准的关键集(Critical 
Set,CS),通过定位每次译码中更容易出错的位置,从而提升算法的性能。但是上述两种方
式在信噪比较低时算法复杂度都会显著提升。

发明内容

[0006] 为了解决上述问题,本发明提供了一种基于多门限的Polar码SC‑FLIP译码方法、设备及存储设备,一种基于多门限的Polar码SC‑FLIP译码方法,应用多门限比特翻转SC译
码算法SC‑FLIP的通信译码过程中,SC‑FLIP包括统计模块、译码模块、CRC模块和翻转译码
模块;所述译码算法针对通信译码过程中每个出错的位置设立独立的门限;
[0007] 所述一种基于多门限的Polar码SC‑FLIP译码方法,包括以下步骤:
[0008] S101:统计模块通过统计仿真环境下每次译码的LLR值得出SC译码出错的位置,根据每个错误位置的LLR值与对应位置译码正确时的LLR概率密度函数计算得出该位置LLR值
的门限λi,λi的集合为门限集α,根据α实际译码修复错误个数进行排序,得到排序后的门限
集合β;其中,i为译码错误位置的索引;
[0009] S102:将门限集β加入SC‑FLIP方法中,作为衡量SC‑FLIP方法翻转的标准,并采用加入门限集β的SC‑FLIP方法进行译码;
[0010] S103:若译码成功,即SC译码能够成功通过CRC模块的CRC校验,那么SC‑FLIP方法与SC译码算法译码步骤完全相同,即采用译码模块进行正常译码,并到步骤S105;
[0011] S104:若译码失败,即SC译码不能够通过CRC模块的CRC校验,则进入翻转译码模块:将门限集β中的各个位置的门限值与译码中对应位置的LLR值进行比较;若LLR值小于对
应门限值,则将该出错位置的译码值进行翻转,每次译码按照门限集β中门限值的排列顺序
依次进行翻转,且每次译码只翻转一个错误位置的译码值,直至译码结果能够通过CRC模块
的校验或累计翻转次数达到最大翻转次数;
[0012] S105:本次译码结束。
[0013] 进一步地,步骤S101中,所述仿真环境为根据实际通信环境建立的仿真通信环境。
[0014] 进一步地,步骤S101中,统计模块通过统计仿真环境下每次译码的LLR值得出SC译码出错的位置,根据每个错误位置的LLR值与对应位置译码正确时的LLR概率密度函数计算
得出该位置LLR值的门限λi,λi的集合为门限集α,根据α实际译码修复错误个数进行排序,得
到排序后的门限集合β;具体包括:
[0015] S201:在同一仿真条件下,通过蒙特卡洛方法统计SC译码算法译码错误时首个错误位置的LLR值和对应位置译码正确时的LLR值,得到多个错误位置,且每个错误位置都对
应有多个译码正确时的LLR值和多个译码错误时该位置为首个错误位置时的LLR值;
[0016] S202:通过MATLAB对S201中统计得到的LLR值分别进行统计,得到每个错误位置当译码错误且该位置为首个错误时的LLR值和译码正确时的该位置LLR值的概率分布点;
[0017] S203:通过MATLAB分别对步骤S202中得到的两组LLR值的概率分布点进行拟合,得到各个错误位置对应的两条概率密度函数FCi(x)和FEi(x);
[0018] 对于每个错误位置的FCi(x)和FEi(x),求得FCi(x)和FEi(x)的交点,并将交点的横坐标作为该错误位置的门限λi;i为对应错误位置的索引;
[0019] 将所有错误位置的门限的集合作为门限集α;门限集α加入SC‑FLIP方法中进行译码,并统计每个门限实际修正的错误译码个数,进而根据每个门限实际修正的错误译码个
数从大到小对门限集α中的所有门限进行排序,得到排序后的门限集合β。
[0020] 进一步地,步骤S201中,统计LLR值的方式是针对译码正确和译码错误分别统计;如果SC译码能够成功译码,则将每个信息比特的LLR值全部统计,并放入对应正确位置数组
中;如果SC译码失败,则将第一个错误位置的LLR值放入对应错误位置数组中,即每次只记
录首个译码错误位置的LLR值。
[0021] 进一步地,步骤S104中,将译码中出错位置的LLR值与门限集β中的对应位置的门限值进行比较;若LLR值小于对应门限值,则将该出错位置的译码值进行翻转,每次译码按
照门限集β中门限值的排列顺序依次进行翻转,且每次译码只翻转一个位置的译码值,直至
译码结果能够通过CRC模块的校验或达到最大翻转译码次数,具体为:
[0022] S301:根据门限集β中的位置顺序所对应的门限值,与译码时对应位置的LLR值进行比较;
[0023] S302:若LLR值小于对应门限值,则到步骤S303;否则到步骤S304;
[0024] S303:将该出错位置的译码值进行翻转,并再次进行译码;若译码通过,则结束翻转,到步骤S305;否则,将该位置的译码值还原,并将累计翻转次数T加1,到步骤S304;
[0025] S304:继续按照门限集β中的门限对应的位置顺序比较下一个译码出错位置的LLR值和对应的门限值;若LLR值小于对应门限值,则返回步骤S303;否则,判断是否所有错误位
置都进行了比较;若是,则到步骤S305;否则,继续执行步骤S304;
[0026] S305:结束。
[0027] 进一步地,步骤S304中,定义译码最大翻转次数为Tmax,若累计翻转次数T=Tmax或所有错误位置都进行了比较,且仍无法通过CRC模块的CRC校验,则认为本次译码无法通过
SC‑FLIP方法译码,可采用其他方法进行译码,以防止译码复杂度过大。
[0028] 本发明提供的技术方案带来的有益效果是:本发明所提出的技术方案通过对每个容易出错的信息比特设置独立的门限,将容易出错的位置的译码值进行翻转,有效提升译
码的性能,同时能够在相同的误码性能下,降低算法复杂度;针对SC‑FLIP低信噪比时算法
复杂度大的问题进行优化,在低信噪比时本发明的算法复杂度和误码率都优于传统SC‑
FLIP译码算法。

附图说明

[0029] 下面将结合附图及实施例对本发明作进一步说明,附图中:
[0030] 图1是本发明实施例中一种基于多门限的Polar码SC‑FLIP译码方法的流程图;
[0031] 图2是本发明实施例中译码位置i=127概率密度分布点的示意图;
[0032] 图3是本发明实施例中译码位置i=127高斯拟合曲线的示意图;
[0033] 图4是本发明实施例中Polar码多门限SC‑FLIP译码方法误码性能对比图;
[0034] 图5是本发明实施例中Polar码的SC‑FLIP方法平均翻转次数对比图;
[0035] 图6是本发明实施例中硬件设备工作示意图。

具体实施方式

[0036] 为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
[0037] 本发明的实施例提供了一种基于多门限的Polar码SC‑FLIP译码方法、设备及存储设备;一种基于多门限的Polar码SC‑FLIP译码方法,应用于多门限比特翻转SC译码算法
(SC‑FLIP)的通信译码过程中,SC‑FLIP包括统计模块、译码模块、CRC模块和翻转译码模块;
其中,所述译码算法针对通信译码过程中每个出错的位置设立独立的门限;
[0038] 请参考图1,图1是本发明实施例中一种基于多门限的Polar码SC‑FLIP译码方法的流程图,具体包括如下步骤:
[0039] S101:统计模块通过统计仿真环境下每次译码的LLR值得出SC译码出错的位置,根据每个错误位置的LLR值与对应位置译码正确时的LLR概率密度函数计算得出该位置LLR值
的门限λi,λi的集合为门限集α,根据α实际译码修复错误个数进行排序(从大到小),得到排
序后的门限集合β;其中,i为译码错误位置的索引;
[0040] S102:将门限集β加入SC‑FLIP方法中,作为衡量SC‑FLIP方法翻转的标准,并采用加入门限集β的SC‑FLIP方法进行译码;
[0041] S103:若译码成功,即SC译码能够成功通过CRC模块的CRC校验,那么SC‑FLIP方法与SC译码算法译码步骤完全相同,即采用译码模块进行正常译码,并到步骤S105;
[0042] S104:若译码失败,即SC译码不能够通过CRC模块的CRC校验,则进入翻转译码模块:将门限集β中的各个位置的门限值与译码中对应位置的LLR值进行比较;若LLR值小于对
应门限值,则将该出错位置的译码值进行翻转,每次译码按照门限集β中门限值的排列顺序
(从头至尾)依次进行翻转,且每次译码只翻转一个错误位置的译码值,直至译码结果能够
通过CRC模块的校验或累计翻转次数达到最大翻转次数;
[0043] S105:本次译码结束。
[0044] 步骤S101中,所述仿真环境为根据实际通信环境建立的仿真通信环境。
[0045] 步骤S101中,统计模块通过统计仿真环境下每次译码的LLR值得出SC译码出错的位置,根据每个错误位置的LLR值与对应位置译码正确时的LLR概率密度函数计算得出该位
置LLR值的门限λi,λi的集合为门限集α,根据α实际译码修复错误个数进行排序,得到排序后
的门限集合β;具体包括:
[0046] S201:在同一仿真条件下,通过蒙特卡洛方法统计SC译码算法译码错误时首个错误位置的LLR值和对应位置译码正确时的LLR值,得到多个错误位置,且每个错误位置都对
应有多个正确译码时的LLR值和多个译码错误时该位置为首个错误位置时的LLR值;
[0047] S202:通过MATLAB对S201中统计得到的LLR值分别进行统计,得到每个错误位置当译码错误且该位置为首个错误时的LLR值和译码正确时的该位置LLR值的概率分布点;
[0048] S203:通过MATLAB分别对步骤S202中得到的两组LLR值(每个错误位置当译码错误且该位置为首个错误时的LLR值和译码正确时的LLR值)的概率分布点进行拟合,得到各个
错误位置对应的两条概率密度函数FCi(x)和FEi(x);
[0049] S203:通过MATLAB分别对每个错误位置当译码错误且该位置为首个错误时的LLR值和译码正确时的LLR值的概率分布点进行拟合,得到各个错误位置对应的两条概率密度
函数FCi(x)和FEi(x);对于每个错误位置的FCi(x)和FEi(x),求得FCi(x)和FEi(x)的交点,并将
交点的横坐标作为该错误位置的门限λi;i为对应错误位置的索引;
[0050] 将所有错误位置的门限的集合作为门限集α;门限集α加入SC‑FLIP方法中进行译码,并统计每个门限实际修正的错误译码个数,进而根据每个门限实际修正的错误译码个
数从大到小对门限集α中的所有门限进行排序,得到排序后的门限集合β。
[0051] 通过蒙特卡洛方法统计出每个门限实际译码修正的错误个数,以实际修正的错误个数从大到小为排序依据,对门限集α中的所有门限进行排序,得到排序后的门限集合β。
[0052] 步骤S201中,统计LLR值的方式是针对译码正确和译码错误分别统计;如果SC译码能够成功译码,则将每个信息比特的LLR值全部统计,并放入对应正确位置数组中;如果SC
译码失败,则将第一个错误位置的LLR值放入对应错误位置数组中,即每次只记录首个译码
错误位置的LLR值。
[0053] 其中,首个错误位置的LLR值和对应位置译码正确时的LLR值符合高斯分布,因为首个错误位置LLR值与译码正确时LLR值的概率分布函数差异较大,所以对于同一位置,可
取两条概率密度函数的交点横坐标为门限,将门限集合记为α。
[0054] 步骤S104中,将译码中出错位置的LLR值与门限集β中的对应位置的门限值进行比较;若LLR值小于对应门限值,则将该出错位置的译码值进行翻转,每次译码按照门限集β中
门限值的排列顺序依次进行翻转,且每次译码只翻转一个位置的译码值,直至译码结果能
够通过CRC模块的校验或达到最大翻转译码次数,具体为:
[0055] S301:根据门限集β中的门限对应的位置顺序,所对应的门限值,与译码时对应位置的LLR值进行比较;
[0056] S302:若LLR值小于对应门限值,则到步骤S303;否则到步骤S304;
[0057] S303:将该出错位置的译码值进行翻转,并再次进行译码;若译码通过,则结束翻转,到步骤S305;否则,将该位置的译码值还原,并将累计翻转次数T加1,到步骤S304;
[0058] S304:继续按照门限集β中的门限对应的位置顺序比较下一个译码出错位置的LLR值和对应的门限值;若LLR值小于对应门限值,则返回步骤S303;否则,判断是否所有错误位
置都进行了比较;若是,则到步骤S305;否则,继续执行步骤S304;
[0059] S305:结束。
[0060] 步骤S304中,定义译码最大翻转次数为Tmax,若累计翻转次数T=Tmax或所有错误位置都进行了比较,且仍无法通过CRC模块的CRC校验,则认为本次译码无法通过SC‑FLIP方法
译码,可采用其他方法进行译码,以防止译码复杂度过大。
[0061] 在本发明实施例中,以码长N=1024,码率R=(K+C)/N,信息比特K=512,CRC校验长度C=12,进行译码实验:
[0062] 在发送端,经Polar编码后,将编码结果通过高斯信道传输至Polar译码器;在接收端,Polar译码器对编码结果进行译码,输出译码结果;其中,译码时采用所述一种基于多门
限的Polar码SC‑FLIP译码方法;具体包括:
[0063] S1、首先通过统计不同信噪比状况下的译码正确时每个位置的LLR值,将每个位置c
数据统计成为单独的集合记为Ci(i∈I),统计相同仿真条件下译码错误时的首个译码错误
c
时的LLR值,集合记为Ei(i∈I);
[0064] S2、将得到的LLR值进行统计,得到该仿真条件下各个错误位置的LLR值和对应位置译码正确的LLR值的概率密度分布点。进而将所得的概率分布点按译码位置的不同分别
得出概率密度分布点,如图2所示为信噪比s=1.0dB,i=127时,Ci和Ei的概率密度分布点;
[0065] S3、拟合两条LLR值的概率密度分布点得到对应的LLR概率密度函数,交点为各个错误位置的LLR值门限集α,再将门限集α加入SC‑FLIP中进行译码,通过统计每个门限实际
修正的错误译码个数重新进行排序,得到最终门限集β:具体如下:
[0066] Ei中LLR值和对应位置Ci中的LLR值符合高斯分布,即符合高斯分布函数所以通过MATLAB对集合进行拟合,得到集合Ci的拟合曲线l1i和
集合Ei的拟合曲线l2i,由于Ei中的LLR值与Ci中的LLR值概率密度差异较大,所以对于同一位
置,可取两条概率密度函数l1i和l2i的交点横坐标为门限,记为λi,将门限集合记为α。当i=
127时,概率密度函数l1i和l2i的概率密度函数拟合结果如图3所示,由函数拟合结果可得,
λ127=4,MATLAB中l1i的拟合相关系数为0.9999,l1i的拟合相关系数为0.9997,可以认为本
次拟合结果成功,可将λi作为集合记为α中的元素;
[0067] 将门限集合α中的门限加入SC‑FLIP译码算法进行SC译码,通过蒙特卡洛法统计出门限集合α中每个门限实际译码修正的错误个数,通过实际修正的错误个数进行排序,得到
最终的门限集β;
[0068] 最后将门限集β加入SC‑FLIP算法中,作为衡量SC‑FLIP翻转的标准,实现多门限SC‑FLIP译码:具体如下:
[0069] S41、SC‑FLIP译码算法包括统计模块,译码模块,CRC模块,翻转译码模块。
[0070] S42、SC‑FLIP译码统计模块通过统计该仿真环境下每次译码的LLR值得出SC译码算法容易出错的位置,根据错误位置的LLR值与对应位置译码正确时的LLR概率密度函数计
算得出对应位置LLR值的门限集α,根据α实际译码修复错误个数进行排序,得到门限集合β。
[0071] S43、译码模块,如果首次译码能够通过CRC校验,则SC‑FLIP译码的译码模块与SC译码的译码模块完全相同。
[0072] S44、CRC模块,SC‑FLIP译码算法相对于SC译码算法增加CRC模块,通过CRC模块能够判断SC译码是否正确,将CRC校验作为SC‑FLIP翻转和译码成功的标志。如果SC译码能够
成功通过CRC校验,那么SC‑FLIP译码算法与SC译码算法译码步骤完全相同。
[0073] S45、翻转译码模块,如果SC‑FLIP算法中SC译码失败,即译码结果无法通过CRC模块的校验,则进入翻转译码模块,译码中容易出错的位置的LLR值与对应的门限进行比较,
若LLR值小于门限值则将对应的位置的译码值进行翻转,每次译码按照门限集β中排列顺
序,只翻转一个位置的译码值,直至译码结果能够通过CRC模块的校验,例如信噪比=1.00
时,若首次CRC校验失败,则进入翻转译码模块,当i=127时,若LLR<4则将译码值进行翻转;
若LLR>4则跳过i=127。
[0074] S46、将每次译码最大翻转次数记为Tmax,若SC‑FLIP译码算法,翻转次数T=Tmax或已与所有的门限值进行比较,最终仍无法通过CRC模块的校验,则本次译码无法通过SC‑
FLIP进行成功译码。
[0075] S47、如图4所示,为译码模块误码率(BLER)与信噪比(Eb/N0)之间的函数关系,图5为算法平均翻转次数对比图。本发明误码率与TSCF译码算法大致相同,但是对于平均翻转
次数(Tavg),本发明算法明显低于TSCF译码算法,尤其在低信噪比时,本发明翻转次数明显
较低。这表明本发明能够在更低的计算复杂度下得出正确的译码结果。
[0076] 请参见图6,图6是本发明实施例的硬件设备工作示意图,所述硬件设备具体包括:一种基于多门限的Polar码SC‑FLIP译码设备601、处理器602、数据存储设备603及SC‑FLIP
译码算法指令集604。
[0077] 一种基于多门限的Polar码SC‑FLIP译码设备601:所述一种基于多门限的Polar码SC‑FLIP译码设备601实现所述一种基于多门限的Polar码SC‑FLIP译码方法。
[0078] 处理器602:所述处理器602加载并执行所述指令集604中的指令及数据用于实现所述一种基于多门限的Polar码SC‑FLIP译码方法。
[0079] 计算机可读存储介质603:所述计算机可读存储介质603存储数据;所述存储设备603用于实现所述一种基于多门限的Polar码SC‑FLIP译码方法。
[0080] SC‑FLIP译码算法指令集604:所述指令集模块用于对处理器602的状态进行控制,分阶段完成SC‑FLIP译码算法。
[0081] 本发明的有益效果是:本发明所提出的技术方案通过对每个容易出错的信息比特设置独立的门限,将容易出错的位置的译码值进行翻转,有效提升译码的性能,同时能够在
相同的误码性能下,降低算法复杂度;针对SC‑FLIP低信噪比时算法复杂度大的问题进行优
化,在低信噪比时本发明的算法复杂度和误码率都优于传统SC‑FLIP译码算法。
[0082] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的宗旨和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。