一种空间用极化码译码装置的制作方法

阅读: 评论:0



1.本发明属于通信电子设备技术领域,尤其涉及一种空间用极化码译码装置。


背景技术:



2.当今无线通信飞速发展,需要在一定的带宽内尽可能多的传输有用信息,自香农提出信道容量的概念和好码的定义以来,人们一直在寻一种能够达到信道容量的编码。2007年,arikan提出了极化码(polar code)概念,极化码利用信道极化现象,当合并的信道数量趋于无穷大时,一部分信道会变得很好,用于传输有效信息,另一部分信道变得很差,用于传输收发双方已知的固定信息。该码是唯一被理论证明可以在二进制离散无记忆信道条件下达到香农极限的纠错码。arikan在提出极化码的同时提出了串行消除(sc)译码算法,该算法较为简单,但是在中短码条件下性能欠佳,后续学者又提出了crc辅助的基于列表的scl算法,能够提升极化码译码性能。上述算法在计算过程中保留l条似然比最大的待选路径,通过crc校验选择最后l条路径中的最优路径。该算法中需要多次进行路径似然比排序和路径复制,路径越多,空间复杂度越高,使用的存储、运算、逻辑资源越多,时延越大。
3.空间无线通信的超长距离,需要用尽可能少的发射功率,传输尽可能多的信息,极化码的高编码增益特性可以大大降低发射功率,使其在卫星通信、空间通信领域有广泛的应用前景。然而空间飞行器资源受限,需要综合考虑计算、存储、逻辑资源消耗和时间延迟,用尽可能少的资源代价实现极化码的译码,同时空间复杂的电磁环境和辐照条件也对译码实现架构提出了更高的要求。


技术实现要素:



