(四川大學(xué) 電子信息學(xué)院,成都 610065)
廣播式自動(dòng)相關(guān)監(jiān)視(Automatic Dependent Surveillance-Broadcast,ADS-B)是一種安裝在飛機(jī)上的新型監(jiān)視系統(tǒng),它利用衛(wèi)星導(dǎo)航技術(shù)并采用全向廣播的方式定期向空中交通管制中心和附近的其他飛機(jī)發(fā)送其飛行器編號(hào)、空中位置、運(yùn)行速度等信息[1]。這種新型監(jiān)視技術(shù)的應(yīng)用能有效提升管制員和飛行員對(duì)飛機(jī)態(tài)勢(shì)的感知能力,擴(kuò)大監(jiān)視覆蓋范圍,提高空中交通安全水平、空域容量與運(yùn)行效率。與傳統(tǒng)的雷達(dá)監(jiān)視技術(shù)相比,ADS-B具有成本低、精度誤差小、監(jiān)視能力強(qiáng)等優(yōu)點(diǎn),因此,它在未來(lái)民航監(jiān)視系統(tǒng)中發(fā)揮著越來(lái)越重要的作用,已成為國(guó)際民航組織(International Civil Aviation Organization,ICAO)未來(lái)空中導(dǎo)航系統(tǒng)項(xiàng)目的重要組成部分[2]。
近年來(lái),隨著民航業(yè)的不斷發(fā)展,飛機(jī)數(shù)量也在日益增加,這使得接收到的ADS-B信號(hào)可能存在多條報(bào)文交織的情況。在ICAO制定的文件標(biāo)準(zhǔn)中,對(duì)交織報(bào)文的處理方法如下:當(dāng)前導(dǎo)中出現(xiàn)交織時(shí),對(duì)信號(hào)強(qiáng)度最大的報(bào)文進(jìn)行解碼,并放棄其他報(bào)文;當(dāng)數(shù)據(jù)塊中出現(xiàn)交織時(shí),對(duì)先到的報(bào)文進(jìn)行解碼,并放棄其他報(bào)文[3]。若按此標(biāo)準(zhǔn)進(jìn)行信號(hào)處理,則任何情況下都只有一條報(bào)文能夠正確解碼,這將會(huì)大大降低系統(tǒng)的監(jiān)視容量。因此,如何有效分離出ADS-B交織信號(hào)中的各條報(bào)文,成為當(dāng)前急需解決的一個(gè)問(wèn)題。
目前,較為主流的交織信號(hào)處理方法是,利用陣列天線接收信號(hào),再采用陣列信號(hào)處理的方法從空域上將其進(jìn)行分離。例如,文獻(xiàn)[4]使用均勻線性陣列天線接收二次雷達(dá)(Secondary Surveillance radar,SSR)信號(hào),并估算出交織信號(hào)個(gè)數(shù)及其波達(dá)方向(Direction of Arrival,DOA),再利用最大似然估計(jì)分離交織信號(hào)。文獻(xiàn)[5]采用陣列天線接收SSR信號(hào)后,利用信號(hào)源的時(shí)間稀疏性,提出了一種基于投影技術(shù)的交織信號(hào)分離算法。文獻(xiàn)[6]則根據(jù)S模式信號(hào)的編碼特性,采用曼徹斯特解碼算法對(duì)交織信號(hào)進(jìn)行分離。此外,針對(duì)陣列信號(hào),還有快速獨(dú)立主成分分析(Fast Independent Component Analysis,F(xiàn)ast ICA)[7]、MUSIC[8]、自適應(yīng)波束成形[9]等分離算法。
但與陣列天線接收機(jī)相比,單天線ADS-B接收機(jī)的使用更加普遍,且具有成本低、易維護(hù)等優(yōu)點(diǎn)。因此,如何分離單天線ADS-B交織信號(hào)受到了眾多研究者的關(guān)注。文獻(xiàn)[10]提出了一種基于累加分類的ADS-B二重交織信號(hào)分離方法,在得到兩個(gè)信號(hào)的相對(duì)時(shí)延后對(duì)信號(hào)數(shù)據(jù)進(jìn)行累加并利用K-means方法進(jìn)行分類,最終得到比特位判決以實(shí)現(xiàn)交織信號(hào)分離,但該方法需要保證兩個(gè)信號(hào)存在著一定的功率差。文獻(xiàn)[11]提出利用單通道ICA算法進(jìn)行信號(hào)分離,但該方法要求混合信號(hào)相互獨(dú)立且頻譜不相交,故不適用于ADS-B交織信號(hào)。文獻(xiàn)[12]通過(guò)重構(gòu)應(yīng)答信號(hào)矩陣,將單天線問(wèn)題轉(zhuǎn)化為多天線問(wèn)題,利用投影算法(Project Algorithm,PA)來(lái)分離信號(hào),但該方法對(duì)信號(hào)的時(shí)延和信噪比要求較高。
針對(duì)現(xiàn)有方法存在的不足,本文提出了一種PA算法與卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)相結(jié)合的分離方法,降低了對(duì)交織信號(hào)信噪比以及功率差的要求。
一幀完整的ADS-B應(yīng)答信號(hào)如圖1所示,前8 μs為信號(hào)的前導(dǎo),由位置分別固定在0.0 μs、1.0 μs、3.5 μs以及4.5 μs的四個(gè)脈沖組成,每個(gè)脈沖的持續(xù)時(shí)間為0.5±0.05 μs;后112 μs為信號(hào)的數(shù)據(jù)塊,采用脈沖位置調(diào)制(Pulse Position Modulation,PPM)編碼,共包含了112 b的數(shù)據(jù)[3]。每比特?cái)?shù)據(jù)所占時(shí)間為1 μs,包含了兩個(gè)chip,當(dāng)脈沖出現(xiàn)在前一個(gè)chip時(shí)代表數(shù)據(jù)“1”,出現(xiàn)在后一個(gè)chip時(shí)代表數(shù)據(jù)“0”,其中脈沖的持續(xù)時(shí)間為0.5±0.05 μs。
圖1 ADS-B應(yīng)答信號(hào)結(jié)構(gòu)圖
由此,基帶ADS-B信號(hào)可表示為
(1)
式中:c[k]表示每一個(gè)chip的值,為“0”或“1”;p(t)表示脈寬為T=0.5 μs的矩形脈沖。為便于信號(hào)在信道中的傳播,將其調(diào)制到1 090 MHz,允許存在±1 MHz的偏差。由于偏差的存在,接收機(jī)將調(diào)頻信號(hào)下變頻到基帶后仍會(huì)有頻差。
采樣后,接收到的單天線ADS-B二重交織信號(hào)如圖2所示,可表示為
x=s1+s2+n。
(2)
圖2 ADS-B二重交織信號(hào)
源信號(hào)s1、s2的每一個(gè)采樣點(diǎn)s1m、s2m又可以表示為
(3)
(4)
式中:P1、f1和C1[m]分別表示前一個(gè)信號(hào)的功率、頻率偏差以及采樣點(diǎn)取值,P2、f2和C2[m]則分別表示后一個(gè)信號(hào)的功率、頻率偏差和采樣點(diǎn)取值,Ts表示采樣周期。
當(dāng)采樣率為10 MHz即1 μs包含10個(gè)采樣點(diǎn)時(shí),每次選取連續(xù)的d=5個(gè)點(diǎn)[12],將信號(hào)矢量x=[x1x2…xM]重構(gòu)為d行l(wèi)=M/d列的虛擬陣列矩陣。d的值相當(dāng)于模擬天線的個(gè)數(shù),而在此處選擇d=5的原因是應(yīng)答信號(hào)中一個(gè)chip剛好包含5個(gè)采樣點(diǎn),如果選擇其他值則每列包含的數(shù)據(jù)沒(méi)有規(guī)律性,不利于信號(hào)的分離??蓪⒅貥?gòu)后的虛擬陣列信號(hào)矩陣表示為
(5)
則式(2)可重新表示為
X=S1+S2+N。
(6)
式中:S1、S2和N的維數(shù)與X相同,都為d×l的矩陣。
重構(gòu)后的源信號(hào)S1、S2可看作
S1=A1V1,
(7)
S2=A2V2。
(8)
式中:A1、A2為兩信號(hào)的虛擬導(dǎo)向矢量,維數(shù)為d×r1和d×r2,r1、r2為矩陣S1、S2的秩,通常情況下為1;V1、V2維數(shù)為r1×l和r2×l。
將式(7)、式(8)代入式(6)可得
X=A1V1+A2V2+N=
AV+N。
(9)
式中:導(dǎo)向矩陣A的維數(shù)為d×(r1+r2),矩陣V的維數(shù)為(r1+r2)×l。
先利用一個(gè)固定大小的滑動(dòng)窗口對(duì)虛擬陣列信號(hào)X進(jìn)行分隔,每次得到一個(gè)包含4 μs即40個(gè)采樣點(diǎn)的子矩陣Xsub,其矩陣維數(shù)為d×8;再對(duì)每個(gè)子矩陣Xsub進(jìn)行奇異值分解,可表示為
Xsub=PΣQT。
(10)
式中:P=[p1,p2,…,pd]為左奇異值矩陣,其矩陣維數(shù)為d×d,且p1到pd為子矩陣Xsub的特征向量;Q為右奇異值矩陣,其矩陣維數(shù)為8×8,且P和Q均為單位正交矩陣,符號(hào)“T”表示對(duì)矩陣求轉(zhuǎn)置;Σ是維數(shù)為d×8的對(duì)角矩陣,可將其表示為
(11)
式中:σ1~σd為子矩陣Xsub的特征值,并按數(shù)值從大到小降序排列。
根據(jù)以上方法,可以求出每個(gè)滑動(dòng)窗口中子矩陣Xsub的特征值,組合而成的虛擬陣列信號(hào)X的特征值變化曲線如圖3所示。因第五個(gè)特征值σ5的數(shù)值很小未在曲線圖中畫(huà)出。
圖3 特征值變化曲線
根據(jù)特征值大小的變化可以確定四個(gè)轉(zhuǎn)折時(shí)間點(diǎn)t1、t2、t3以及t4,其中t1~t2時(shí)刻只包含前一個(gè)信號(hào)X(1),t3~t4時(shí)刻只包含后一個(gè)信號(hào)X(2)。為了能區(qū)分出t1和t2時(shí)刻,要求后一個(gè)信號(hào)相對(duì)前一個(gè)信號(hào)的時(shí)延要大于0.5 μs。由此,可將兩個(gè)時(shí)間段的信號(hào)分別表示為
X(1)=AV(1)+N(1),
(12)
X(2)=AV(2)+N(2)。
(13)
又因?yàn)閂(1)僅包含前一個(gè)信號(hào)V1的一部分,V2此時(shí)為零矩陣;V(2)僅包含后一個(gè)信號(hào)V2的一部分,V1此時(shí)為零矩陣,故可將式(12)、式(13)分別寫(xiě)作
X(1)=A1V1(1)+N(1),
(14)
X(2)=A2V2(2)+N(2)。
(15)
對(duì)X(1)、X(2)進(jìn)行奇異值分解,選取前r1、r2個(gè)特征值所對(duì)應(yīng)的特征向量作為虛擬導(dǎo)向矢量A1、A2,進(jìn)而得到導(dǎo)向矩陣A=[A1|A2]。
根據(jù)導(dǎo)向矩陣A,可得到能恢復(fù)重構(gòu)源信號(hào)的加權(quán)矩陣W,即
W=A?=[AHA]-1AH
。
(16)
式中:符號(hào)“?”表示矩陣的偽逆 。
對(duì)源信號(hào)S1、S2來(lái)說(shuō),其加權(quán)矩陣分別為
W1=[A10d×r2]W,
(17)
W2=[0d×r1A2]W。
(18)
由加權(quán)矩陣W1與接收到的交織信號(hào)X,可得到分離后的源信號(hào)S1的估計(jì)值如下:
W1AV+W1N=
[A10d×r2]WA?V+W1N=
[A10d×r2]AAV+W1N=
A1V1+W1N=
S1+W1N。
(19)
同理,可得到分離后的源信號(hào)S2的估計(jì)值
(20)
對(duì)于圖2所示的ADS-B交織信號(hào),經(jīng)過(guò)以上算法分離后的前后兩信號(hào)分別如圖4和圖5所示。
圖4 分離后的前一個(gè)信號(hào)
圖5 分離后的后一個(gè)信號(hào)
從圖4和圖5中可以看出,分離出來(lái)的信號(hào)脈沖中含有大量毛刺,這對(duì)后續(xù)解碼過(guò)程中的比特判決以及置信度判定影響較大,可能導(dǎo)致解碼失敗。因此,需要對(duì)分離出來(lái)的信號(hào)進(jìn)行波形修正,以提高解碼成功率。
卷積神經(jīng)網(wǎng)絡(luò)主要用于圖像處理領(lǐng)域,如圖像分類[13]、圖像樣式轉(zhuǎn)換[14]以及人臉識(shí)別[15]等,較少應(yīng)用在通信信號(hào)的處理中。但由于灰度圖片的本質(zhì)是一個(gè)矩陣,而時(shí)域傳輸信號(hào)也能看作一個(gè)矢量或矩陣,故將CNN應(yīng)用于對(duì)ADS-B信號(hào)的處理是可行的。
針對(duì)采樣率為10 MHz的信號(hào),首先搭建一個(gè)如圖6所示的CNN編解碼器模型。該模型可以分為編碼器以及解碼器兩大部分,其中,編碼器包含一個(gè)輸入層和5個(gè)隱藏層,解碼器包含5個(gè)隱藏層和一個(gè)輸出層。經(jīng)過(guò)編碼器的特征提取,將輸入信號(hào)壓縮成更短的只包含重要特征的序列,再經(jīng)過(guò)解碼器的合理插值,使之?dāng)U增為與輸入信號(hào)長(zhǎng)度一致的序列后輸出。要使輸出的重建信號(hào)成為期望的波形憑證的信號(hào),就要先對(duì)編解碼器進(jìn)行訓(xùn)練,使其中的可變參數(shù)都接近最佳值。
圖6 CNN編解碼器結(jié)構(gòu)圖
訓(xùn)練編解碼器需要大量輸入樣本及其對(duì)應(yīng)標(biāo)簽,即需要大量的帶噪ADS-B應(yīng)答信號(hào)及其對(duì)應(yīng)的純凈信號(hào)。但不存在完全不含噪聲的ADS-B應(yīng)答信號(hào),且一個(gè)完整信號(hào)包含的采樣點(diǎn)數(shù)較多,直接作為輸入會(huì)使得模型中參數(shù)過(guò)多,增加訓(xùn)練的復(fù)雜度。因此,采用大量如圖7所示的含有噪聲的隨機(jī)方波脈沖作為輸入信號(hào),其信噪比為0 dB。相應(yīng)地,圖8所示的對(duì)應(yīng)純凈信號(hào)作為標(biāo)簽,即期望信號(hào)。
圖7 輸入信號(hào)
圖8 標(biāo)簽信號(hào)
可以將CNN編解碼器的訓(xùn)練分為兩個(gè)過(guò)程,即前向傳播過(guò)程以及反向傳播過(guò)程。其中,前向傳播過(guò)程用于計(jì)算每一層的輸出并將其保存下來(lái),反向傳播過(guò)程則用于更新每一層的權(quán)值參數(shù)。
對(duì)于前向傳播過(guò)程,每一個(gè)隱藏層的輸出可以表示為
al=σ(zl)=σ(al-1*Wl+bl),l=2,3,…,L。
(21)
式中:al-1表示上一層的輸出即當(dāng)前層的輸入,Wl表示上一層與當(dāng)前層之間的卷積核的參數(shù),bl表示當(dāng)前層的偏置值,zl表示當(dāng)前層的線性卷積輸出,al表示當(dāng)前層經(jīng)過(guò)激活函數(shù)處理后的輸出,L表示輸出層,符號(hào)“*”表示卷積處理。值得注意的是,為了便于后續(xù)反向傳播過(guò)程的運(yùn)算,需要將每一層的輸出al(l=2,3,…,L)保存下來(lái)。
將最后的輸出序列aL與給定的標(biāo)簽即期望序列y進(jìn)行比較,可以得到樣本誤差。為了定量地分析樣本誤差的大小,將損失函數(shù)也即誤差函數(shù)定義為
(22)
為了使總的損失函數(shù)值J(W,b)達(dá)到最小,需要不斷地更新參數(shù)W和b以找到其最佳值,即訓(xùn)練CNN編解碼器時(shí)的反向傳播過(guò)程。若要加快損失函數(shù)J(W,b)的收斂速度,即用更少的迭代次數(shù)找到其最小值,就要保證參數(shù)是沿著損失函數(shù)J(W,b)梯度的反方向即函數(shù)值減小最快的方向更新的。
各卷積層中參數(shù)W和b的更新遞推式為
(23)
(24)
式中:k表示當(dāng)前的迭代次數(shù);m表示單次送入CNN 編解碼器進(jìn)行訓(xùn)練的樣本個(gè)數(shù);α表示學(xué)習(xí)速率;l=2,3,…,L;δl為各卷積層的靈敏度,定義為
(25)
至此整個(gè)訓(xùn)練過(guò)程結(jié)束,即完成了CNN 編解碼器的前向傳播過(guò)程以及反向傳播過(guò)程。
訓(xùn)練完成后,將圖4和圖5所示的分離后的信號(hào)都分割成與輸入樣本采樣點(diǎn)相同的信號(hào)片段,依次送入編解碼器進(jìn)行幅值修正。修正完成后,再將輸出的信號(hào)片段順次拼接成完整信號(hào),其波形如圖9和圖10所示。對(duì)修正后的信號(hào)進(jìn)行解碼,可得到通過(guò)循環(huán)冗余校驗(yàn)(Cyclic Redundancy Check,CRC)的112 b的十六進(jìn)制分別為“8D 78 16 10 99 14 5F 9D 10 04 09 36 B1 8A”和“8D 78 10 1A 20 30 B1 79 DB 7E 60 E6 B6 30”。
圖9 CNN修正后的前一個(gè)信號(hào)
圖10 CNN修正后的后一個(gè)信號(hào)
綜合第2、3節(jié)所述內(nèi)容,可得到改進(jìn)單天線PA分離算法的步驟如下:
Step1 將單天線ADS-B二重交織信號(hào)x重構(gòu)為虛擬陣列信號(hào)X。
Step2 利用滑動(dòng)窗口選取信號(hào)子矩陣Xsub進(jìn)行奇異值分解,以確定兩個(gè)源信號(hào)的起始時(shí)刻t1、t2以及終止時(shí)刻t3、t4。
Step3 根據(jù)四個(gè)時(shí)刻選出僅包含一個(gè)信號(hào)的部分X(1)、X(2),對(duì)其進(jìn)行奇異值分解得到虛擬導(dǎo)向矢量A1、A2,組合成導(dǎo)向矩陣A。
Step4 根據(jù)導(dǎo)向矩陣A的偽逆得到兩個(gè)源信號(hào)的加權(quán)矩陣W1、W2。
Step6 將得到的估計(jì)值還原成單天線信號(hào)后,再利用CNN模型對(duì)其進(jìn)行幅值修正。
圖2所示的仿真ADS-B二重交織信號(hào)中,前后兩交疊信號(hào)的頻率差為0,信噪比(Signal-to-Noise Ratio,SNR)為12 dB,且后一個(gè)弱信號(hào)相比于前一個(gè)強(qiáng)信號(hào)衰減了3 dB。對(duì)該樣例,經(jīng)過(guò)PA算法以及CNN編解碼器的處理后,可以正確解碼并提取出報(bào)文所包含的信息。
因接收機(jī)不能做到理想的相干解調(diào),所以將接收信號(hào)下變頻到基帶后,前后兩交疊源信號(hào)會(huì)存在一定的頻率差。頻率差值的不同對(duì)分離后信號(hào)解碼率的影響也不同。生成了幾種不同頻率差下信噪比為12 dB、強(qiáng)度差為3 dB的仿真單天線ADS-B二重交織信號(hào)各10 000個(gè)。觀察分離后弱信號(hào)的解碼成功率變化,找到頻率差對(duì)其的影響規(guī)律,具體的解碼成功率見(jiàn)表1。
表1 不同頻率差下弱信號(hào)的解碼成功率
由表1可看出,頻率差越大越容易將交織信號(hào)分離出??紤]到實(shí)際信號(hào)中前后兩交疊信號(hào)的頻率差不會(huì)太大,故后續(xù)的仿真實(shí)驗(yàn)樣本頻率差都取為0.01 MHz。
為了進(jìn)一步驗(yàn)證該改進(jìn)PA算法的可行性,隨機(jī)生成了信噪比從7~16 dB、強(qiáng)度差為3 dB的仿真ADS-B二重交織信號(hào)各10 000個(gè)進(jìn)行測(cè)試。比較不同信噪比下CNN編解碼器處理前后分離弱信號(hào)解碼成功率的變化,以此來(lái)評(píng)價(jià)改進(jìn)算法的性能。測(cè)試結(jié)果如表2所示。
表2 不同信噪比下弱信號(hào)解碼成功率對(duì)比
除此之外,還選擇了信噪比為12 dB、強(qiáng)度差從0~6 dB的仿真ADS-B二重交織信號(hào)各10 000個(gè)進(jìn)行測(cè)試,觀察不同強(qiáng)度差下CNN編解碼器處理前后分離弱信號(hào)解碼成功率的變化來(lái)驗(yàn)證改進(jìn)算法的性能。具體的解碼成功率見(jiàn)表3。
表3 不同衰減強(qiáng)度下弱信號(hào)的解碼成功率
從表2和表3中的解碼率的變化能看出,經(jīng)過(guò)CNN編解碼器處理后分離弱信號(hào)的解碼成功率都得到了顯著的提升。因此,結(jié)合CNN編解碼器后的PA分離算法對(duì)不同信噪比、強(qiáng)度差的ADS-B二重交織信號(hào)都具有可行性。
ADS-B監(jiān)視系統(tǒng)性能的好壞取決于接收端信號(hào)的解碼成功率。為了實(shí)現(xiàn)單天線ADS-B二重交織信號(hào)的分離,以提高其解碼成功率,提出了一種PA算法與CNN編解碼器相結(jié)合的分離方法:首先將單天線ADS-B二重交織信號(hào)重構(gòu)為虛擬陣列信號(hào),接著利用PA算法對(duì)其進(jìn)行分離,最后將分離信號(hào)通過(guò)訓(xùn)練好的CNN編解碼器進(jìn)行幅值修正。為了評(píng)價(jià)該方法的性能,將分離出的弱信號(hào)進(jìn)行解碼,并以通過(guò)CRC校驗(yàn)為解碼成功的標(biāo)準(zhǔn)。實(shí)驗(yàn)結(jié)果表明,經(jīng)過(guò)該方法處理后的分離信號(hào),其解碼成功率得到了顯著的提升,即該方法具有可行性。