一种兼容多码长码率的Polar码译码器及译码方法技术

技术编号:38158668 阅读:11 留言:0更新日期:2023-07-13 09:29
本发明专利技术提出一种兼容多码长码率的Polar码译码器及译码方法,由译码控制模块、解速率匹配模块、信道LLR管理模块、多功能计算模块、节点处理模块、部分和计算模块、译码路径解析模块以及两个先入先出模块构成。本发明专利技术可以在线配置为任意码长码率,具有很好的可重构性,另外译码器中流水和全并行切换的计算与存储结构提高了计算效率,避免了传统译码器的路由单元,减少了存储资源消耗;译码器部分和计算模块中的生成矩阵快速计算方法,避免了存储生成矩阵,以极少的逻辑资源即可快速得到生成矩阵任意行列的元素,快速完成部分和更新。快速完成部分和更新。快速完成部分和更新。

【技术实现步骤摘要】
一种兼容多码长码率的Polar码译码器及译码方法


[0001]本专利技术属于通信
,涉及一种兼容多码长码率的Polar码译码器及译码方法。

技术介绍

[0002]信道编码作为通信系统物理层的基本组成部分,对提高通信系统可靠性和频谱利用效率起着至关重要的作用。由E.Arikan在2009年提出的Polar码,作为目前唯一一种可以达到对称信道的信道容量的编码方案,有着巨大的应用前景。虽然3GPP组织早在2016年就将Polar码选作5G eMBB场景控制信道的信道编码方案,但是对于众多应用规模较小的通信系统,例如卫星测控,无人机通信链路等,Polar码应用得依然很少。这些应用场景的通信系统大多使用FPGA(Field Programmable Gate Array)开发,而不是像大规模商用的通信系统那样使用ASIC(Application Specific Integrated Circuit)实现。目前使用FPGA实现的Polar码编译码,大多只针对单一码率,而且硬件资源消耗巨大。
[0003]Polar码译码一般采用串行列表抵消(Successive Cancellation List,SCL)译码算法,SCL算法的列表(List)越大,纠错性能越好,但是计算复杂度越高,硬件实现上逻辑和存储资源消耗越大。而为了保证较好的纠错性能,需要实现较大List SCL算法的性能。为了进一步降低Polar码硬件实现资源消耗,提高单位硬件资源吞吐速率,本专利技术设计了一种兼容多码长码率的Polar码译码器及译码方法。

技术实现思路

[0004]本专利技术给出了一种兼容任意码长码率的译码器硬件实现架构。具体的,本专利技术设计了一种独特的并行和流水可切换的计算阵列以及和其匹配的对数似然比(Log

Likelihood Ratio,LLR)存储结构,提升了译码过程中计算单元的利用率,避免了路由单元,特别适合于大List的串行列表抵消(Successive Cancellation List,SCL)译码算法;另外,基于本专利技术提出的Polar码生成矩阵快速计算算法,本专利技术设计了一种展开和折叠混合的部分和更新电路,其资源消耗更低,结构更简洁;最后,本专利技术还提出了一种基于链表的译码路径存储方案,避免每次剪枝后对译码路径的移动或者拷贝,仅需在译码完成后回溯出完整的译码路径。
[0005]本专利技术所提Polar译码器主要由译码控制模块(Decoder Controller,DecoderCtrl)、解速率匹配模块(Puncture Recover,PuncRecover)、信道LLR管理模块(Channel Log

Likelihood

Ratio Manager,ChLLRManager)、多功能计算模块(Multipurpose Processing Element,MPE)、节点处理模块(Node Process Element,NodeProcElem)、部分和计算模块(Partial Sum Network,PartialSumNet)、译码路径解析模块(Path Extractor,PathExtract)以及两个先入先出(First Input First Output,FIFO)模块——pathIdx2MPEFifo(Path Index to Multipurpose Processing Element FIFO)和(Path Index to Path Extractor FIFO)构成。
[0006]译码控制模块(DecoderCtrl)根据当前输入的码长码率选择信号codeType(code type)生成译码和其他模块所需的控制信号——部分和计算模块(PartialSumNet)控制信号ctrlPSN(control PartialSumNet),多功能计算模块(MPE)控制信号ctrlMPE(control MPE),节点处理模块(NodeProcElem)控制信号ctrlNPE(control NodeProcElem),译码路径解析模块(PathExtract)控制信号ctrlPEx(control PathExtract)和crcType(Cyclic Redundancy Check Type)。
[0007]解速率匹配模块(PuncRecover)将译码器从信道接收到的E个LLR(Log

Likelihood Ratio),根据速率匹配模式(打孔或者缩短)补成N个LLR,其中ceil()为向上取整函数,例如E=690,则N=1024。如果速率匹配模式为打孔,则在这E个LLR前补(N

E)个0,如果速率匹配模式为缩短,则在这E个LLR后补(N

E)个正最大值(根据量化比特数,取最大值,例如如果LLR量化为符号1比特,幅度6比特,则取63)。
[0008]信道LLR管理模块(ChLLRManager)用来缓存解速率匹配后的信号LLR,并在多功能计算模块(MPE)计算第n

