基于fpga的正交匹配追踪方法

文档序号:6235894阅读:173来源:国知局
基于fpga的正交匹配追踪方法
【专利摘要】本发明公开了一种基于FPGA的正交匹配追踪方法,主要解决现有雷达系统处理复杂算法能力有限及处理速度慢的问题,其实现方法是:根据雷达回波数据得到观测向量和字典矩阵;初始化误差余量为观测向量并对其补零至2048长度后调用FFT核对其做逆傅里叶变换;对FFT核输出的数据取模的平方并找到最大值的位置,即为误差余量相关性最大的列位置索引;根据找到的列位置索引更新列向量集合;对列向量集合进行施密特正交化处理更新误差余量;对误差余量取二范数并判断该二范数是否小于1,若满足此条件则用共轭梯度算法恢复出原始信号。本发明具有速度更快,资源占用更低的优点,可用于对基于傅里叶基的大规模字典矩阵和高稀疏度信号进行重建。
【专利说明】基于FPGA的正交匹配追踪方法

【技术领域】
[0001]本发明属于数字信号处理【技术领域】,特别涉及利用观测信号进行完整信号重建算法的加速硬件实现方法,可用于合成孔径雷达/逆合成孔径雷达、步进频率雷达成像。

【背景技术】
[0002]雷达进行目标检测时,由于受到复杂电磁环境、雷达系统本身的缺陷、目标运动姿态变化等影响,可能会导致回波数据稀疏采样,若采用传统的傅里叶分析方法,会出现目标点散焦和图像模糊等现象,因此如何实现稀疏信号目标检测和成像非常重要。2006年由D.Donoho> E.Candes> T.Tao等人提出的一种全新的信息获取指导理论,即压缩感知CS,该理论指出:对稀疏或可压缩的信号通过远低于奈奎斯特标准的采样率进行数据采样,通过解一个非线性最优化问题,即可精确地恢复出原始信号。该理论一经提出,就在信号/图像处理、医疗成像、模式识别、光学/雷达成像、信息论、无线通信等领域受到高度关注。2007年,R.Baraniuk等人首次正式讨论了压缩感知原理在雷达成像中的应用,他们通过理论分析和数值仿真证明了压缩感知在雷达成像领域中的可行性。压缩感知理论的建立和快速发展,为稀疏信号重构技术的实现提供了理论依据。
[0003]稀疏信号重构需要通过求解I1范数优化问题得到,I1范数优化算法虽然计算精度较高,但是算法的计算复杂度极高,不利于实时处理与移动平台的实现。运算效率较高的求解方法为贪婪算法,主要包括匹配追踪算法MP、正交匹配追踪算法0ΜΡ、分布正交匹配追踪算法StOMP、正则化匹配追踪算法ROMP等。其中,OMP算法具有极高的运算效率,基于硬件平台的算法实现具有较高的应用价值,但对现有的OMP算法进行FPGA实现时仍存在以下缺占-
^ \\\.
[0004]I)用FPGA实现OMP算法时,会大量涉及到矩阵一向量相乘、向量一向量相乘操作,而随着字典矩阵规模的增加,矩阵一向量相乘所占用的时钟周期和系统资源会急剧增加,从而对求解速度的提升和硬件资源的优化造成限制。
[0005]2)在求解最小二乘部分,现有的求解方法多是通过LU分解、QR分解等对矩阵进行求逆来解最小二乘问题,这种方法的缺点是当矩阵规模增大时,计算复杂度会大大增加,相应的计算时间会增加,进而降低了对信号的处理速度。
[0006]3)现有技术所使用的数据类型多为定点型的实数,而雷达接收到的数据则是含有相位信息的复数,算法的实用性不强。


【发明内容】