4.为解决上述问题,本发明的目的是提供一种空间用极化码译码装置,该装置可以在较低的资源消耗条件下,实现低延时的极化码译码,以适应空间环境。
5.为实现上述目的,本发明的技术方案为:一种空间用极化码译码装置,所述译码装置采用crc-scl译码算法实现码长为2^n的极化码或由其打孔产生的缩短码译码,包括:数据接收与分配模块和m个译码模块,所述数据接收与分配模块用于接收解调输出的信号、计算llr值并记录译码模块与llr数据的匹配关系,所述译码模块利用数据进行译码,其中m为大于等于1的整数;所述数据接收与分配模块包括依次连接的llr初始化模块、n个初级llr缓存以及1个地址及数据选择选择单元;所述llr初始化单元用于接收解调输出的数据并计算初始llr值,所述初级llr缓存单元用于逐帧缓存所述初始llr值,所述地址及数据选择单元用于记录并跟踪所述译码模块与所述初级llr缓存的对应关系,在译码模块读取时选择对应的初级llr缓存输出;所述译码模块包括译码流程控制模块、判决及排序模块、llr更新模块和编码更新模块,所述译码流程控制模块与所述判决及排序模块、llr更新模块和编码更新模块相连接,所述llr更新模块与所述编码更新模块相连接,所述编码更新模块与所述判决及排序模块相连接;所述译码流程控制模块递归调用llr更新模块实现串行消除译码,所述判决及排序模块对译码值进行判决和排序,全部译码结束后选择crc正确或错误似然
比最小的路径输出。
6.在本发明的一个实施例中,所述初级llr缓存数量n与所述译码模块的数量m存在关系:n=m+1。
7.在本发明的一个实施例中,所述译码装置为通过在fpga内部进行译码逻辑编程实现,所述fpga内含block ram。
8.在本发明的一个实施例中,所述译码流程控制模块包括n-1个递归调用并相互独立的子控制模块,每个子控制模块对应2^i码长的极化码译码,其中,i=n...2,相同码长的子控制模块复用。
9.在本发明的一个实施例中,所述llr更新模块包括llr地址控制模块、通用llr存储模块、llr计算模块,所述llr地址控制模块与所述n-1个递归调用并相互独立的子控制模块和所述通用llr存储模块分别电连接,所述llr计算模块与所述通用llr存储模块、所述地址及数据选择模块、所述编码更新模块和所述判决及排序模块电连接。
10.在本发明的一个实施例中,所述判决及排序模块包括叶子节点计算模块、排序模块和路径存储及逆序crc校验模块,所述叶子节点计算模块与所述译码流程控制模块、所述排序模块和所述路径存储及逆序crc校验模块电连接。
11.在本发明的一个实施例中,所述编码更新模块包括相互电连接的编码中间值更新控制模块、编码中间值缓存,所述编码中间值更新控制模块与所述译码流程控制模块和所述叶子节点计算模块电连接。
12.在本发明的一个实施例中,所述llr更新模块中,llr中间值统一存储在通用llr存储模块,相同层次的llr中间值存储空间复用。
13.在本发明的一个实施例中,所述编码更新模块中,分层计算编码中间值以节省编码计算时间,编码中间值统一存储在编码中间值缓存中以节省存储资源。
14.在本发明的一个实施例中,所述判决及排序模块中,针对冻结位和信息位分别采用并行冒泡算法和二分插入算法进行排序,以缩短排序时间;采用流水操作和判断选择的计算方式,以缩短处理延时;采用记录索引值的方法和逆序crc算法以节省路径复制时间。
15.本发明由于采用以上技术方案,使其与现有技术相比具有以下的优点和积极效果:
16.1、本发明的该译码装置采用crc-scl译码算法实现了码长为2^n的极化码译码或由其打孔产生的缩短码,由内含block ram的fpga及在fpga内部运行的译码逻辑实现,实现方式简单可靠。
17.2、本发明的译码装置通过复用llr计算模块、复用llr中间值和编码中间值存储空间的方式节省了逻辑和存储资源,在较低的资源消耗条件下,实现低延时的极化码译码,以适应空间环境。
18.3、本发明针对冻结位和信息位分别采用并行冒泡算法和二分插入算法进行排序,采用流水操作和判断选择的计算方式,缩短了排序时间和处理延时。利用记录索引值和逆序crc校验算法,节省了路径复制时间。
附图说明
19.下面结合附图对本发明的具体实施方式作进一步详细说明,其中:
20.图1为本发明空间用极化码译码装置的结构图;
21.图2为本发明空间用极化码译码装置的结构图;
22.图3为本发明的译码控制流程图;
23.图4为本发明的逆序crc实现框图。
具体实施方式
24.以下结合附图和具体实施例对本发明作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比率,仅用以方便、明晰地辅助说明本发明实施例的目的。
25.需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后
……
)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
26.同时,“第一”、“第二”等表述仅用于区分多个构型的目的,而不是限制构型或其他特征之间的顺序。
27.另外,“包括”元件的表述是“开放式”表述,该“开放式”表述仅仅是指存在对应的部件,不应当解释为排除附加的部件。
28.参看图1,本发明的空间用极化码译码装置由一个数据接收与分配模块、m个译码模块组成。m个译码模块完全相同,并行流水工作,以提升译码吞吐率。译码模块的个数由输入数据的平均码速率和系统工作时钟确定,可以根据实际情形进行增减。所述译码装置采用crc-scl(cyclic redundancy check-successive cancellation list,循环冗余校验-辅助的连续删除列表)译码算法实现码长为2^n的极化码译码。
29.优选的,采取抗单粒子防护措施以适应复杂的空间环境。
30.更具体的,参看图2,所述数据接收与分配模块由llr(log-likelihood-ratio)初始化模块、初级llr缓存、地址及数据选择模块构成。所述llr初始化模块用于接收解调输出的信号,对该信号进行均匀整数量化后生产8bit的llr初始值,然后写入初级llr缓存,每接收完一帧后,更换新的缓存写入并通知后续的译码模块进行译码;所述初级llr缓存数量比译码模块多一块,即数量为m+1,用于译码模块工作时暂存对应的llr数据;所述地址及数据选择模块负责记录并跟踪译码模块与初级llr缓存的对应关系,在译码模块读取并且在译码模块读取打孔处llr值时输出默认llr值,即最大值。
31.进一步的,每个独立的译码模块由译码流程控制模块、判决及排序模块、llr更新模块和编码更新模块组成。
32.所述译码流程控制模块用于译码过程的流程控制,优选的,所述译码流程控制模块由n-1个独立的子控制模块构成,递归调用,每个子控制模块对应2^i(i=n...2)码长的极化码译码,相同码长的子控制模块完全复用。
33.所述判决及排序模块由叶子节点计算模块、排序模块和路径存储及逆序crc校验模块组成。当译码达到叶子节点时,对译码值进行判决,拓展路径并进行待选路径的错误似然比计算,对冻结位和信息位分别采用并行冒泡算法和二分插入算法进行排序以节省排序时间和运算量,排序后保留错误似然比最小前m条路径,记录路径索引值而不进行路径复制。当译码到达最终bit时,利用路径索引值进行逆序crc校验,选择crc正确或错误似然比
最小的路径输出。为适应空间环境,冻结位存储模块设计了动态刷新功能,能够自我纠正并恢复单bit错误。
34.所述llr更新模块包括llr地址控制模块、通用llr存储模块、llr计算模块组成。所述llr更新模块由所有码长的译码子控制模块复用调用,用一块深度为2^(n+1)的block ram存储所有llr中间值,相同码长的llr中间值使用相同的存储空间以节省资源,采用流水操作和判断选择的方式,完成左右节点不同算法的llr更新运算;节省了逻辑资源。
35.编码更新模块由所有码长的译码子控制模块复用调用,采用一块深度为2^n的缓存来存储编码中间值,利用下层译码输入的路径索引值,计算每条路径的编码值并更新,每层相同bit的编码值存储在同一位置以节省存储资源。
36.具体的流程如图3所示,每层子控制模块按流程调用llr计算模块、下层译码模块、编码更新模块实现从码长2^n到2的译码递归调用流程。每次调用,所述译码流程控制模块都会为被调用模块提供读写起始地址、步进、路径索引、左右指示等控制信息,本层译码结束后,会为上层译码提供路径索引信息。
37.举个例子,码长为2的译码控制模块调用的下层译码模块为判决及排序模块,其功能是根据输入的l个llr,对现有的l个错误似然比按如下公式进行拓展为2l个,然后选择其中最小的l个保留,并更新残余路径序列,公式为:
[0038][0039][0040]
根据公式,可以将排序简化为二种情况:
[0041]
1.冻结位,由于预设值已知,路径唯一,仅需对l+1到2l共l个pa进行排序。采用改进的冒泡排序法实现。实现方法如下:
[0042]
a):pa
n+l
和pa
n+1+l
,n=1,3,5...两两比较,pa
n+l
》pa
n+1+l
则相互交换;
[0043]
b):pa
n+l
和pa
n+1+l
,n=2,4,6...两两比较,pa
n+l
》pa
n+1+l
则相互交换;
[0044]
c):重复a)、b)直到次数等于l,排序完成。
[0045]
采用该并行比较算法,排序共需要l个时钟周期。优于常规冒泡排序法的l(l-1)/2个时钟周期。
[0046]
2.信息位,由于pa
n n=1,2,3...l已排好序,仅需要将pan,n=l+1,l+2,...2l-1共l-1个数按照大小依次插入pa
n-l
之后的序列中,直到插入点序号大于l,则前l个数为所需序列,插入算法采用二分插入法,最大比较次数为优于常规冒泡排序法的2l(2l-1)/2次比较次数。
[0047]
在上述排序过程中,实施记录各pan的原始序号,该序号表示了该pa是由哪条残余路径拓展而来,将排序号后前l个pan的序号其作为路径索引记录并上传上层模块,无需对路径的前n-1个比特进行复制,节省了路径复制时间。
[0048]
在所有比特判决结束后,利用存储的路径索引对残余路径进行逆序crc校验,同时
进行路径重排,校验结束后选择校验成功的路径输出,无校验成功路径则选择第一条路径输出。逆序crc校验框图如图4所示。
[0049]
在进行排序操作和逆序crc计算过程中,均需要获取冻结字位置信息,该信息存储在位宽为3,深度为2^n的双口ram中。为适应空间单粒子环境,该ram采用了“三模冗余+动态刷新”设计,一个端口用于读取,三取二后输出,另一个端口在背景中读取数据,经三取二判断后重新回写回原地址。
[0050]
llr更新模块负责计算下层译码所需的llr值,利用各层译码模块间递归调用的特性,所有llr计算复用同一个计算模块,llr计算中间值在本层所有计算结束前需要保留,但计算结束后即可丢弃,利用该特性相同码长的llr计算中间值可以复用相同的存储空间,所有llr中间值存储在同一块深度为2^(n+1)的block ram中,可以进一步提高ram利用率和节省地址生成逻辑,该ram的地址分配表1所示(码长1024bit)。
[0051]
表1:
[0052]
地址空间内容(list*width)深度0~511512码长llr中间值512512~767256码长llr中间值256768~895128码长llr中间值128895~95964码长llr中间值64960~99132码长llr中间值32992~100716码长llr中间值161008~10158码长llr中间值81016~10194码长llr中间值41020~10212码长llr中间值2
[0053]
list:最大残余路径数
[0054]
width:单个llr值位宽
[0055]
llr计算采用最小和算法,计算公式为:
[0056][0057]
其中fi(a)为左下第i条路径llr计算公式;
[0058]
gi(a)为右下第i条路径llr计算公式;
[0059]
n为当前码长;
[0060]
为左下层反馈的第i条路径的判决值;
[0061]
index(i)为左下层反馈的第i条路径的索引值。
[0062]
计算f(x)时,对每条残存路径的左下llr进行更新,计算g(x)时,根据下层模块上传的路径索引值,选择对应路径的llr值进行计算更新。
[0063]
为提高工作频率,对该运算进一步进行分步简化处理,运算步骤如下:
[0064]
1)同时计算-li(a),-li(a+n/2),li(a)+li(a+n/2),li(a+n/2)-li(a);
[0065]
2)根据表2选择f(x)和g(x)输出结果;
[0066]
3)根据左右指示选择f(x)和g(x)之一输出;
[0067]
4)位数截取及溢出操作。
[0068]
利用block ram的双口操作特性,配合上述算法的流水操作,可以在n+6个时钟内完成一次n/2码长的llr更新。
[0069]
表2:
[0070][0071]
msb(x)为x的最高位。
[0072]
编码更新模块利用下层的编码中间值和路径索引计算本层的编码中间值,计算公式为:
[0073]
其中,ci(l)为第i条路径的第l个bit;index(i)为右下层反馈的第i条路径索引值。
[0074]
利用每层计算仅与下层编码中间值相关,且计算结束后下层编码中间值不再使用的特点,采用了一个深度为2^n的ram存储编码中间值,下层编码值读取后将编码结果写回原地址,既避免了传统算法从底层开始的编码重复计算,又节省了存储空间。
[0075]
采用本方案,在xilinx fpga xc7k325上实现了码长1024的极化码译码装置,其中译码模块数量为3,最大残余序列数为4。其使用的资源如表3所示。
[0076]
表3:
[0077][0078]
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式。本领域的技术人员可以对本发明的接收装装置进行各种改动和变形而不脱离本发明的精神和范围。即使对本发明作出各种变化,倘若这些变化属于本发明权利要求及其等同技术的范围之内,则仍落入在本发明的保护范围之中。

