本发明属于通信信道编码的译码技术领域,涉及一种连续消除列表极化码译码器,尤其在路径分裂时通过动态阈值更新模块减少不必要的分裂路径,达到在不影响译码性能的情况下减少译码器的实现复杂度。
背景技术:
极化码在2007年被arikan首次提出,在二进制离散无记忆信道下能够达到香农极限,是目前5g信道编码领域的基础。针对极化码的编码结构,arikan提出了连续消除(successivecancellation,sc)译码算法,其译码复杂度低,当码长趋近于无穷时,译码性能比较优秀,但在中短码长下性能不太理想。为了对sc译码进行性能上的改进,连续消除列表(successivecancellationlist,scl)译码算法被提出。scl译码器是目前在极化码译码方面应用最广泛的译码器,scl译码对每个信息比特进行路径分裂和剪枝,同时保留l条译码的候选路径,每条路径都有一个衡量路径可靠性的路径度量值。路径度量值越小,路径越可靠,被保留下来作为最终译码结果的概率也就越大。scl译码随着列表l增大能达到十分优越的性能,但同时译码复杂度和资源消耗也随之增加。
为了降低scl译码器的实现复杂度,可通过减少路径的冗余分裂次数来减少不必要的译码运算。目前,从路径分裂方面看,已有部分改进的scl译码算法被提出,如:z.zhaoyang等提出在译码比特的可靠性很高时不需要进行路径分裂。c.gao等提出基于rate-1节点建立搜索集合,由于rate-1节点的第一个比特更容易发生错误,因此只在搜索集合所包含的索引比特上进行路径分裂来减少复杂度。在此基础上,j.houren等提出利用每次译码最差路径的度量值作为阈值来控制路径减少不必要的分裂。这种用阈值控制减少分裂路径的方法可以进一步被优化。因此,本发明基于路径度量值,在原有的scl译码器中加入了一个动态阈值更新模块,在不需要先验知识的前提下仅仅利用当前路径度量值以及llr值就能够根据计算得到的动态阈值减少不必要的路径分裂。
技术实现要素:
本发明为了解决已有的减少路径分裂所存在的局限问题,提出了一种基于动态阈值的分裂简化极化码连续消除列表(dynamicthreshold-basedstrictsplitting-reducedsuccessivecancellationlist,dtsr-scl)译码器。其译码结构如图1所示,dtsr-scl译码器由处理单元模块、路径度量值更新模块、动态阈值更新模块、排序模块等组成。dtsr-scl译码器相比于传统连续消除列表(successivecancellationlist,scl)译码器增加了动态阈值更新模块,具有分裂路径数少,不需要引入先验知识,完全依靠当前路径的度量值和llr值来减少分裂路径等特点;同时其减少路径分裂的准确率高,对性能不构成损失。
本发明的基本构思:为了解决现有减少路径分裂方法不够严格精确的问题,在现有阈值的基础上,通过引入动态阈值更新模块确定一个动态阈值来约束路径分裂,将分裂的路径数降到最低,提出了一种更加精确的分裂简化极化码scl译码器。
基于以上技术问题,本发明所采用的技术方案为:本发明提供的极化码dtsr-scl译码器,通过处理单元模块对接收向量的llr值进行f运算和g运算,依次得到llr并采取硬判决得到译码结果,同时路径度量值更新模块根据当前llr值和译码结果是否相符进行度量值更新。每个信息比特进行路径分裂,同时保留0和1两种译码结果。当路径数达到l时,通过动态阈值更新模块确定下一个信息比特的阈值,找出不需要分裂的路径。将分裂后的路径通过排序模块对路径度量值进行升序排序,保留较优的l条路径。这l条路径继续通过处理单元模块译码,在遇到信息比特后通过动态阈值更新模块确定阈值,再将分裂后的路径通过排序模块进行剪枝,直到译码结束。实验的码长为1024,码率为0.5,信噪比为0.5-2.5db。动态阈值更新模块的实现过程为首先在当前基于路径度量值升序排序的l条路径中,从排序后度量值末位动态分段,标记分段的位置在第k条路径之前,分段后的路径度量值存放在两个一维数组中,第一段对应的数组长度为k-1,存放较小的k-1个路径度量值pmm,(m=1,2,…,k-1),第二段对应的数组长度为l-k+1,存放较大的l-k+1个路径度量值pmw,(w=k,k+1,…,l)。初始化k=l,第一段对应的数组存放较小的l-1个路径度量值pmm,(m=1,2,…,l-1),第二段对应的数组存放最大的路径度量值pml。将第一个数组中存放的路径度量值pmm分别加上对应的惩罚值|llrm|,记为pmm',逐个与第二个数组中的路径度量值pmk比较,比较的结果存放在一个
本发明相对现有技术具有的优点和有益效果为:
1)本发明不需要先验知识作为阈值确定不需要分裂的路径。
2)本发明的剪枝与减少分裂操作准确性高,不影响译码性能。
3)本发明可以在scl及其衍生方法中的任何分裂比特位置进行应用。
附图说明
图1为本发明极化码dtsr-scl译码器系统框图;
图2为本发明极化码dtsr-scl译码器初始路径分裂过程示意图;
图3为本发明极化码dtsr-scl译码器阈值更新模块比较结果图;
图4为本发明极化码dtsr-scl译码器l=4阈值更新模块比较结果图;
图5为本发明极化码dtsr-scl译码器l=4路径分裂示意图;
图6为本发明极化码dtsr-scl译码器剩余路径数和剪枝路径数的点列图;
具体实施方式
下面结合附图对本发明作进一步详细描述,以下实施例有助于对本发明的理解,是比较好的应用实例,但不应看作是对本发明的限制。
如图1所示,dtsr-scl译码器由处理单元模块、路径度量值更新模块、动态阈值更新模块、排序模块等组成。dtsr-scl译码器对信道llr值经过处理单元模块进行f运算、g运算和硬判决得到当前译码比特的llr值和译码结果,同时通过路径度量值更新模块更新度量值,若译码结果和llr值的硬判决结果相符则保持度量值不变,否则对路径度量值施加惩罚值|llr|。在每个信息比特进行路径分裂,当路径数量等于l后,在下一个信息比特分裂前通过动态阈值更新模块进行阈值的更新,根据阈值减少分裂,再对分裂出来的路径通过排序模块进行剪枝,直到译码结束。
如图2所示,假定scl(lmax=l)译码器实现过程中保留下来的路径按照路径度量值升序排列,即pm1≤pm2≤...≤pml,在进行路径分裂时,每条路径分裂成0和1两种可能,其中只有一条路径符合llr值的硬判决结果,对不符合llr硬判决的路径施加路径惩罚值|αl|,(1≤l≤l),即pml'=pml+|αl|,(1≤l≤l),其中αl=llrl,显而易见pml'≥pml。为了找到分裂后的2l条路径中度量值较小的l条路径,需要对2l条路径的度量值通过排序器进行升序排列,找到前l条较优路径。为了减少不必要的分裂,我们致力于找到一个动态阈值,超过这个阈值的路径度量值所在的路径就不需要进行分裂。从图2中可以看到,pm4'≥pm4,且pm4≥pmi,(1≤i≤3),则至少有4条路径的度量值优于pm4',故pm4'所在的路径不需要进行分裂,这条路径必不会在最优的4条路径中保留下来。在此基础上,将pm4之前的所有路径加上惩罚值之后的路径度量值与pm4进行比较,若pml'≥pm4,(1≤l'≤3),则pml'所在路径不需要进行分裂。为了进一步减少分裂不必要的路径,我们不满足于只将pml作为动态阈值,只要满足当前有l条路径度量值小于等于pml,(1≤l≤l),就可将pml作为新的动态阈值,所有施加惩罚值后度量值大于动态阈值的路径都不需要分裂。
动态阈值更新模块中路径度量值之间的比较运算如图3所示,初始化pml作为动态阈值。将pmk与pml'的比较结果存放在数组中。若pml'≤pmk,则在相应位置标1,否则标0。经过分析可知,针对pmk,当至少有l条路径的度量值小于等于pmk时,则pmk可作为阈值。已知有k条未施加惩罚值的路径度量值小于等于pmk,故在施加惩罚值的路径度量值中只要保证有l-1-k个值小于等于pmk,就可以更新阈值为pmk。将比较的结果用一个
如图4所示,在scl译码(l=4)中,为了通过动态阈值更新模块确定动态阈值,将第二段的路径度量值分别与第一段加上惩罚值后的路径度量值进行比较,比较的结果存放在数组ω中,同时得到θ=[13],其中θ2≥0,可将pm4作为初始阈值,又有θ1≥1,故可将pm3更新为阈值。
其路径分裂过程如图5所示,在确定pm3为新的阈值后,pm3所在列元素为0所对应的路径都不需要分裂,即pm2'这条路径不必被分裂出来,对于路径度量值为pm2的路径,只需要根据当前译码比特的llr值直接译码,不需要保留两种译码可能。此外,pm3后的路径,即pm4所在的路径可直接进行剪枝,不需要译码。采用这种译码方法将保留下来的路径数量降低到4,大大降低了路径复制与度量值排序的实现复杂度。
如图6所示,采用本发明dtsr-scl译码器,在码长为1024,码率为0.5,信噪比为2db,l=16时,给出了分裂后的路径总数均值以及剪枝掉的路径数目均值。假设动态阈值为pmi,
上述实施例不以任何形式限制本发明,凡采用本发明的相似结构、方法及其相似变化方式所获得的技术方案,均在本发明的保护范围。