1层的LLR时,提供信道LLR。
[0009]多功能计算模块(MPE)用来完成SCL算法中的f、g运算(表达式见后文式(1.5)),并完成Rate

0节点LLR的加法运算,以及存储SCL译码中的中间LLR。
[0010]节点处理模块(NodeProcElem)负责处理Rate

1、Rate

0节点,计算路径度量值PM,进行路径扩展和剪枝。
[0011]部分和计算模块(PartialSumNet)完成部分和的更新。
[0012]译码路径解析模块(PathExtract)存储所有的Rate

1节点译码结果,并在所有Rate

1节点译码完成后,恢复最终的L条译码路径,并对这L条路径进行CRC校验,选取CRC校验通过且PM值最小的路径作为最终的译码结果(如果所有路径均为通过CRC校验,则输出PM值最小的译码路径)。
[0013]两个FIFO模块(pathIdx2MPEFifo和pathIdx2PExFifo)主要用来缓存节点处理模块(NodeProcElem)的输出pathIdx,pathIdx2MPEFifo在flush输入为高电平时,会清空该FIFO的所有数据——这是由于当节点处理模块(NodeProcElem)完成最后一个节点的译码后,多功能计算模块(MPE)将停止工作,节点处理模块(NodeProcElem)写入到pathIdx2MPEFifo的数据并不会被多功能计算模块(MPE)读取,如果不清空,残存的数据将影响下一个码块的译码。
[0014]译码器的整体工作流程可以概述为:
[0015]步骤1:来自信道的E个LLR首先输入给解速率匹配模块(PuncRecover)补成N个LLR后,输入给信道LLR管理模块(ChLLRManager);...

【技术保护点】

【技术特征摘要】
1.一种兼容多码长码率的Polar码译码器,其特征在于:由译码控制模块、解速率匹配模块、信道LLR管理模块、多功能计算模块、节点处理模块、部分和计算模块、译码路径解析模块以及两个先入先出模块构成;译码控制模块根据当前输入的码长码率选择信号codeType生成译码和其他模块所需的控制信号,即部分和计算模块控制信号,多功能计算模块控制信号ctrlMPE,节点处理模块控制信号ctrlNPE,译码路径解析模块控制信号ctrlPEx和crcType;解速率匹配模块将译码器从信道接收到的E个LLR,根据速率匹配模式补成N个LLR,其中ceil()为向上取整函数;如果速率匹配模式为打孔,则在这E个LLR前补(N

E)个0,如果速率匹配模式为缩短,则在这E个LLR后补(N

E)个正最大值;信道LLR管理模块用来缓存解速率匹配后的信号LLR,并在多功能计算模块计算第n

1层的LLR时,提供信道LLR;多功能计算模块用来完成SCL算法中的f、g运算,并完成Rate

0节点LLR的加法运算,以及存储SCL译码中的中间LLR;节点处理模块负责处理Rate

1、Rate

0节点,计算路径度量值PM,进行路径扩展和剪枝;部分和计算模块完成部分和的更新;译码路径解析模块存储所有的Rate

1节点译码结果,并在所有Rate

1节点译码完成后,恢复最终的L条译码路径,并对这L条路径进行CRC校验,选取CRC校验通过且PM值最小的路径作为最终的译码结果,如果所有路径均为通过CRC校验,则输出PM值最小的译码路径;两个FIFO模块用来缓存节点处理模块的输出pathIdx,pathIdx2MPEFifo在flush输入为高电平时,会清空该FIFO的所有数据,这是由于当节点处理模块完成最后一个节点的译码后,多功能计算模块将停止工作,节点处理模块写入到pathIdx2MPEFifo的数据并不会被多功能计算模块读取,如果不清空,残存的数据将影响下一个码块的译码。2.一种兼容多码长码率的Polar码译码器的译码方法,其特征在于,步骤如下:步骤1:来自信道的E个LLR首先输入给解速率匹配模块补成N个LLR后,输入给信道LLR管理模块;步骤2:信道LLR管理模块输出LLR给多功能计算模块完成第n

1层LLR计算;步骤3:多功能计算模块继续完成第n

