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