首页> 中国专利> 一种基于FPGA的OTFS低复杂度GAMP检测算法IP核实现方法

一种基于FPGA的OTFS低复杂度GAMP检测算法IP核实现方法

摘要

本发明公开了一种基于FPGA的OTFS低复杂度GAMP检测算法IP核实现方法。首先从原理上阐述了算法软件仿真的优势,提出了一种更易于硬件实现的OTFS检测算法,其次针对算法部分提出了合理的硬件实现架构,并依次进行硬件模块设计。该方法采用Vivado开发平台进行硬件设计,并在XC7A200TFPGA上进行仿真验证。在OTFS接收机的早期研发阶段,可以加速数字基带链路的开发进度,在6G的关键技术研究中,为后续OTFS原理样机的设计能够提供很好的参考价值。

著录项

  • 公开/公告号CN116366511A

    专利类型发明专利

  • 公开/公告日2023-06-30

    原文格式PDF

  • 申请/专利权人 哈尔滨工程大学;

    申请/专利号CN202310277862.8

  • 发明设计人 方斌;贾皓翔;赵旦峰;

    申请日2023-03-21

  • 分类号H04L43/18(2022.01);G06F30/32(2020.01);H04L43/08(2022.01);H04L43/00(2022.01);H04L43/16(2022.01);G06F115/08(2020.01);

  • 代理机构

  • 代理人

  • 地址 150001 黑龙江省哈尔滨市南岗区南通大街145号

  • 入库时间 2024-01-17 01:13:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-07-18

    实质审查的生效 IPC(主分类):H04L43/18 专利申请号:2023102778628 申请日:20230321

    实质审查的生效

  • 2023-06-30

    公开

    发明专利申请公布

说明书

技术领域

本发明属于电子通信技术领域,具体提供了一种基于FPGA的OTFS低复杂度GAMP检测算法IP核实现方法。

背景技术

正交时频空(OrthogonalTimeFrequencySpace,OTFS)调制作为一种新型的二维调制技术,可以有效抑制多普勒频移和多径效应对通信系统的影响,相较于传统的正交频分复用(OrthogonalFrequencyDivisionMultiplexing,OFDM)技术更加适用于高动态场景,因此研究其性能非常重要。针对OTFS接收机的设计也是目前研究的一大热点。

对OTFS而言,其时延多普勒域上信道的稀疏性为接收机检测带来了特有的优势。很多学者从通信的角度设计了一些误码率性能较优的OTFS检测以及均衡的方法,但是在硬件实现上依然存在复杂度高以及系统难优化等问题。并且OTFS发射机、接收机设计的相关研究目前很少有较好的方案提出。

FPGA器件属于专用集成电路中的一种半定制电路,在无线通信方面,FPGA可以解决复杂的通信协议,并且发挥其自身可编程逻辑电路的优势能快速对通信物理层进行设计和仿真,以及在算法复杂度和系统性能之间取得合理折中。

发明内容

本发明的目的在于提供一种基于FPGA的OTFS低复杂度GAMP检测算法IP核实现方法。

本发明的目的通过如下技术方案来实现:

一种基于FPGA的OTFS低复杂度GAMP检测算法IP核实现方法,步骤为:

步骤1:在OTFS数字基带链路的接收端中对GAMP检测进行优化;

步骤2:对算法系统架构进行设计;

步骤3:信道矩阵存储设计;

步骤4:对模块传输端口进行设计;

步骤5:算法调用的乘除法器模块设计;

步骤6:低复杂度GAMP算法IP核接口设计。

进一步地,所述步骤1将时延多普勒域矩阵从复数域转换到实数域,基于矩阵的实对称性和稀疏性,在不影响误码率的前提下进一步对接收信号进行匹配滤波从而加强矩阵对角线元素的幅值。

进一步地,所述步骤2将算法细分为五个模块,顶层由状态机控制不同状态的跳转,当进行到终止判决模块时,通过比较当前输出向量与初始向量的差值和迭代收敛阈值的大小来决定是否需要重新进行一次状态循环跳转。

