一种软件极化码的连续消除列表译码方法与流程

文档序号:12477193阅读:234来源:国知局
一种软件极化码的连续消除列表译码方法与流程
本发明属于无线通信
技术领域
,具体涉及一种软件极化码的连续消除列表译码方法,主要应用于信道纠错编码。
背景技术
:上世纪80年代以来,无线通信技术飞速发展,已成为当今通信领域内发展潜力最大、市场前景最广的热点技术。移动通信经历了第一代模拟通信(1G),第二代蜂窝数字通信(2G),第三代CDMA宽带通信(3G)的发展历程,目前已进入了第四代移动通信(4G)产业化的应用阶段。移动通信正朝着高速率,高容量,高频谱效率和低功耗的方向发展,不断满足人们日益增长的数据和视频需求。据主要运营商和权威咨询机构预测:移动宽带业务流量将在未来10年增长1000倍。现有4G技术在传输速率和资源利用率等方面仍然无法满足未来的需求,其无线覆盖和用户体验也有待进一步提高。世界各国在推动4G产业化工作的同时,第五代移动通信技术(5G)已经成为了国内外无线通信领域的研究热点。5G移动通信标志性的关键技术主要体现在超高效能的无线传输技术和高密度无线网络技术。基于大规模多输入多输出(MIMO)的无线传输技术将有可能使频谱效率和功率效率在4G的基础上再提升一个量级。毋庸置疑,高性能、高效率的信道编码技术也将成为5G的一个重要研究方向。对于二进制输入的离散无记忆信道(B-DMCs),理论上已经证明了极化码能够达到香农信道容量。作为第一个能够达到香农容量的信道编码,极化码是信息理论和无线通信领域的重大突破,引起了学术界和工业界的广泛关注。在5G移动通信的全新应用场景下,极化码将会取代Turbo码和LDPC码,在信道的纠错编码中大显身手。此外,相比于硬件实现,基于软件的信道编译码具有灵活性和可重构性,能适应各种系统环境,支持多种标准。因此研究适用于5G移动通信系统的基于软件的高效极化码构造及译码算法具有重大的理论意义与应用价值。在极化码的众多译码算法中,连续消除列表(SCL)译码因其接近最优的检测性能而引起了广泛的关注。针对于SCL译码,已有众多学者提出了相应的硬件设计或软件设计。在实际应用中,SCL译码器需要足够长的候选列表长度L来达到理想的译码性能。然而,路径度量值(PM)比较和路径更新的复杂度随着L的增大而急剧增加。在现有的软件极化码译码器中,尽管采用了惰性拷贝使得路径更新复杂度大大降低。但是在复制数据时,对于所有阶段的数据都进行了复制更新,对具有相同数值的阶段而言,造成了时间上的浪费,大大影响译码速度。因此,在保证译码性能的前提下,如何避免重复内容的复制进而加快译码速度显得尤为重要。技术实现要素:发明目的:为了克服现有技术中存在的问题,本发明提出了一种软件极化码的连续消除列表译码方法,降低了复制操作的数量,从而显著的降低了路径更新时延,提升了译码吞吐率。技术方案:对于极化码的连续消除的列表译码器,在路径排序及选择后,需要将新的L(L为列表长度)条路径替换掉旧的L条路径,涉及到对路径序号以及路径对应的数值的更新。对于每条路径而言,储存了两类数据,一类用来记录对数似然比(LLR),共占用N-1(N为极化码的码长);另一个用来记录部分和,共占用N的内存。因此,如果采用严格的路径更新,SCL译码的复杂度将为O(LN2),惰性拷贝算法通过非严格更新的方式能够将复杂度降低至O(LNlogN)。在惰性拷贝中,减少了需要进行数值更新的新旧路径对,但仍然存在数值更新的情况,即对LLR和部分和进行复制。码长为N时,译码共有n=log2N个阶段。假设当前正在译第i个比特,在传统的设计中,需要对所有的阶段均进行更新,对于LLR,需要复制从1到N-1的所有数据;对于部分和,需要复制从1到i的所有数据。但是实际情况中,两条路径存在许多相同的数据,如果采用全部复制,会造成极大的浪费。如果两条路径第k个阶段的数据相同,则可以节省2k个LLR和k个部分和的更新。因此,可以通过寻找两条路径数据相同的阶段避免相同数据的复制,降低更新时延。为了实现上述目的,本发明中软件极化码的连续消除列表译码方法,包括以下步骤:(1)建立一个参考矩阵用来记录新路径和旧路径第一个不同比特的位置。由于共有L条路径,因此,矩阵的大小为在极化码译码器的纯路径扩展时,即前log2L个信息比特译码时,进行参考矩阵的初始化。(2)在译接下来的信息比特时,根据当前比特的位置以及两条路径对应在矩阵中的值定位需要复制的阶段的上界和下界,其中下界仅针对于LLR的复制。(3)根据上界和下界进行内存映射,找到需要复制的LLR内存段和部分和内存段。(4)最后,由于旧路径被更新,因此相应的参考矩阵中的数值也需要被更新。有益效果:本发明中软件极化码的连续消除列表译码方法,适用于极化码的列表连续消除译码器架构,采用定位到阶段的复制方式实现译码,首先建立一个参考矩阵,结合当前译码比特的位置,定位需要复制的阶段的上界和下界,然后将上下界映射到内存中,在映射过程中仅对两个界限中间的数值进行复制,在不影响译码性能的情况下,降低了复制操作的数量,从而显著的降低了路径更新时延,提升了译码吞吐率;在译完当前比特后,进行参考矩阵的更新;进一步地,本发明的译码方法具有普适性,能够适用于不同的极化码码长,码率及路径数目。本发明中通过Intelx86处理器,采用VisualStudioC++2015对相应的译码方法进行实现,证明了本发明方法大大降低了时延,且码长越长、码率越高或路径数目越多,算法的加速效果越明显,其中,对于(2048,1723)极化码,L=8,采用定位到阶段复制算法的低延时软件极化码连续消除列表译码器可以达到4.27Mbps的吞吐率。附图说明图1是L=16参考矩阵初始化示意图;图2是SL复制中LLR的内存映射示意图;图3是SL复制中部分和的内存映射示意图;图4是参考矩阵更新示意图。具体实施方式下面结合具体实例和附图,对本发明中软件极化码的连续消除列表译码方法进行具体解释和说明,该方法采用定位到阶段的复制方法(简称SL),设(N,K)极化码,码长为N,信息比特长度为K。1.参考矩阵的初始化仅仅通过当前比特的位置来确定复制的界限是不够的,我们需要知道新路径和旧路径估计值中不同比特的分布。由于,在译当前比特时,无法预知该条路径被哪一条路径替换,所以需要记录所有可能出现的情况。建立一个参考矩阵A来记录每一对路径之间第一个不同的比特的位置。总共有对路径。因此,A是一个L×L的严格的上三角矩阵,包含了个元素,其中每一个元素标记为aij,i<j。在初始的log2L信息比特处进行矩阵初始化,一般来讲,在其中第i个信息比特处,需要对2i-1(L/2i)2个元素赋值,对1到log2L累加得到如下表达式:CL2=Σi=1log2L2i-1(L/2i)2]]>图1给出了对于L=16时矩阵初始化的过程,图中uinfon表示第n个信息比特的位置。如图,L=16时矩阵共有120个元素,在第一个信息比特时,初始化8×8=64个元素,对应图中右上角四分之一的方块;第二个信息比特时,初始化2个4×4的横条纹方块,其中一个横条纹方块在交叉条纹方块的右半部分向下延伸,另一个在交叉条纹方块的上半部分向左延伸;依次类推,对于第i个信息比特,新初始化的2i-1的方块均在对应的2i-2的方块的右半部分向下和上半部分向左填充。在第log216=4的信息位处,将L/2个1×1的无条纹方块填充至对角线上方。2.阶段的定位根据新路径和旧路径的标号,找到其在参考矩阵中对应的元素,记为M,该比特即为这两条路径第一个不同比特的位置,记当前信息比特为C。假设码字是从1开始计算下标。需要复制的阶段的上界和下界就是由M和C所在的父节点的阶段决定。找到M和C所拥有的相同的所在阶段最小的父节点,则该阶段的下一阶段即为复制的上界。问题可以转化为寻找[M,C)中具有最大因子的数,且这个因子必须为2的幂次方,则这个幂指数记为上界所在的阶段。例如M=8和C=14,那么找到两者之间的数为8,因为8=1×23,那么3即是所求的上界阶段。下界仅仅取决于C,求C最大的2k的因子,k+1即所求的下界阶段。在复制LLR值时,不需要复制阶段{0,1,...k},因为在译下一个比特时,第k个阶段所对应的LLR值会重新计算。且如果下界大于上界,则不复制LLR。在复制部分和信息时不存在下界,因为在译完该比特后,需要进行是阶段{1,...k}组合操作,所以这k个阶段的LLR不需要复制,但是部分和依旧需要复制。在上界的例子中,C=14=7×21,k=1,所以下界为k+1=2,对于阶段0到1可以不用复制。上界和下界阶段的定位在软件实现中可以非常高效地通过逻辑移位操作实现。3.内存映射下一步,需要根据上界和下界来确定需要复制的LLR和部分和段。记上界为ku,下界为kl,按照极化码译码器的存储方案,将上下界进行内存映射。对于LLR的复制,需要复制的LLR区间为:[N-2ku+1,N-2kl+1]]]>对于部分和的复制,需要复制的部分和区间为:图2和图3对应了LLR和部分和的内存映射。上界和下界的信息标记在图的上方,其中表示第k个阶段的节点的LLR的第i个值;表示第k个阶段的节点的部分和对应第i个值的那一位。4.参考矩阵的更新由于路径的更新,路径发生了改变,所以相对应的参考矩阵的信息也要同时更新。记L条路径中有s个需要进行路径更新,L条旧路径中扩展为两条的路径的集合记作被遗弃的路径的集合记作仅保留一条继续作为新路径的集合记为参考矩阵更新可分为三种情况。1).将L2中的路径中的每一对对应的元素替换掉相对应的L0中的每一对对应的元素,s个路径两两之间共有对,所以一共需要修改个值。且i,j∈[1,s].2).将L0中的路径和替换它的L2中的路径所对应的参考矩阵中的元素修改为C,共需要修改s2个值。al0i,l2j←Cl0i<l2j,i,j∈[1,s]al2j,l0i←Cl0i>l2j,i,j∈[1,s]]]>3).将L0中的路径和L1中的路径所对应的元素修改为L2中的路径和L1中的路径所对应的元素,L1中共有L-2s个元素,所以一共需要修改s(L-2s)个值。所以每一次需要修改的总数如下:Cs2+s2+s(L-2s)=(L-12)s-12s2.]]>图4举例说明了矩阵更新的操作,其中L=8,L0={2,4},L2={3,7},因此s=2。图中有条纹覆盖的部分表示该元素被修改。首先进行第一类更新,将a24修改为a37,被标记为交叉条纹;第二类更新共22=4个元素被更新,被标记为竖条纹;第三类更新共2×(8-2×2)=8个元素被修改,被标记为横条纹。总共13个元素被更新。5.仿真结果与分析为了验证本发明方法相比于现有技术中的优势,本发明采用基于Intelx86单核处理器,开启Release模式,O2速度优化,采用VisualStudioC++2015进行编译对串行实现路径更新时全部复制方式和本发明中SL复制方式的时延进行比较,其中,LLR和部分和采用32位数据类型。表1中针对不同码长和路径数目对全部复制、SL复制方式、以及采用单指令多数据SIMD并行指令集并行实现SL复制方式(SIMD-SL)的时延进行比较,相对应的加速因子在表1的括号中给出。表1.针对不同码长和路径数目的全部复制,SL复制,SIMD-SL复制的时延比较结果显示,对于所有码长的极化码和所有的路径数目,本发明中的的SL复制方式均能降低时延,此外从表中还可以直观地看出随着码长N的增大,优化的效果越来越好。此外,对于整个译码器而言,SL复制的效果也是不可忽视的。表2给出了对于(2048,1024)和(2048,1723)极化码,不同路径数条件下采用全部复制和SL复制的软件SCL译码器的时延和吞吐率。可以看出,加速因子随着码率或路径数的增大而增大。表2.针对不同码率和路径数目,采用全部复制和SL复制的软件SCL译码器时延及吞吐率比较综上所述,SL复制适用于各种码长、码率或路径数目,且码长越长、码率越高或路径数目越多,SL的加速效果越明显。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1