吳思陽,高 勇
(四川大學 電子信息學院,四川 成都 610065)
隨著衛(wèi)星通信技術的不斷發(fā)展和用戶需求的不斷增加,帶寬資源越來越稀缺,如何提高系統(tǒng)容量是衛(wèi)星通信系統(tǒng)進一步拓展服務的迫切問題。
目前主流的混合信號盲分離方案包括粒子濾波(Particle Filter,PF)[1]與逐幸存路徑處理(Survivor Processing,PSP)[2]等算法,這些算法雖然具有優(yōu)越的性能,但由于復雜度較高,應用受到了限制。近年來有許多文獻對其進行了研究與改進。文獻[3]在粒子濾波法中采用部分采樣法進行搜索,利用2個子區(qū)間的增量權值完成粒子抽樣和權重更新,從而降低復雜度。文獻[4]針對合作接收的高階調制PCMA信號,提出一種基于判決反饋逐幸存路徑處理的解調算法,在算法性能和復雜性之間達成折中。文獻[5]針對非合作接收不同符號速率PCMA混合信號,提出一種基于雙網格逐幸存路徑處理的分離算法。文獻[6]提出基于深度學習的盲分離算法,但其神經網絡僅針對于已知信道或其變化規(guī)律的分離場景。
近年來,深度學習在計算機視覺、語音識別、自然語言處理等方面表現出了優(yōu)勢。在物理層通信的復雜場景中,如信道解碼[7]、調制識別[8]、信號檢測[9]和端到端通信系統(tǒng)[10]等,深度學習也顯示出了巨大的前景。循環(huán)神經網絡適合于學習序列,由于可以充分利用符號之間的相關性,在單信號檢測中取得了優(yōu)異的性能。
PSP算法是一種基于最大似然序列估計的算法,需要對可能的符號進行遍歷搜索,其中調制階數和信道估計長度導致時間復雜度呈指數型增長,因此在實際情況下應用難度較大。本文提出了一種結合深度循環(huán)神經網絡的混合信號單通道盲分離方案,該算法的計算復雜度不會隨著調制階數和信道長度呈指數型增長,因此相對于傳統(tǒng)方法,該方法應用場景更廣泛。
混合信號單通道盲分離的目標是從接收到的采樣點中恢復出信號混合前的2路符號序列??紤]復調制MPSK信號,假設在考慮的時間范圍內,接收信號的幅度、頻率、時延等均不隨時間發(fā)生變化,復基帶模型如下:
y(t)=h1ej(Δω1t+θ1)x1(t)+h2ej(Δω2t+θ2)x2(t)+v(t),
(1)
式中,hi表示2個調制信號的幅度;Δωi,θi,v(t)分別代表載波頻率偏移、初始相位和加性白高斯噪聲。源信號xi(t)定義為:
(2)

本文主要以分離2路BPSK信號為例,設計并測試神經網絡。
為了充分利用符號之間的信息,本文基于雙向門控循環(huán)單元(Bi-directional Gated Recurrent Unit,Bi-GRU)結構設計分離網絡。雙向循環(huán)神經網絡可以通過隱藏狀態(tài)在單元間傳遞信息以實現時間上的前后相關,利用非因果的結構估計符號從而達到最優(yōu)性能。
門控循環(huán)單元是循環(huán)神經網絡中的一種門控機制,其結構如圖1所示。GRU具有較少的參數,從而降低了過擬合的風險。LSTM的參數數量是原生RNN的4倍。GRU僅使用2個門控開關,其結果接近LSTM,而其參數數量是原生RNN的3倍。

圖1 GRU結構
,
(3)

在本文設計的Bi-GRU網絡中,其輸入數據的維度為[2,K+N],其中K為2路傳輸信道參數的長度之和,N為傳輸的時間序列信號的長度。輸入數據的構成為[C1,...,CK,Y1,...,YN],其中C1,...,CK為2個接收信道的沖激響應參數的拼接,輸入數據包含了實部和虛部。Bi-GRU神經網絡分別在時間維以順序和逆序(即前向和后向)依次處理輸入序列,并將每個時間步的GRU的輸出拼接成為最終的輸出層。網絡中的每個時間步的輸出節(jié)點,都包含了輸入序列中當前時刻完整的過去和未來的上下段信息。
圖2展示了輸出層的結構,數據先經過輸出維度為4的線性層,其激活函數為LeakyReLU(negative slope=0.01):

圖2 輸出層結構
LeakyReLU(x)=max(0,x)+0.01×min(0,x)。
(4)
經過線性層后,再經過LogSoftmax層,這樣一是為了解決數值溢出的問題,二是方便對交叉熵損失(CrossEntropyLoss)的計算。網絡每次的輸出則代表了4種情況的概率的對數,其中4種情況分別為序列A此時刻的值為0、序列B此時刻的值為0;序列A此時刻的值為1、序列B此時刻的值為0;序列A此時刻的值為0、序列B此時刻的值為1;序列A此時刻的值為1、序列B此時刻的值為1。概率的對數值最大的情況則被判定為預測結果。
一般情況下,混合信號的長度不確定而且通常會很長,因此要對輸入序列做一定處理才能將其輸入至神經網絡中。當輸入序列遠大于網絡輸入序列長度時,如果將序列直接截斷成等長的數據塊,由于部分信息不在單個數據塊中,對于輸入序列開頭和結尾的符號將會出現大量的預測錯誤。如圖3和圖4所示,為了解決這個問題,在截斷輸入序列時,前后各截取5個數據值作為網絡的輸入,輸出值則取中間100個值為有效值,這樣對于每個時間點的序列值的預測都有來自前后時間段的信息,從而提高神經網絡的整體性能。

