1、引言
目標識別作為現(xiàn)代雷達的重要發(fā)展方向之一,成為未來武器系統(tǒng)中的一個重要組成部分和當前國內(nèi)外關(guān)注的熱點,具有廣泛的民用和軍事應(yīng)用價值。根據(jù)雷達的探測手段及應(yīng)用背景的不同,出現(xiàn)了多種識別方法,其中雷達成像識別技術(shù)作為雷達目標識別的一種新技術(shù)正在日趨成熟。而與二維成像雷達相比,易于實現(xiàn)的一維成像雷達(高距離分辨率雷達)在目標識別方面有著廣闊的前景。
文獻[1]對基于一維距離像的子空間方法進行了廣泛而深入的研究,在普通特征子空間的基礎(chǔ)上,提出了正則子空間法、修正特征子空間法、綜合子空間法、子空間串法等多種子空間法,在對仿真與實測數(shù)據(jù)的識別中均取得較好的效果。其中部分算法的FPGA實現(xiàn)研究正是本文研究的主要任務(wù)。
CORDIC算法(The Coordinate Rotation Digital Com-puter)是Voider等人于1959年在美國航空控制系統(tǒng)的設(shè)計中提出來的,他是一種用于計算一些常用的基本運算函數(shù)和算術(shù)操作的循環(huán)迭代算法,其基本思想是用一系列與運算基數(shù)相關(guān)的角度的不斷偏擺從而逼近所需旋轉(zhuǎn)的角度。本質(zhì)上講他是一個數(shù)值性計算逼近的方法,由于這些固定的角度與計算基數(shù)有關(guān),運算只有移位和加減??捎迷撍惴▉碛嬎愕暮瘮?shù)包括乘、除、平方根、正弦、余弦、反正切、向量旋轉(zhuǎn)(既復(fù)數(shù)乘法)以及指數(shù)運算等。1971年,J.S.Walther提出了統(tǒng)一的CORDIC算法形式,把圓周旋轉(zhuǎn)、雙曲旋轉(zhuǎn)和直線旋轉(zhuǎn)統(tǒng)一到同一個CORDIC迭代方程里。為同一硬件實現(xiàn)多功能提供了前提,隨著VLSI技術(shù)的發(fā)展,CORDIC算法越來越受到研究與應(yīng)用人員的重視,Xilinx公司于2002年發(fā)布了其CORDIC的IP核,由于IP核技術(shù)的可重用特性,可以使CORDIC算法獲得更廣泛的應(yīng)用。
2、CORDIC原理
CORDIC算法的原始思想一經(jīng)提出,就受到了人們的普遍關(guān)注,隨著FPGA技術(shù)的發(fā)展,CORDIC獲得了愈來愈廣泛的應(yīng)用,CORDIC算法可以分解為一些簡單的且在硬件中容易實現(xiàn)的基本算法,如加法、移位等,使得這些算法在硬件上可以得到較好的實現(xiàn)。又因為該算法是一種規(guī)則化的算法,他滿足了硬件對算法的模塊化、規(guī)則化的要求,因此CORDIC算法可以充分發(fā)揮硬件的優(yōu)勢,利用硬件的資源從而實現(xiàn)硬件與資源相結(jié)合的一種優(yōu)化方案,下面簡要介紹其基本原理。
若將向量[z,y]T沿逆時針方向旋轉(zhuǎn)角度a如圖1所示,初始向量V1經(jīng)旋轉(zhuǎn)a角以后得到向量V2。
也即:
在應(yīng)用過程中,CORDIC的實現(xiàn)方式我們主要討論循環(huán)結(jié)構(gòu)(圖2)以及流水線結(jié)構(gòu)(圖3)。圖2采用的是并行的數(shù)據(jù)格式,由于其大的扇人量,不適合在單個邏輯單元扇入量有限的FPGA上實現(xiàn)。如果在FPGA上實現(xiàn)將會占用大量的邏輯塊,浪費資源,而且路徑的拉長會導致其速度的降低。在圖3所示的流水線結(jié)構(gòu)中,每一個移位器都是固定的深度,而且旋轉(zhuǎn)角度集的各個值作為常數(shù)值直接連到角累加器件上面,不需要存取空間和讀取時間。在FPGA器件中每個細胞元都有寄存器,便于采用流水線技術(shù)。
3、實現(xiàn)技術(shù)中的IP核的應(yīng)用
在實際的設(shè)計中,我們采用了Xilinx系列芯片中的IP核來完成設(shè)計,這樣做的目的主要是為了充分利用芯片的內(nèi)部資源,實現(xiàn)內(nèi)部結(jié)構(gòu)的優(yōu)化設(shè)計,IP核生成工具可以是各種類型、功能的模塊。這些IP核是根據(jù)Xilinx的FP-GA器件特點和結(jié)構(gòu)而設(shè)計,直接用Xilinx FPGA底層硬件原語進行描述,可充分將FPGA的性能發(fā)揮出來,其實現(xiàn)結(jié)果在面積和速度上都能達到令人滿意的效果。
4、數(shù)值精度問題
在應(yīng)用每一個數(shù)值實現(xiàn)方法時,他的數(shù)值精度是我們不得不考慮的問題,CORDIC算法也不例外。WaltherHu、Kota都對他進行了深入的研究,分別對其定點和浮點實現(xiàn)方式的數(shù)值精度給出了定量描述或在數(shù)學上進行了分析,不同的算法模式不同的操作模式有著不同的結(jié)果。CORDIC的誤差主要來自兩方面:一方面,在用旋轉(zhuǎn)角度集來表示角度時,有限子集產(chǎn)生了截斷誤差;另一方面由于有限字長的限制,在數(shù)據(jù)表示和移位運算中產(chǎn)生了舍人誤差。由于CORDIC的3個方程之間相互作用,這為分析CORDIC的誤差帶來了很大的難度。以旋轉(zhuǎn)模式的誤差分析為例,我們以x,y,z表示有限精度下的計算值,xi,yi,zi表示無誤差的精確值,z,y,z表示數(shù)學意義上得到的值,旋轉(zhuǎn)模式時的迭代方程為:
其中:
經(jīng)n次迭代后得到:
對于x,y分量來說,若假定z分量對他們的作用因子di是精確的,則他們主要是受舍入誤差的影響,設(shè)x,y由t1位表示,且均為小數(shù)位,則有限精度下的x,y分量經(jīng)過n次迭代后將產(chǎn)生大約log2n位的舍入誤差。對于z分量來說,其誤差主要來自兩方面:一方面是截斷誤差,設(shè)為ezl,由CORDIC收斂性可知:
另一方面是舍人誤差ez2,若假定用t2來表示z分量則│ez2│《2-t2,假定θ為精確值,a為計算值,則:
綜上有:
從上面結(jié)果中,我們發(fā)現(xiàn)只要在算法內(nèi)部數(shù)據(jù)中增加log332Δ5位長度的保護位,則可以校正誤差,在輸出結(jié)果中獲得15位的精度。
5、 仿真實驗
在實現(xiàn)了各種處理單元以后,我們可以很方便地將其應(yīng)用于陣列中來計算矩陣的奇異值分解。一個2×2矩陣的SVD實際上就是一個旋轉(zhuǎn)角計算單元與雙邊旋轉(zhuǎn)計算單元的組合,結(jié)構(gòu)框圖如圖4所示。
旋轉(zhuǎn)角計算主要按照直接2-角方法,分別計算出θr+θt和θr-θt,通過加法器和減法器以及除法器,得到θr和θt。一個2×2矩陣的雙邊旋轉(zhuǎn)為:
在設(shè)計中,我們注意到角θr要等到θt,旋轉(zhuǎn)完成后才輸入到旋轉(zhuǎn)器中,我們通過添加FIFO做為延時控制單元,通過控制FIFO的深度來完成數(shù)據(jù)的同步,獲得同時鐘頻率一樣高的數(shù)據(jù)流量。雙邊旋轉(zhuǎn)實現(xiàn)框圖如圖5所示。
使用VHDL語言進行模塊功能描述,在Xilinx仿真平臺ISE 7.1以及Modelsim SE 5.7d環(huán)境下的仿真結(jié)果如圖6所示,系統(tǒng)工作的時鐘頻率為50 MHz,在選用高端的Virtcx4系列芯片進行算法的時序仿真時,資源的占用都是比較少的。這為下一步的高階子空間算法的實現(xiàn)奠定了比較好的基礎(chǔ)。
6 、結(jié) 語
本文在基于Xilinx的軟硬件開發(fā)平臺上,對用FPGA實現(xiàn)用于雷達一維像目標識別的特征子空間方法進行了一系列的探討與研究,深入研究了CORDIC理論在數(shù)值精度、操作模式上的各種應(yīng)用,并且用于FPGA設(shè)計實現(xiàn)二維子空間的研究并且成功地進行了硬件仿真實現(xiàn),下面的工作是結(jié)合并行雅可比方法采用Systolic陣列結(jié)構(gòu)進行高階子空間分解的FPGA實現(xiàn),這部分工作將在后面的研究中完成。
責任編輯:gt
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602986 -
Xilinx
+關(guān)注
關(guān)注
71文章
2167瀏覽量
121302 -
雷達
+關(guān)注
關(guān)注
50文章
2930瀏覽量
117465
發(fā)布評論請先 登錄
相關(guān)推薦
評論