一种基于fpga的多卫星协同通信中用户选择系统与方法

文档序号:1849497 发布日期:2021-11-16 浏览:13次 >En<

阅读说明:本技术 一种基于fpga的多卫星协同通信中用户选择系统与方法 (System and method for user selection in multi-satellite cooperative communication based on FPGA ) 是由 余乐 张世伟 冯文斌 于重重 于 2021-06-08 设计创作,主要内容包括:本发明涉及一种基于FPGA的多卫星协同通信中用户选择系统与方法。该系统包括若干存储器以及若干计算模块。该方法采用穷举法遍历每一种用户组合,直至搜索到信道容量最大的一种组合方式。本发明的基于FPGA的多卫星协同通信中用户选择系统与方法,有效的避免了求解高阶复杂的数学运算公式,在兼顾实时性和高精度的同时,解决多卫星协同通信中用户选择算法的工程实现问题。(The invention relates to a user selection system and method in multi-satellite cooperative communication based on an FPGA (field programmable gate array). The system includes a number of memories and a number of computing modules. The method adopts an exhaustion method to traverse each user combination until a combination mode with the maximum channel capacity is searched. The user selection system and method in multi-satellite cooperative communication based on the FPGA effectively avoid solving high-order complex mathematical operation formulas, and solve the engineering realization problem of the user selection algorithm in multi-satellite cooperative communication while considering real-time performance and high precision.)

一种基于FPGA的多卫星协同通信中用户选择系统与方法

技术领域

本发明涉及一种基于FPGA的多卫星协同通信中用户选择系统与方法,属于FPGA设计领域技术领域。

背景技术

地球同步轨道(GEO)是一种稀缺的“自然资源”,轨道上只能包含有限数量的卫星。为了在高传输容量下更加有效地利用GEO轨道,有研究人员提出了多卫星协同通信技术。相较于地面无线通信领域,多卫星协同通信的信道环境复杂,存在着传输路径长,绝对延时长和衰减大的特点。并且卫星点波束内设置有大量用户站,多卫星协同通信系统的处理器需要处理规模庞大的数据。同时,为了高精度的计算每个用户站的信道状态信息,多卫星协同通信系统的处理器需要具备强大的浮点数处理能力。

FPGA内部具有充足的逻辑资源,可编程例化出多个接口和计算单元,其并行加速能力能低耗时的运算处理大量数据。并且在可靠性以及能效比方面,FPGA都要优于CPU与GPU。因此,通常采用FPGA作为多卫星协同通信系统的核心逻辑处理器件。其中,用户选择是多卫星协同通信过程中的重要环节,实现对不同用户组合信道容量的评估,并以此为指标匹配用户站进行通信。

现有技术中,CN101340724A利用投影信道向量计算的正交系数修正接收信噪比,并使用修正信噪比依次选择用户,从而可以利用少量计算来提供大的多用户分集效应。

CN101499837A在贪婪用户选择的基础上,提供了一种多用户MIMO广播信道中低复杂度用户选择方法。该方法将信道响应分解为信道模值和信道间角度,并根据两者在信道模型的概率分布构造指数型效用函数,以效用函数最大化为准则迭代进行用户选择。简化了信道矩阵的相关运算,从而在一定程度下降低了用户选择算法的运算复杂度。

CN102970116A提出了最大化等效信道增益乘积用户选择方法。该方法在保障与全空间搜索法性能相近的前提下,利用MPECG算法选择最优的用户子集。避免了对集合内的每一个用户信道信息进行计算,以达到提升速率、降低复杂度的目的。

然而,以上现有技术的用户选择算法不专门针对卫星通信领域,尤其是多卫星协同通信。因此,在算法设计之初未对FPGA实现做出相应的优化。CN101340724A中算法涉及GS正交化和QR分解运算;CN101499837A中算法使用了根据信道模型概率分布构造的指数型效用函数;CN102970116A中的MPECG算法包含施密特正交化、LU分解,都很不利于用FPGA进行计算和实现。

发明内容

本发明要解决技术问题是:克服上述技术的缺点,提供一种多卫星协同通信中用户选择的FPGA实现系统与方法。