2层至特殊节点的LLR计算,此时f、g从模块内部存储单元获取中间LLR,无需信道LLR管理模块输入;步骤4:节点处理模块接收多功能计算模块计算出的特殊节点的LLR完成路径度量值PM的更新,路径扩展剪枝,节点硬判决结果将传输给部分和计算模块完成部分和的更新,剪枝后保留路径的索引值pathIdx将直接传输给部分和计算模块,并分别经过FIFO传输给多功能计算模块和译码路径解析模块,L条路径特殊节点判决结果和保留路径在路径分裂中翻转比特的位置和翻转标志输出给译码路径解析模块;步骤5:当部分和计算模块完成部分和完成更新后,如果处理的节点是最后一个节点,则继续步骤6,否则,将计算的部分和返回多功能计算模块,跳转步骤3;步骤6:译码路径解析模块解析出最终的L条译码路径,并将通过CRC校验的路径中路径度量值最小的路径作为最后译码结果输出,如果没有路径通过CRC,则直接输出路径度量值最小的路径。
3.根据权利要求2所述的一种兼容多码长码率的Polar码译码器的译码方法,其特征在于:在步骤3中,进一步包括:多功能计算模块对不同长度节点,使用并行和流水切换的计算方法,即对于节点长度大于或等于译码器处理并行度P的节点,使用P个计算单元并行运算进行SCL算法的f和g运算更新该节点LLR;对于长度小于P的节点,则使用流水模式计算多个节点,即用P/2个计算单元更新长度为P/2的节点LLR,P/4个计算单元更新长度为P/4的节点LLR,

,1个计算单元更新长度为1的节点LLR。4.根据权利要求2所述的一种兼容多码长码率的Polar码译码器的译码方法,其特征在于:在步骤4中,进一步包括:节点处理模块将Rate

0节点待更新的路径度量值累加到路径度量值PM上,将L条路径每条路径的路径度量值分别累加上Rate

1节点LLR中最小的LLR、次小的LLR以及最小和次小的LLR,包括原来的路径度量值本身一共扩展出4L条路径;随后,将这4L个路径的路径度量值排序,从中选取L个路径度量值最小的路径作为保留路径。5.根据权利要求2所述的一种兼容多码长码率的Polar码译码器的译码方法,其特征在于:在步骤5中,进一步包括:部分和计算模块使用展开和折叠两种部分和计算方式,其中,对于小于译码器并行度P的部分和使用展开计算方式,使用生成矩阵对应行的P个元素与节点译码比特做异或运算,即在一个时钟内完成部分和更新,生成矩阵使用后文将要介绍的生成矩阵快速计算方法生成;对于长度大于P的部分和使用折叠计算方式,将展开方式计算出的P长部分和,与存储在存储单元中的部分和,按照Polar码编码流程,依次读出做异或运算,使用多个时钟完成部分和更新。6.根据权利要求2所述的一种兼容多码长码率的Polar码译码器的译码方法,其特征在于:在步骤6中,进一步包括:译码路径解析模块在每次Rate

1节点译码后,根据保留路径序号、翻转比特索引以及剪枝前Rate

1节点硬判结果得到Rate

1节点译码结果,进行CRC检验和更新后,存入存储单元,并使用链表结构,将保留路径序号作为链表指针头;在译码结束后,选取CRC校验通过的且路径度量值最小的路径从最后一个存入的Rate

1节点开始,回溯整个链表,即得到最终的译码结果。7.根据权利要求2或3所述的一种兼容多码长码率的Polar码译码器的译码方法,其特征在于:多功能计算模块MPE结构由P个计算单元PE、(log2(P)+1)个存储单元RAM、LLR指针和控制逻辑组成;其中,MPE模块的PE单元用来进行f、g以及加法运算,由P个PE单元组成的PE阵列有两种工作模式即全并行和流水,在译码器更新译码二叉树第log2P及以上层的LLR时,此时每层所需计算的LLR个数大于等于P,PE阵列工作在全并行模式,当译码器LLR更新到接近叶节点,即更新第log2P

1到第0层的LLR时,PE阵列工作在流水模式;在并行模式中,PE阵列接收2P个来自chLLR或者的2P个LLR进行f或者g运算得到二叉树下一层的P个LLR存入在流水模式中,计算单元接收来自RAM
log2P
的P个LLR,计算单元接收计算单元的输出,计算单元接收计算单元的计输出,以此类推,直至PE1接收PE3和PE2计算单元的输出;MPE的存储单元分别同时输出2、2、

、P个LLR,
的深度均为其中maxN为译码器最大支持码长;控制逻辑,根据chSegAddr和ctrlMPE配置PE计算单元进行f、g运算和加法运算的其中一种运算,以及配置PE阵列为全并行或者流水模式,在进行g运算时,PE计算单元将从partialSum端口获取对应的部分和信息;控制逻辑同时也将的读写,包括读写地址以及读写使能;LLR指针模块将在MPE单元启动时,根据pathIdx完成幸存路径LLR的交换,通过拷贝指向LLR的指针代替直接的数据搬移,减少操作次数。8.根据权利要求2或4所述的一种兼容多码长码率的Polar码译码器的译码方法,其特征在于:节点处理模块处理Rat...

【专利技术属性】
技术研发人员:刘荣科刘寅德李岩松
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1