廖 帥,周少瓊,朱曉玉,趙永寧,赫 巖
(北京市遙感信息研究所,北京100094)
測向系統是空間無源定位系統的重要組成部分,可以截獲、分析和定位目標輻射源,具有極高的使用價值[1]。測向系統主要包括多站和單站2 種模式。多站的時頻差和時差定位技術,要求多站之間具有高精度時間同步和通信鏈路,系統實現復雜,成本較高;單站測向技術,分為比幅測向和干涉儀測向,比幅測向的精度較低,目標輻射源定位精度較差[2]。干涉儀測向定位技術具有測向精度高、結構簡單、測向頻段寬等優點,在現代電子系統中已廣泛應用。相較于線陣干涉儀,圓陣干涉儀可同時提供方位角和俯仰角二維角度信息,解模糊概率高,結構更簡單且對平臺安裝尺寸要求低[3]。目前,在一些小型化的工程實踐平臺上,已實現了一種基于長短基線的圓陣干涉儀測向方法,利用較短基線覆蓋寬視角和解模糊,利用較長基線保證測向精度[4]。
干涉儀測向定位系統中,相位差解模糊是研究的重點,也是在工程實踐中需要重點解決的核心問題[5]。目前有很多常用的圓陣干涉儀解模糊的方法,其中一種是采用1 組最長基線作為參考,先計算出所有模糊數下的方位角和俯仰角,再代入每組基線計算誤差最小的模糊數,由于需將可能的方位角及俯仰角代入各組基線進行運算,在基線數量較多時,運算量較大[6]。本文提出了一種基于多線程并行的干涉儀測向定位快速處理方法,在圓陣干涉儀相位差解模糊上采用常規的長短基線逐級解模糊法,其研究的重點是如何提升單個節拍數據的處理時效。本文方法通過Qt 的線程池QRunnable 類定義干涉儀測向定位的多線程算法,將單個節拍數據的串行處理流程,利用多線程并行計算的方式實現高效計算。并通過仿真測試,驗證了該方法的有效性。
相位干涉儀測向的基本原理是利用不同測向天線在同一時刻接收到的信號相位差與信號的到達方位、俯仰角的對應關系,通過測量不同天線同一時刻接收到的來波信號的相位差,計算得到信號的方向[7]。以圓陣天線為例,其測向原理圖如圖1 所示。假設圓半徑為R,天線為q,且有q=0,1,…,Q-1 共Q個天線。天線陣列位于x,y平面內,第一個天線陣元為0號陣元,并且位于x軸上,因此α=0。天線正好定位于角度αq的整數倍處。

圖1 圓陣天線測向原理圖
假設一個幅度為A、頻率為f的平面波以方位角α、俯仰角β入射到這個陣列上,那么第q個陣元上的感應輸出可以寫為:
綜合各個陣元的信息,可以求出信號相對于坐標系的方位角和俯仰角。
下面以五元均勻圓陣布陣方式為例說明測向原理。天線陣元1、2、3、4、5 均勻分布在半徑為R的圓環上,如圖2 所示。

