一种基于FPGA的Jacobi变换的高效实现方法与流程

文档序号:12802101阅读:511来源:国知局
一种基于FPGA的Jacobi变换的高效实现方法与流程

本发明属于信号处理技术领域,具体的说是涉及一种基于fpga的jacobi变换的高效实现方法。



背景技术:

在信号处理中,jacobi变换是一个应用广泛的矩阵变换,可以用求解矩阵的奇异值分解svd、求逆等,而这些基本的矩阵分解算法在科学计算、信号处理领域具有广泛的应用,如数据压缩、噪声去除、数值分析,包括近几年兴起的机器学习、深度学习其基本核心操作也包括矩阵奇异值分解与求逆等变换。实现这些矩阵分解算法常用方法有gauss变换、householder变换、jacobi变换等,其中jacobi变换是精度较高的方法并且很适合在fpga中实现。因此基于fpga的jacobi变换的高效实现技术在实际工程中具有很高的应用价值。

目前工程上多数采用如附图1所示的并行结构来计算jacobi变换矩阵中的这四个元素值,其中g为jacobi旋转矩阵。虽然这样的结构可以使用流水线方式计算但在实际计算过程中,每次变换都会影响矩阵a中第i行、第j行、第i列、第j列的元素,所以需要等待这些元素计算完成才能进行下一次jacobi变换。并且传统的并行计算方案需要多个cordic模块,从输入数据有效到输出数据有效需要进行两次cordic计算。因为需要等待其他元素计算完成并不能有效使用这些cordic模块的计算能力,所以这样的方案消耗较多的硬件资源,反而却不能很好的利用起并行结构可以进行流水线方式高速计算的优点。同时因为fpga资源消耗较多,在一些低端的fpga芯片中,不能实现基于传统并行计算方案实现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变换之后与a的aii、ajj、aij、aji的关系确定为如下公式2所示:

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的元素完成jacobi变换。

本发明的有益效果为:与传统方法相比,本发明的方法使用一种高效的串行控制方案算法,只使用一个cordic模块实现jacobi变换的计算,并且在减少硬件资源消耗的同时,完成计算所需要的时间与并行算法一样,即这样的计算方案算法具有计算速度快、节省硬件资源消耗的优点,在实际工程中具有很高的应用价值。

附图说明

图1传统并行结构计算jacobi变换的fpga实现图;

图2本发明算法流程图;

图3本发明的fpga实现图。

具体实施方式

下面结合附图和实施例,详细描述本发明的技术方案:

本发明应用于单基线相位干涉仪的fpga实现,估计信号与噪声对应的特征值,可以减少硬件资源的消耗。

实施例1

实施例1的算法流程如附图2所示,fpga实现如附图3所示。

考虑一个单基线相位干涉仪,阵元数m=2,n=1个载波为的bpsk调制的远场信号s(n),以γ=5°的入射角,入射到该单基线干涉仪上,且有阵元间距d=0.5λ,λ为信号的波长。阵元接收噪声是零均值的高斯白噪声,噪声功率σ2=1,接收信号信噪比snr=15db,快拍数l=512。利用接收信号x(n)的l=512个观测样本,估计信号与噪声对应的特征值。

实施例1估计性能包括计算精度、计算速度和资源消耗,具体用下面指标评价:

1.资源消耗:

(1).寄存器消耗数量nreg,越小对应寄存器资源消耗越少。

(2).逻辑门消耗数量nlut,越小对应逻辑门资源消耗越少。

2.计算速度:

(1).计算消耗的时钟数nclk,越小表示计算消耗时间越少,计算速度越快。

3.计算精度:

(1).特征值计算精度:其中为特征值的估计值,λi为特征值的理论值。εi越小表示计算精度越高。

仿真步骤如下:

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)为接收信号,满足a(γ)=[1e-jπsinγ]t为阵列流型;

a2.计算数据协方差矩阵和平面旋转角度其中aij,i=1,2;j=1,2为a中的元素;

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.计算结束,得到其中信号对应的特征值噪声对应的特征值

本例性能估计如下:

计算圆盘半径计算精度:其中λi为圆盘半径的理论值;

统计计算消耗的时钟数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,本发明能在秒内就能计算完成。并且计算精度均在10-4数量级,计算精度很高。

实施例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,传统并行方案能在秒内就能计算完成。并且计算精度均在10-4数量级,计算精度和本发明一样。

综上所述,相对于传统方案,本发明在计算速度与计算精度基本一样的情况下,可以减少fpga资源消耗,可以在低端fpga芯片(资源比较少)实现基于jacobi变换的信号处理算法,在实际工程中具有重要意义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1