一种面向FPGA结构的高效capon算法制造技术

技术编号:33292527 阅读:15 留言:0更新日期:2022-05-01 00:14
本发明专利技术涉及FPGA结构设计技术领域,且公开了一种面向FPGA结构的高效capon算法,包括以下步骤:以阵元数为5、快拍数为32768、单信源为例设计了完成该算法的FPGA框架,主要涉及协方差矩阵计算、五阶矩阵求逆计算、求角度功率、谱峰搜索四大模块;本发明专利技术从分块矩阵求逆基本原理入手,将高阶矩阵合理的划分为几个低阶子矩阵,然后对分块矩阵求逆算法进行一定的变形处理,避免了算法中对子矩阵求逆的过程。然后通过构建子矩阵运算模块来高效的实现多阶矩阵求逆运算;对角度功率求解部分变形为求角度功率的倒数,这使得计算不含有除法部分从而计算结果的精度有所提高;谱峰搜索模块对应变形为伪谱峰搜索,即搜索输出角度功率的最小值。即搜索输出角度功率的最小值。即搜索输出角度功率的最小值。

【技术实现步骤摘要】
一种面向FPGA结构的高效capon算法


[0001]本专利技术涉及FPGA结构设计
,具体为一种面向FPGA结构的高效capon算法。

技术介绍

[0002]现有的面向FPGA结构的capon实现算法的多阶矩阵求逆部分采用的是直接对整个矩阵求代数余子式然后求行列式值最后得到矩阵的逆,或者利用未变形的分块矩阵求逆原理来求多阶矩阵的逆,这毫无疑问会使该模块的计算复杂度显著提高。在角度功率求解模块也是依据基本原理中的角度功率定义来计算出最后的功率,这会涉及到除法运算,使计算结果的精确度有所下降。

技术实现思路

