基于FPGA的实对称矩阵特征分解实时处理方法技术

技术编号:21090042 阅读:54 留言:0更新日期:2019-05-11 10:07
本发明专利技术提供了一种基于FPGA的实对称矩阵特征分解实时处理方法,包括:对输入的实对称矩阵进行FIFO1寄存,设定特征向量矩阵为单位矩阵;对迭代处理后的结果矩阵和特征向量矩阵进行FIFO2寄存,等待流水处理模块进行读取;流水控制模块每隔固定周期读取FIFO1或者FIFO2中的矩阵进行处理;多个旋转变换模块并行对矩阵的上三角非对角元素进行旋转变换,使非对角元素的绝对值趋于零,同时计算每次旋转变换后的特征向量矩阵;对最后一个旋转变换模块输出的结果进行判断,如果满足固定迭代次数,则结束处理过程,将特征向量和特征值进行输出;如果不满足,则将处理结果矩阵和特征向量矩阵存入到FIFO2中寄存,等待下次迭代处理。

Real-time processing method of real symmetric matrix eigenvalue decomposition based on FPGA

【技术实现步骤摘要】
基于FPGA的实对称矩阵特征分解实时处理方法
本专利技术涉及一种电子侦查技术,特别是一种基于FPGA的实对称矩阵特征分解实时处理方法。
技术介绍
在电子侦察领域,估计辐射源的波达方向具有很重要的意义。目前常用的测向技术主要有干涉仪测向和空间谱测向。干涉仪测向虽然具有精度高、计算简单的优点,难以克服多径效应引起的测向误差,无法满足复杂电磁环境下测向要求。空间谱测向具有精度高等优点,能够克服多径效应带来相同频率不同方向的测向问题,但空间谱测向方法运算量较大,无法满足在密度信号环境下实时处理。针对空间谱测向方法无法满足实时处理问题,学者们提出了许多快速处理的方法。有文献提出了对矩阵特征分解的Jacobi算法进行并行改进,采用脉动阵列结构在FPGA上高速并行实现了对数据协方差矩阵的特征分解,完成一次特征分解的最低耗时为14.82us,但并没有对整个结构进行流水设计,只缩短了一次特征分解的时间而没有考虑整个模块的吞吐率,无法满足电子侦察领域高重频高密度信号的特征分解需求。。因此,本方案提供一种基于FPGA的实对称矩阵特征分解实时处理方法。该方法理论上沿用传统的Jacobi迭代法,对高阶实对称矩阵的上三角非对角元素分多个相同模块完成1次矩阵的旋转变换,每个模块并行完成多个非对角元素的旋转变换;该方法通过模块复用的思想,对一个矩阵进行多次循环迭代完成旋转变换,减少FPGA逻辑资源消耗;通过整个模块的流水设计,满足高重频同时多信号的矩阵进行特征分解的需求,满足在密度信号环境下实时处理。
技术实现思路
本专利技术提供了一种基于FPGA的实对称矩阵特征分解实时处理方法,包括以下步骤:对输入的实对称矩阵进行FIFO1寄存,设定特征向量矩阵为单位矩阵;对迭代处理后的结果矩阵和特征向量矩阵进行FIFO2寄存,等待流水处理模块进行读取;流水控制模块每隔固定周期读取FIFO1或者FIFO2中的矩阵进行处理;多个旋转变换模块并行对矩阵的上三角非对角元素进行旋转变换,使非对角元素的绝对值趋于零,同时计算每次旋转变换后的特征向量矩阵;对最后一个旋转变换模块输出的结果进行判断,如果满足固定迭代次数,则结束处理过程,将特征向量和特征值进行输出;如果不满足,则将处理结果矩阵和特征向量矩阵存入到FIFO2中寄存,等待下次迭代处理。本专利技术沿用传统的Jacobi迭代法,对高阶实对称矩阵的上三角非对角元素分多个相同模块完成1次矩阵的旋转变换,每个模块并行完成多个非对角元素的旋转变换;该方法通过模块复用的思想,对一个矩阵进行多次循环迭代完成旋转变换,减少FPGA逻辑资源消耗;通过整个模块的流水设计,满足高重频同时多信号的矩阵进行特征分解的需求,满足在密度信号环境下实时处理。下面结合说明书附图对本专利技术作进一步描述。附图说明图1一种基于FPGA的实对称矩阵特征分解实时处理方法流程图。具体实施方式结合图1,本专利技术的一种基于FPGA的实对称矩阵特征分解实时处理方法,包括以下步骤:步骤1,对输入的实对称矩阵进行FIFO1寄存,对迭代处理后的结果矩阵和特征向量矩阵进行FIFO2寄存,等待流水处理模块进行读取;步骤2,流水控制模块每隔固定周期读取FIFO1或者FIFO2中的矩阵进行处理;步骤3,多个旋转变换模块并行对矩阵的上三角非对角元素进行旋转变换,使非对角元素的绝对值趋于零,同时计算每次旋转变换后的特征向量矩阵;步骤4,对最后一个旋转变换模块输出的结果进行判断,如果满足固定迭代次数,则结束处理过程,将特征向量和特征值进行输出;如果不满足,则将处理结果矩阵和特征向量矩阵存入到FIFO2中寄存,等待下次迭代处理;步骤1对输入实对称矩阵进行FIFO1寄存:步骤11、将输入的实对称矩阵进行FIFO1寄存,同时设定特征向量矩阵为单位矩阵;步骤12、将进一步需要进行迭代处理的结果矩阵和特征向量矩阵进行FIFO2寄存,需要将迭代次数同时保存在FIFO2中。步骤2读取FIFO1或者FIFO2中的数据包括以下步骤:步骤21、每间隔固定周期,判断步骤1的两个FIFO是否为非空;步骤22、满足非空,则读取FIFO1或者FIFO2中的矩阵,优先读取FIFO2中的矩阵;步骤23、如果读取FIFO2中的矩阵,则在原来迭代次数增加1;如果读取FIFO1中的矩阵,则将迭代次数设置为1;步骤3多个旋转变换模块对矩阵非对角元素进行旋转变换具体包括以下步骤:步骤31、n阶矩阵总共有n(n-1)/2个上三角非对角元素,每个旋转变换模块同时并行旋转变换x个非对角元素,总共需要n(n-1)/2x个旋转变换模块流水处理完成一次所有上三角非对角元素的旋转变换。以8阶矩阵为例,总共有28个上三角非对角元素,一个旋转变换模块处理4个对角元素,总共需要7个旋转变换模块。一个旋转变换模块处理的元素的行列值必需不相同。步骤32、每个旋转变换模块具有相同实现过程。以下以8阶矩阵特征分解的旋转变换模块1对模块实现功能进行说明。旋转变换模块1需要对元素r12、r34、r56、r78进行旋转变换,令p分别为1、3、5、7,q分别为2、4、6、8。对元素rpq进行旋转变换,计算旋转角度如下:根据4个旋转角度θ1、θ2、θ3、θ4计算可以得到相应的sinθ1和cosθ1、sinθ2和cosθ2、sinθ3和cosθ3、sinθ4和cosθ4。步骤33、将输入矩阵第1行元素分别与cosθ1的相乘,第2行元素分别与sinθ1相乘,将相乘结果对应相加得到A1~A8;将矩阵第1行元素分别与-sinθ1相乘,将第2行元素分别与cosθ1相乘,将相乘结果对应相加得到B1~B8;将矩阵第3行、第4行和sinθ2、cosθ2类似运算可以得到C1~C8和D1~D8;类似的处理可以得到E1~E8、F1~F8、G1~G8、H1~H8。同时将特征向量矩阵进行本步骤类似的处理,可以得到旋转变换模块1输出的特征向量矩阵。步骤34、将步骤33的结果数据A1、B1分别与cosθ1相乘,将A2、B2分别与sinθ1相乘,两相乘结果进行对应相加可以得到R11、R21;将A1、B1与-sinθ1相乘,将A2、B2与cosθ1相乘,两相乘结果进行对应相加可以得到R12、R22;将A3、B3、C3、D3与cosθ2相乘,将A4、B4、C4、D4与sinθ2相乘,两相乘结果进行对应相加得到R13、R23、R33、R43;将A3、B3、C3、D3与-sinθ2相乘,将A4、B4、C4、D4与cosθ2相乘,两相乘结果进行对应相加得到R14、R24、R34、R44;对A5~F5和A6~F6类似处理得到R15、R25、R35、R45、R55、R65和R16、R26、R36、R46、R56、R66;对A7~H7和A8~H8类似处理得到R17、R27、R37、R47、R57、R67、R77、R87和R18、R28、R38、R48、R58、R68、R78、R88;步骤35、经过步骤32、33、34处理得到非对角上三角元素和对角元素,因为对称矩阵经过步骤32、33、34处理后仍是对称矩阵,所以可以根据非对角上三角元素得到非对角下三角元素;最后将整个处理结果矩阵和步骤33处理后的特征向量矩阵进行寄存输出。步骤36、旋转变换模块1处理的结果矩阵和特征向量矩阵作为旋转变换模块2的输入,旋转变本文档来自技高网...