技术特征:


1.一种空间用极化码译码装置,所述译码装置采用crc-scl译码算法实现码长为2^n的极化码或由其打孔产生的缩短码译码,其特征在于,包括:数据接收与分配模块和m个译码模块,所述数据接收与分配模块用于接收解调输出的信号、计算llr值并记录译码模块与llr数据的匹配关系,所述译码模块利用数据进行译码,其中m为大于等于1的整数;所述数据接收与分配模块包括依次连接的llr初始化模块、n个初级llr缓存以及1个地址及数据选择选择单元;所述llr初始化单元用于接收解调输出的数据并计算初始llr值,所述初级llr缓存单元用于逐帧缓存所述初始llr值,所述地址及数据选择单元用于记录并跟踪所述译码模块与所述初级llr缓存的对应关系,在译码模块读取时选择对应的初级llr缓存输出;所述译码模块包括译码流程控制模块、判决及排序模块、llr更新模块和编码更新模块,所述译码流程控制模块与所述判决及排序模块、llr更新模块和编码更新模块相连接,所述llr更新模块与所述编码更新模块相连接,所述编码更新模块与所述判决及排序模块相连接;所述译码流程控制模块递归调用llr更新模块实现串行消除译码,所述判决及排序模块对译码值进行判决和排序,全部译码结束后选择crc正确或错误似然比最小的路径输出。2.根据权利要求1所述的空间用极化码译码装置,其特征在于,所述初级llr缓存数量n与所述译码模块的数量m存在关系:n=m+1。3.根据权利要求1所述的空间用极化码译码装置,其特征在于,所述译码装置为通过在fpga内部进行译码逻辑编程实现,所述fpga内含block ram。4.根据权利要求1所述的空间用极化码译码装置,其特征在于,所述译码流程控制模块包括n-1个递归调用并相互独立的子控制模块,每个子控制模块对应2^i码长的极化码译码,其中,i=n...2,相同码长的子控制模块复用。5.根据权利要求4所述的空间用极化码译码装置,其特征在于,所述llr更新模块包括llr地址控制模块、通用llr存储模块、llr计算模块,所述llr地址控制模块与所述n个递归调用并相互独立的子控制模块和所述通用llr存储模块分别电连接,所述llr计算模块与所述通用llr存储模块、所述地址及数据选择模块、所述编码更新模块和所述判决及排序模块电连接。6.根据权利要求5所述的空间用极化码译码装置,其特征在于,所述判决及排序模块包括叶子节点计算模块、排序模块和路径存储及逆序crc校验模块,所述叶子节点计算模块与所述译码流程控制模块、所述排序模块和所述路径存储及逆序crc校验模块电连接。7.根据权利要求6所述的空间用极化码译码装置,其特征在于,所述编码更新模块包括相互电连接的编码中间值更新控制模块、编码中间值缓存,所述编码中间值更新控制模块与所述译码流程控制模块和所述叶子节点计算模块电连接。8.根据权利要求7所述的空间用极化码译码装置,其特征在于,所述llr更新模块中,llr中间值统一存储在通用llr存储模块,相同层次的llr中间值存储空间复用。9.根据权利要求8所述的空间用极化码译码装置,其特征在于,所述编码更新模块中,分层计算编码中间值以节省编码计算时间,编码中间值统一存储在编码中间值缓存中以节省存储资源。
10.根据权利要求8所述的空间用极化码译码装置,其特征在于,所述判决及排序模块中,针对冻结位和信息位分别采用并行冒泡算法和二分插入算法进行排序,以缩短排序时间;采用流水操作和判断选择的计算方式,以缩短处理延时;采用记录索引值的方法和逆序crc算法以节省路径复制时间。

技术总结


本发明公开了一种空间用极化码译码装置,包括:数据接收与分配模块和M个并行的译码模块,译码模块并行操作以提升吞吐率,每个独立的译码模块由译码流程控制模块、判决及排序模块、LLR更新模块和编码更新模块组成。本发明并通过复用LLR更新模块中的LLR计算模块、复用LLR中间值和编码中间值存储空间的方式节省了逻辑和存储资源;针对冻结位和信息位分别采用并行冒泡算法和二分插入算法节省了排序时间;采用流水操作和判断选择的计算方式,缩短了LLR处理延时;采用记录索引值的方法和逆序CRC算法,无需路径复制。采用“三模冗余+动态刷新”设计以适应空间环境。具有资源占用低、处理延时小、工作频率高、耐受空间环境能力强的特点。耐受空间环境能力强的特点。耐受空间环境能力强的特点。


技术研发人员:

石云墀 李上彦 范志英 张风源 刘嘉畅

受保护的技术使用者:

上海航天测控通信研究所

技术研发日:

2022.08.15

技术公布日:

2023/1/31

本文发布于:2023-03-06 02:37:16,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/67412.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:译码   模块   所述   路径
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图