熊正大 張宏偉
(洛陽電子裝備試驗中心 河南省洛陽市 471000)
通過截獲無線電信號,進而確定輻射源所在方向的過程,稱為無線電測向,簡稱測向。對輻射源測向的基本原理是利用測向天線系統(tǒng)對不同方向到達電磁波所具有的振幅或相位響應來確定輻射源的來波方向。相位法測向系統(tǒng)由位于不同位置的多個天線單元組成,天線單元間的距離使它們所收到的信號由于波程差而產(chǎn)生相位差。通過比較不同天線單元收到的來自同一輻射源的信號的相位差,可以確定輻射源的到達角[1-2]。由于相位差對波程差變化很靈敏,因此相位法測向系統(tǒng)的測向精度相對較高且無需機械轉(zhuǎn)動天線。相位干涉儀是一種常見的相位測向系統(tǒng)。
坐標旋轉(zhuǎn)數(shù)字計算機(Coordinate Rotation Digital Computer,CORDIC)算法最早由J·Volder等人在1959年提出,采用循環(huán)迭代算法來完成一些常用基本運算函數(shù)的運算。統(tǒng)一的CORDIC算法由J.S.Walther在1971年提出,其思想是利用一組預先規(guī)定的基本角度經(jīng)過線性組合去逼近目標角度,而基本角度的選取恰好使每次矢量以基本角度旋轉(zhuǎn)后,一些基于三角函數(shù)的非線性運算只需加減和移位操作即可實現(xiàn),從而適合用FPGA實現(xiàn)[3]。
干涉儀是通過測量位于不同波前的天線接收信號的相位差,經(jīng)過處理獲取來波方向的一類相位法測向設備。最簡單的單基線相位干涉儀由兩個信道組成,如圖1所示。天線“1”和天線“2”之間的連線稱為干涉儀基線。
若某個輻射源距離接收機足夠遠,可以將接收到的電磁波近似為平面波。來波方向與天線視軸夾角為θ,則平面波前到達天線“1”和天線“2”的時間就有前有后,體現(xiàn)在固定頻率信號上就存在相位差。它到達兩個天線的相位差為:
式中,λ為信號波長,d為兩天線間距[4]。
對(1)式進行角度變換,并利用λ=c/f(c為光速,f為信號頻率),求得輻射源信號的到達方向θ,
CORDIC算法是一種用于計算一些常用的基本運算函數(shù)和算數(shù)操作的循環(huán)迭代算法。CORDIC算法完全由加法和移位操作組成,在硬件電路的實現(xiàn)上只用到了移位器和加法器,大大節(jié)約了FPGA的資源。通過移位相加,可以實現(xiàn)乘、除、平方根、三角函數(shù)、雙曲函數(shù)、指數(shù)和對數(shù)等運算[5-7]。
圖1:單基線相位干涉儀原理圖
圖2:雙曲線坐標系旋轉(zhuǎn)
圖3:圓坐標系旋轉(zhuǎn)
雙曲線坐標系下的旋轉(zhuǎn)模式如圖2所示,迭代過程表示為:
根據(jù)三角函數(shù)之間的關(guān)系,可以通過CORDIC算法計算得到[8-9]:
表1:每個迭代的旋轉(zhuǎn)角度
CORDIC算法中,每個迭代i的旋轉(zhuǎn)角度(精確到9位小數(shù))如表1所示。
這里,把變換改成迭代算法,通過一系列連續(xù)小角度的旋轉(zhuǎn)迭代i來完成對任意角度的旋轉(zhuǎn)。旋轉(zhuǎn)角度遵循法則乘以正切項就變成了移位操作。
前幾次迭代的形式為:第一次迭代旋轉(zhuǎn)45°,第二次迭代旋轉(zhuǎn)26.6°,第3次迭代旋轉(zhuǎn)14°等。很明顯,每次旋轉(zhuǎn)的方向都影響最終要旋轉(zhuǎn)的累積角度。在的范圍內(nèi),可以旋轉(zhuǎn)任意角度,滿足法則的所有角度的總和等于99.7°。對于該范圍之外的角度,可以使用三角恒等式轉(zhuǎn)化成該范圍內(nèi)的角度。象限映射操作隱含說明實際上的CORDIC操作要求在 范圍內(nèi)[9]。
對于每次迭代而言,偽旋轉(zhuǎn)方程可以表示為:
式中,符號di=±1,用于確定旋轉(zhuǎn)的方向,di=1代表順時針旋轉(zhuǎn),反之為逆時針旋轉(zhuǎn)。引入角度累加器的概念,用于表示每次迭代過程中追蹤累加的旋轉(zhuǎn)角度:
在向量模式下,將一個輸入向量旋轉(zhuǎn)到x軸,選擇di=-sign (xiyi),目標是使|yi|→0。經(jīng)過n次迭代后,用下式表示:
其中,Kn為旋轉(zhuǎn)向量增量,
即可求得x。所以(13)式現(xiàn)在可以表示為:
利用式(11)和(12),并通過設置z0=0可以計算求得θ。
基于Xilinx FPGA平臺對CORDIC算法進行設計,并用于到達角的計算。執(zhí)行仿真過程,平方根運算的仿真結(jié)果如圖4所示,反正切運算的仿真結(jié)果如圖5所示。從圖4中可以看出,平方根運算的輸出時延約為74ns。從圖5中可以看出,反正切運算的輸出時延約為84ns。綜上,反正弦運算的輸出時延在100ns數(shù)量級。
在MATLAB平臺中,通過利用軟件自帶的arcsin函數(shù)和本文中提到的CORDIC算法分別對到達角θ進行計算。相位差的取值范圍為以的采樣間隔對此區(qū)間進行采樣,光速c=3×108m/s,載波頻率f取3MHz,天線間距d取50m,迭代16次,計算結(jié)果如圖6所示。
圖4:平方根運算的仿真結(jié)果
圖5:反正切運算的仿真結(jié)果
在圖6中,上半部分為利用MATLAB自帶的arcsin函數(shù)對到達角的計算結(jié)果,下半部分為利用CORDIC算法對到達角θ的計算結(jié)果。將兩個計算結(jié)果進行比較,得到誤差曲線圖如圖7所示。
從圖7中可以看出,CORDIC算法與MATLAB平臺自帶的arcsin函數(shù)對到達角θ的計算結(jié)果的誤差精度在10-5數(shù)量級。
圖6:到達角 隨相位差的變化曲線
圖7:計算誤差隨相位差的變化曲線
利用CORDIC算法將干涉儀測向中的到達角的反正弦運算轉(zhuǎn)化成雙曲線坐標系旋轉(zhuǎn)下的平方根運算和圓坐標系旋轉(zhuǎn)下的反正切運算,降低了運算的復雜度,容易在硬件上實現(xiàn)。仿真結(jié)果表明,該算法的輸出時延為100ns數(shù)量級,計算精度為10-5數(shù)量級,運算速率快、精度高,具有重要的工程研究和應用意義。