进一步地,所述步骤2具体为:

步骤2.1:具体GAMP算法模块;

初始化:没有外部信息输入时,此时检测处于空闲状态,即IDLE状态,此时检测IP无操作;外部信息输入时,此时信息输入有效信号in_valid由低电平变为高电平,开始对一帧信号开始检测,对符号点的初始概率以及均值方差进行初始化赋值,当赋值结束输出idle_done信号为1;此时状态机跳转至观测节点更新模块;

观测节点更新模块:负责观测节点均值方差值的更新,当此模块完成工作后,将one_done信号拉高;状态机检测到该信号拉高后跳转至变量节点更新模块,下一个模块开始工作;

变量节点更新模块:负责变量节点均值方差值的更新,此模块更新完成后,将two_done信号拉高,状态机跳转至概率质量函数更新模块,下一个模块开始工作;

概率质量函数更新模块:用于计算每个初始映射点可能性概率;此模块工作完成后同时输出three_done信号为1和x信号的更新值,状态机跳转至终止判决模块,下一个模块开始工作;

终止判决模块:通过比较符号点的概率大小信息判决输出最终检测的x向量;通过比较x更新前后的差值来确定系统迭代是否结束,若未结束则状态机重新进入观测节点更新模块开始工作;若满足检测输出条件,则输出全部检测结果及错误比特个数,结束当前一帧信号的检测;并跳转到初始化状态,等待下一帧信号进入检测;

步骤2.2:观测节点、变量节点、概率质量函数模块都需要用到事先存在ROM中的信道矩阵值信息,考虑资源占用问题,此三个模块依次在用到ROM值时发送对应使能有效信号;

步骤2.3:当状态机跳转到下一个状态时候会输出一个fsm_begin信号,每个模块检测fsm_begin信号的上升沿来产生本模块的起始信号,在逻辑控制中通过计数产生使能信号来对应实现内部模块计算。

进一步地,步骤3具体为:

步骤3.1:将信道抽象成

步骤3.2:设计GAMP检测算法合理的硬件架构;设M=8、N=8,则信道矩阵是64*64的复数矩阵,利用公式

步骤3.3:将信道矩阵参数按照2N*2MN大小划分成8个block,将每个新矩阵块按行展开后取出非0值,然后将取出的值乘以2^22倍来保证小数点后6位的精度;

步骤3.4:将放大后的数据依次存储到单端口ROM中,分别对应ROM1~ROM8;通过在程序逻辑中控制ROM的读出顺序来实现矩阵和向量相乘。

进一步地,步骤4具体为:

步骤4.1:对不同模块之间的数据传输统一采用wire[M*N*2*20-1:0]定义,在经过实数域转换后,算法中每个向量的长度为M*N*2,每个元素在硬件中使用20位定点数表示;

步骤4.2:将符号数M和子载波数N做parameter处理,所有软件中的小数在硬件中对应20位宽定点数处理,对于有符号数定义1位符号位,3位整数位,16位小数位;无符号数则对应4位整数位,16位小数位。

进一步地,步骤5具体为:

步骤5.1:在算法中涉及有符号向量与无符号向量除法,在调用Xilinx除法器IP时候选择输出为整数+小数模式,小数部分的位宽定义成16位;算法中的有符号向量除法运算,在输入端先行判断符号数的正负,操作数全部取正数在做除法运算;在输出根据最初的判断调整结果的正负;小数部分的符号位去0处理;

步骤5.2:在矩阵向量和向量与向量乘法中调用Xilinx自带的乘法器IP用于有符号数乘法运算,选用面积优先的两流水线模式;最后对输出的结果右移保留16位小数部分。

进一步地,步骤6编写仿真激励测试文件,硬件输出解调之后的数据与输入随机数进行对比统计,输出最终错误的比特数;当前状态机进入到迭代终止判决模块且收敛条件成立时,则输出detec_done信号为1来表示检测行为结束。

