李 偉
(中國船舶重工集團(tuán)公司第七二三研究所,江蘇 揚(yáng)州 225101)
由于電子對抗以及各種實際應(yīng)用的需求越來越旺盛,雷達(dá)技術(shù)近些年獲得了極大發(fā)展,信號環(huán)境也越來越復(fù)雜,各方面因素導(dǎo)致雷達(dá)接收機(jī)所能接收到信號的質(zhì)量大大下降。傳統(tǒng)的建立在容差上的雷達(dá)信號分選受參數(shù)變化的影響大,所以需要更能適應(yīng)復(fù)雜信號環(huán)境的參數(shù)測量算法,但這往往是不容易的,而且在脈沖描述字(PDW)參數(shù)相近時傳統(tǒng)方法幾近失效,已經(jīng)無法適應(yīng)新環(huán)境[1-2]。
在實際進(jìn)行雷達(dá)信號分選時分析發(fā)現(xiàn),將盲源分離算法和聚類算法應(yīng)用于雷達(dá)信號分選時兩者有很強(qiáng)的互補(bǔ)特性,因此本文試圖將ICA算法的改進(jìn)方法Fast ICA[3]以及K-Means算法的改進(jìn)方法K-Means++[4]分別優(yōu)化后融合,設(shè)計一種高密度脈沖流環(huán)境下的未知雷達(dá)源實時分選方法,通過Amdahl加速比定律于CPU+GPU異構(gòu)系統(tǒng)將其加速實現(xiàn)。
Fast ICA算法一般有如圖1所示流程,主要分為數(shù)據(jù)預(yù)處理、循環(huán)迭代和后處理三部分。
圖1 FastI CA算法流程圖
預(yù)處理部分主要完成數(shù)據(jù)的去冗余化過程,主要包括數(shù)據(jù)中心化和白化。數(shù)據(jù)經(jīng)零均值化后可有效消除迭代時的zig-zag運(yùn)動,并且可以得到協(xié)方差矩陣為單位陣的效果,可以有效減少主處理迭代次數(shù),提升運(yùn)算效率。數(shù)據(jù)白化具體為去除數(shù)據(jù)中的相關(guān)性,達(dá)到數(shù)據(jù)降維的目的,一種常見的白化方法是對數(shù)據(jù)的協(xié)方差進(jìn)行奇異值分解(SVD),假設(shè)經(jīng)中心化后的矩陣為X,白化后的信號矩陣為C,C各分量之間不相關(guān)且有單位方差,其協(xié)方差矩陣滿足E{CCT}=I,則上述基于SVD的白化方法可描述為:
E{CCT}=FDFT
(1)
式中:F為E{CCT}的特征向量組成的正交陣;D為E{CCT}的對角特征值矩陣,則白化矩陣W=D-1/2FT,白化后的信號C可表示為C=D-1/2FTX。
白化操作能有效減少迭代部分的待估參數(shù),若X要估計n2個參數(shù),則C只需要估計n(n-1)/2個,減少了ICA一半的工作量。
主處理部分為根據(jù)設(shè)定條件循環(huán)迭代求取分離矩陣。由于目標(biāo)函數(shù)的選擇直接決定著ICA的速度和質(zhì)量,本文選擇的基于負(fù)熵的Fast ICA算法的目標(biāo)函數(shù)可表示為[3,5]:
J(B)={E{G(BTZ)}-E{G(V)}}2
(2)
式中:B為分離矩陣;E(·)為求均值運(yùn)算;V為與BTZ協(xié)方差相同且為零均值的高斯隨機(jī)向量;G(V)為非線性函數(shù),本文選取G(V)=tanh(V)。
本算法估計獨(dú)立成分是通過將式(3)所示目標(biāo)函數(shù)最大化來實現(xiàn),而G(B)的極大值在E{G(BTZ)}的極值點(diǎn)處取得。由拉格朗日條件,可在E{(BTZ)T}=‖B‖2=1的約束條件下,通過求解下式來獲取E{G(BTZ)}的最優(yōu)值:
E{Zg(BTZ)}+βB=0
(3)
據(jù)式(3)建立函數(shù):
F(B)=E{Zg(BTZ)}+βB
(4)
利用牛頓迭代法對式(4)進(jìn)行求解,得到近似牛頓迭代公式:
(5)
則由簡化后的Fast ICA迭代公式:
(6)
可得分離矩陣B。
后處理則是利用得到的分離矩陣B并結(jié)合觀測信號Xi求得近似的源信號Yi=BTXi。
以上Fast ICA算法可以概括為以下幾個步驟:
第1步:將硬盤中的觀測數(shù)據(jù)讀入內(nèi)存,CPU準(zhǔn)備處理。
第2步:數(shù)據(jù)預(yù)處理,將讀入的雷達(dá)脈沖數(shù)據(jù)做中心化和白化處理。
第3步:設(shè)定分離控制條件,對預(yù)處理后的數(shù)據(jù)進(jìn)行循環(huán)迭代運(yùn)算求解分離矩陣。
第4步:根據(jù)觀測信號及分離矩陣求解估計的未知雷達(dá)源信號。
第5步:將數(shù)據(jù)由內(nèi)存寫入硬盤。
K-Means++算法由K-Means算法改進(jìn)而來,只不過是初始聚類中心選取方法不同,先介紹K-Means算法的工作原理,具體如下:
第1步,想要把輸入樣本數(shù)據(jù)分為幾類,就將K設(shè)置為幾,然后在樣本數(shù)據(jù)中隨機(jī)選取K個初始點(diǎn)作為初始聚類中心;
第2步,求所有樣本點(diǎn)到這K個初始點(diǎn)的距離,離哪個初始點(diǎn)近就將其歸于哪一類;
第3步,對每一聚類好的簇重新計算聚類中心μi;
第4步:重復(fù)第2步和第3步直到μi的位置在給定誤差內(nèi)變化。
由于K-Means算法初始聚類中心選取時是隨機(jī)的,因此每次聚類都可能出現(xiàn)不同的聚類結(jié)果,而且容易陷入局部最優(yōu)聚類,而K-Means++就很好地解決了這個問題,選取初始點(diǎn)不都是隨機(jī)的,而是根據(jù)不同聚類之間分得“越開越好”的原則,具體步驟如下:
第1步,在數(shù)據(jù)集中隨機(jī)選取1個初始聚類中心c1;
第2步,計算數(shù)據(jù)集χ中每個樣本x與已有最近聚類中心的距離D(x),再接著計算每個樣本被選為下一聚類樣本的概率:
(7)
并利用輪盤法確定下一聚類中心;
第3步,重復(fù)第2步直到確定出K個聚類中心;
之后的步驟同K-Means算法的第2~4步。
K-Means算法及其改進(jìn)算法進(jìn)行聚類時的相似度衡量都是基于樣本之間的歐氏距離,樣本大值的屬性往往起著決定性作用,而樣本的其他屬性沒有起到應(yīng)有的作用,這可能導(dǎo)致大的聚類被分割,聚類結(jié)果錯誤。此問題在實際應(yīng)用中經(jīng)常遇到,可通過對所有維度上的信息都做歸一化處理,即將所有脈沖描述字的參數(shù)值大小都映射到[0,1]區(qū)間來解決,當(dāng)然還可根據(jù)某一參數(shù)的可信度適當(dāng)增加其權(quán)值,使得分選更加準(zhǔn)確,則得到K-Means++算法流程圖如圖2所示。
圖2 K-Means++算法流程圖
通過分析發(fā)現(xiàn),F(xiàn)ast ICA和K-means++2種算法能互補(bǔ)的特性主要有:
(1) Fast ICA能夠準(zhǔn)確提取出未知雷達(dá)源的個數(shù),為K-means++提供聚類所需的K值;
(2) Fast ICA能夠分離出噪聲進(jìn)而排除噪聲的影響;
(3) K-means++簡單,易于實現(xiàn),有很好的并行化實現(xiàn)基礎(chǔ),能有效解決Fast ICA分選速度慢的缺點(diǎn);
(4) K-means++基于脈沖描述字(PDW),可根據(jù)其中比較穩(wěn)定的脈沖到達(dá)角度(DOA)參數(shù)對Fast ICA要處理的雷達(dá)脈沖進(jìn)行分塊,降低雷達(dá)脈沖流密度。
基于以上的融合基礎(chǔ),下面給出融合思路:
第1步,考慮雷達(dá)輻射源的位置不會突變,利用PDW中的DOA參數(shù)對接收到的脈沖按每15°進(jìn)行空間劃分,分塊存儲,達(dá)到稀釋雷達(dá)脈沖流的目的,為接下來的數(shù)據(jù)處理做準(zhǔn)備。
第2步,從上一步按到達(dá)角度劃分的數(shù)據(jù)塊中隨機(jī)抽取部分雷達(dá)脈沖信號,利用Fast ICA算法對其進(jìn)行獨(dú)立成分分析,分離出雷達(dá)信號和隨機(jī)噪聲以及雷達(dá)信號種類K。
第3步,根據(jù)上一步得到的雷達(dá)信號種類K,基于WPD={σPW,AP,fR}三參數(shù)對雷達(dá)脈沖進(jìn)行快速聚類分選。
第4步,得到雷達(dá)信號分選結(jié)果,將其存儲回硬盤以供后續(xù)處理。
進(jìn)一步分析融合算法的每一步驟,根據(jù)數(shù)據(jù)量以及運(yùn)算模式(是否涉及大量重復(fù)的低耦合運(yùn)算)確定是否需要并行化實現(xiàn)。且盡量在GPU中做并行度高的數(shù)據(jù)計算工作,在CPU中做一些條件判斷的工作。融合后的算法流程圖如圖3,F(xiàn)ast ICA中的數(shù)據(jù)中心化以及白化都可轉(zhuǎn)化為簡單矩陣運(yùn)算,有成熟的于GPU中運(yùn)行的并行矩陣運(yùn)算API函數(shù)可供調(diào)用;K-Means++中的核心聚類迭代部分是一種非常理想的無耦合關(guān)系的計算模型,也于GPU中展開運(yùn)算。
圖3 并行的基于ICA的K-means++算法流程圖
用MATLAB仿真了線性調(diào)頻雷達(dá)信號、二相編碼雷達(dá)信號、方波雷達(dá)信號以及隨機(jī)噪聲信號,然后利用融合算法對其進(jìn)行分選,仿真使用的雷達(dá)信號參數(shù)如表1所示:
表1 雷達(dá)輻射源參數(shù)
表1中2FSK體制雷達(dá)的編碼為“11001”。按照本文提出的方法對表1中的信號進(jìn)行預(yù)處理,原始信號、混合、解混的仿真結(jié)果如圖4所示。
圖4 融合算法Fast ICA階段信號處理仿真結(jié)果
由圖4可以看出,本文基于CPU+GPU的并行融合算法在Fast ICA預(yù)處理階段成功分選出了雷達(dá)輻射源信號以及噪聲信號,可以直觀地得出有3部雷達(dá)輻射源以及1個噪聲干擾,利用自相關(guān)累加的方法對分選出的信號進(jìn)行處理,剔除噪聲信號,然后將此次分選結(jié)果交由并行K-Means++主處理部分,對脈沖描述字信息進(jìn)行快速實時聚類。在進(jìn)行并行K-Means++主處理時,由于PA參數(shù)相差不大,因此采用WPD={σPW,fR,tPRI}三參數(shù)進(jìn)行聚類,聚類個數(shù)K已由Fast ICA預(yù)處理部分得出,為3,最終可得其聚類結(jié)果為:
WPDcenter=[σPW,fR,tPRI]=
(8)
由式(9)同表1比較可得,該融合算法成功分選出了3部雷達(dá)輻射源信號,由于2FSK信號在80 MHz和60 MHz上跳變,此融合分選算法得出了其中間頻率為70 MHz。
以上實驗證明本文提出的基于Fast ICA和K-means++的融合算法對未知雷達(dá)信號具有較好的分選效果。
本文分別對Fast ICA和K-means++算法進(jìn)行介紹,結(jié)合2種算法的特點(diǎn)提出了基于Fast ICA和K-means++的融合算法用于雷達(dá)脈沖聚類。該方法利用Fast ICA對接收到的雷達(dá)脈沖數(shù)字信號進(jìn)行預(yù)分選,預(yù)分選步驟能有效分選出混疊信號中的獨(dú)立成分,確定出獨(dú)立成分的個數(shù),去除噪聲成分,保證了K-means++算法對提取的脈沖描述字信息分選的正確性。該方法在軍事電子對抗領(lǐng)域具有一定的應(yīng)用前景。