本发明属于信号处理技术领域,具体的说是涉及一种基于fpga的jacobi变换的高效实现方法。
背景技术:
在信号处理中,jacobi变换是一个应用广泛的矩阵变换,可以用求解矩阵的奇异值分解svd、求逆等,而这些基本的矩阵分解算法在科学计算、信号处理领域具有广泛的应用,如数据压缩、噪声去除、数值分析,包括近几年兴起的机器学习、深度学习其基本核心操作也包括矩阵奇异值分解与求逆等变换。实现这些矩阵分解算法常用方法有gauss变换、householder变换、jacobi变换等,其中jacobi变换是精度较高的方法并且很适合在fpga中实现。因此基于fpga的jacobi变换的高效实现技术在实际工程中具有很高的应用价值。
目前工程上多数采用如附图1所示的并行结构来计算jacobi变换
技术实现要素:
本发明所要解决的技术问题是,针对上述问题,提供一种fpga资源消耗比较小的jacobi变换技术,可以在资源量比较小的fpga芯片中实现基于jacobi变换的信号处理算法,如单基线相位干涉仪等。与传统计算方案相比在完成计算需要时钟数基本不增加的前提下减少了cordic模块,减少了fpga逻辑资源的消耗。
本发明的技术方案是:
一种基于fpga的jacobi变换的高效实现方法,其特征在于,包括以下步骤:
a.确定jacobi变换前后矩阵a中元素之间的关系:
设矩阵a∈rn×n,单次jacobi旋转的计算公式如下公式1所示:
其中,g∈rn×n为jacobi旋转矩阵,g的对角线元素除了gii=cosθ、gjj=cosθ其他全为1,其非对角线元素除了gij=-sinθ、gji=sinθ外其他全为0:
则完成一次jacobi变换之后
b.构建用于jacobi变换的cordic模块:
构建一个流水线的旋转cordic模块,输入为(xi,yi,θ),输出为(xo,yo),输入与输出关系如下公式3所示:
c.采用步骤b中构建的cordic模块计算jacobi变换后矩阵a的元素
c1.将jacobi变换前矩阵a的元素(aji,aii,θ)、(ajj,aij,θ)在两个时钟内分别依次输入到cordic模块中,即依次计算公式4和公式5:
获得中间变量:(x1,y1,x2,y2);
c2.将步骤c1中获得的中间变量组合为(y2,y1,θ)、(x2,x1,θ),并在两个时钟内分别依次输入到cordic模块中,即依次计算公式6和公式7
得到jacobi变换后矩阵a的元素
本发明的有益效果为:与传统方法相比,本发明的方法使用一种高效的串行控制方案算法,只使用一个cordic模块实现jacobi变换的计算,并且在减少硬件资源消耗的同时,完成计算所需要的时间与并行算法一样,即这样的计算方案算法具有计算速度快、节省硬件资源消耗的优点,在实际工程中具有很高的应用价值。
附图说明
图1传统并行结构计算jacobi变换的fpga实现图;
图2本发明算法流程图;
图3本发明的fpga实现图。
具体实施方式
下面结合附图和实施例,详细描述本发明的技术方案:
本发明应用于单基线相位干涉仪的fpga实现,估计信号与噪声对应的特征值,可以减少硬件资源的消耗。
实施例1
实施例1的算法流程如附图2所示,fpga实现如附图3所示。
考虑一个单基线相位干涉仪,阵元数m=2,n=1个载波为
实施例1估计性能包括计算精度、计算速度和资源消耗,具体用下面指标评价:
1.资源消耗:
(1).寄存器消耗数量nreg,越小对应寄存器资源消耗越少。
(2).逻辑门消耗数量nlut,越小对应逻辑门资源消耗越少。
2.计算速度:
(1).计算消耗的时钟数nclk,越小表示计算消耗时间越少,计算速度越快。
3.计算精度:
(1).特征值计算精度:
仿真步骤如下:
a.仿真信号建模:
a1.由下式产生m=2个阵列接收信号x(n)=[x1(n)x2(n)]t:
x(n)=a(γ)s(n)+n(n)
式中,n(n)为2×1均值为0,方差σ2=1的高斯白噪声矢量;s(n)为接收信号,满足
a2.计算数据协方差矩阵
b.应用本发明的fpga实现,如附图3,对a进行特征值分解,估计信号与噪声对应的特征值:
b1.构建一个流水线的旋转cordic模块,输入为(xi,yi,θ),输出为(xo,yo):
b2.将(a21,a11,θ)、(a22,a12,θ)在两个时钟内分别依次输入到该cordic模块中,即依次计算(1)式和(2)式:
b3.将(y2,y1,θ)、(x2,x1,θ)在两个时钟内分别依次输入到该cordic模块中,即依次计算(3)式和(4)式:
b4.计算结束,得到
本例性能估计如下:
计算圆盘半径计算精度:
统计计算消耗的时钟数nclk、寄存器消耗数量nreg和逻辑门消耗数量nlut。
仿真结果:
1.资源消耗:nreg=1271,nlut=1324。
2.计算速度:nclk=49。
3.计算精度:信号对应特征值的估计精度ε1=1.8326×10-5,噪声对应特征值的估计精度ε2=1.1378×10-4。
从以上的结果可以看出来,采用xilinx公司低端系列的fpga芯片xc6slx4-3tqg144,该芯片一共拥有寄存器4800个,查找表2400个,而本发明所消耗的资源nreg<4800、nlut<2400,是可以在该芯片上实现单基线相位干涉仪。同时如果fpga系统时钟为100mhz,本发明能在
实施例2
使用传统方案算法应用应用于单基线相位干涉仪的fpga实现,估计信号与噪声对应的特征值,作为实施例1的对比例。
实施例2的fpga实现如附图1所示,其余仿真条件与实施例1的相同,估计信号与噪声对应的特征值。
实施例2的评价标准与实施例1的一致。
仿真结果为:
1.资源消耗:nreg=4616,nlut=5024。
2.计算速度:nclk=46。
3.计算精度:信号对应特征值的估计精度ε1=1.8326×10-5,噪声对应特征值的估计精度ε2=1.1378×10-4。
从以上的结果可以看出来,采用xilinx公司低端系列的fpga芯片xc6slx4-3tqg144,该芯片一共拥有寄存器4800个,查找表2400个,而传统方案所消耗的资源nreg<4800、nlut>2400,在该芯片上是不能实现单基线相位干涉仪。同时如果fpga系统时钟为100mhz,传统并行方案能在
综上所述,相对于传统方案,本发明在计算速度与计算精度基本一样的情况下,可以减少fpga资源消耗,可以在低端fpga芯片(资源比较少)实现基于jacobi变换的信号处理算法,在实际工程中具有重要意义。