本发明的有益效果在于:

本发明提可以实现速率和面积的有效平衡,并且通过检测前的匹配滤波可以进一步降低GAMP算法收敛迭代次数,使得检测算法的硬件占用资源更小,速率更高,具有良好的实用性。

本发明率先提出了一种易于硬件实现的OTFS检测算法IP核实现方法,且方案设计合理,可配置性较高。为了率先对OTFS检测算法进行硬件资源及性能评估,本发明提供了一种OTFS低复杂度的广义近似消息传递算法(GAMP)IP核实现方案。在OTFS接收机的早期研发阶段,可以加速数字基带链路的开发进度,在6G的关键技术研究中,为后续OTFS原理样机的设计提供很好的参考价值。

附图说明

图1为本发明的OTFS低复杂度GAMP检测算法IP核设计架构图;

图2为本发明的OTFS信道矩阵实数域转换后的结构示意图;

图3为本发明仿真的GAMP算法观测节点信息更新波形图;

图4为本发明仿真的GAMP算法变量节点信息更新波形图;

图5为本发明仿真的GAMP算法顶层状态机波形图。

具体实施方式

下面结合附图对本发明做进一步描述。

在更加详细地讨论实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。

如图1所示,本发明提供了一种基于FPGA的OTFS低复杂度GAMP检测算法IP核设计方案,该方法具体包括以下步骤:

步骤1:算法预处理设计;

首先在OTFS数字基带链路中在接收端对GAMP检测性能进行软件仿真,为了便于硬件实现且进一步降低算法复杂度,本发明首先将时延多普勒域矩阵从复数域转换到实数域,基于矩阵的实对称和稀疏性,在不影响误码率的前提下进一步对接收信号进行匹配滤波从而加强矩阵对角线元素的幅值,在仿真中可以发现对匹配滤波后的信号进行GAMP检测可以进一步减少循环迭代次数从而降低硬件实现的复杂度,使得算法更加易于硬件实现。

步骤2:对算法系统架构进行设计;

将算法细分为五个模块,顶层由状态机控制不同状态的跳转,当进行到终止判决模块时,通过比较当前输出向量与初始向量的差值和迭代收敛阈值的大小来决定是否需要重新进行一次状态循环。

步骤2.1:具体GAMP算法模块功能说明如下:

初始化:没有外部信息输入时,此时检测处于空闲状态,即IDLE状态,此时检测IP无操作。外部信息输入时,此时信息输入有效信号in_valid由低电平变为高电平,开始对一帧信号开始检测,对符号点的初始概率以及均值方差进行初始化赋值,当赋值结束输出idle_done信号为1。此时状态机跳转至观测节点更新模块。

观测节点更新模块:负责观测节点均值方差值的更新,当此模块完成工作后,将one_done信号拉高,如图4所示。状态机检测到该信号拉高后跳转至变量节点更新模块,下一个模块开始工作。

变量节点更新模块:负责变量节点均值方差值的更新,此模块更新完成后,将two_done信号拉高,状态机跳转至概率质量函数更新模块,下一个模块开始工作。

概率质量函数更新模块:用于计算每个初始映射点可能性概率。此模块工作完成后同时输出three_done信号为1和x信号的更新值,状态机跳转至终止判决模块,下一个模块开始工作。

终止判决模块:通过比较符号点的概率大小信息判决输出最终检测的x向量。通过比较x更新前后的差值来确定系统迭代是否结束,若未结束则状态机重新进入观测节点更新模块开始工作。若满足检测输出条件,则输出全部检测结果及错误比特个数,结束当前一帧信号的检测。并跳转到初始化状态,等待下一帧信号进入检测。

步骤2.2:观测节点、变量节点、概率质量函数模块都需要用到事先存在ROM中的信道矩阵值信息,考虑资源占用问题,此三个模块依次在用到ROM值时发送对应使能有效信号。