[0007]本发明的目的在于针对上述已有技术的不足,提出一种基于FPGA的正交匹配追踪方法,以对基于稀疏傅里叶基的OMP算法进行优化,在满足复杂运算的同时减少系统资源和计算延时,提高信号重构速度和实用性。
[0008]为实现上述目的,本发明包括如下步骤:
[0009](I)根据雷达回波数据,利用Matlab软件产生一个2048 X 2048大小的傅里叶基矩阵Φ和512 X 2048大小的随机矩阵Α,用该随即矩阵A分别对傅里叶基矩阵Φ和雷达回波数据进行抽取生成512X2048大小的字典矩阵Ψ和512长度的测量向量y,并将该字典矩阵Ψ和测量向量I中的数据量化成32bit单精度浮点型数据后存储到ROM中;
[0010](2)初始化迭代次数t为1,初始化误差余量Rtl为测量向量y,初始化列向量集合
Φ和位置索引集合Atl为空集;
[0011](3)计算字典矩阵ψ与误差余量Rh的相关性:即按随机抽取的先验知识对512长度的误差余量IV1补零生成2048长度的向量I—,,再对该向量L1进行IFFT运算;
[0012](4)对步骤(3)的计算结果取模的平方得到2048长度的实向量ht,求出ht中的最大元素所处的位置Xt,该位置Xt即为字典矩阵Ψ中与误差余量IV1相关性最大的列所处的位置,再利用该位置λ 1更新列向量集合I),和位置索引集合At;
[0013](5)对列向量集合'表进行施密特正交化处理生成正交矩阵qt,并用正交矩阵屯更新误差余量-Cl, -(q1/./?,,),其中gf是正交矩阵qt的共轭转置矩阵;
[0014](6)判断误差余量Rt的2范数是否小于I,若满足此收敛条件,则执行步骤(7),否则将迭代次数t加I后重复步骤(3)?(5);
[0015](7)根据观测向量y和最新的列向量集1"Φ利用共轭梯度算法对雷达目标信号X进行恢复与重建:
[0016]7.1)对列向量集合免进行共轭转置得到矩阵Φ',将该共轭转置矩阵分别与列向量集合φ和观测向量I相乘得到矩阵C和迭代向量b ;
[0017]7.2)初始化迭代次数k为1,初始化残差向量r°和搜索方向d°为迭代向量b,初始化待恢复信号X°为零向量;
[0018]7.3)将矩阵C和搜索方向cT相乘得到过渡向量qk,同时将残差向量P进行共轭转置得到共轭转置向量(rH)H,将该共轭转置向量(rH)H与残差向量Z1相乘得到旧残差因子δ0;
[0019]7.4)利用过渡向量qk、搜索方向cT和旧残差因子δ。计算搜索步长α:α = δ。/[(cT)11.qk],其中(cT1)11是搜索方向cT的共轭转置;
[0020]7.5)利用搜索步长α、搜索方向cT更新待恢复信号:xk = f1+ a cT1,其中Xlrf是第k-1次迭代得到的待恢复信号,同时利用搜索步长α和过渡向量qk更新残差向量rk:rk=qk,其中Α1是第k-1次迭代得到的残差向量;
[0021]7.6)将更新后的残差向量rk进行共轭转置得到行残差向量(rk)H,再将该行残差向量(rk)H与残差向量rk相乘得到新残差因子δη;
[0022]7.7)利用新残差因子δη、旧残差因子δ。和更新后的残差向量rk更新搜索方向dk:dk = rk+i3 cT1,以在下次迭代时更新搜索步长α和待恢复信号xk,其中cT是第k_l次迭代得到的搜索方向;
[0023]7.8)判断迭代次数k是否等于12,若k= 12,则迭代结束,输出待恢复信号xk,否则将迭代次数k加I后重复步骤7.3)?7.7)。
[0024]本发明具有如下优点:
[0025]1.处理速度快,资源和功耗小
[0026]本发明基于FPGA实现,由于FPGA有丰富的内部资源,在数据处理过程中可调用FPGA内部的IP核实现数据的复乘、FFT运算等功能;且FPGA并行处理度高,可大幅提升数据的处理速度;另外FPGA还具有灵活的算法适应性和较低的功耗等优点,用FPGA作为稀疏信号重构算法的实现平台可减少系统资源和功耗。
[0027]2.优化资源,进一步提高了处理速度
[0028]在现有的OMP算法中,当字典矩阵规模较大时,用字典矩阵与误差余量相乘求相关性将耗费大量的时间和资源,本发明通过对误差余量进行补零并对补零后的向量进行IFFT运算的方法来计算字典矩阵与误差余量的相关性,减小了资源的占用,进一步提高了处理速度。
[0029]3.适用于大稀疏度信号的重建
[0030]本发明用共轭梯度算法CG对雷达目标信号进行恢复与重建,由于该CG算法的数据一致性很好,计算比较密集、规整,恢复大稀疏度信号时,CG算法与QR分解法相比具有更快的速度和更少的资源占用。
[0031]4.适用性强
[0032]现有OMP算法的FPGA实现大多采用的是定点型的实数,而雷达回波信号是带有相位信息的复数,使得算法在实际应用中受到限制。本发明采用单精度浮点型的复数,在雷达成像中具有更强的适用性。