【技术保护点】
1.一种基于FPGA的实对称矩阵特征分解实时处理方法,其特征在于,包括以下步骤:对输入的实对称矩阵进行FIFO1寄存,设定特征向量矩阵为单位矩阵;对迭代处理后的结果矩阵和特征向量矩阵进行FIFO2寄存,等待流水处理模块进行读取;流水控制模块每隔固定周期读取FIFO1或者FIFO2中的矩阵进行处理;多个旋转变换模块并行对矩阵的上三角非对角元素进行旋转变换,使非对角元素的绝对值趋于零,同时计算每次旋转变换后的特征向量矩阵;对最后一个旋转变换模块输出的结果进行判断,如果满足固定迭代次数,则结束处理过程,将特征向量和特征值进行输出;如果不满足,则将处理结果矩阵和特征向量矩阵存入到FIFO2中寄存,等待下次迭代处理。

【技术特征摘要】
1.一种基于FPGA的实对称矩阵特征分解实时处理方法,其特征在于,包括以下步骤:对输入的实对称矩阵进行FIFO1寄存,设定特征向量矩阵为单位矩阵;对迭代处理后的结果矩阵和特征向量矩阵进行FIFO2寄存,等待流水处理模块进行读取;流水控制模块每隔固定周期读取FIFO1或者FIFO2中的矩阵进行处理;多个旋转变换模块并行对矩阵的上三角非对角元素进行旋转变换,使非对角元素的绝对值趋于零,同时计算每次旋转变换后的特征向量矩阵;对最后一个旋转变换模块输出的结果进行判断,如果满足固定迭代次数,则结束处理过程,将特征向量和特征值进行输出;如果不满足,则将处理结果矩阵和特征向量矩阵存入到FIFO2中寄存,等待下次迭代处理。2.根据权利要求1所述的方法,其特征在于,读取FIFO1或者FIFO2中的数据进行处理包括以下步骤:步骤21,每间隔固定周期,判断步骤1的两个FIFO是否为非空;步骤22,满足非空,则读取FIFO1或者FIFO2中的矩阵,优先读取FIFO2中的矩阵;步骤23,如果读取FIFO2中的矩阵,则在原来迭代次数增加1;如果读取FIFO1中的矩阵,则将迭代次数设置为1。3.根据权利要求1所述方法,其特征在于,多个旋转变换模块对矩阵非对角元素进行旋转变换具体包括以下步骤:步骤31,矩阵为8阶矩阵共有28个上三角非对角元素,一个旋转变换模块处理4个对角元素,总共需要7个旋转变换模块;步骤32,每一旋转变换模块对元素apq进行旋转变换,p为奇数,q为偶数,计算旋转角度如下:根据旋转角度θ1、θ2、θ3、θ4计算得到相应的sinθ1和cosθ1、sinθ2和cosθ2、sinθ3和cosθ3、sinθ4和cosθ4。步骤33,将输入矩阵第1行元素分别与cosθ1的相乘,第2行元素分别与sinθ1相乘,将相乘结果对应相加得到A1~A8;将矩阵第1行元素分别与-sinθ1相乘,将第2行元素分别与cosθ1相乘,将相乘结果对应相加得到B1~B8;将输入矩阵第3行元素分别与cosθ2的相乘,第4行元素分别与sinθ2相乘,将相乘结果对应相加得到C1~C8;将矩阵第3行元素分别与-sinθ2相乘,将第4行元素分别与cosθ2相乘,将相乘结果对应相加得到D1~D8;将输入矩阵第5行元素分别与cosθ3的相乘,第6行元素分别与sinθ3相乘,将相乘结果对应相加得到E1~E8;将矩阵第3行元素分别与-sinθ3相乘,将第4行元素分别与cosθ3相乘,将相乘结果对应相加得到F1~F8;将输入矩阵第7行元素分别与cosθ4的相乘,...

【专利技术属性】
技术研发人员:李仙法金雅萍罗国星苏保禹唐遒马蕊靳东肖楠
申请(专利权)人:中国航天科工集团八五一一研究所
类型:发明
国别省市:江苏,32

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

1