[0003](一)解决的技术问题
[0004]针对现有技术的不足,本专利技术提供了一种面向FPGA结构的高效capon算法,解决了上述
技术介绍
中所存在的问题。
[0005](二)技术方案
[0006]为实现上述目的,本专利技术提供如下技术方案:一种面向FPGA结构的高效capon算法,包括以下步骤:以阵元数为5、快拍数为32768、单信源为例设计了完成该算法的FPGA框架,主要涉及协方差矩阵计算、五阶矩阵求逆计算、求角度功率、谱峰搜索四大模块;
[0007]上述四大模块是按照顺序依次执行计算的,首先协方差矩阵计算模块通过对阵元接收到的信号进行处理得到协方差矩阵,然后五阶矩阵求逆模块对协方差矩阵进行求逆运算,求角功率模块对送进来的求逆后的五阶矩阵和对应角度的数值进行相乘运算求得对应角度的功率,最后把每个角度对应的功率送进谱峰搜索模块来计算出最终的信源角度;
>[0008]协方差矩阵计算模块:协方差矩阵的计算过程是分别对两个阵元接收到的信号数值进行对应位相乘再累加最后除以快拍数来得到的,因此协方差矩阵计算的关键是相乘累加运算,即利用乘法器和累加器分别计算协方差矩阵中的每一个元素值,从两个ROM IP核中依次读取32768个阵元接收到的信号数值,然后相乘再进行自累加运算,最后的结果右移15位相当于除以32768,便完成了协方差矩阵一个数值的计算,通过计数器来控制数据的依次读取和最后结果的输出,具体可以分为控制模块、数据读取模块、计算模块、输出选择模块,其中,控制模块的主要功能是,控制数据读取和计算模块完成协方差矩阵数据的计算,其首先控制读入数据使能和地址,将数据读取出来并依次送入计算模块,然后控制计算模块对数据进行运算,最后控制输出选择模块把数据输出,数据读取模块的主要功能是,通过地址位的增加来对存储的数据进行有序的读取,计算模块的主要功能是,对数据读取模块送进来的数值进行相乘和累加运算,进而计算出协方差矩阵中元素的数值,输出选择模块的主要功能是,对最终计算得到的协方差矩阵数值进行按顺序的控制输出;
[0009]五阶矩阵求逆模块:根据矩阵分块求逆基本原理,可以将五阶矩阵分为A
11
、A
12
、A
21
和A
22
四个子矩阵块,当五阶矩阵的逆整体扩大或者缩小一定的倍数时,经过角度功率求解
模块求得的功率也同比扩大或缩小,这对最后的谱峰搜索没有影响,因此可以对上述分块矩阵求高阶矩阵逆的算法做进一步的改进,来减小计算的复杂度,对分块矩阵求逆算法整体乘以根据以上运算过程,可以把五阶矩阵求逆总体分为四个部分,分别是数据读取模块、数据存储模块、计算模块、输出模块,其中,数据读取模块主要实现把协方差矩阵分五次每次读取五个数值读取进来,完成五阶矩阵求逆的初始数值输入,数据存储模块负责把读进来的数和计算过程中的中间变量储存在RAM IP核中,在需要的时候再从RAM IP核中将数据取出,具体采用双口RAM中的伪双口RAM,计算模块负责完成以上算法的运算过程,具体包括二阶矩阵求伴随、三阶矩阵求伴随、二阶矩阵求行列式、三阶矩阵求行列式、两个三阶矩阵相乘、两个三阶矩阵相减、三阶矩阵乘以一个固定数值,输出模块用于控制数据的有序输出,在时钟的上升沿输出五个求逆后的数据,经过五个时钟周期后把求逆后的矩阵数值进行完全输出;
[0010]求角度功率模块:根据角度功率求解公式可知,最后的谱峰搜索过程就是求P
θ
的最大值,也就是的最小值,因此在该模块中把主要的计算过程变为求解δ(θ)
H
R
‑1δ(θ),只需在谱峰搜索模块中变为搜索角度功率求解模块输出的最小值即可,此时计算过程变为需要完成对应角度数值的列向量转置和五阶矩阵求逆后的矩阵相乘,再乘以对应角度数值的列向量,即可得到待求数值,此时求得的数值是一个复数,不便于进行功率比较,因此最后再求解一下这个复数的模的平方,以此来代表最终的角度功率,根据以上分析,运算可以分为复数相乘、复数相加、复数模的平方这几个步骤,具体为:首先将δ(θ)
H
与R
‑1相乘,再将其与δ(θ)对应位置相乘再累加便可以得到一个数值结果,其为复数,将这个复数送入复数模的平方计算部分,便可以得到一个实数,将这个实数表示为角度的功率;
[0011]谱峰搜索模块:该模块需要对各个角度所对应的功率进行大小比较,根据角度功率求解模块计算原理和此实验设置的信源数目唯一,只需要遍历所有的角度功率,选取其中的最小值即可,功率最小值所对应的角度便是最终的测向角度,根据以上分析可知该模块运算部分需要一个大小比较模块和角度选取模块,具体为:首先将各个待测角度所对应的功率送入功率大小比较模块中,从中选取出最小的角度功率,然后将该功率送入角度选取模块中,定位到该功率对应的角度数值,最后将该角度作为测向角度输出。
[0012]优选的,所述三阶矩阵求行列式模块主要运用到了复数乘法器、复数加法器、复数减法器,首先对顺对角线元素进行相乘并累加,然后对逆对角线元素进行相乘和累加,最后拿顺对角线元素相乘累加和减去逆对角线元素相乘累加和就得到了三阶矩阵的行列式值;由于对角线有三个数值,因此其中两个数值相乘后的结果需要和第三个数值再次做乘法,三个数值相乘后的结果送进加法器中,加法器输出的结果是三次三个数值相乘后的累加和,减法器完成两个最后累加数值的相减,相减后的输出值就是三阶矩阵行列式的值。
[0013]优选的,所述二阶矩阵求行列式值模块使用到了复数乘法器、复数加法器,主要运算过程是主对角线元素的值相乘减去副对角线元素相乘后的值;二阶矩阵数值首先送入复数乘法器,完成主对角线和副对角线元素的分别相乘然后把相乘后的数值送进复数减法器,最后相减的结果就是所要求的行列式值。
[0014]优选的,所述三阶矩阵求伴随模块运用了代数余子式原理来求矩阵的伴随,先把
矩阵的余子式全部求出来,然后再求相应的代数余子式,最后便可以得到矩阵的伴随,该运算过程主要包括复数乘法模块、复数减法模块、取反模块;根据余子式求解原理,将划分后的二阶子矩阵数值送入复数乘法模块,完成对角线元素的相乘,然后把相乘的结果送入复数减法运算部分,便可以得到对应位置的余子式值,最后根据余子式到代数余子式基本求解原理将需要对余子式进行取反操作的数值送入复数取反部分,最终得到代数余子式的输出即求得三阶矩阵的伴随。...

【技术保护点】