圖2 測向定位場景示意圖
為實現二維高精度測向,必須采用至少2 組基線對才能進行測向,以天線陣元2、天線陣元3、天線陣元1 形成2-3、2-1 基線對為例說明測向原理。
天線陣元2、天線陣元3、天線陣元1 接收信號相位分別為:
陣元2 和陣元3 形成的干涉儀對應的相位差為:
陣元2 和陣元1 形成的干涉儀對應的相位差為:
式中,ω為基線對陣元2 與圓心連線和OXa夾角,γ為陣元1 與圓心連線、陣元3 與圓心連線夾角。將每組基線對做和差處理:
信號方向矢量(cosβcosα,cosβsinα,sinβ)在 陣列平面的投影為:
可得方位角、俯仰角測量結果為:
可見,根據基線設置和相位差測量結果即可求得方位角α和俯仰角β。
對地面輻射源的定位是通過二維干涉儀對目標的無線電波到達方向的方位α和俯仰β角度進行測量,根據測得的角度信息以及地球約束方程對地面輻射源目標進行定位。
采用WGS-84 坐標系作為基準坐標系,輻射源的位置坐標為XTβ(x,y,z),其大地坐標為XT,BLH(L,B,H),在地固坐標系中,直角坐標與大地坐標的關系如下:
式中,RN是目標當地卯酉圈半徑,L、B、H分別為目標的經度、緯度和高程;e為WGS-84 地球橢球第一偏心率。
假定在地固坐標系中平臺位置為Xs,e(x1,y1,z1),轉換至星體坐標系中,輻射源的位置坐標為XT,b(xT,b,yT,b,zT,b),可以表示為:
式中,M為地固坐標系和星體坐標系之間的坐標轉移矩陣。建立狀態和觀測之間的聯系,方位和俯仰角測量方程可以表示為:
將直角坐標與大地坐標的對應關系表達式進行化簡,可得地球約束方程如下:
方位和俯仰角測量方程與地球約束方程的交點即為輻射源的位置。
目前主流的操作系統如Windows、Linux、Mac OS對多線程均有較好的支持。Windows 環境下,Win32 API 提供了多線程應用程序開發所需要的接口函數,微軟基礎函數類庫(MFC)則是用類庫的方式將Win32 API進行封裝,以類的方式提供給開發者[8]。在Linux 中,POSIX thread(又稱為pthread)是一套通用的線程庫,定義了有關線程創建和操作的API,并且具有很好的可移植性[9]。
Qt作為一種基于C++的跨平臺GUI系統,能夠給用戶提供構造圖像界面的強大功能。為滿足用戶構造復雜的圖形界面系統的需求、提高圖形用戶界面的響應速度,Qt 提供豐富的多線程編程支持。Qt 提供了與平臺無關的線程類,在Qt系統中與線程相關的最重要的類是QThread類,該類提供了創建一個新線程以及控制線程運行的各種方法。線程通過QThread::run()重載函數開始執行,操作系統會為每一個線程自動分配堆棧,用戶也可以調用QThread::setStackSize()函數設置線程的堆棧。要創建自己的線程,只需繼承QThread類和重新實現run()函數即可。Qt中的多線程編程主要涉及到傳統的線程操作以及與Qt 事件機制相關的操作,Qt的多線程編程在用戶界面程序中尤為重要,特別是界面中有大量消耗CPU 資源的程序在運行,使用多線程技術,把大量消耗CPU 資源的程序開辟一個單獨的線程運行,能大大提高界面程序的響應速度,同時,還能改善程序的結構,將一個復雜的程序劃分由幾個獨立的線程完成,有利于程序的理解和維護[10]。
考慮到Qt 系統強大的多線程技術,本文提出的干涉儀測向定位快速處理方法正是基于Qt 的多線程處理實現算法流程。
傳統的基于相位干涉儀的測向定位,多側重于高效的解模糊算法,本文提出的基于多線程并行的干涉儀測向定位快速處理方法,重點關注單個節拍數據的處理時效提升。在單個節拍串行處理流程基礎上,通過Qt 的線程池QRunnable 類定義干涉儀測向定位的多線程算法,實現對單個節拍數據的高效處理,是一種具有可操作性的工程應用方法。
干涉儀測向的實質是利用無線電波在測向基線上形成的相位差來確定來波方向,干涉儀測向性能的改進和提升主要是從解相位差模糊和天線配置形式、鑒相準確度、通道幅相校正技術、數據處理方法四個方面來進行的[11]。本文側重于空間無源定位干涉儀測向系統的雷達輻射源處理流程,數據的輸入為流式的脈沖描述字,暫不考慮測向系統中數字采樣、信號檢測、相位估計等過程。其中,脈沖描述字的內容包括:脈沖到達時間(TOA)、脈沖寬度(PW)、頻率碼(CF)、方位角、俯仰角以及N個相位差碼(N+1 為干涉儀測向系統中陣元數量)等。因數據的輸入為流式脈沖描述字,故處理流程按照數據輸入節拍進行,單個節拍的串行處理流程如圖3 所示。

圖3 單個節拍的串行處理流程圖
單個節拍的串行處理流程包括基于粗方位和俯仰信息的預分選、基于三大參數的主分選、脈沖相位差校正、相位差解模糊以及定位計算等。下面重點對相位差校正和相位解模糊進行詳細描述。
3.1.1 相位差系統誤差校正
根據對相位干涉儀測向誤差模型的分析,引起誤差的因素主要有相位差測量誤差、基線長度測量誤差、干涉儀安裝角誤差、觀測平臺姿態誤差、觀測平臺位置誤差以及頻率測量誤差等。實際工程應用中,在各個觀測量目前典型的系統誤差水平下,觀測平臺姿態誤差、觀測平臺位置誤差和頻率測量誤差引起的定位偏差很小,通常可以忽略不計;相位差測量誤差(ΔΦ)、基線長度測量誤差(Δd)和干涉儀安裝角誤差(方位向Δε、俯仰向Δζ)引起的測向定位偏差通常較大,應加以考慮[12]。
針對相位差系統誤差的校正,本文采用了在實際工程應用中的一般方法,即采用基于多個標校站的系統誤差校正方法。如圖4 所示,在地面建立多個標校站,利用標校站位置已知和信號頻率已知這2 個先驗信息,通過測量相位差就可以估計出各個觀測量的系統誤差。利用標校站發射不同的信號頻率,通過長時間的積累,即可獲取滿足多頻段、大視場的定位系統誤差數據。基于長時間積累的系統誤差數據,即可實現對干涉儀測向系統的相位差校正。