为了解决上述技术问题,本发明提出的第一种技术方案是:一种基于FPGA的多卫星协同通信中用户选择系统,包括:第一存储器、第一组存储器、第二组存储器、CSISO计算模块、第八存储器、HHH计算模块、 det(I+SNR*HH ) )计算模块、log2计算模块、第十二存储器、比较器和增益计算模块;所述第一存储器存储当前信道环境信噪比,其输出连接所述CSISO计算模块和det(I+SNR*HH H )计算模块;所述第一组存储器与第二组存储器存储用户到卫星之间的信道响应;所述第一组存储器的输出连接所述CSISO计算模块与HHH计算模块;所述第二组存储器的输出连接所述HHH计算模块;所述CSISO计算模块的输出连接所述第八存储器;所述第八存储器的输出连接所述增益计算模块;所述HHH计算模块的输出连接所述det(I+ SNR*HH H )计算模块;所述det(I+SNR*HH H )计算模块的输出连接所述log2计算模块;所述log2计算模块连接所述第十二存储器;所述第十二存储器的输出连接所述比较器;所述比较器的输出连接所述增益计算模块;所述增益计算模块输出增益值;所述比较器还输出最优信道容量值和最优用户组合值。

上述方案进一步的改进在于:所述第一组存储器和第二组存储器均包含两个存储器,分别用来存储用户到卫星的信道响应的实部和虚部。

上述方案进一步的改进在于:所述CSISO计算模块用于计算信道容量,计算公式为:C SISO =log2(1+SNR*|h SISO |2);其中,h SISO表示用户和卫星之间的信道响应,SNR表示当前信道环境信噪比;

包括,能够存储第一组数据的第三十一存储器、第三十二存储器,能够存储第二组数据的第三十三存储器、第三十四存储器;所述第三十一存储器、第三十二存储器、第三十三存储器和第三十四存储器的输出均连接平方运算器;所述第三十一存储器和第三十二存储器所连接的平方运算器的输出连接第三十六加法器;所述第三十三存储器和第三十四存储器所连接的平方运算器的输出连接第三十七加法器;所述第三十六加法器和第三十七加法器的输出连接第三十八加法器;所述第三十八加法器与第一存储器的输出连接第三十九加法器;第三十九加法器的输出连接加1加法器;所述加1加法器的输出连接对数运算器。

上述方案进一步的改进在于:所述HHH计算模块是矩阵乘法运算模块,用于信道矩阵H与自身共轭转置HH的相乘运算,包括若干交叉计算输入实部和虚部的第一层乘法器、用于储存第一层乘法器计算结果的若干存储器、用于交叉计算所述存储器中数据的第二层加法器和减法器;用于计算第二层加法器和减法器结果并输入结果的第三层加法器;所述第三层加法器包括4个加法器输出4个矩阵,即为所述HHH计算模块的输出。

上述方案进一步的改进在于:所述det(I+SNR*HH H )计算模块用于进行det(I+SNR* HH H )运算;包括4个输入、4个输入分别与当前信道环境信噪比进行乘法运算的乘法器;其中两个乘法器的输出分别通过加一加法器后再通过加法器相加,另外两个乘法器再分别通过平方运算器进行平方运算后再通过加法器相加;两个加法器的结果再通过减法器进行减法运算后输出。

为了解决上述技术问题,本发明提出的第二种技术方案是:一种如上述的基于FPGA的多卫星协同通信中用户选择系统的用户选择方法,包括如下步骤:

(1)初始化数据,按序存储用户集合内每个用户分别到各卫星的信道响应;

(2)任意选取一组未被配对测试的用户,即从各组信道响应中索引数据;

(3)将步骤(2)中索引出来的数据组装成信道矩阵,即用户组与协同卫星视为MIMO 系统进行配对测试,将信道矩阵代入香农公式,利用香农公式计算当前信道容量,并进行存储;

(4)判断是否已经完成了所有可能的用户组合方式;若是则进行下一步,否则返回步骤(2),直至遍历所有的组合方式;

(5)利用比较器选出所有用户组合中信道容量最大的一个;

(6)输出最大信道容量对应的索引值,作为本轮用户选择的结果。

上述方案进一步的改进在于:所述步骤(3)中的香农公式为CMIMO=log2 {det(I+ SNR*HH H ) };其中,CMIMO为信道容量,H表示信道矩阵,信道矩阵内包含有用户集合中各用户分别到各卫星之间信道响应,HH表示信道矩阵的共轭转置,SNR表示当前信道环境下的信噪比,I代表单位矩阵。