【技术特征摘要】
1.一种面向FPGA结构的高效capon算法,其特征在于:包括以下步骤:以阵元数为5、快拍数为32768、单信源为例设计了完成该算法的FPGA框架,主要涉及协方差矩阵计算、五阶矩阵求逆计算、求角度功率、谱峰搜索四大模块;上述四大模块是按照顺序依次执行计算的,首先协方差矩阵计算模块通过对阵元接收到的信号进行处理得到协方差矩阵,然后五阶矩阵求逆模块对协方差矩阵进行求逆运算,求角度功率模块对送进来的求逆后的五阶矩阵和对应角度的数值进行相乘运算求得对应角度的功率,最后把每个角度对应的功率送进谱峰搜索模块来计算出最终的信源角度;协方差矩阵计算模块:协方差矩阵的计算过程是分别对两个阵元接收到的信号数值进行对应位相乘再累加最后除以快拍数来得到的,因此协方差矩阵计算的关键是相乘累加运算,即利用乘法器和累加器分别计算协方差矩阵中的每一个元素值,从两个ROM IP核中依次读取32768个阵元接收到的信号数值,然后相乘再进行自累加运算,最后的结果右移15位相当于除以32768,便完成了协方差矩阵一个数值的计算,通过计数器来控制数据的依次读取和最后结果的输出,具体可以分为控制模块、数据读取模块、计算模块、输出选择模块,其中,控制模块的主要功能是,控制数据读取和计算模块完成协方差矩阵数据的计算,其首先控制读入数据使能和地址,将数据读取出来并依次送入计算模块,然后控制计算模块对数据进行运算,最后控制输出选择模块把数据输出,数据读取模块的主要功能是,通过地址位的增加来对存储的数据进行有序的读取,计算模块的主要功能是,对数据读取模块送进来的数值进行相乘和累加运算,进而计算出协方差矩阵中元素的数值,输出选择模块的主要功能是,对最终计算得到的协方差矩阵数值进行按顺序的控制输出;五阶矩阵求逆模块:根据矩阵分块求逆基本原理,可以将五阶矩阵分为A
11
、A
12
、A
21
和A
22
四个子矩阵块,当五阶矩阵的逆整体扩大或者缩小一定的倍数时,经过角度功率求解模块求得的功率也同比扩大或缩小,这对最后的谱峰搜索没有影响,因此可以对上述分块矩阵求高阶矩阵逆的算法做进一步的改进,来减小计算的复杂度,对分块矩阵求逆算法整体乘以根据以上运算过程,可以把五阶矩阵求逆总体分为四个部分,分别是数据读取模块、数据存储模块、计算模块、输出模块,其中,数据读取模块主要实现把协方差矩阵分五次每次读取五个数值读取进来,完成五阶矩阵求逆的初始数值输入,数据存储模块负责把读进来的数和计算过程中的中间变量储存在RAM IP核中,在需要的时候再从RAM IP核中将数据取出,具体采用双口RAM中的伪双口RAM,计算模块负责完成以上算法的运算过程,具体包括二阶矩阵求伴随、三阶矩阵求伴随、二阶矩阵求行列式、三阶矩阵求行列式、两个三阶矩阵相乘、两个三阶矩阵相减、三阶矩阵乘以一个固定数值,输出模块用于控制数据的有序输出,在时钟的上升沿输出五个求逆后的数据,经过五个时钟周期后把求逆后的矩阵数值进行完全输出;求角度功率模块:根据角度功率求解公式可知,最后的谱峰搜索过程就是求P
θ
的最大值,也就是的最小值,因此在该模块中把主要的计算过程变为求解δ(θ)
H
R
‑1δ(θ),只需在谱峰搜索模块中变为搜索角度功率求解模块输出的最小值即可,此时计算过程变为需要完成对应角度数值的列向量转置和五阶矩阵求逆后的矩阵相乘,再乘以
对应角度数值的列向量,即可得到待求数值,此时求得的数值是一个复数,不便于进行功率比较,因此最后再求解一下这个复数的模的平方,以此来代表最终的角度功率,根据以上分析,运算可以分为复数相乘、复数相加、复数模的平方这几个步骤,具体为:首先将δ(θ)
H
与R
‑1相乘,再将其与δ(θ)对应位置相乘再累加便可以得到一个数值结果,其为复数,将这个复数送入复数模的平方计算部分,便可以得到一个实数,将这个实数表示为角度的功率;谱峰搜索模块:该模块需要对各个角度所对应的功率进行大小比较,根据角度功率求解模块计算原理和此实验设置的...

【专利技术属性】
技术研发人员:樊春晓李心平戴岚
申请(专利权)人:合肥工业大学
类型:发明
国别省市:

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

1