圖4 基于多標校站的系統誤差估計
3.1.2 相位差解模糊
干涉儀測向系統中,由于鑒相器的鑒相范圍只有2π,當實際相位差超過2π 時,鑒相器輸出的相位值會以2π 為周期翻轉,出現多值模糊[13]。要獲得高的測角精度,2 天線間的距離要越長;要實現相位不超過2π,2天線間的距離就要足夠短,這與提高測向精度的條件相矛盾。通常,在實際工程應用中大多采用多基線相位干涉儀陣列,利用短基線保證較大的測向范圍,長基線保證較高的測向精度。目前,多基線相位干涉儀解模糊技術的基本方法主要有:長短基線逐級解模糊法、余數定理法、虛擬基線法、無模糊長基線干涉儀法等,基本思想都是找出多基線相位干涉儀陣列中陣元基線長度的線性組合,使其滿足小于輻射信號半波長的條件[14]。
本文是基于圓陣干涉儀測向系統提出的多線程并行處理方法,相位差解模糊采用了均勻圓陣中長短基線多基線組合解模糊法。為得到均勻圓陣不同陣元數量情況下的相位差解模糊效果,選擇陣元數量分別為9、11、13、15、21、41 進行了仿真。采用相同的長短基線多基線組合解模糊法,計算了二維的圓概率定位誤差值(CEP),仿真結果如圖5 所示。

圖5 不同陣元數量的圓陣干涉儀定位精度仿真
實際工程應用中,由于單個節拍數據中脈沖密度很大,串行處理流程在處理時延上很難滿足應用需求。因此,在單個節拍串行處理流程基礎上,通過Qt的線程池QRunnable 類定義干涉儀測向定位的多線程算法,實現對單個節拍數據的高效處理。算法流程如下:
定義:創建一個線程類Loc_ThreadPool,繼承于QRunnable;
重寫run 函數,主要完成干涉儀測向定位,具體通過for 循環調用單脈沖相位差校正模塊、單脈沖相位差解模糊模塊以及單脈沖定位解算模塊,計算輸入所有脈沖列的平均位置信息。
輸入:脈沖描述字處理節拍數據流,線程池的最大線程數量為m;
Step1:基于脈沖描述字中的粗方位、俯仰信息進行脈沖預分選;
Step2:基于頻率、脈寬和PRI 進行脈沖分選;
Step3:對分選得到的N個輻射源參數進行估計;
Step4:將線程池的最大線程數量賦值m,給每個線程分配N/m個輻射源參與計算;
Step5:定 義QThreadPool 對 象,將Loc_Thread-Pool 傳遞給QThreadPool 的start 函數,并用它生成N個子線程;
Step6:對第i個子線程,通過調用QThreadPool 的start 函數,將第i個輻射源的脈沖列進行干涉儀測向定位,并將輸出的輻射源平均位置信息與參數信息進行融合;
輸出:單個節拍數據的全部輻射源參數和位置信息。
硬件環境:工作站,處理器為Intel(R) Xeon(R) W-2145 CPU@3.70 GHz,16 核;內存為128 GB;操作系統為Windows 7。
仿真數據:設置仿真的頻段范圍為5 000~6 000 MHz,均勻圓陣干涉儀的陣元數量為9 個,仿真的脈沖序列具體內容包括脈沖到達時間、脈沖頻率、脈沖寬度、脈沖幅度、方位角、俯仰角以及8 個相位差;仿真數據中加入多種體制雷達信號脈沖,共仿真700 s 的隨機雷達脈沖信號,產生1 679 520 個脈沖,在脈沖時序中隨機加入干擾脈沖信號,仿真信號時序完整度為85%。
將上述700 s 的隨機脈沖信號,按照1 s 一個節拍數據的形式,形成數據流作為算法的輸入。考慮到硬件設備性能,處理的線程數量一次從1 個增加至5 個,統計從數據輸入到結果輸出的全流程處理時效,從1 s節拍數據處理的平均時效和最大時效兩方面進行比較,結果如圖6—7 所示。

圖6 單個節拍數據的平均處理時效對比

圖7 單個節拍數據的最大處理時效對比
上述測試結果中,單個節拍數據在多線程并行處理的情況下,時效提升明顯;4 個線程并行處理,相比于單線程處理,時延平均縮短了64.5%。另外,5 個線程并行處理,相比于4 個線程并行處理,時效并沒有提升,反而有所下降。仿真測試表明,基于多線程并行的干涉儀測向定位快速處理方法,能夠提升單個節拍數據的處理時效,但在實際工程應用中,要綜合考慮硬件設備性能、資源調度策略等因素,選擇合理可行的線程數量。
本文提出的一種基于多線程并行的干涉儀測向定位快速處理方法,重點關注圓陣干涉儀測向系統的數據處理時效性的提升,通過Qt 的線程池QRunnable類定義干涉儀測向定位的多線程算法,將單個節拍數據的串行處理流程,通過多線程并行計算的方式實現高效計算,是一種具有可操作性的工程應用方法。仿真測試驗證了本文方法的有效性,且該方法在實際工程中具有較好的應用價值。■