本发明提供的基于FPGA的多卫星协同通信中用户选择系统与方法;采用穷举法遍历每一种用户组合,直至搜索到信道容量最大的一种组合方式。这种方法有效的避免了求解高阶复杂的数学运算公式,在兼顾实时性和高精度的同时,解决多卫星协同通信中用户选择算法的工程实现问题。针对信道容量计算过程,提出基于并行存储器设计的复矩阵乘结构,有效的完成信道响应中实部与虚部的独立存储与交叉运算。其采用逐级流水的层次化结构可以同时计算出方阵与自身共轭转置相乘结果的各元素。利用流水线技术的优化了多卫星协同通信中用户选择算法的FPGA实现系统中计算信道容量的硬件结构,每个用户组合CMIMO值的计算被拆解为三个子过程,每个子过程结束后即可进行下一用户组合的计算子过程,并且可同时进行多个用户组合的计算子过程,进一步提升系统运行的实时性。

附图说明

下面结合附图对本发明作进一步说明。

图1是本发明一个优选的实施例结构示意图。

图2为图1中CSISO计算模块的硬件结构。

图3为图1中HHH计算模块的硬件结构。

图4为图1中det(I+SNR*HHH)计算模块的硬件结构。

图5为图1的输入数据时序。

图6为本发明一个优选的实施例的用户选择方法流程图。

图7为本发明一个优选的实施例的流水线技术优化前后的效果展示。

图8为本发明一个优选的实施例的计算结果输出时序仿真图。

具体实施方式

实施例

本实施例的基于FPGA的多卫星协同通信中用户选择系统,如图1所示,包括:存储器201、第一组存储器、第二组存储器、CSISO计算模块206、存储器208、HHH计算模块207、det(I +SNR*HH H )计算模块209、log2计算模块213、存储器212、比较器211和增益计算模块210;存储器201存储当前信道环境信噪比SNR,其输出连接CSISO计算模块206和det(I+SNR*HH H )计算模块209;第一组存储器与第二组存储器存储用户到卫星之间的信道响应;第一组存储器的输出连接CSISO计算模块206与HHH计算模块207;第二组存储器的输出连接HHH计算模块207;CSISO计算模块206的输出连接存储器;存储器208的输出连接增益计算模块210;HHH计算模块207的输出连接det(I+SNR*HH H )计算模块209;det(I+SNR*HH H )计算模块209的输出连接log2计算模块213;log2计算模块213连接存储器212;存储器212的输出连接比较器211;比较器211的输出连接增益计算模块210;增益计算模块210输出增益值;比较器211还输出最优信道容量值和最优用户组合值。

其中,第一组存储器包含存储器202和存储器203;第二组存储器包含存储器204和存储器205,存储器202和存储器204用来存储用户到卫星的信道响应的实部,存储器203和存储器205用来存储用户到卫星的信道响应的虚部。

本实施例以双卫星协同通信为例。设定双卫星协同通信中其中一颗为卫星m,某个用户到卫星m的信道响应命名为S_m。另一颗为卫星n,某个用户到卫星n的信道响应命名为S_n。S_m_re表示集合内N个用户分别与卫星m的信道响应的实部,S_m_im表示集合内N个用户分别与卫星m的信道响应的虚部。S_n_re表示集合内N个用户分别与卫星n的信道响应的实部,S_n_im表示集合内N个用户分别与卫星n的信道响应的虚部。

CSISO计算模块206用于计算信道容量,计算公式为:C SISO =log2(1+SNR*|h SISO |2);其中,hSISO表示用户和卫星之间的信道响应,SNR表示当前信道环境信噪比。

如图2所示,CSISO计算模块206包括,能够存储第一组数据的存储器301、存储器302,能够存储第二组数据的存储器303、存储器304;存储器301、存储器302、存储器303和存储器304的输出均连接有平方运算器;存储器301和存储器302所连接的平方运算器的输出连接加法器306;存储器303和存储器304所连接的平方运算器的输出连接加法器307;加法器306和加法器307的输出连接加法器308;加法器308与存储器201的输出连接加法器309,也即是加法器308与SNR相加;加法器309的输出连接加1加法器310;加1加法器310的输出连接对数运算器311,对数运算器311是以2为底。

HHH计算模块207是矩阵乘法运算模块,用于信道矩阵H与自身共轭转置HH的相乘运算。

如图3所示,HHH计算模块207包括8个交叉计算输入实部和虚部的第一层乘法器401、用于储存第一层乘法器计算结果的8个存储器、用于交叉计算存储器中数据的第二层加法器和减法器410;用于计算第二层加法器和减法器410结果并输入结果的第三层加法器411;第三层加法器411包括4个加法器输出4个矩阵,即为HHH计算模块的输出。