圖3 截斷并分步輸入數據

圖4 截斷輸入示意
網絡中損失函數采用交叉熵損失,定義為:
-x[class]+ln(∑jexp(x[j])),
(5)
式中,class代表的是每一種分類的情況。
網絡中的優(yōu)化算法采用自適應矩估計法(Adaptive Moment Estimation),簡稱Adam優(yōu)化算法。Adam優(yōu)化算法可以自適應調整學習率,能夠使模型更快的收斂且易于跳出局部極小值。此外,Bi-GRU的隱藏權重參數采用正交初始化,有助于網絡的收斂和避免梯度爆炸和消失。
在網絡中使用的隨時間反向傳播(Back-Propagation Through Time,BPTT)算法是一種常用的訓練RNN的方法,其本質還是BP算法,只不過RNN處理的是時間序列數據,所以要基于時間反向傳播,因此稱為隨時間反向傳播。BPTT的中心思想和BP算法相同,沿著需要優(yōu)化的參數的負梯度方向不斷尋找更優(yōu)的點直至收斂。BPTT將循環(huán)神經網絡按時間步展開,從而得到模型變量和參數之間的依賴關系,并根據鏈式法則來進行反向傳播計算并存儲梯度信息。
訓練神經網絡時采用的訓練集為軟件生成的仿真數據,其每路接收信道的沖激響應參數長度為4,單個樣本的時間序列信號長度為110,訓練樣本總數2 000 000。神經網絡的層數為3,隱藏層節(jié)點個數128,單次訓練所選取的樣本數(Batch Size)為1 900,訓練epoch數40次,按照8∶2生成訓練集和測試集。
實驗環(huán)境如下:顯卡為 NVIDIA RTX 2080Ti,處理器為Intel(R)Core(TM)i9-9900k CPU@3.6 GHz,內存容量為32 GB,軟件環(huán)境為神經網絡基于pytorch1.7.0框架搭建,開發(fā)語言為Python3.8。
為了驗證該網絡對混合信號盲分離的性能,以2路信號的誤碼率均值作為對不同算法的性能指標。在仿真實驗中,兩BPSK調制信號混合,采用根號升余弦成型,滾降系數為0.35,成型波形持續(xù)6個符號周期,接收端進行相應的匹配濾波。
將預訓練完成的神經網絡和PSP算法分別輸入加有不同信噪比的高斯白噪聲的測試數據進行測試,其性能曲線測試結果如圖5和表1所示??梢钥闯?,在同等條件下使用Bi-GRU神經網絡的誤碼率要低于PSP算法。

表1 2種算法的誤碼率

圖5 2種算法的性能曲線
本次實驗使用2臺NI USRP-2930 軟件無線電平臺發(fā)射數據,一臺NI USRP-2950 軟件無線電平臺接收數據,發(fā)射機發(fā)射隨機比特流內容的BPSK調制信號,接收機接收2個發(fā)射機發(fā)射后的混合信號。數據的碼速率為500 Kb/s,采樣率為4 MHz,成型濾波器(根余弦濾波器)的系數為0.35。采集5條長度為10 000的IQ數據作為測試集,信道信息使用PSP算法中的信道估計部分獲得,預截斷后輸入上文中已經訓練好的神經網絡測試,得到的誤碼率如表2所示。

表2 實測誤碼率
由于實際信道存在不穩(wěn)定性,對實測數據分離的誤碼率也會隨之波動。因此在信道相對穩(wěn)定的情況下,本文中設計的Bi-GRU神經網絡可以用于分離單通道混合信號。
本文以分離2個BPSK調制的混合信號以及2個QPSK調制混合的信號所需的浮點乘加運算(Floating Point Operations,FLOPs)的次數為指標比較Bi-GRU網絡和PSP算法的計算復雜度。
對于神經網絡而言,每一層的參數數量需要由該層的規(guī)模(n_units)和上一層的輸出(n_features)共同決定[11]。其中,Bi-GRU網絡每層的參數數量計算方法為:
Num(Bi-GRU)=6×n_units×
(n_features+n_units+1)。
(6)
全連接層(有偏置)的參數數量計算方法為:
Num(Linear)=(n_features+1)×n_units。
(7)
PSP算法的參數數量[1]計算方法為:
Num(PSP)=(8×L+2)×M2L,
(8)
式中,M為調制階數;L為PSP算法的信道記憶長度。根據上述方法,得出不同算法和信道記憶長度的復雜度對比如表3所示。

表3 復雜度對比
PSP算法的計算復雜度隨調制階數和信道記憶長度呈指數型增長,而分離網絡的計算復雜度隨調制階數只呈線性增長,且不受信道記憶長度的影響。通過結果可以發(fā)現,在不損失分離性能下,本文提出算法的復雜度在M>2時遠低于PSP算法,且調制階數和信道記憶長度越大,其降低復雜度的優(yōu)勢越明顯。
本文提出了一種基于雙向循環(huán)神經網絡的盲分離方案,可以很好地對單通道2路混合信號進行分離。對于長度超過網絡輸入長度的時間序列,提出了對其前后額外截取的策略,解決了每個數據塊在開始和結束時可能產生高錯誤率的問題。在分離性能相近的情況下,該方案的計算復雜度遠低于PSP算法。該方案對PCMA衛(wèi)星通信信號的實時接收和處理具有參考價值。本文方法在應對隨機波動大的信道時較為乏力,在后續(xù)研究中會針對這種情況做出解決措施。