【专利附图】

【附图说明】
[0033]图1是本发明的实现流程图;
[0034]图2是在占用资源相同的情况下,用本发明和矩阵-向量相乘法求字典矩阵与误差余量相关性的时间对比图;
[0035]图3是用本发明和QR分解法恢复目标信号的时间对比图;
[0036]图4是用本发明和QR分解法恢复目标信号占用的DSP48E1S资源对比图。
具体实施方案
[0037]参照附图1,本发明的具体实施步骤如下:
[0038]步骤1.根据雷达回波数据产生观测向量和字典矩阵。
[0039]1.1)根据雷达回波数据利用Matlab软件产生一个2048X2048大小的傅里叶基矩阵Φ和512X2048大小的随机矩阵A,用该随机矩阵A分别与傅里叶基矩阵Φ和雷达回波数据相乘生成512X2048大小的字典矩阵Ψ和512长度的测量向量y:Ψ = Α.Φ,γ=A.χ,其中X是雷达回波数据,包含2048个复数;再把字典矩阵Ψ和测量向量y中的数据量化成32bit单精度浮点型数据后存储到ROM中;
[0040]1.2)初始化误差余量Rtl为观测向量1,并将误差余量Rtl存储在RAM中,初始化列向量集合^^和位置索引集合Atl为空集:&,=#,A0 = Φ,其中Φ表示空集,初始化迭代次数t为I。
[0041]步骤2.计算字典矩阵与误差余量的相关性。
[0042]2.1)按随机抽取的先验知识对512长度的误差余量Rw补零生成2048长度的插值向量Tp1;
[0043]2.2)调用FPGA内部的FFT核,对其进行配置,即将控制FFT/IFFT功能选择的fwd_inv信号设为O以实现IFFT功能,将数据类型选择为浮点型,数据输出方式选择自然顺序输出;
[0044]2.3)用配置好的FFT核对插值向量T i作IFFT运算,得到相关性向量:& = WT7HU,其中相关性向量gt是长度为2048的复向量。
[0045]步骤3.寻找字典矩阵Ψ中与误差余量IV1相关性最大的列,并更新位置索引集合和列向量集合。
[0046]3.1)调用浮点乘法器IP核和浮点加法器IP核对相关性向量gt中的各元素取模的平方,得到一个2048长度的实相关向量:ht= |gt(i) 2,i = 1,2,...,2048,其中&(1)是相关性向量的gt的第i个元素;
[0047]3.2)利用冒泡法找到实相关向量ht中的最大元素在向量中的位置,记为λ t,该位置λ t即为字典矩阵Ψ中与误差余量IV1相关性最大的列在字典矩阵Ψ中所处的位置;
[0048]3.3)根据最新找到的位置Xt更新位置索引集合At和列向量集合灸:At =Am U λ Ut7,其中Λ H是第t-ι次迭代后的位置索引集合Φ ,是第t-ι次迭代得到的列向量集合,是字典矩阵Ψ中第λ t列对应的列向量;并将得到的列向量集合黾存储在RAM中。
[0049]步骤4.更新误差余量Rt。
[0050]4.1)对列向量集合进行施密特正交化处理:
[0051]4.1a)进行第η次迭代时,列向量集合化中共有η个长度为512的列向量,即
={《.,/ = 1,2,...,?},其中(J)i是列向量集合φ.H勺第i个列向量;
[0052]4.1b)初始化正交基矩阵η = [Il1, η2,...,ili,...,ηη],其中第i个正交基向量Hi是正交基矩阵η的第i个列向量,初始化第I个正交基向量H1为列向量集合中的第I个列向量:1= Φι ;
[0053]4.1c)调用FPGA内部的乘累加IP核和减法器IP核,按如下公式计算第i个正交基向量rI i:
[0054]

