黃炎揆, 高 勇
(四川大學電子信息學院, 四川 成都 610065)
近年來,單通道混合信號盲分離[1]問題引起了國內外學者極大的研究興趣。盲分離是在缺少先驗信息的情況下,僅根據接收到的信息進行混合信號的分離。如果接收信號的路數少于發射信號的路數,則稱之為欠定混合信號盲分離[2]。通常情況下,只有一路接收,這種稱之為單通道混合信號盲分離,它也是欠定混合信號盲分離的一種。欠定混合信號盲分離在數學上是不存在確定解的,但是一些通信信號有著有限符號的特征,充分利用這一特征,可以使得欠定混合信號盲分離成為可能。
本文針對的研究對象是同頻混合多進制相移鍵控(m-ary phase shift keying, MPSK)調制信號,關于這一方面的研究前人已經做了大量的工作。目前,處理這一問題的主要方法是粒子濾波(particle filtering, PF)算法和逐留存路徑處理(per-survivor processing, PSP)算法。
文獻[3]提出建立了混合信號的狀態轉移模型,正式將PF應用到同頻混合信號的單通道盲分離中。文獻[4]成功把PF算法運用到分離兩路時頻混合的MPSK混合信號中,得到了不錯的分離性能。然而,PF算法中固有的粒子多樣性匱乏和運算量大的弊端始終限制著PF算法的發展和運用,后續通過對PF算法缺陷的研究,又提出了許多改進的PF算法。對于PF算法中粒子多樣性匱乏的問題,文獻[5-7]分別采用皮爾森相關系數、具有記憶功能的自適應單分布重采樣和狀態反饋控制機制方法來增加PF算法中的粒子多樣性,提高PF算法的參數估計的精確度。此外,為了抑制PF算法中粒子的多樣性匱乏,文獻[8]提出差分進化的方法,完成了重采樣的過程。文獻[9]提出運用分集增強的重采樣算法,得到一組新的重采樣粒子含有更多的相鄰粒子的狀態信息,提高了PF算法的性能。文獻[10]在對強弱混合信號分離中引入非線性濾波,與混合信號硬判決相比,非線性濾波后強信號的解調性能有很大提高。對于粒子濾波運算復雜度高的問題,文獻[11]提出在PF算法中引入并行計算,使得算法的復雜度得到了一定的降低。即使一系列粒子濾波優化算法被不斷提出,也沒有從根本上解決粒子濾波高復雜度的問題。PSP算法較PF算法復雜度大大降低,而且分離性能略優于PF算法。2008年文獻[12]首次將PSP運用到混合信號盲分離中,成功實現了兩路正交相移鍵控(quadrature phase shift keying, QPSK)混合信號的單通道盲分離。之后由此衍生出了一些優化算法,文獻[13]提出基于判決反饋的PSP算法通過消除后尾干擾從而達到降低復雜性度的效果,文獻[14]提出對成對載波多址(paired carrier multiple access, PCMA)信號盲分離性能的推導過程中考慮參數估計誤差,使得PSP算法更具一般性。文獻[15]、文獻[16]中把PSP算法也成功運用到直接擴頻序列水聲通信中,取得較別的算法更好的性能。對于兩路高斯最小頻移鍵控(Gaussian filtered minimum shift keying, GMSK)混合信號的分離問題,文獻[17]運用PSP算法成功分離了兩路GMSK混合信號,擴大了PSP算法分離的信號類型。文獻[18]通過減少遍歷路徑來減少算法的復雜度,使得分離性能和復雜度達到了很好的折中。文獻[19]利用CHASE譯碼輔助下的PCMA盲分離算法來提高單通道盲分離的分離性能。文獻[20]在時變流星突發信道中運用PSP算法,很大程度上提高了流星突發通信系統的平均吞吐量。
盡管PSP算法的復雜度比粒子濾波降低了許多,但隨著調制階數M提升,PSP的復雜度將呈指數形式上升。設調制階數為M,符號串擾長度為L,每次分離兩路信號需要遍歷M2(L-1)種狀態,這樣高階調制信號盲分離的復雜度對于普通計算平臺是難以承受的。因此要想PSP廣泛運用到現實系統中,降低其復雜度至關重要。
本文在PSP算法的基礎上,提出了MPSK混合信號逐步消除前向干擾的單通道盲分離PSP算法,是以極小的性能損失為代價,降低了每一時刻需要遍歷的狀態數,可以達到降低單通道盲分離復雜度的效果。
考慮到復調制MPSK信號,一般情況下單通道盲分離的復基帶模型可以表示為
y(t)=h1(t)ej(Δω1t+θ1)x1(t)+
h2(t)ej(Δω2t+θ2)x2(t)+v(t)
(1)
式中,h1(t)和h2(t)分別是第一路和第二路的信號瞬時幅度;Δω1和Δω2為兩路信號的殘余載波;θ1和θ2是兩路信號的初始相位;v(t)為加性高斯白噪聲;x1(t)和x2(t)為發送的兩路基帶數字調制信號。
接收到的混合信號可以表示成更簡潔的形式:
(2)
式中,g1,k和g2,k為等效信道濾波器,包括成形濾波器、信道濾波器以及匹配濾波器;a1,k和a2,k是兩路發送信號的符號序列。信道的持續時間長為LT,g(t)從(1-L1)T到L2T,L=L1+L2。由此把等效信道濾波器表示為
gi,k=hiejθi[gi((L1-1)T+τi),
gi((L1-2)T+τi),…,gi(-L2T+τi)]T
(3)
式中,τi是第i路信號與本地接收機之間的時鐘漂移,假定0≤τi 對接收的混合信號進行采樣,接收信號按周期T/Q進行采樣,其中Q≥1為整數,則采樣后的信號可以表示為 (4) gi,k+p/P=hi,kej(Δwi(k+q/Q)T+θi)[gi((L1-1)T+ qT/Q+τi,k),…,gi(-L2T+qT/Q+τi,k)]T 故接收的混合信號在Q倍采樣下,可以簡寫成式(4)。 (5) 定義k時刻狀態為sk=[a1,k-L1+2∶k+L2,a2,k-L1+2∶k+L2],(a1,k+L2,a2,k+L2)是在k時刻輸入的符號對,此時狀態sk-1轉移到狀態sk,同時輸出yk,狀態轉移可以表示為 (6) 截止k時刻,式(5)可以改寫為 p(Y/Φ,G)=p(y0∶K|a1,0∶k+L2,a2,0∶k+L2,G1,0∶k,G2,0∶k)= (7) λ(sk-1→sk)=|e(sk-1→sk)|2 (8) 其中 (9) 式中,ai,k(sk-1→sk)是狀態轉移sk-1→sk對應的第i路信號的符號向量。累計路徑度量是在每一個狀態中執行下面的最小化操作來得到: (10) (11) 式中,γ是更新步長;*代表取共軛。 綜上,基于PSP的混合信號單通道盲分離可以由以下5個步驟進行描述。 步驟1初始化部分:在k=0時刻,進行參數初始設定,設定初始狀態s0,累計路徑度量Γ(s0)設為0,初始等效信道響應為g1,0和g2,0。 步驟2判決輸出部分:根據最優留存路徑輸出(k-δ)時刻的符號對(a1,k-δ,a2,k-δ),δ是判決延遲。 步驟3分支路徑擴展部分:在k=k+1時,會從前一時刻每個留存路徑中擴展出M2條分支,根據式(8)計算其分支路徑度量λ。 步驟4路徑保留部分:對匯集到每個狀態的M2條分支路徑,由式(10)計算其累計路徑度量,保留最好的一條路徑。 步驟5信道更新部分:由式(11)對信道的參數進行更新,然后轉到步驟2。 由于PSP算法中存在碼間串擾,設碼間串擾長度為L,其中前向串擾長度為L1,尾部串擾長度為L2,則L=L1+L2。PSP盲分離的核心是維特比序列檢測,而維特比序列檢測的復雜度主要取決于狀態數的多少,同樣也可以用狀態數的多少來衡量PSP算法的復雜度,即M2(L-1)=4,其中M是信號的調制階數。可以看到PSP的復雜度主要由兩個量來確定,調制階數(M)和串擾長度(L)。本文就串擾長度進行了研究,提出通過逐步消除前向干擾(L1)的PSP算法。 通過PSP的基本原理發現,在當前k時刻,已經把之前時刻的兩路混合符號對判決出來了,并且在k-1時刻也已經把k時刻的序列檢測所需要的信道參數進行了更新,那么完全可以運用這些信息來消除k時刻之前的符號帶來的碼間串擾。在這里設前向串擾長度L1=2,尾部串擾長度L2=3,總的串擾長度L=5。具體的做法是,在k時刻把已經在k-1時刻判決出來兩路符號分別乘以k-1時刻更新得到的信道響應g1,k和g2,k,然后把它們各自的乘積加起來在式(9)中消去,這就等價于把前向干擾的符號位消去。 為了減小計算量,并不是在k時刻的每個狀態用判決出的符號乘以相對應的更新后的每個狀態的信道響應,統一采取k-1時刻最優路徑所在狀態更新過的信道響應,用k-1時刻判決出的符號乘以k-1時刻最優路徑所在的狀態更新過的信道參數,把兩路的乘積和在式(9)中消去,這樣在每個狀態消去前向碼元干擾時,只需要計算一次乘積和,所以新算法在消去前向碼元干擾的同時,幾乎沒有增加額外處理的計算量。 值得注意的是,由于需要用前一時刻判決出來的符號,故在k=0時初始化參數設定后,需要按原算法在k=0時刻進行一次盲分離,這樣從k=1時刻開始,就可以采用改進的算法,即用前一時刻判決出的符號對來逐步消除前向碼元帶來的干擾。 MPSK混合信號逐步消除前向干擾的單通道盲分離PSP算法的具體算法步驟流程如下。 步驟1初始化部分:在k=0時刻,進行參數初始設定,設定初始狀態s0,累計路徑度量Γ(s0)設為0,初始等效信道響應為g1,0和g2,0; 步驟2消除前向干擾部分:若k≥1,則在k時刻把已經在k-1時刻判決出來的兩路符號分別乘以k-1時刻最優路徑所在的狀態更新得到的信道響應g1,k和g2,k,然后把它們各自的乘積加起來在式(9)中消去,否則轉到步驟3; 步驟3判決輸出部分:根據最優留存路徑輸出(k-δ)時刻的符號對(a1,k-δ,a2,k-δ),δ是判決延遲; 步驟4分支路徑擴展部分:在k=k+1時,會從前一時刻每個留存路徑中擴展出M2條分支,根據式(8)計算其分支路徑度量λ; 步驟5路徑保留部分:對匯集到每個狀態的M2條分支路徑,由式(10)計算其累計路徑度量,保留最好的一條路徑; 步驟6信道更新部分:由式(11)對信道的參數進行更新,然后轉到步驟2。 對本文所提出的MPSK混合信號逐步消除前向干擾的單通道盲分離PSP算法,與文獻[2]所提出的算法進行復雜度上的比較分析,在這里定義文獻[2]所提的PSP算法為原PSP算法。在衡量PSP算法的復雜度上,不僅可以用完成一次混合信號分離所需遍歷的狀態數多少來表示,還可以用完成一個混合符號分離所需要的實數加法和實數乘法來計算。首先,以二進制相移鍵控(binary phase shift keying, BPSK)和QPSK為例,用每分離一個混合信號維特比序列檢測所需狀態數來表征原PSP算法和改進的PSP算法各自的復雜度。原PSP算法所需檢測的狀態數的計算方法上文已經重點介紹過了,即M2(L-1),其中,M是信號的調制階數,L是兩路混合信號的碼間串擾長度,L=L1+L2,L1為前向串擾,L1為尾部串擾。原PSP算法和改進的PSP算法每分離一個混合信號所需檢測狀態數的具體計算方法如下:以串擾長度L=4的兩路BPSK混合信號為例,其中前向串擾L1=2,尾部串擾L2=2,采用原PSP算法的情況下,每分離一個混合信號所需檢測的狀態數為M2(L-1)=64,采用改進的PSP算法,因為消除了前向碼元的干擾,則L=3(L1=1,L2=2),每分離一個混合信號所需檢測的狀態數為M2(L-1)=16。同樣,以串擾長度L=4的兩路QPSK混合信號為例,其中前向串擾L1=2,尾部串擾L2=2,原PSP算法每分離一個混合信號所需檢測的狀態數為M2(L-1)=4 096。對于改進的PSP算法來說,因為消除了前向碼元的干擾,則L=3(L1=1,L2=2),則每分離一個混合信號所需檢測的狀態數為M2(L-1)=256。為了便于直觀比較算法的復雜度情況,表1和表2給出了算法的復雜度對比表格。 表1 BPSK的復雜度對比 表2 QPSK的復雜度對比 從表1和表2可以看出,隨著碼間串擾長度L的增加,分離的復雜度越來越大,特別對于QPSK來說,狀態數的增加尤為劇烈。本文提出的改進PSP算法和原PSP算法對比發現,對于BPSK,所提出的算法復雜度較原算法降低了4倍,而對于QPSK,所提出的算法復雜度卻降低了16倍,可見對于高階調制、串擾長度越長的混合信號,本文提出的改進PSP算法的優勢更加明顯。 接下來用每次分離一個混合信號所需的實數加法和實數乘法來比較兩種算法的復雜度,如表3所示。在PSP算法中不考慮糾錯編碼的情況,那么PSP的算法復雜度主要體現在兩個部分,一個是分支路徑的計算上,另一個是信道的更新上。分支路徑的計算需要實數加法的次數和實數乘法的次數是M2L(8L+2)和M2L(8L+2),信道更新部分由于不需要對所有的分支路徑上的信道參數進行更新,只對留存的路徑上的信道參數更新,那么需要的實數加法和實數乘法分別是12M2(L-1)L和M2(L-1)(12L+2)。在這里設碼間串擾長度L=5,其中L1=2,L2=3。 表3 兩種分離算法的復雜度對比 從表3可以看出,原PSP算法每分離一個BPSK混合符號采樣點需要的實數加和實數乘都在5萬次以上,而本文提出的改進PSP算法只需要1萬次左右,運算量降低了5倍之多,但是對于QPSK可以看到,原PSP算法每分離一個QPSK混合信號采樣點就要運算實數加和實數乘都在4 000萬次以上,而改進的PSP算法只需要實數加和實數乘是240萬次左右,比原PSP算法運算量降低了20倍左右。在這里,只是設L=5,實際中碼間串擾長度會更長,那么本文提出的降低復雜度的算法優勢將會更加顯著。 本次實驗仿真主要是針對符號速率均是4 Mbps的BPSK和QPSK數字調制信號,首先產生兩組相互獨立的隨機序列作為傳輸信號,兩路均采用滾降系數為0.35的根升余弦函數成形,兩路混合信號的符號速率均是4 Mbps,兩路信號幅度h1,k和h2,k均為1,殘余頻偏Δf1=Δf2=0,其中兩路BPSK調制信號的時延分別是τ1,k=1/16×T、τ2,k=9/16×T,T是符號的周期,初相位θ1=1+0.2×π/2、θ2=1,QPSK調制信號的時延是τ1,k=1/16×T、τ1,k=5/16×T,初相位θ1=0、θ2=π/6,碼間串擾長度L=5、L1=2、L2=3,消除前向干擾后L=4、L1=1、L2=3,采用單倍采樣,均用最小均方誤差(least mean square,LMS)算法對信道參數進行更新,步長取γ=0.01。在不同的信噪比條件下對比原PSP算法和改進的PSP算法的性能,圖1是原PSP算法和改進的PSP算法分別分離兩路BPSK的性能對比曲線圖;圖2是原PSP算法和改進的PSP算法分別分離兩路QPSK的性能對比曲線圖。 圖1 BPSK改進前后誤碼率對比圖Fig.1 Bit error rate comparison of improvement inBPSK before and after 圖2 QPSK改進前后誤碼率對比圖Fig.2 Bit error rate comparison of improvement inBPSK before and after 為了實驗仿真更具一般性,重新換一組信道參數進行仿真驗證,兩路均采用滾降系數為0.35的根升余弦函數成形,兩路混合信號的符號速率均是4 Mbps,兩路信號幅度h1,k和h2,k均為1,殘余頻偏Δf1=Δf2=0,兩路BPSK調制信號的時延分別為τ1,k=1/16×T、τ2,k=5/16×T,初相位θ1=1+0.4×π/2、θ2=1,兩路QPSK調制信號的時延為τ1,k=1/16×T、τ2,k=15/16×T,初相位θ1=1、θ2=1+2×π/6,碼間串擾長度L=5、L1=2、L2=3,消除前向干擾后L=4、L1=1、L2=3,采用單倍采樣,均用LMS算法對信道參數進行更新,步長取γ=0.01。在這種信道參數前提下,對比在不同的信噪比條件下原PSP算法和改進的PSP算法的性能,圖3是原算法和改進的PSP算法分別分離兩路BPSK的性能對比曲線圖,圖4是原算法和改進的PSP算法分別分離兩路QPSK的性能對比曲線圖。 從圖1、圖2可以看出,改進后的PSP算法較原PSP算法在誤碼率方面有0.5 dB左右的性能損失。其實,性能的損失是在情理之中的,改進的PSP算法在大幅度降低復雜度的同時,必然帶來性能方面的損失,導致改進PSP算法的性能損失主要來源于兩個方面。一是用前一時刻判決出來的符號來對前向干擾進行消除,并不能保證每一時刻判決出的符號都是正確的,故用前一時刻判決出的符號進行前向干擾消除必然引來一定的誤差;二是為了在改進的PSP算法中不額外增加計算負荷量,在當前時刻進行消除前向干擾的時候,在每一個狀態上,統一用前一時刻最優幸存路徑上的信道參數更新來重構前向干擾部分,這樣必然會帶來一些誤差,從而導致改進的PSP算法比原算法有一定的性能損耗。 圖3 BPSK改進前后誤碼率對比圖Fig.3 Bit error rate comparison of improvement inBPSK before and after 圖4 QPSK改進前后誤碼率對比圖Fig.4 Bit error rate comparison of improvement inQPSK before and after 但是,無論是從每分離一個混合信號采樣點需要遍歷的狀態數,還是每分離一個混合信號采樣點的實數加和實數乘運算上,性能損失的代價比起新算法降低的復雜度還是值得的。特別對于QPSK來說,分離一個混合信號采樣點需要遍歷的狀態數降低了16倍,實數加和實數乘降低了20倍之多。在另一組信道參數下,從圖3、圖4發現,改進的PSP算法較原有的PSP算法性能損失上也在0.5 dB以內,這說明改進PSP算法具有一定的普遍性。 以上兩組實驗仿真都設定兩路殘余頻偏均為零(Δf1=Δf2=0)的情況,下面將通過一組實驗仿真來驗證改進的算法在有頻偏的情況下的性能效果。兩路仍采用滾降系數為0.35的根升余弦成形,兩路隨機數字調制信號的幅度h1,k,h2,k均為1,兩路殘余頻偏Δf1=Δf2=104Hz,其中兩路BPSK調制信號的時延分別是τ1,k=1/16×T、τ2,k=9/16×T,T是符號的周期,初相位θ1=1+0.2×π/2、θ2=1,QPSK調制信號的時延是τ1,k=1/16×T、τ2,k=5/16×T,初相位θ1=0、θ2=π/6,碼間串擾長度L=5、L1=2、L2=3,消除前向干擾后L=4、L1=1、L2=3,符號速率均是4 Mbps,采用單倍采樣,均用LMS算法對信道參數進行更新,步長取γ=0.01。圖5和圖6分別展示了在帶有頻偏的信道參數情況下,原PSP算法和本文提出的改進PSP算法在分別分離兩路BPSK混合信號和兩路QPSK混合信號的誤碼率性能仿真圖。結果如圖5、圖6所示。 圖5 有頻偏BPSK改進前后誤碼率對比圖Fig.5 Bit error rate comparison of improvement in BPSK withfrequency offset before and after 圖6 有頻偏QPSK改進前后誤碼率對比圖Fig.6 Bit error rate comparison of improvement in QPSK withfrequency offset before and after 圖5和圖6是有頻偏的情況下,數字調制信號BPSK和QPSK的改進前后算法各自誤碼率的性能仿真結果對比圖。從圖5可以看出,有頻偏的數字調制信號BPSK改進的PSP算法性能比原PSP算法性能有不到0.5 dB的性能損失。而從圖6中發現,有頻偏的數字調制信號QPSK改進的PSP算法性能比原PSP算法性能也有不到0.5 dB的性能損失。這說明改進的PSP算法在以極小性能損失為代價降低算法復雜度的狀況下,對小頻偏具有一定的容忍性。 下面通過表格對比來看看在仿真實驗中兩種算法的耗時情況,表4中表示分別用原PSP算法和改進的PSP算法分離5 000個BPSK混合信號和1 000個QPSK混合信號的耗時對比情況,結果如表4所示。 表4 改進前后PSP算法的耗時比 在表4中可以看到,在分離5 000個兩路混合的BPSK數字調制信號采樣點時,本文改進的PSP算法耗時比原PSP算法耗時少了3倍多,對于分離1 000個兩路混合QPSK數字調制信號采樣點,改進的PSP算法比原PSP算法分離速度提升了24倍多。QPSK的加速效果更加明顯,這說明調制階數越高,本文提出的改進PSP算法加速效果就會更好。 對于單通道盲分離PSP算法復雜度較高的問題,本文從PSP算法的原理出發研究,針對其算法復雜度受信號的調制階數和碼間串擾長度的影響,運用逐步消除前向干擾的方法來降低串擾長度,達到了降低單通道盲分離PSP算法復雜度的效果。實驗仿真結果表明,雖然在降低復雜度的同時,也帶來了0.5 dB左右的性能損失,但相對降低算法的復雜度效果而言還是可以接受的,尤其對于高階數字調制的信號,本文所提算法對于復雜度的降低更加明顯,這對快速分離兩路混疊信號具有一定的現實意義。2 PSP單通道盲分離
2.1 PSP算法的基本原理













2.2 MPSK混合信號逐步消除前向干擾的單通道盲分離PSP算法
2.3 復雜度分析



3 實驗仿真及分析







4 結 論