張 兢,杜凡丁,曹 陽,彭小峰
(重慶理工大學(xué)電氣與電子工程學(xué)院 重點(diǎn)實驗室,重慶 400054)
在長距離的自由空間光(FSO)通信如衛(wèi)星與地面間的通信中,信號強(qiáng)度會受到湍流、散射、吸收等眾多因素的影響[1],其中大氣湍流對光的傳輸影響最大。大氣湍流的存在會干擾光束在長距離FSO通信中的傳輸[2],降低通信系統(tǒng)的性能[3],嚴(yán)重影響FSO通信質(zhì)量[4-5]。因此,許多信道編碼的方案被應(yīng)用于長距離FSO通信系統(tǒng)中以保證其穩(wěn)定性和可靠性,如使用低密度奇偶校驗碼(LDPC)[6]、Turbo碼[7]和近幾年新興的極化碼(Polar Code)[8-9]。但這些編碼方案在面對突發(fā)差錯如信道質(zhì)量突然下降時誤碼率會增大;同時它們的編碼速率相對較高,在低碼率下的編碼增益較低。因此無速率碼LT碼[10]和Spinal碼在FSO通信中受到了廣泛關(guān)注。
Spinal碼最早由Perry在文獻(xiàn)[11]中提出,Spinal編碼具有編碼結(jié)構(gòu)簡單、在二進(jìn)制對稱信道(BSC)和加性高斯白噪聲(AWGN)信道上可以證明接近信道容量的特性[11-13]。Perry在文獻(xiàn)[13]中證明了Spinal碼具有比LDPC等固定速率碼更高的吞吐量。文獻(xiàn)[14]中提出的混沌映射方法有效降低了Spinal碼的計算復(fù)雜度。與傳統(tǒng)的編碼不同Spinal碼的核心為非線性散列函數(shù),這使得Spinal碼在噪聲和干擾下具有良好的魯棒性[14]。作為一種新興的無速率碼Spinal碼的傳輸速率會隨信道質(zhì)量的好壞自適應(yīng)變化,當(dāng)FSO通信由于大氣湍流等因素出現(xiàn)突發(fā)錯誤時,Spinal碼可以適當(dāng)降低傳輸速率以保證譯碼的正確性,其無需反饋即可自適應(yīng)地傳輸,適用于反饋重傳時延極長且存在大氣湍流的星地通信。這些優(yōu)良特性顯現(xiàn)出Spinal碼應(yīng)用于FSO通信的巨大潛力。但在FSO通信中Spinal仍面臨著諸多問題。
Spinal碼受其潛在的不等差錯保護(hù)性的影響,有著差錯控制性能不佳的問題。其誤碼率主要受到最后一段編碼的性能影響。此外Spinal碼譯碼的復(fù)雜度較高,編譯碼速度有待提高。針對以上問題,本文提出一種FSO系統(tǒng)中的對稱Spinal編碼。對稱Spinal碼在原始Spinal碼的編碼基礎(chǔ)上增加一次反向編碼,對容易發(fā)生錯誤的編碼位進(jìn)行保護(hù)以提高其在FSO差錯控制性能。并使用相應(yīng)的迭代譯碼方法降低譯碼復(fù)雜度。
在衛(wèi)星與地面通信的信道中,激光的傳輸會受到湍流影響。大氣湍流[15]會使接收光功率發(fā)生衰減,由對數(shù)正態(tài)分布得到大氣湍流弱擾動下接收光功率的概率密度函數(shù)(PDF)。當(dāng)接收光功率為I且其平均值為“I”時,I的PDF如下式:
(1)
式中,σ2是I的分布情況,也是大氣湍流指數(shù),被稱為閃爍指數(shù)(SI)。當(dāng)SI較高時,接收到的光功率會產(chǎn)生很大變化。在大氣湍流引起的強(qiáng)干擾的情況下,I的PDF由雙伽馬(Gamma-Gamma)分布得到,如下所示:
I>0
(2)
式中,Γ()是伽馬函數(shù);Kα(β)是第二類修正貝塞爾函數(shù),其中α和β分別表示大湍流尺度和小湍流尺度,它們與大氣條件有關(guān),由公式(3),(4)給出:
(3)
(4)
σ2是根據(jù)α和β得到的:
(5)
圖1 Spinal碼編碼結(jié)構(gòu)Fig.1 Spinal code encoding structure
si=h(si-1,mi)
(6)
其中,si為哈希函數(shù)的種子值,與mi一同作為哈希函數(shù)的輸入。s0作為最初的種子是為發(fā)送端與接收端所共同知曉的;s0與m1作為哈希函數(shù)的輸入得到的s1,會作為新的種子與m2一同輸入哈希函數(shù)。同時s1作為一個Spinal值經(jīng)過隨機(jī)序列發(fā)生器(RNG)和映射(Mapper)生成無限長的發(fā)送序列x1,從中截取c位數(shù)據(jù)得到x1,i進(jìn)行m1的一次傳輸。其余信息段也是如此。x1,1,x2,1,…,xk,1組成了信息M的一個完整傳輸過程,該過程稱為一個pass。如果接收端在收到第一個pass后就成功譯碼,則其實現(xiàn)較高傳輸速率;當(dāng)受到湍流等因素影響導(dǎo)致信道質(zhì)量突然變差,接收端在收到多個pass后才成功譯碼,則導(dǎo)致傳輸速率有所下降,以此保證譯碼正確率,這就是Spinal碼的無速率特性。
一般的Spinal碼在譯碼發(fā)生錯誤時,錯誤總是出現(xiàn)在最后幾位的Spinal碼上,這種現(xiàn)象意味著Spinal編碼具有潛在的不等差錯保護(hù)(UEP)的特性。然而,在實際的應(yīng)用中,Spinal編碼的結(jié)構(gòu)并不靈活,不能滿足UEP的不同層次的要求。
(7)
(8)
因為其連續(xù)編碼的特點(diǎn),只有x1,…,xk攜帶m1,…,mk的信息,所以根據(jù)上式很容易分析出在Spinal編碼中前一段信息的性能總是優(yōu)于后一段信息,這證明了Spinal碼的UEP性質(zhì)。又因為最后一段信息mk與前面的x1,…,xk-1無關(guān),所以只有xk與其有關(guān),因此可以將公式(7)近似為:
Pe≥δD
(9)
通過將Spinal碼的傳輸pass數(shù)設(shè)置為L,可以將這樣的固定速率的Spinal碼表示為Ccapacity(n,k,L),而上式中的δD可以視作一個短Spinal碼Ccapacity(k,k,L)的誤碼率。所以一般我們認(rèn)為Spinal碼的差錯控制性能受最后一段的性能影響。因此本文使用了一種對稱的Spinal編碼來解決以上問題。
對稱Spinal編碼方式在Spinal編碼的基礎(chǔ)上,增加了一次反向的編碼過程,以達(dá)到改善Spinal碼差錯控制性能、提高傳輸速率和抗干擾的目的。
如圖2所示,對稱Spinal編碼結(jié)構(gòu)由正向編碼與反向編碼兩個部分組成,正向與反向編碼都是一次Spinal編碼。前向編碼的哈希狀態(tài)及其哈希函數(shù)表示為:
圖2 對稱Spinal碼的編碼結(jié)構(gòu)Fig.2 Symmetric Spinal code encoding structure
而后向編碼的哈希狀態(tài)及其哈希函數(shù)表示為:
Algorithm 11:Create and initialize the forward tree M with Mi=(,1,…,2k-1);2:Create and initialize the max node number B and the iteration number lmax;3:for l =1 to lmax do4:Search the forward tree M,and save the nodes which their channel inputs and the received symbols matched;5:Update M with the result M=(M1,…,Mk),n is the number of survival nodes;6:Create the backward tree M'=(Mk,…,M1) with the Updated forward tree M;7:Search the backward tree M',and save the nodes which their channel inputs and the received symbols matched;8:Update M' with the result M'=(Mk,…,M1);9:Next forward tree M will be created by M';10:if for each i,the Mi has a unique solution 11:break12:end if13:end for14:Output the survival nodes in M
首先定義一個表M=(M1,…,Mk)存儲所有的信息可能值,Mi最多可以存儲2k個值;在譯碼開始時,先對Mi進(jìn)行初始化,其中每一個指針表示消息Mi的候選值索引。譯碼器使用表M在前向編碼樹中搜索輸入輸出相匹配的可能值。經(jīng)過一次完整的搜索,保留這些符合條件的可能值,將不符合條件的值從表中刪除。這樣就完成一次對表M的更新?;谶@個新的表M生成一個表M′=(Mk,…,M1)。譯碼器再使用M′對后向編碼樹進(jìn)行搜索,將后向編碼樹中輸入與輸出相匹配的可能值保留在M′中,刪除不匹配的可能值,然后對M′中的可能值進(jìn)行更新。一次迭代完成。在下一次迭代開始時,基于表M′中的可能值對表M進(jìn)行一次更新。在經(jīng)過多次迭代后對于M=(M1,…,Mk)中的每一個Mi只有一個可能的值時,代表成功譯碼。
除此之外還要加入一個遠(yuǎn)小于2n的參數(shù)B,來限制每一次前向搜索和后向搜索的最大節(jié)點(diǎn)數(shù)。當(dāng)已搜索到的節(jié)點(diǎn)數(shù)大于B,則終止譯碼。
針對本文提出的方案使用Matlab進(jìn)行仿真。模擬了大氣湍流信道,調(diào)制方式使用二進(jìn)制相移鍵控(BPSK)。仿真對比了對稱Spinal碼與原始的Spinal碼在不同信噪比(SNR)下的傳輸速率,并同無速率LT碼[17]作對比。對稱Spinal碼與Spinal碼的參數(shù)取值均為:k=4,c=10,哈希函數(shù)選取為Jenkins one-at-a-time。傳輸速率如圖3所示。
圖3 LT碼,Spinal和對稱Spinal碼傳輸速率性能Fig.3 Rate performance of LT code,Spinal code and Symmetric Spinal code
由圖3可明顯獲知,同為無速率碼Spinal具有比LT碼更好的傳輸速率。而對稱Spinal碼在Spinal碼的基礎(chǔ)上傳輸速率又有所提升。具體數(shù)據(jù)如表1所示。
表1 三種無速率碼在不同SNR下的傳輸速率Tab.1 Different rateless codes rate performance in different SNR
由表1可知,隨著SNR的提高,Spinal碼與LT碼的傳輸速率性能差距逐漸增大,而對稱Spinal碼與Spinal碼的傳輸速率之差保持在0.23左右。由此可見對稱Spinal碼提高了傳輸速率,這是因為當(dāng)Spinal碼發(fā)生錯誤時,出現(xiàn)錯誤的位置一般都位于最后幾位,這會導(dǎo)致Spinal正確譯碼需要接受更多的pass數(shù),因此傳輸速率會受到影響;而對稱Spinal碼由于增加了反向編碼的過程,對易出錯的數(shù)據(jù)位進(jìn)行了保護(hù),減少了正確譯碼所需要的pass數(shù),因此傳輸速率得到了提升。
本文對不同湍流強(qiáng)度下的對稱Spinal碼和Spinal碼的誤碼率進(jìn)行了仿真,各個碼字BER性能如圖4所示。從圖4可以看出,當(dāng)σ2=0.3湍流較弱時,SNR=4,Spinal碼的誤碼率為1×10-3,而對稱Spinal碼的誤碼率為0.012,Spinal碼的誤碼率優(yōu)于對稱Spinal碼;SNR=9時,對稱Spinal碼誤碼率開始優(yōu)于Spinal碼;SNR=15時,Spinal碼誤碼率為1.5×10-4,而對稱Spinal碼誤碼率為2.7×10-5。當(dāng)湍流較強(qiáng)σ2=0.5時,SNR=4,Spinal誤碼率為2×10-3,對稱Spinal碼的誤碼率為0.03;SNR=10.5時,對稱Spinal碼的誤碼率開始優(yōu)于Spinal碼;SNR=15時,Spinal碼誤碼率為2.2×10-4,而對稱Spinal碼誤碼率為 1×10-4。由此可以看出無論大氣湍流的σ2=0.5還是0.3,Spinal碼的誤碼率在SNR提升到一定程度后趨于平穩(wěn),而對稱Spinal碼的誤碼率在SNR不斷提升的情況下隨之降低。因此我們很容易得出,在面對FSO通信中的大氣湍流時,只要提供較高的信噪比,對稱Spinal碼的編碼方案可以帶來更優(yōu)秀的誤碼率性能。這也是由于對稱Spinal碼增加了一個反向編碼的過程,提高了其抗干擾的性能。
圖4 Spinal碼和對稱Spinal碼在不同湍流強(qiáng)度下的誤碼率Fig.4 BER performance of Spinal code and symmetric Spinalcode under different turbulence intensity
本文還對RS碼、Spinal碼、極化碼與對稱Spinal碼的誤碼率進(jìn)行仿真對比。除Spinal碼和對稱Spinal碼外,還使用了(8,15)的RS碼,以及連續(xù)刪除(SC)譯碼的polar碼,polar碼長為256,碼率為0.5。誤碼率如圖5。
圖5 RS碼、Spinal碼、Polar碼和對稱Spinal碼的誤碼率對比Fig.5 BER performance of RS code,Polar code,Spinal codeand symmetric Spinal code
由圖5易知,對稱Spinal碼的誤碼率性能最優(yōu)。BER=1×10-2時,對稱Spinal碼相比Spinal碼,RS碼和極化碼分別產(chǎn)生了0.25 dB,0.6 dB和1 dB的增益;BER=1×10-3時,增益分別為0.3 dB,0.45 dB和1.3 dB;BER=1×10-4,增益分別為0.4 dB,0.5 dB和1.75 dB。由于Polar碼碼長較短,其誤碼率性能在四種編碼中最差,當(dāng)SNR小于2時它的誤碼性能與RS碼相近,而當(dāng)SNR=3時,RS的誤碼率降低到了1.4×10-5,Polar碼的誤碼率則為2.2×10-3;Spinal碼的誤碼率在SNR小于2.5時明顯優(yōu)于RS碼,而當(dāng)SNR=3時,兩種編碼的誤碼率僅相差3×10-6。對稱Spinal碼的誤碼率明顯優(yōu)于其他三種編碼:當(dāng)SNR=1時誤碼率為0.067,比Spinal碼的誤碼率低0.006;當(dāng)SNR=2.5時誤碼率為2.3×10-5,比Spinal碼的誤碼率低2.4×10-4。因此,對稱Spinal的差錯控制性能明顯優(yōu)于RS碼,Polar碼與原始的Spinal碼。
本文提出的FSO通信中的對稱Spinal碼方案,在原始Spinal編碼的基礎(chǔ)上增加了一次反向編碼改善其差錯控制性能,并通過相應(yīng)的迭代譯碼算法降低譯碼復(fù)雜度。仿真結(jié)果表明,SNR在-5~10的范圍內(nèi)時,對稱Spinal碼的傳輸速率始終優(yōu)于原始Spinal碼以及LT碼;在SNR較高的情況下,對稱Spinal碼在面對FSO通信信道中的大氣湍流時具有更好的抗干擾能力;對稱Spinal碼的差錯控制性能在明顯優(yōu)于原始Spinal、RS碼以及Polar碼,在不同BER下相比于原始Spinal碼均產(chǎn)生了不同程度的增益。