存储器202, 存储器203, 存储器204, 存储器205的数据经第一层乘法器401后,运算得到的中间结果存储在存储器402,存储器403,存储器404,存储器405,存储器406,存储器407,存储器408,存储器409中,再按照不同的索引值将中间结果输出至第二层加法器和减法器410,第三层加法器411的输入来自第二层加法器和减法器410。结果矩阵元素412,413,414,415为第三层加法器411的输出。该模块计算结果(1,1)表示HHH中的元素(1,1),计算结果(1,2)_re表示HHH中的元素(1,2)的实部,计算结果(2,1)_re表示HHH中的元素(2,1)的实部,计算结果(1,2)_im表示HHH中的元素(1,2)的虚部,计算结果(2,1)表示HHH中的元素(2,1)的虚部,计算结果(2,2)表示HHH中的元素(2,2)。

det(I+SNR*HH H )计算模块209用于进行det(I+SNR*HH H )运算。如图4所示,det(I+ SNR*HH H )计算模块209包括4个输入、4个输入分别与当前信道环境信噪比SNR进行乘法运算的乘法器501;其中两个乘法器的输出分别通过加一加法器502后再通过加法器504相加,另外两个乘法器再分别通过平方运算器503进行平方运算后再通过加法器505相加;加法器504和加法器505的结果再通过减法器506进行减法运算后输出。det(I+SNR*HH H )计算模块209的4个输入与HHH计算模块207的4个输出一一对应连接。

log2计算模块213完成对det(I+SNR*HH H )的log2运算,其输入来自det(I+SNR*HH H )计算模块209。log2计算模块213输出结果为各用户组合组成信道矩阵的CMIMO的计算结果。

存储器212中按序存储来自log2计算模块213的所有用户组合CMIMO的计算结果。比较器211的输入连接至存储器212,其功能为从存储器212中选取一个最大值CMIMO-max作为最优信道容量,并记录寄存器组中最大值的用户组合序号。将上述的两个结果作为用户选择模块的两个输出值。

增益计算模块210计算双卫星协同通信系统最优信道容量相较于单卫星相比的信道容量增益。该模块的两个输入分别为来自存储器208的CSISO值和来自比较器211的CMIMO-max值,利用(CMIMO-max-CSISO)/CSISO计算增益,并作为用户选择模块的第三个输出值。

以双卫星协同通信为例,本发明提供的多卫星协同通信中用户选择算法的FPGA实现系统的输入数据时序如图5所示。

本实施例的基于FPGA的多卫星协同通信中用户选择系统的用户选择方法,如图6所示,包括如下步骤:

(1)初始化数据S_m与S_n,按序存储用户集合内每个用户分别到卫星m与卫星n的信道响应;

(2)任意选取一对未被配对测试的用户,即从S_m中索引一个数据,从S_n中索引一个数据;

(3)步骤(2)索引出来的两个数据组装成信道矩阵,即用户组与两颗卫星视为 2x2MIMO 系统进行配对测试,将信道矩阵代入CMIMO=log2 {det(I+SNR*HH H ) }利用香农公式计算当前信道容量,并进行存储;

(4)判断是否已经完成了所有可能的用户组合配对方式。若是则进行下一步,否则返回步骤(2),直至遍历所有的组合方式;

(5)利用比较器选出所有用户配对组合中信道容量最大的一个;

(6)输出最大信道容量对应的S_m索引值与S_n索引值,作为本轮用户选择的结果。

图7展示了流水线技术优化前后的时序对比,流水线子模块1的运行耗时为,流水线子模块2的运行耗时为T det ,流水线子模块3的运行耗时为T log 。若没有采用流水线技术优化,则上述三个子模块的计算逻辑为一个整体,同一个时间只能完成一个用户组合的CMIMO计算过程,必须等一个用户组合的CMIMO计算完毕后才能开始下一个用户组合的CMIMO计算过程。

本发明提供的多卫星协同通信中用户选择算法的FPGA实现系统采用流水线技术优化了香农公式的计算过程。经过优化后HHH、det(I+SNR*HH H )和log2三个主要计算逻辑被独立开,分别由流水线子模块1、流水线子模块2和流水线子模块3完成。在此种设计结构下,每个用户组合CMIMO值的计算被拆解为三个子过程,每个子过程结束后即可进行下一用户组合的计算子过程,可同时进行多个用户组合的计算子过程,以达到缩短硬件运行耗时的目的。

为保证计算精度,本实施例中包含的存储器、加法器、乘法器、减法器、log2对数运算器、比较器、增益计算模块等均应支持的数据精度为32位单精度浮点数,符合IEEE-754标准。图8为本设计例计算结果输出仿真时序图。

本发明不局限于上述实施例。凡采用等同替换形成的技术方案,均落在本发明要求的保护范围。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种低轨星座网络双层SDN带内控制系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!