步骤2.3:当状态机跳转到下一个状态时候会输出一个fsm_begin信号,每个模块检测fsm_begin信号的上升沿来产生本模块的起始信号,在逻辑控制中通过计数产生使能信号来对应实现内部模块计算。

步骤3:信道矩阵存储设计;

步骤3.1:在同等的软件仿真条件信道矩阵为64*64的复数域矩阵,考虑到算法中涉及到大量的乘除法运算,而复数乘除法会带来更多的复杂度从而占用大量的资源。这里通过矩阵变换运算将算法转换到实数域进行计算,这样不仅在FPGA中节省了乘法器资源而且降低了运算的复杂度。如图2所示,变换后新的矩阵大小为128*128。

步骤3.2:考虑FPGA具有很好的并行处理能力,在矩阵向量运算中考虑资源占用及运算速度,本发明将矩阵横向分成16*128的矩阵块,将第一个和第九个拼接成一组新的矩阵,依次类推。总共8组矩阵,将每个新矩阵块按行展开后取出非0值后乘以2^22倍来保证小数点后6位的精度。将放大后的数据存储到单端口ROM中,分别用ROM1~ROM8表示。通过在程序逻辑中控制ROM的读出顺序来实现矩阵和向量相乘。

步骤3.3:在匹配滤波中由于涉及到矩阵的平方运算,且变换后的矩阵为实对称矩阵,通过比较矩阵中元素特性可以看出平方矩阵除了对角线元素外其余元素均小于10^-8,因此在设计中可以做0处理。在100MHZ时钟仿真激励下,均值方差信息仿真波形图如图3与图4所示。可以看出来针对8路并行运算架构可以在大约260个时钟周期内完成一个列向量信息的更新。

步骤4:数据接口设计;

步骤4.1:对不同模块之间的数据传输统一采用wire[M*N*2*20-1:0]定义,在经过实数域转换后,算法中每个向量的长度为M*N*2,每个元素在硬件中使用20位定点数表示。

步骤4.2:由于IP核设计需要考虑不同模块之间传递数据格式的统一性,因此在设计初始最好做到统一的数据类型定义。本发明将符号数M和子载波数N做parameter处理,所有软件中的小数在硬件中对应20位宽定点数处理,对于有符号数定义1位符号位,3位整数位,16位小数位;无符号数则对应4位整数位,16位小数位。而硬件中16位足以表示小数点后4位的数据精度。

步骤5:算法调用的乘除法器设计;

步骤5.1:在算法中涉及有符号向量与无符号向量除法,在调用Xilinx除法器IP时候选择输出为整数+小数模式,小数部分的位宽选择16位。对于算法中的有符号向量除法运算,本发明在输入端先行判断符号数的正负,然后将操作数全部取正数在做除法运算。在输出根据最初的判断调整结果的正负,这里特别注意小数部分的符号位去0处理。

步骤5.2:在矩阵向量和向量与向量乘法中本发明调用Xilinx自带的乘法器IP用于有符号数乘法运算,最后对输出的结果右移保留16位小数部分。

步骤6:低复杂度GAMP算法IP核输出;

编写仿真激励测试文件,硬件输出解调之后的数据与输入随机数进行对比统计,输出最终错误的比特数。如图5所示,当前状态机进入到迭代终止判决模块且收敛条件成立时,则输出detec_done信号为1来表示检测行为结束。

本发明首次提出了一种OTFS的低复杂度GAMP检测算法的硬件实现方法。结合已有的OTFS信道矩阵特性进行硬件中的匹配滤波和实数域转换,在不降低误码率的前提下通过降低检测算法收敛迭代次数而进一步降低硬件实现的复杂度。整个IP核分别从五个模块依次进行设计仿真,顶层由状态机控制每个模块的跳转顺序。并且本发明在硬件中对矩阵存储架构进行了合理设计,为OTFS的接收机设计提供了一种可靠的IP核设计方案,实现了从无到有的突破。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号