【权利要求】
1.一种基于FPGA的正交匹配追踪方法,包括如下步骤: (1)根据雷达回波数据,利用Matlab软件产生一个2048X2048大小的傅里叶基矩阵Φ和512X2048大小的随机矩阵A,用该随即矩阵A分别对傅里叶基矩阵Φ和雷达回波数据进行抽取生成512X2048大小的字典矩阵Ψ和512长度的测量向量y,并将该字典矩阵Ψ和测量向量I中的数据量化成32bit单精度浮点型数据后存储到ROM中; (2)初始化迭代次数t为1,初始化误差余量R0为测量向量y,初始化列向量集合和位置索引集合Atl为空集; (3)计算字典矩阵Ψ与误差余量IV1的相关性:即按随机抽取的先验知识对512长度的误差余量IV1补零生成2048长度的插值向量Yp1,再对该插值向量Tm进行IFFT运算得到相关性向量:尽=肝T(γ,.I ); (4)对相关性向量gt中各元素取模的平方得到2048长度的实相关向量ht,求出实相关向量ht中的最大元素所处的位置Xt,该位置Xt即为字典矩阵Ψ中与误差余量IV1相关性最大的列所处的位置,再利用该位置Xt更新列向量集合氣和位置索引集合At; (5)对列向量集合&进行施密特正交化处理生成正交矩阵qt,并用正交矩阵qt更新误差余量:Rt = Rt^l - qt.(qf _ D,其中q?是正交矩阵qt的共轭转置矩阵; (6)判断误差余量Rt的2范数是否小于I,若满足此收敛条件,则执行步骤(7),否则将迭代次数t加I后重复步骤(3)?(5); (7)根据观测向量I和最新的列向量集合氣,利用共轭梯度算法对雷达目标信号X进行恢复与重建: .7.1)对列向量集合夺进行共轭转置得到矩阵Oii将该共轭转置矩阵分别与列向量集合Φ和观测向量I相乘得到矩阵C和迭代向量b ; .7.2)初始化迭代次数k为1,初始化残差向量r°和搜索方向d°为迭代向量b,初始化待恢复信号χ°为零向量; .7.3)将矩阵C和搜索方向cT1相乘得到过渡向量qk,同时将残差向量rH进行共轭转置得到共轭转置向量(rH)H,将该共轭转置向量(rH)H与残差向量Z1相乘得到旧残差因子S。; .7.4)利用过渡向量qk、搜索方向cT和旧残差因子δ。计算搜索步长α: α = δ ο/[(GT)11.qk],其中(GT1)11是搜索方向cT的共轭转置; .7.5)利用搜索步长α、搜索方向cT更新待恢复信号:xk = χΗ+α cT1,其中Xlrf是第k_l次迭代得到的待恢复信号,同时利用搜索步长α和过渡向量qk更新残差向量rk:rk =rH-a qk,其中Α1是第k_l次迭代得到的残差向量; .7.6)将更新后的残差向量rk进行共轭转置得到行残差向量(rk)H,再将该行残差向量(rk)H与残差向量rk相乘得到新残差因子δη; .7.7)利用新残差因子δη、旧残差因子δ。和更新后的残差向量rk更新搜索方向dk:dk=rk+i3 cT1,以在下次迭代时更新搜索步长α和待恢复信号Λ其中cT是第k-Ι次迭代得到的搜索方向; .7.8)判断迭代次数k是否等于12,若k= 12,则迭代结束,输出待恢复信号xk,否则将迭代次数k加I后重复步骤7.3)?7.7)。
【文档编号】G01S7/41GK104133200SQ201410369626
【公开日】2014年11月5日 申请日期:2014年7月30日 优先权日:2014年7月30日
【发明者】全英汇, 高肖肖, 李亚超, 冉磊, 宋亚坪, 王金龙 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1