廖 帥,周少瓊,朱曉玉,趙永寧,赫 巖
(北京市遙感信息研究所,北京100094)
測(cè)向系統(tǒng)是空間無源定位系統(tǒng)的重要組成部分,可以截獲、分析和定位目標(biāo)輻射源,具有極高的使用價(jià)值[1]。測(cè)向系統(tǒng)主要包括多站和單站2 種模式。多站的時(shí)頻差和時(shí)差定位技術(shù),要求多站之間具有高精度時(shí)間同步和通信鏈路,系統(tǒng)實(shí)現(xiàn)復(fù)雜,成本較高;單站測(cè)向技術(shù),分為比幅測(cè)向和干涉儀測(cè)向,比幅測(cè)向的精度較低,目標(biāo)輻射源定位精度較差[2]。干涉儀測(cè)向定位技術(shù)具有測(cè)向精度高、結(jié)構(gòu)簡單、測(cè)向頻段寬等優(yōu)點(diǎn),在現(xiàn)代電子系統(tǒng)中已廣泛應(yīng)用。相較于線陣干涉儀,圓陣干涉儀可同時(shí)提供方位角和俯仰角二維角度信息,解模糊概率高,結(jié)構(gòu)更簡單且對(duì)平臺(tái)安裝尺寸要求低[3]。目前,在一些小型化的工程實(shí)踐平臺(tái)上,已實(shí)現(xiàn)了一種基于長短基線的圓陣干涉儀測(cè)向方法,利用較短基線覆蓋寬視角和解模糊,利用較長基線保證測(cè)向精度[4]。
干涉儀測(cè)向定位系統(tǒng)中,相位差解模糊是研究的重點(diǎn),也是在工程實(shí)踐中需要重點(diǎn)解決的核心問題[5]。目前有很多常用的圓陣干涉儀解模糊的方法,其中一種是采用1 組最長基線作為參考,先計(jì)算出所有模糊數(shù)下的方位角和俯仰角,再代入每組基線計(jì)算誤差最小的模糊數(shù),由于需將可能的方位角及俯仰角代入各組基線進(jìn)行運(yùn)算,在基線數(shù)量較多時(shí),運(yùn)算量較大[6]。本文提出了一種基于多線程并行的干涉儀測(cè)向定位快速處理方法,在圓陣干涉儀相位差解模糊上采用常規(guī)的長短基線逐級(jí)解模糊法,其研究的重點(diǎn)是如何提升單個(gè)節(jié)拍數(shù)據(jù)的處理時(shí)效。本文方法通過Qt 的線程池QRunnable 類定義干涉儀測(cè)向定位的多線程算法,將單個(gè)節(jié)拍數(shù)據(jù)的串行處理流程,利用多線程并行計(jì)算的方式實(shí)現(xiàn)高效計(jì)算。并通過仿真測(cè)試,驗(yàn)證了該方法的有效性。
相位干涉儀測(cè)向的基本原理是利用不同測(cè)向天線在同一時(shí)刻接收到的信號(hào)相位差與信號(hào)的到達(dá)方位、俯仰角的對(duì)應(yīng)關(guān)系,通過測(cè)量不同天線同一時(shí)刻接收到的來波信號(hào)的相位差,計(jì)算得到信號(hào)的方向[7]。以圓陣天線為例,其測(cè)向原理圖如圖1 所示。假設(shè)圓半徑為R,天線為q,且有q=0,1,…,Q-1 共Q個(gè)天線。天線陣列位于x,y平面內(nèi),第一個(gè)天線陣元為0號(hào)陣元,并且位于x軸上,因此α=0。天線正好定位于角度αq的整數(shù)倍處。
圖1 圓陣天線測(cè)向原理圖
假設(shè)一個(gè)幅度為A、頻率為f的平面波以方位角α、俯仰角β入射到這個(gè)陣列上,那么第q個(gè)陣元上的感應(yīng)輸出可以寫為:
綜合各個(gè)陣元的信息,可以求出信號(hào)相對(duì)于坐標(biāo)系的方位角和俯仰角。
下面以五元均勻圓陣布陣方式為例說明測(cè)向原理。天線陣元1、2、3、4、5 均勻分布在半徑為R的圓環(huán)上,如圖2 所示。
圖2 測(cè)向定位場(chǎng)景示意圖
為實(shí)現(xiàn)二維高精度測(cè)向,必須采用至少2 組基線對(duì)才能進(jìn)行測(cè)向,以天線陣元2、天線陣元3、天線陣元1 形成2-3、2-1 基線對(duì)為例說明測(cè)向原理。
天線陣元2、天線陣元3、天線陣元1 接收信號(hào)相位分別為:
陣元2 和陣元3 形成的干涉儀對(duì)應(yīng)的相位差為:
陣元2 和陣元1 形成的干涉儀對(duì)應(yīng)的相位差為:
式中,ω為基線對(duì)陣元2 與圓心連線和OXa夾角,γ為陣元1 與圓心連線、陣元3 與圓心連線夾角。將每組基線對(duì)做和差處理:
信號(hào)方向矢量(cosβcosα,cosβsinα,sinβ)在 陣列平面的投影為:
可得方位角、俯仰角測(cè)量結(jié)果為:
可見,根據(jù)基線設(shè)置和相位差測(cè)量結(jié)果即可求得方位角α和俯仰角β。
對(duì)地面輻射源的定位是通過二維干涉儀對(duì)目標(biāo)的無線電波到達(dá)方向的方位α和俯仰β角度進(jìn)行測(cè)量,根據(jù)測(cè)得的角度信息以及地球約束方程對(duì)地面輻射源目標(biāo)進(jìn)行定位。
采用WGS-84 坐標(biāo)系作為基準(zhǔn)坐標(biāo)系,輻射源的位置坐標(biāo)為XTβ(x,y,z),其大地坐標(biāo)為XT,BLH(L,B,H),在地固坐標(biāo)系中,直角坐標(biāo)與大地坐標(biāo)的關(guān)系如下:
式中,RN是目標(biāo)當(dāng)?shù)孛先Π霃?,L、B、H分別為目標(biāo)的經(jīng)度、緯度和高程;e為WGS-84 地球橢球第一偏心率。
假定在地固坐標(biāo)系中平臺(tái)位置為Xs,e(x1,y1,z1),轉(zhuǎn)換至星體坐標(biāo)系中,輻射源的位置坐標(biāo)為XT,b(xT,b,yT,b,zT,b),可以表示為:
式中,M為地固坐標(biāo)系和星體坐標(biāo)系之間的坐標(biāo)轉(zhuǎn)移矩陣。建立狀態(tài)和觀測(cè)之間的聯(lián)系,方位和俯仰角測(cè)量方程可以表示為:
將直角坐標(biāo)與大地坐標(biāo)的對(duì)應(yīng)關(guān)系表達(dá)式進(jìn)行化簡,可得地球約束方程如下:
方位和俯仰角測(cè)量方程與地球約束方程的交點(diǎn)即為輻射源的位置。
目前主流的操作系統(tǒng)如Windows、Linux、Mac OS對(duì)多線程均有較好的支持。Windows 環(huán)境下,Win32 API 提供了多線程應(yīng)用程序開發(fā)所需要的接口函數(shù),微軟基礎(chǔ)函數(shù)類庫(MFC)則是用類庫的方式將Win32 API進(jìn)行封裝,以類的方式提供給開發(fā)者[8]。在Linux 中,POSIX thread(又稱為pthread)是一套通用的線程庫,定義了有關(guān)線程創(chuàng)建和操作的API,并且具有很好的可移植性[9]。
Qt作為一種基于C++的跨平臺(tái)GUI系統(tǒng),能夠給用戶提供構(gòu)造圖像界面的強(qiáng)大功能。為滿足用戶構(gòu)造復(fù)雜的圖形界面系統(tǒng)的需求、提高圖形用戶界面的響應(yīng)速度,Qt 提供豐富的多線程編程支持。Qt 提供了與平臺(tái)無關(guān)的線程類,在Qt系統(tǒng)中與線程相關(guān)的最重要的類是QThread類,該類提供了創(chuàng)建一個(gè)新線程以及控制線程運(yùn)行的各種方法。線程通過QThread::run()重載函數(shù)開始執(zhí)行,操作系統(tǒng)會(huì)為每一個(gè)線程自動(dòng)分配堆棧,用戶也可以調(diào)用QThread::setStackSize()函數(shù)設(shè)置線程的堆棧。要?jiǎng)?chuàng)建自己的線程,只需繼承QThread類和重新實(shí)現(xiàn)run()函數(shù)即可。Qt中的多線程編程主要涉及到傳統(tǒng)的線程操作以及與Qt 事件機(jī)制相關(guān)的操作,Qt的多線程編程在用戶界面程序中尤為重要,特別是界面中有大量消耗CPU 資源的程序在運(yùn)行,使用多線程技術(shù),把大量消耗CPU 資源的程序開辟一個(gè)單獨(dú)的線程運(yùn)行,能大大提高界面程序的響應(yīng)速度,同時(shí),還能改善程序的結(jié)構(gòu),將一個(gè)復(fù)雜的程序劃分由幾個(gè)獨(dú)立的線程完成,有利于程序的理解和維護(hù)[10]。
考慮到Qt 系統(tǒng)強(qiáng)大的多線程技術(shù),本文提出的干涉儀測(cè)向定位快速處理方法正是基于Qt 的多線程處理實(shí)現(xiàn)算法流程。
傳統(tǒng)的基于相位干涉儀的測(cè)向定位,多側(cè)重于高效的解模糊算法,本文提出的基于多線程并行的干涉儀測(cè)向定位快速處理方法,重點(diǎn)關(guān)注單個(gè)節(jié)拍數(shù)據(jù)的處理時(shí)效提升。在單個(gè)節(jié)拍串行處理流程基礎(chǔ)上,通過Qt 的線程池QRunnable 類定義干涉儀測(cè)向定位的多線程算法,實(shí)現(xiàn)對(duì)單個(gè)節(jié)拍數(shù)據(jù)的高效處理,是一種具有可操作性的工程應(yīng)用方法。
干涉儀測(cè)向的實(shí)質(zhì)是利用無線電波在測(cè)向基線上形成的相位差來確定來波方向,干涉儀測(cè)向性能的改進(jìn)和提升主要是從解相位差模糊和天線配置形式、鑒相準(zhǔn)確度、通道幅相校正技術(shù)、數(shù)據(jù)處理方法四個(gè)方面來進(jìn)行的[11]。本文側(cè)重于空間無源定位干涉儀測(cè)向系統(tǒng)的雷達(dá)輻射源處理流程,數(shù)據(jù)的輸入為流式的脈沖描述字,暫不考慮測(cè)向系統(tǒng)中數(shù)字采樣、信號(hào)檢測(cè)、相位估計(jì)等過程。其中,脈沖描述字的內(nèi)容包括:脈沖到達(dá)時(shí)間(TOA)、脈沖寬度(PW)、頻率碼(CF)、方位角、俯仰角以及N個(gè)相位差碼(N+1 為干涉儀測(cè)向系統(tǒng)中陣元數(shù)量)等。因數(shù)據(jù)的輸入為流式脈沖描述字,故處理流程按照數(shù)據(jù)輸入節(jié)拍進(jìn)行,單個(gè)節(jié)拍的串行處理流程如圖3 所示。
圖3 單個(gè)節(jié)拍的串行處理流程圖
單個(gè)節(jié)拍的串行處理流程包括基于粗方位和俯仰信息的預(yù)分選、基于三大參數(shù)的主分選、脈沖相位差校正、相位差解模糊以及定位計(jì)算等。下面重點(diǎn)對(duì)相位差校正和相位解模糊進(jìn)行詳細(xì)描述。
3.1.1 相位差系統(tǒng)誤差校正
根據(jù)對(duì)相位干涉儀測(cè)向誤差模型的分析,引起誤差的因素主要有相位差測(cè)量誤差、基線長度測(cè)量誤差、干涉儀安裝角誤差、觀測(cè)平臺(tái)姿態(tài)誤差、觀測(cè)平臺(tái)位置誤差以及頻率測(cè)量誤差等。實(shí)際工程應(yīng)用中,在各個(gè)觀測(cè)量目前典型的系統(tǒng)誤差水平下,觀測(cè)平臺(tái)姿態(tài)誤差、觀測(cè)平臺(tái)位置誤差和頻率測(cè)量誤差引起的定位偏差很小,通??梢院雎圆挥?jì);相位差測(cè)量誤差(ΔΦ)、基線長度測(cè)量誤差(Δd)和干涉儀安裝角誤差(方位向Δε、俯仰向Δζ)引起的測(cè)向定位偏差通常較大,應(yīng)加以考慮[12]。
針對(duì)相位差系統(tǒng)誤差的校正,本文采用了在實(shí)際工程應(yīng)用中的一般方法,即采用基于多個(gè)標(biāo)校站的系統(tǒng)誤差校正方法。如圖4 所示,在地面建立多個(gè)標(biāo)校站,利用標(biāo)校站位置已知和信號(hào)頻率已知這2 個(gè)先驗(yàn)信息,通過測(cè)量相位差就可以估計(jì)出各個(gè)觀測(cè)量的系統(tǒng)誤差。利用標(biāo)校站發(fā)射不同的信號(hào)頻率,通過長時(shí)間的積累,即可獲取滿足多頻段、大視場(chǎng)的定位系統(tǒng)誤差數(shù)據(jù)?;陂L時(shí)間積累的系統(tǒng)誤差數(shù)據(jù),即可實(shí)現(xiàn)對(duì)干涉儀測(cè)向系統(tǒng)的相位差校正。
圖4 基于多標(biāo)校站的系統(tǒng)誤差估計(jì)
3.1.2 相位差解模糊
干涉儀測(cè)向系統(tǒng)中,由于鑒相器的鑒相范圍只有2π,當(dāng)實(shí)際相位差超過2π 時(shí),鑒相器輸出的相位值會(huì)以2π 為周期翻轉(zhuǎn),出現(xiàn)多值模糊[13]。要獲得高的測(cè)角精度,2 天線間的距離要越長;要實(shí)現(xiàn)相位不超過2π,2天線間的距離就要足夠短,這與提高測(cè)向精度的條件相矛盾。通常,在實(shí)際工程應(yīng)用中大多采用多基線相位干涉儀陣列,利用短基線保證較大的測(cè)向范圍,長基線保證較高的測(cè)向精度。目前,多基線相位干涉儀解模糊技術(shù)的基本方法主要有:長短基線逐級(jí)解模糊法、余數(shù)定理法、虛擬基線法、無模糊長基線干涉儀法等,基本思想都是找出多基線相位干涉儀陣列中陣元基線長度的線性組合,使其滿足小于輻射信號(hào)半波長的條件[14]。
本文是基于圓陣干涉儀測(cè)向系統(tǒng)提出的多線程并行處理方法,相位差解模糊采用了均勻圓陣中長短基線多基線組合解模糊法。為得到均勻圓陣不同陣元數(shù)量情況下的相位差解模糊效果,選擇陣元數(shù)量分別為9、11、13、15、21、41 進(jìn)行了仿真。采用相同的長短基線多基線組合解模糊法,計(jì)算了二維的圓概率定位誤差值(CEP),仿真結(jié)果如圖5 所示。
圖5 不同陣元數(shù)量的圓陣干涉儀定位精度仿真
實(shí)際工程應(yīng)用中,由于單個(gè)節(jié)拍數(shù)據(jù)中脈沖密度很大,串行處理流程在處理時(shí)延上很難滿足應(yīng)用需求。因此,在單個(gè)節(jié)拍串行處理流程基礎(chǔ)上,通過Qt的線程池QRunnable 類定義干涉儀測(cè)向定位的多線程算法,實(shí)現(xiàn)對(duì)單個(gè)節(jié)拍數(shù)據(jù)的高效處理。算法流程如下:
定義:創(chuàng)建一個(gè)線程類Loc_ThreadPool,繼承于QRunnable;
重寫run 函數(shù),主要完成干涉儀測(cè)向定位,具體通過for 循環(huán)調(diào)用單脈沖相位差校正模塊、單脈沖相位差解模糊模塊以及單脈沖定位解算模塊,計(jì)算輸入所有脈沖列的平均位置信息。
輸入:脈沖描述字處理節(jié)拍數(shù)據(jù)流,線程池的最大線程數(shù)量為m;
Step1:基于脈沖描述字中的粗方位、俯仰信息進(jìn)行脈沖預(yù)分選;
Step2:基于頻率、脈寬和PRI 進(jìn)行脈沖分選;
Step3:對(duì)分選得到的N個(gè)輻射源參數(shù)進(jìn)行估計(jì);
Step4:將線程池的最大線程數(shù)量賦值m,給每個(gè)線程分配N/m個(gè)輻射源參與計(jì)算;
Step5:定 義QThreadPool 對(duì) 象,將Loc_Thread-Pool 傳遞給QThreadPool 的start 函數(shù),并用它生成N個(gè)子線程;
Step6:對(duì)第i個(gè)子線程,通過調(diào)用QThreadPool 的start 函數(shù),將第i個(gè)輻射源的脈沖列進(jìn)行干涉儀測(cè)向定位,并將輸出的輻射源平均位置信息與參數(shù)信息進(jìn)行融合;
輸出:單個(gè)節(jié)拍數(shù)據(jù)的全部輻射源參數(shù)和位置信息。
硬件環(huán)境:工作站,處理器為Intel(R) Xeon(R) W-2145 CPU@3.70 GHz,16 核;內(nèi)存為128 GB;操作系統(tǒng)為Windows 7。
仿真數(shù)據(jù):設(shè)置仿真的頻段范圍為5 000~6 000 MHz,均勻圓陣干涉儀的陣元數(shù)量為9 個(gè),仿真的脈沖序列具體內(nèi)容包括脈沖到達(dá)時(shí)間、脈沖頻率、脈沖寬度、脈沖幅度、方位角、俯仰角以及8 個(gè)相位差;仿真數(shù)據(jù)中加入多種體制雷達(dá)信號(hào)脈沖,共仿真700 s 的隨機(jī)雷達(dá)脈沖信號(hào),產(chǎn)生1 679 520 個(gè)脈沖,在脈沖時(shí)序中隨機(jī)加入干擾脈沖信號(hào),仿真信號(hào)時(shí)序完整度為85%。
將上述700 s 的隨機(jī)脈沖信號(hào),按照1 s 一個(gè)節(jié)拍數(shù)據(jù)的形式,形成數(shù)據(jù)流作為算法的輸入。考慮到硬件設(shè)備性能,處理的線程數(shù)量一次從1 個(gè)增加至5 個(gè),統(tǒng)計(jì)從數(shù)據(jù)輸入到結(jié)果輸出的全流程處理時(shí)效,從1 s節(jié)拍數(shù)據(jù)處理的平均時(shí)效和最大時(shí)效兩方面進(jìn)行比較,結(jié)果如圖6—7 所示。
圖6 單個(gè)節(jié)拍數(shù)據(jù)的平均處理時(shí)效對(duì)比
圖7 單個(gè)節(jié)拍數(shù)據(jù)的最大處理時(shí)效對(duì)比
上述測(cè)試結(jié)果中,單個(gè)節(jié)拍數(shù)據(jù)在多線程并行處理的情況下,時(shí)效提升明顯;4 個(gè)線程并行處理,相比于單線程處理,時(shí)延平均縮短了64.5%。另外,5 個(gè)線程并行處理,相比于4 個(gè)線程并行處理,時(shí)效并沒有提升,反而有所下降。仿真測(cè)試表明,基于多線程并行的干涉儀測(cè)向定位快速處理方法,能夠提升單個(gè)節(jié)拍數(shù)據(jù)的處理時(shí)效,但在實(shí)際工程應(yīng)用中,要綜合考慮硬件設(shè)備性能、資源調(diào)度策略等因素,選擇合理可行的線程數(shù)量。
本文提出的一種基于多線程并行的干涉儀測(cè)向定位快速處理方法,重點(diǎn)關(guān)注圓陣干涉儀測(cè)向系統(tǒng)的數(shù)據(jù)處理時(shí)效性的提升,通過Qt 的線程池QRunnable類定義干涉儀測(cè)向定位的多線程算法,將單個(gè)節(jié)拍數(shù)據(jù)的串行處理流程,通過多線程并行計(jì)算的方式實(shí)現(xiàn)高效計(jì)算,是一種具有可操作性的工程應(yīng)用方法。仿真測(cè)試驗(yàn)證了本文方法的有效性,且該方法在實(shí)際工程中具有較好的應(yīng)用價(jià)值?!?/p>