CN112015369A - 基于fpga的信号处理方法、电子设备和存储介质 - Google Patents
基于fpga的信号处理方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112015369A CN112015369A CN202010863977.1A CN202010863977A CN112015369A CN 112015369 A CN112015369 A CN 112015369A CN 202010863977 A CN202010863977 A CN 202010863977A CN 112015369 A CN112015369 A CN 112015369A
- Authority
- CN
- China
- Prior art keywords
- order
- matrix
- diagonal
- fpga
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/78—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/02—Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas
- H04B7/04—Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas using two or more spaced independent antennas
- H04B7/08—Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas using two or more spaced independent antennas at the receiving station
- H04B7/0891—Space-time diversity
- H04B7/0897—Space-time diversity using beamforming per multi-path, e.g. to cope with different directions of arrival [DOA] at different multi-paths
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Radio Transmission System (AREA)
Abstract
本申请涉及一种基于FPGA的信号处理方法、电子设备和计算机可读存储介质。该基于FPGA的信号处理方法通过从接收信号获得n阶厄米特矩阵,将所述n阶厄米特矩阵存储在FPGA的寄存器中,将n阶厄米特矩阵划分为对角二阶子矩阵和非对角二阶子矩阵,再并行对所有对角二阶子矩阵和非对角二阶子矩阵进行实数化旋转来获得所述n阶厄米特矩阵的特征值,从而减小总体的计算时间,显著增强了计算的实时性,提高了接收信号的信号处理的效率。
Description
技术领域
本发明总体地涉及信号处理领域,特别是涉及一种基于FPGA的信号处理方法、电子设备和计算机可读存储介质。
背景技术
厄米特(Hermitian)矩阵在阵列信号处理,图像处理,鲁棒控制等领域等都有着无可替代的地位,以天线阵列信号处理为例,在处理天线阵列信号的时候,为了获得空间信号维度的相关性以估计目标信息,此时需要用到协方差矩阵,因为协方差矩阵是阵列信号的二阶统计量,包含每一维度下信号相关性,通过对协方差矩阵进行特征分解,并构建空间谱可以分别得到信号子空间和噪声子空间的信息,利用它们的正交性可以对信号及干扰的来向进行估计。而阵列信号的协方差矩阵就是厄米特矩阵。在进行阵列信号抗干扰时,需要对干扰方向进行自适应波束成形,此时,厄米特矩阵的特征分解的快速计算就显得尤为重要,因为过长的响应时间会直接导致测向结果输出不及时,抗干扰的方向出现偏差,无法得到理想的抗干扰效果。
当前,主流的厄米特矩阵的特征分解的方案分为以下两类:(1),使用ARM或DSP实现厄米特矩阵的特征值及特征向量计算,该方案实现厄米特矩阵特征分解功能比较简单,但DSP芯片不具备并行行计算功能,而且DSP芯片相对于FPGA(Field Programmable GateArray:现场可编程门阵列),计算速度较慢,因此这一类方案仅适用于事后分析,不适合电子对抗等对实时性有一定要求的场合。(2)在FPGA上使用串行方式实现厄米特矩阵的特征值及特征向量计算,该方案未能利用FPGA的硬件特性,依然使用串行结构进行计算,需要较多的迭代次数才能实现计算结果的收敛,整个收敛时间依然过久,同样不适合用于对实时性有较高要求的场合。
因此,期望提供能够提高厄米特矩阵的特征分解的速度的方案。
发明内容
为了解决上述技术问题,提出了本申请。本申请的实施例提供了一种基于FPGA的信号处理方法、电子设备和计算机可读存储介质,其通过将n阶厄米特矩阵划分为对角二阶子矩阵和非对角二阶子矩阵,并行对所有对角二阶子矩阵和非对角二阶子矩阵进行实数化旋转来获得所述n阶厄米特矩阵的特征值,从而减小总体的计算时间,提高计算的实时性。
根据本申请的一方面,提供了一种基于FPGA的信号处理方法,包括:
步骤一,从接收信号获得n阶厄米特矩阵,将所述n阶厄米特矩阵存储在FPGA的寄存器中;
步骤二,将所述寄存器中的n阶厄米特矩阵划分为对角二阶子矩阵和非对角二阶子矩阵;
步骤三,并行对所有对角二阶子矩阵和非对角二阶子矩阵进行实数化旋转;
步骤四,将旋转后的n阶厄米特矩阵使用脉动矩阵交换规则进行更新;
步骤五,重复所述步骤二到步骤四,进行(n-1)次脉动矩阵交换以对所述n阶厄米特矩阵的所有矩阵元素进行一次归零刷新;
步骤六、重复所述步骤二到步骤五直到所述n阶厄米特矩阵除对角线元素外所有元素归零,以获得所述n阶厄米特矩阵的特征值;以及
步骤七,将所述特征值用于所述接收信号的信号处理。
在上述基于FPGA的信号处理方法中,并行对所有对角二阶子矩阵和非对角二阶子矩阵进行实数化旋转包括:
步骤a,对所有对角二阶子矩阵的第一行第二列元素使用基于FPGA的坐标旋转数字计算机CORDIC算法获得其第一幅度和第一相位,并将所述第一相位向所述对角二阶子矩阵的相应行和列进行传递以获得行传递相位和列传递相位;
步骤b,使用所述第一相位和所述坐标旋转数字计算机算法对所述对角二阶子矩阵以及对所述n阶厄米特矩阵的上三角或者下三角的非对角二阶子矩阵进行实数化旋转,并计算所述对角二阶子矩阵的第一旋转角度并向相应的行和列进行传递以获得行旋转角度和列旋转角度;
步骤c,基于所述第一旋转角度和所述坐标旋转数字计算机算法对所述上三角或者下三角的对角二阶子矩阵进行对角化和对非对角二阶子矩阵进行旋转。
在上述基于FPGA的信号处理方法中,所述步骤c包括:使用所述第一旋转角度的正弦值和余弦值构造二阶旋转矩阵;使用所述坐标旋转数值计算机算法以所述二阶旋转矩阵的转置乘以所述对角二阶子矩阵并再乘以所述二阶旋转矩阵以对所述对角二阶子矩阵进行对角化;以及,使用所述坐标旋转数值计算机算法以所述二阶旋转矩阵的转置乘以所述非对角二阶子矩阵并再乘以所述二阶旋转矩阵以对所述非对角二阶子矩阵进行旋转。
在上述基于FPGA的信号处理方法中,
所述步骤一进一步包括构造n阶单位矩阵;
所述步骤b进一步包括使用所述第一相位和所述坐标旋转数字计算机算法对所述n阶单位矩阵进行旋转;
所述步骤c进一步包括使用所述列旋转角度对所述n阶单位矩阵内对应的列进行旋转;
所述步骤六进一步包括获得所述n阶厄米特矩阵除对角线元素外所有元素归零时对应的刷新的单位矩阵,所述单位矩阵是所述n阶厄米特矩阵的特征向量。
在上述基于FPGA的信号处理方法中,所述步骤b包括:使用实数化旋转后的所述n阶厄米特矩阵的上三角的非对角二阶子矩阵,基于厄米特矩阵的共轭对称性更新所述n阶厄米特矩阵的下三角的非对角二阶子矩阵;或者,使用实数化旋转后的所述n阶厄米特矩阵的下三角的非对角二阶子矩阵,基于厄米特矩阵的共轭对称性更新所述n阶厄米特矩阵的上三角的非对角二阶子矩阵。
在上述基于FPGA的信号处理方法中,所述步骤c包括:使用旋转后的所述上三角的非对角二阶子矩阵,基于厄米特矩阵的共轭对称性更新所述n阶厄米特矩阵的下三角的非对角二阶子矩阵;或者,使用旋转后的所述下三角的非对角二阶子矩阵,基于厄米特矩阵的共轭对称性更新所述n阶厄米特矩阵的上三角的非对角二阶子矩阵。
在上述基于FPGA的信号处理方法中,将旋转后的n阶厄米特矩阵使用脉动矩阵交换规则进行更新包括:将旋转后的n阶厄米特矩阵按照BLV脉动阵列的交换方式进行交换,以使得矩阵的所有非对角线上的元素在更新后成为所述对角二阶子矩阵的反对角线上的元素,以进行归零旋转,所述所有非对角线上的元素是在经过n-1次交换后成为一次对角二阶子矩阵的反对角元素。
在上述基于FPGA的信号处理方法中,所述BLV脉动阵列的交换方式的交换规则包括:
内部交换:第一行第一个子矩阵元素位置不变,第一行其余二阶子矩阵元素按行交换;以及,剩余二阶子矩阵按对角交换;
外部交换:第一行第一个子矩阵的第一个元素位置不变,第一行的二阶子矩阵的第一行元素与相邻子矩阵第一行相邻的元素进行交换;矩阵最后一列的第一个二阶子矩阵的元素位置不变,其余二阶子矩阵的第二列与相邻子矩阵的元素进行交换;其余子矩阵的元素与对角线上相邻子矩阵的相邻元素进行交换。
在上述基于FPGA的信号处理方法中,所述接收信号是天线阵列接收到的信号。
在上述基于FPGA的信号处理方法中,将所述特征值用于所述接收信号的信号处理包括:将所述特征值用于所述天线阵列信号的信源数量估计;和/或,将所述特征向量用于确定所述天线阵列信号的干扰信号的方向。
在上述基于FPGA的信号处理方法中,所述接收信号是经过预定处理的图像信号。
根据本申请的另一方面,提供了一种电子设备,包括:处理器;以及,存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行如上所述的基于FPGA的信号处理方法。
根据本申请的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,当所述计算机程序指令被计算装置执行时,可操作来执行如上所述的基于FPGA的信号处理方法。
本申请提供的基于FPGA的信号处理方法、电子设备和计算机可读存储介质,通过将n阶厄米特矩阵划分为对角二阶子矩阵和非对角二阶子矩阵,并行对所有对角二阶子矩阵和非对角二阶子矩阵进行实数化旋转来获得所述n阶厄米特矩阵的特征值,从而减小总体的计算时间,提高计算的实时性。
附图说明
从下面结合附图对本发明实施例的详细描述中,本发明的这些和/或其它方面和优点将变得更加清楚并更容易理解,其中:
图1图示了根据本申请实施例的基于FPGA的信号处理方法的流程图。
图2图示了根据本申请实施例的基于FPGA的信号处理方法的系统架构的框图。
图3图示了根据本申请实施例的基于FPGA的信号处理方法中的对角线运算模块的结构示意图。
图4图示了根据本申请实施例的基于FPGA的信号处理方法中的非对角线运算模块的结构示意图。
图5图示了根据本申请实施例的基于FPGA的信号处理方法中的实数化旋转过程的流程图。
图6图示了根据本申请实施例的基于FPGA的信号处理方法中的脉动阵列交换规则的示意图。
图7图示了根据本申请实施例的基于FPGA的信号处理方法中的脉动阵列交换中矩阵各元素位置的变化情况的示意图。
图8图示了根据本申请实施例的基于FPGA的信号处理方法中用于对厄米特矩阵进行特征分解以获得特征值的示意性流程图。
图9图示了根据本申请实施例的电子设备的框图。
具体实施方式
下面,将参考附图详细描述根据本申请的示例实施例。显然,所描述的实施例仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解本申请不受这里描述的示例实施例的限制。
申请概述
如上所述,可以使用FPGA来实现厄米特矩阵的特征分解。在一种解决方案中,(1)将n阶厄米特矩阵存入RAM中,同时构建n阶单位矩阵V;(2)选择一个行号和列号(p,q),将Tpp和Tqq所在的列元素组成n*2的子矩阵T_temp,选取V中对应元素组成V_temp;(3)使用CORDIC核求解(p,q)所对应的幅度和相位;(4)使用CORDIC核计算及将计算结果用于更新T_temp和V_temp;(5)对T_temp和V_temp进行旋转变换,将计算结果用于更新T_temp和V_temp;(6)用更新后的T_temp和V_temp更新原矩阵的元素;(7)另选一对行号和列号,重复步骤(2)至步骤(6),直到T矩阵变为对角矩阵,则T的对角元素为T的原厄米特矩阵的特征值,V矩阵为特征向量。
但是,该方案每次仅能更新两列数据,要将所有矩阵元素更新需要n/2次计算,运算时间较长;并且,该方案将所有矩阵更新完成后,需要对列元素进行从小到大的排序,该处理同样需要花费大量时间;此外,该方案每次更新矩阵所有元素,每一个元素均参与了计算,计算次数较多。
相对地,本申请提出了一种快速响应的厄米特矩阵的特征分解方法,该方法以Jacobi算法为基础,充分利用FPGA的并行特性,使用脉动阵列结构将原本的串行计算优化为并行计算,减少了运算时间,实现快速响应。同时对于比较复杂的计算使用坐标旋转数字计算机算法替代,使整个方法能够在FPGA上实现。
也就是,为了减少整个厄米特矩阵的特征分解计算的时间,本申请的方案充分利用FPGA的特性,并合理利用FPGA上的计算资源,基于FPGA实现,将整个厄米特矩阵拆分,并利用FPGA的并行特性对拆分后的二阶子矩阵同步计算,在一个运算周期内完成对整个矩阵所有元素的遍历,减少了计算时间。
具体地,本申请的方案每次更新全部矩阵的数据,大大缩短了计算时间;并且,本申请的方案根据Brent-Luk-VanLoan(BLV)脉动矩阵规则,直接将矩阵元素进行交换,不需要排序过程,大大缩短了计算时间;此外,本申请的方案根据厄米特矩阵的共轭对称性,只需要对原矩阵的上三角或下三角元素进行计算,减少了资源消耗。
在介绍了本申请的基本原理之后,下面将参考附图来具体介绍本申请的各种非限制性实施例。
示意性方法
图1图示了根据本申请实施例的基于FPGA的信号处理方法的流程图。
如图1所示,根据本申请实施例的基于FPGA的信号处理方法包括以下步骤。
步骤S110,从接收信号获得n阶厄米特矩阵,将所述n阶厄米特矩阵存储在FPGA的寄存器中。在本申请实施例中,所述接收信号可以是天线阵列信号,通过对从天线阵列信号获得的n阶厄米特矩阵进行特征分解以获得其特征值,可以使用所述特征值来对天线阵列信号进行信源数量估计,例如利用AIC、MDL及HQ等准则来进行信源数量估计。另外,通过对从天线阵列信号获得的n阶厄米特矩阵进行特征分解以获得其特征向量,可以使用所述特征向量来确定所述天线阵列信号的干扰信号的方向。
另外,在本申请实施例中,所述接收信号还可以是经过预定处理的图像信号。
步骤S120,将所述寄存器中的n阶厄米特矩阵划分为对角二阶子矩阵和非对角二阶子矩阵。具体地,如果n为偶数,可以直接将n阶厄米特矩阵分为个二阶子矩阵,如果n为奇数,则在矩阵的最后一行和一列之后补上一行和一列零,使其成为偶数矩阵,再分为个二阶子矩阵。其中原矩阵对角线上的二阶子矩阵记为TD,非对角线上的二阶子矩阵记为TOff_D。
步骤S130,并行对所有对角二阶子矩阵和非对角二阶子矩阵进行实数化旋转。
图2图示了根据本申请实施例的基于FPGA的信号处理方法的系统架构的框图。如图2所示,该系统架构适用于5阶或6阶的厄米特矩阵的特征分解,其示出了对角线运算模块和非对角线运算模块对于旋转角度的计算,以及对应的旋转角度的传递方向。在本申请实施例中,对于所有的对角二阶子矩阵和非对角二阶子矩阵,分别通过对角线运算模块和非对角线运算模块计算相位和旋转角度,再通过CORDIC(Coordinate Rotation DigitalComputer:坐标旋转数字计算机)来进行实数化旋转。这里,CORDIC IP核心是FPGA中已经封装好的单元,通常由FPGA的生产公司在出厂时已经完成封装,用于实现CORDIC算法。
这里,本领域技术人员可以理解,虽然在图2中图示了特征值计算模块和特征向量计算模块,根据本申请实施例的基于FPGA的信号处理方法可以仅用于计算厄米特矩阵的特征值,相应地,在图2所示的系统架构中可以仅包括特征值计算模块。
图3图示了根据本申请实施例的基于FPGA的信号处理方法中的对角线运算模块的结构示意图。这里,该对角线运算模块用于对厄米特矩阵的对角线上的二阶子矩阵进行向量旋转计算处理,以使二阶子矩阵反对角线(非对角线)上的元素尽可能趋近于0。
图4图示了根据本申请实施例的基于FPGA的信号处理方法中的非对角线运算模块的结构示意图。这里,该非对角线二阶子矩阵计算模块用于根据对角线二阶子矩阵计算模块所得的旋转角度,对厄米特矩阵的非对角线上的二阶子矩阵进行旋转计算。
下面,将参考图2到图4,进一步说明本申请实施例中并行对所有对角二阶子矩阵和非对角二阶子矩阵进行实数化旋转的过程。
图5图示了根据本申请实施例的基于FPGA的信号处理方法中的实数化旋转过程的流程图。
如图5所示,在步骤S131,对所有对角二阶子矩阵的第一行第二列元素使用基于FPGA的坐标旋转数字计算机算法获得其第一幅度和第一相位,并将所述第一相位向所述对角二阶子矩阵的相应行和列进行传递以获得行传递相位和列传递相位。
具体地,假定单个对角线上的二阶子矩阵记为A;
对于非对角线上的二阶子矩阵,记为B;
计算之后,相位按照图1所示方向,向对角线二阶子矩阵进行传递,以获得行传递相位和列传递相位另外,进一步按照图1所示的方向,将行传递相位和列传递相位向非对角线二阶子矩阵及特征向量计算模块进行传递。这里,本领域技术人员可以理解,如果根据本申请实施例的基于FPGA的信号处理方法仅计算厄米特矩阵的特征值,则不需要传递列传递相位
然后,在步骤S132,使用所述第一相位和所述坐标旋转数字计算机算法对所述对角二阶子矩阵以及对所述n阶厄米特矩阵的上三角或者下三角的非对角二阶子矩阵进行实数化旋转,并计算所述对角二阶子矩阵的第一旋转角度并向相应的行和列进行传递以获得行旋转角度和列旋转角度;
也就是,利用计算所得的相位及CORDIC IP核心对对角线上的二阶子矩阵进行实数化旋转,同时对原矩阵的上三角或下三角的非对角线上的二阶子矩阵进行旋转。即分别计算和N阶单位矩阵则利用对应列的相位及CORDIC进行旋转,即计算在进行旋转计算的同时,利用CORDIC IP核心计算旋转角度θ;并向对应行列进行传递,其中对应行的旋转角度记为θH,对应列的旋转角度记为θV。
接下来,使用T,TH和TV对原矩阵上三角或下三角的二阶子矩阵进行实数化旋转,计算规则如下:
对角线上二阶子矩阵计算规则为:
对Areal中的非对角线上元素,有:
其中虚部:
非对角线上二阶子矩阵计算规则为
在对对角线上的二阶子矩阵进行实数化旋转时,利用之前所求Ap,q的幅度A来计算通过CORDIC IP核心的反正切模式求对角化旋转角度θ,该角度计算规则为:
并且,该旋转角度θ按照图1所示方向,向非对角线二阶子矩阵及特征向量计算模块传递。这里,本领域技术人员可以理解,如果根据本申请实施例的基于FPGA的信号处理方法仅计算厄米特矩阵的特征值,则不需要传递对应列的旋转角度θV。
接下来,在步骤S133,基于所述第一旋转角度和所述坐标旋转数字计算机算法对所述上三角或者下三角的对角二阶子矩阵进行对角化和对非对角二阶子矩阵进行旋转。
也就是,根据如上所述计算出的旋转角度θ,利用CORDIC IP核心对原矩阵的上三角或者下三角的对角二阶子矩阵进行对角化和对非对角二阶子矩阵进行旋转。
具体地,用旋转角度θ构建旋转矩阵J,构建规则如下;
然后,使用该旋转矩阵,通过下列公式使用CORDIC IP核心旋转模块对对角线上的二阶矩阵进行对角化。
A′=JT*Areal*J
对于非对角线上的二阶矩阵,同样利用该公式进行旋转,即
B′=JT*Bnew*J
在具体实现中,以上旋转需要分两步进行:
第一步,计算
Atemp=JT*Areal
和
Btemp=JT*Bnew
该步计算规则为:
非对角线上二阶子矩阵运算规则也是这样;
第二步,计算
A′=Atemp*J
和
B′=Btemp*J
该步计算规则为:
非对角线上二阶子矩阵运算规则同上。
这样,对于对角线上二阶子矩阵非对角线上元素有:
可见,对角线上二阶子矩阵的非对角线元素已经归0。
因此,在根据本申请实施例的基于FPGA的信号处理方法中,基于所述第一旋转角度和所述坐标旋转数字计算机算法对所述上三角或者下三角的对角二阶子矩阵进行对角化和对非对角二阶子矩阵进行旋转包括:使用所述第一旋转角度的正弦值和余弦值构造二阶旋转矩阵;使用所述坐标旋转数值计算机算法以所述二阶旋转矩阵的转置乘以所述对角二阶子矩阵并再乘以所述二阶旋转矩阵以对所述对角二阶子矩阵进行对角化;以及,使用所述坐标旋转数值计算机算法以所述二阶旋转矩阵的转置乘以所述非对角二阶子矩阵并再乘以所述二阶旋转矩阵以对所述非对角二阶子矩阵进行旋转。
下面,返回图1,在步骤S140中,将旋转后的n阶厄米特矩阵使用脉动矩阵交换规则进行更新。
也就是,对于n阶矩阵按照BLV脉动阵列的方式对矩阵进行交换,使矩阵所有元素在一次迭代过程内都会成为对角线上二阶子矩阵的反对角线上的元素,进行归零旋转,即在一次迭代周期内,所有元素都会被遍历一遍。
图6图示了根据本申请实施例的基于FPGA的信号处理方法中的脉动阵列交换规则的示意图。具体地,图6图示了在单次旋转计算完成后,矩阵中各元素的交换规则。
内部交换:第一行第一个子矩阵元素位置不变,第一行其余二阶子矩阵元素按行交换,即a与b交换,c与d交换;剩余二阶子矩阵按对角交换,即a与d交换,b与c交换;
外部交换,第一行第一个子矩阵的第一个元素位置不变,第一行的二阶子矩阵的第一行元素与相邻子矩阵第一行相邻的元素进行交换,即a与相邻子矩阵的b进行交换,b与相邻子矩阵的a进行交换;矩阵最后一列的第一个二阶子矩阵的元素b位置不变,其余二阶子矩阵的第二列,即整个矩阵的最后一列的元素与相邻子矩阵的元素进行交换。即b与相邻子矩阵的d进行交换,d与相邻子矩阵的a进行交换;其余子矩阵的元素与对角线上相邻子矩阵的相邻元素进行交换,即a与对角线上相邻子矩阵的a交换,b与对角线上相邻子矩阵的c交换。
图7图示了根据本申请实施例的基于FPGA的信号处理方法中的脉动阵列交换中矩阵各元素位置的变化情况的示意图。这里,图7以6阶厄米特矩阵为例。
因此,在根据本申请实施例的基于FPGA的信号处理方法中,将旋转后的n阶厄米特矩阵使用脉动矩阵交换规则进行更新包括:将旋转后的n阶厄米特矩阵按照BLV脉动阵列的交换方式进行交换,以使得矩阵的所有非对角线上的元素在更新后成为所述对角二阶子矩阵的反对角线上的元素,以进行归零旋转,所述所有非对角线上的元素是在经过n-1次交换后成为一次对角二阶子矩阵的反对角元素。
并且,在上述基于FPGA的信号处理方法中,所述BLV脉动阵列的交换方式的交换规则包括:
内部交换:第一行第一个子矩阵元素位置不变,第一行其余二阶子矩阵元素按行交换;以及,剩余二阶子矩阵按对角交换;
外部交换:第一行第一个子矩阵的第一个元素位置不变,第一行的二阶子矩阵的第一行元素与相邻子矩阵第一行相邻的元素进行交换;矩阵最后一列的第一个二阶子矩阵的元素位置不变,其余二阶子矩阵的第二列与相邻子矩阵的元素进行交换;其余子矩阵的元素与对角线上相邻子矩阵的相邻元素进行交换。
在步骤S150中,重复上述步骤S120到步骤S140,进行(n-1)次脉动矩阵交换以对所述n阶厄米特矩阵的所有矩阵元素进行一次归零刷新。
在步骤S160中,重复上述步骤S120到步骤S150,直到所述n阶厄米特矩阵除对角线元素外所有元素归零。这样,就获得了所述n阶厄米特矩阵的特征值,
在步骤S170中,将所述特征值用于所述接收信号的信号处理。例如,如上所述,所述特征值用于所述接收信号的信号处理,例如,可以用于对天线阵列信号进行信源数量估计。
这里,图8图示了根据本申请实施例的基于FPGA的信号处理方法中用于对厄米特矩阵进行特征分解以获得特征值的示意性流程图。
另外,如上所述,在本申请实施例中,在计算特征值的同时,还可以同步计算厄米特矩阵的特征向量。也就是,如图1所示,通过将列传递相位和按列传递的旋转角度θH向着特征向量计算模块进行传递,可以计算厄米特矩阵的特征向量。
具体地,在根据本申请实施例的基于FPGA的信号处理方法中,为计算特征向量,首先在将n阶Hermitian矩阵存入FPGA中的寄存器,同时构造n阶单位矩阵,也就是,在每次计算开始之前,产生一个维数与待分解的厄米特矩阵维数相同的单位矩阵。
具体地,假设如图1所示的特征向量计算模块中的二阶子矩阵记为C:
然后,在如上所述的步骤S132中,在使用所述第一相位和所述坐标旋转数字计算机算法对所述对角二阶子矩阵以及对所述n阶厄米特矩阵的上三角或者下三角的非对角二阶子矩阵进行实数化旋转时,使用所述第一相位和所述坐标旋转数字计算机算法对所述n阶单位矩阵进行旋转。
具体地,该步对应于以下表1中的T1,计算规则为:
接下来,在如上所述的步骤S133中,在基于所述第一旋转角度和所述坐标旋转数字计算机算法对所述上三角或者下三角的对角二阶子矩阵进行对角化和对非对角二阶子矩阵进行旋转时,使用基于所述第一旋转角度的列旋转角度对所述n阶单位矩阵内对应的列进行旋转。
具体地,该步对应于以下表1中的T2,计算
C′=Ctemp*J
该步计算规则为:
相应地,在通过如上所述的步骤S150和S160的迭代,可以进一步获得所述n阶厄米特矩阵除对角线元素外所有元素归零时对应的刷新的单位矩阵,所述单位矩阵即是所述n阶厄米特矩阵的特征向量。
参考图8,以下表1示出了在同时计算特征值和特征向量时的时序。
另外,如上所述,在根据本申请实施例的基于FPGA的信号处理方法中,原n阶厄米特矩阵参与计算的二阶子矩阵仅需要上三角和下三角矩阵,即
(1)对上三角矩阵中,第x行,第y列的元素的旋转计算的结果记为TD(x,y);
(2)其对应下三角的元素,记为TD(y,x);
(3)则它们之间满足关系TD(x,y)T=TD(y,x),即TD(x,y)=a+b*i时,TD(y,x)=a-b*i。
也就是,因为Hermitian矩阵的共轭对称性质,有:
real(Xq,p)=real(Xp,q)
imag(Xq,p)=-imag(Xp,q)
所以在完成上三角或者下三角的二阶子矩阵的所有元素计算后,其按对角线对称的下三角或者上三角的元素的值即为其共轭对称,即实部相同,虚部取反。
因此,在根据本申请实施例的基于FPGA的信号处理方法中,所述步骤S132包括:使用实数化旋转后的所述n阶厄米特矩阵的上三角的非对角二阶子矩阵,基于厄米特矩阵的共轭对称性更新所述n阶厄米特矩阵的下三角的非对角二阶子矩阵;或者,使用实数化旋转后的所述n阶厄米特矩阵的下三角的非对角二阶子矩阵,基于厄米特矩阵的共轭对称性更新所述n阶厄米特矩阵的上三角的非对角二阶子矩阵。
并且,在根据本申请实施例的基于FPGA的信号处理方法中,所述步骤S133包括:使用旋转后的所述上三角的非对角二阶子矩阵,基于厄米特矩阵的共轭对称性更新所述n阶厄米特矩阵的下三角的非对角二阶子矩阵;或者,使用旋转后的所述下三角的非对角二阶子矩阵,基于厄米特矩阵的共轭对称性更新所述n阶厄米特矩阵的上三角的非对角二阶子矩阵。
示意性电子设备
下面,参考图9来描述根据本申请实施例的电子设备。
图9图示了根据本申请实施例的电子设备的框图。
如图9所示,电子设备10包括一个或多个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本申请的各个实施例的基于FPGA的信号处理方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如行传递相位、列传递相位、行旋转角度、列旋转角度等各种内容。
在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,该输入装置13可以是例如键盘、鼠标等等。
该输出装置14可以向外部输出各种信息,包括计算出的特征值或者特征向量等。该输出设备14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图9中仅示出了该电子设备10中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
示意性计算机程序产品
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的基于FPGA的信号处理方法的步骤。
所述计算机程序产品可以以一种或多种FPGA平台上使用的硬件描述语言来编写用于执行本申请实施例操作的程序代码,所述硬件描述语言比如Verilog/VHDL等,另外,赛灵思(Xilinx)的FPGA也支持使用C或C++语言进行FPGA开发。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的基于FPGA的信号处理方法的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (10)
1.一种基于FPGA的信号处理方法,其特征在于,包括:
步骤一,从接收信号获得n阶厄米特矩阵,将所述n阶厄米特矩阵存储在FPGA的寄存器中;
步骤二,将所述寄存器中的n阶厄米特矩阵划分为对角二阶子矩阵和非对角二阶子矩阵;
步骤三,并行对所有对角二阶子矩阵和非对角二阶子矩阵进行实数化旋转;
步骤四,将旋转后的n阶厄米特矩阵使用脉动矩阵交换规则进行更新;
步骤五,重复所述步骤二到步骤四,进行(n-1)次脉动矩阵交换以对所述n阶厄米特矩阵的所有矩阵元素进行一次归零刷新;
步骤六、重复所述步骤二到步骤五直到所述n阶厄米特矩阵除对角线元素外所有元素归零,以获得所述n阶厄米特矩阵的特征值;以及
步骤七,将所述特征值用于所述接收信号的信号处理。
2.如权利要求1所述的基于FPGA的信号处理方法,其中,并行对所有对角二阶子矩阵和非对角二阶子矩阵进行实数化旋转包括:
步骤a,对所有对角二阶子矩阵的第一行第二列元素使用基于FPGA的坐标旋转数字计算机CORDIC算法获得其第一幅度和第一相位,并将所述第一相位向所述对角二阶子矩阵的相应行和列进行传递以获得行传递相位和列传递相位;
步骤b,使用所述第一相位和所述坐标旋转数字计算机算法对所述对角二阶子矩阵以及对所述n阶厄米特矩阵的上三角或者下三角的非对角二阶子矩阵进行实数化旋转,并计算所述对角二阶子矩阵的第一旋转角度并向相应的行和列进行传递以获得行旋转角度和列旋转角度;
步骤c,基于所述第一旋转角度和所述坐标旋转数字计算机算法对所述上三角或者下三角的对角二阶子矩阵进行对角化和对非对角二阶子矩阵进行旋转。
3.如权利要求2所述的基于FPGA的信号处理方法,其中,所述步骤c包括:
使用所述第一旋转角度的正弦值和余弦值构造二阶旋转矩阵;
使用所述坐标旋转数值计算机算法以所述二阶旋转矩阵的转置乘以所述对角二阶子矩阵并再乘以所述二阶旋转矩阵以对所述对角二阶子矩阵进行对角化;以及
使用所述坐标旋转数值计算机算法以所述二阶旋转矩阵的转置乘以所述非对角二阶子矩阵并再乘以所述二阶旋转矩阵以对所述非对角二阶子矩阵进行旋转。
4.如权利要求3所述的基于FPGA的信号处理方法,其中
所述步骤一进一步包括构造n阶单位矩阵;
所述步骤b进一步包括使用所述第一相位和所述坐标旋转数字计算机算法对所述n阶单位矩阵进行旋转;
所述步骤c进一步包括使用所述列旋转角度对所述n阶单位矩阵内对应的列进行旋转;
所述步骤六进一步包括获得所述n阶厄米特矩阵除对角线元素外所有元素归零时对应的刷新的单位矩阵,所述单位矩阵是所述n阶厄米特矩阵的特征向量。
5.如权利要求2所述的基于FPGA的信号处理方法,其中,所述步骤b包括:
使用实数化旋转后的所述n阶厄米特矩阵的上三角的非对角二阶子矩阵,基于厄米特矩阵的共轭对称性更新所述n阶厄米特矩阵的下三角的非对角二阶子矩阵;或者
使用实数化旋转后的所述n阶厄米特矩阵的下三角的非对角二阶子矩阵,基于厄米特矩阵的共轭对称性更新所述n阶厄米特矩阵的上三角的非对角二阶子矩阵。
6.如权利要求1所述的基于FPGA的信号处理方法,其中,所述步骤c包括:
使用旋转后的所述上三角的非对角二阶子矩阵,基于厄米特矩阵的共轭对称性更新所述n阶厄米特矩阵的下三角的非对角二阶子矩阵;或者
使用旋转后的所述下三角的非对角二阶子矩阵,基于厄米特矩阵的共轭对称性更新所述n阶厄米特矩阵的上三角的非对角二阶子矩阵。
7.如权利要求1所述的基于FPGA的信号处理方法,其中,将旋转后的n阶厄米特矩阵使用脉动矩阵交换规则进行更新包括:
将旋转后的n阶厄米特矩阵按照BLV脉动阵列的交换方式进行交换,以使得矩阵的所有非对角线上的元素在更新后成为所述对角二阶子矩阵的反对角线上的元素,以进行归零旋转,所述所有非对角线上的元素是在经过n-1次交换后成为一次对角二阶子矩阵的反对角元素。
8.如权利要求7所述的基于FPGA的信号处理方法,其中,所述BLV脉动阵列的交换方式的交换规则包括:
内部交换:第一行第一个子矩阵元素位置不变,第一行其余二阶子矩阵元素按行交换;以及,剩余二阶子矩阵按对角交换;
外部交换:第一行第一个子矩阵的第一个元素位置不变,第一行的二阶子矩阵的第一行元素与相邻子矩阵第一行相邻的元素进行交换;矩阵最后一列的第一个二阶子矩阵的元素位置不变,其余二阶子矩阵的第二列与相邻子矩阵的元素进行交换;其余子矩阵的元素与对角线上相邻子矩阵的相邻元素进行交换。
9.一种电子设备,包括:
处理器;以及,
存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行如权利要求1到8中任意一项的基于FPGA的信号处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序指令,当所述计算机程序指令被计算装置执行时,可操作来执行如权利要求1到8中任意一项的基于FPGA的信号处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010863977.1A CN112015369B (zh) | 2020-08-25 | 2020-08-25 | 基于fpga的信号处理方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010863977.1A CN112015369B (zh) | 2020-08-25 | 2020-08-25 | 基于fpga的信号处理方法、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015369A true CN112015369A (zh) | 2020-12-01 |
CN112015369B CN112015369B (zh) | 2022-09-16 |
Family
ID=73505943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010863977.1A Active CN112015369B (zh) | 2020-08-25 | 2020-08-25 | 基于fpga的信号处理方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015369B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113422609A (zh) * | 2021-06-02 | 2021-09-21 | 出门问问信息科技有限公司 | 一种数据压缩方法及装置 |
CN115952391A (zh) * | 2022-12-12 | 2023-04-11 | 海光信息技术股份有限公司 | 数据处理方法及装置、电子设备与存储介质 |
CN115993585A (zh) * | 2023-03-23 | 2023-04-21 | 北京东远润兴科技有限公司 | 雷达抗干扰信号矩阵处理方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060155798A1 (en) * | 2004-11-15 | 2006-07-13 | Qualcomm Incorporated | Eigenvalue decomposition and singular value decomposition of matrices using jacobi rotation |
CN101390351A (zh) * | 2004-11-15 | 2009-03-18 | 高通股份有限公司 | 使用雅可比旋转的矩阵本征值分解和奇异值分解 |
US20090240917A1 (en) * | 2005-10-07 | 2009-09-24 | Altera Corporation | Method and apparatus for matrix decomposition in programmable logic devices |
CN109635241A (zh) * | 2018-12-17 | 2019-04-16 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 求解对称或厄密对称正定矩阵逆矩阵方法 |
CN110110285A (zh) * | 2019-04-10 | 2019-08-09 | 浙江大学 | 一种用于FPGA的并行Jacobi计算加速实现方法 |
CN110222307A (zh) * | 2019-06-12 | 2019-09-10 | 哈尔滨工程大学 | 基于fpga的实对称矩阵的特征值分解的并行实现方法 |
-
2020
- 2020-08-25 CN CN202010863977.1A patent/CN112015369B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060155798A1 (en) * | 2004-11-15 | 2006-07-13 | Qualcomm Incorporated | Eigenvalue decomposition and singular value decomposition of matrices using jacobi rotation |
CN101390351A (zh) * | 2004-11-15 | 2009-03-18 | 高通股份有限公司 | 使用雅可比旋转的矩阵本征值分解和奇异值分解 |
CN101438277A (zh) * | 2004-11-15 | 2009-05-20 | 高通股份有限公司 | 用cordic处理器对mimo信道相关矩阵进行本征值分解 |
US20090240917A1 (en) * | 2005-10-07 | 2009-09-24 | Altera Corporation | Method and apparatus for matrix decomposition in programmable logic devices |
CN109635241A (zh) * | 2018-12-17 | 2019-04-16 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 求解对称或厄密对称正定矩阵逆矩阵方法 |
CN110110285A (zh) * | 2019-04-10 | 2019-08-09 | 浙江大学 | 一种用于FPGA的并行Jacobi计算加速实现方法 |
CN110222307A (zh) * | 2019-06-12 | 2019-09-10 | 哈尔滨工程大学 | 基于fpga的实对称矩阵的特征值分解的并行实现方法 |
Non-Patent Citations (1)
Title |
---|
王传根: "《浮点厄米特矩阵特征值分解的FPGA实现》", 《数字技术与应用》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113422609A (zh) * | 2021-06-02 | 2021-09-21 | 出门问问信息科技有限公司 | 一种数据压缩方法及装置 |
CN115952391A (zh) * | 2022-12-12 | 2023-04-11 | 海光信息技术股份有限公司 | 数据处理方法及装置、电子设备与存储介质 |
WO2024125008A1 (zh) * | 2022-12-12 | 2024-06-20 | 海光信息技术股份有限公司 | 数据处理方法及装置、电子设备与存储介质 |
CN115993585A (zh) * | 2023-03-23 | 2023-04-21 | 北京东远润兴科技有限公司 | 雷达抗干扰信号矩阵处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112015369B (zh) | 2022-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112015369B (zh) | 基于fpga的信号处理方法、电子设备和存储介质 | |
McDonald et al. | Preconditioning and iterative solution of all-at-once systems for evolutionary partial differential equations | |
Van Loan | The ubiquitous Kronecker product | |
Hsiao et al. | Householder CORDIC algorithms | |
Bekas et al. | Low cost high performance uncertainty quantification | |
KR20200136514A (ko) | 인공 신경망 정방향 연산 실행용 장치와 방법 | |
CN103955446B (zh) | 基于dsp芯片的可变长度fft计算方法 | |
WO2021083101A1 (zh) | 数据处理方法、装置及相关产品 | |
CN108897716A (zh) | 通过存储器读写操作来缩减计算量的数据处理装置及方法 | |
CN107210984A (zh) | 用于在多执行单元处理系统上进行并行的基于qrd的操作的方法和装置 | |
Walid et al. | Real-time implementation of fast discriminative scale space tracking algorithm | |
Iserles et al. | Efficient computation of the matrix exponential by generalized polar decompositions | |
CN109446478B (zh) | 一种基于迭代和可重构方式的复协方差矩阵计算系统 | |
Bravo et al. | High level synthesis FPGA implementation of the Jacobi algorithm to solve the eigen problem | |
US20240241841A1 (en) | Ai accelerator apparatus using in-memory compute chiplet devices for transformer workloads | |
Yan et al. | High-performance matrix eigenvalue decomposition using the parallel jacobi algorithm on fpga | |
Lee et al. | Large‐scale 3D fast Fourier transform computation on a GPU | |
Jia et al. | The implicitly restarted multi-symplectic block-Lanczos method for large-scale Hermitian quaternion matrix eigenvalue problem and applications | |
CN113595681B (zh) | 基于Givens旋转的QR分解方法、系统、电路、设备及介质 | |
Kamra et al. | A stable parallel algorithm for block tridiagonal toeplitz–block–toeplitz linear systems | |
Majumder et al. | Hardware implementation of singular value decomposition | |
Kasap et al. | Acceleration of Polynomial Matrix Multiplication on Zynq-7000 System-on-Chip | |
Liu et al. | A study on off-grid issue in DOA and frequency estimations | |
Que et al. | Blind signal separation for coprime planar arrays: An improved coupled trilinear decomposition method | |
Elumalai | Parallelization of vector fitting algorithm for GPU platforms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |