邢莉娟,李 卓,王慶港
(西安電子科技大學(xué) 綜合業(yè)務(wù)網(wǎng)理論及關(guān)鍵技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710071)
近年來,隨著對海洋的勘測、開發(fā)和利用逐漸被重視,水下高效通信變得極其重要。而光學(xué)技術(shù)的使用解決了聲通信或者電磁波等非光學(xué)通信系統(tǒng)中信號傳輸速率較低的問題[1],同時(shí)400 nm~550 nm波長范圍內(nèi)的藍(lán)綠激光光譜已經(jīng)被證實(shí)在海水中具有低衰減的特性,能夠滿足在水下進(jìn)行大數(shù)據(jù)傳輸以及信號傳輸可靠性的要求,同時(shí)也為水下光通信系統(tǒng)的研究與發(fā)展奠定了堅(jiān)實(shí)的理論基礎(chǔ)。
由于水下粒子會使激光產(chǎn)生多重散射,從而使信號產(chǎn)生嚴(yán)重的多徑效應(yīng)和隨機(jī)衰落,同時(shí)水質(zhì)條件的不同也會對水下光通信的性能產(chǎn)生很大影響。近年來,隨著信號處理等理論技術(shù)的不斷提升和計(jì)算機(jī)性能的逐步增強(qiáng),近香農(nóng)限信道編譯碼、多載波調(diào)制技術(shù)等先進(jìn)的信號處理技術(shù)得以引入到光通信領(lǐng)域,其中,信道編碼技術(shù)是解決強(qiáng)干擾和強(qiáng)衰落性的關(guān)鍵技術(shù)之一。目前,水下光通信中使用的編碼方案主要有RS碼、低密度奇偶校驗(yàn)(Low Density Parity Check,LDPC)碼和Turbo碼等。ARIKAN在2008年提出的極化碼[2]在近年來受到了極大的關(guān)注,在2016年的3GPP會議中表現(xiàn)出優(yōu)越的性能,已經(jīng)成為了5G方案中系統(tǒng)增強(qiáng)型移動帶寬場景中控制信道的編譯碼方案[3]。由于極化碼是基于信道特性構(gòu)造的一種信道編碼方案,因此在復(fù)雜場景中利用極化碼作為信道編碼方案能夠表現(xiàn)出優(yōu)越的漸進(jìn)性能,同時(shí)其還具有其他編譯碼方案所不具備的低復(fù)雜度。雖然目前極化碼屬于信道編碼領(lǐng)域的研究熱點(diǎn),但是在水下光通信等實(shí)際場景中的應(yīng)用還非常少。
筆者首先利用了蒙特卡羅(Monte Carlo,MC)模擬算法追蹤了光子的運(yùn)動軌跡,并得到了3種不同水質(zhì)條件下水下光通信所需的離散沖激響應(yīng)。為了滿足高速率的數(shù)據(jù)傳輸要求,建立了基于極化碼的正交頻分復(fù)用(Orthogonal Frequency Division Multiplexing,OFDM)水下光通信系統(tǒng),針對收發(fā)端已知的信道狀態(tài)信息前提下,采用16正交幅度調(diào)制(16 Quadrature Amplitude Modulation,16QAM)方式,結(jié)合蒙特卡羅構(gòu)造算法完成了極化碼的構(gòu)造,并使用了基于循環(huán)冗余校驗(yàn)(Cyclic Redundancy Check,CRC)輔助的串行抵消(CRC-Aided Successive Cancellation List,CA-SCL)譯碼算法完成了基于OFDM的水下光通信中的極化碼方案的編譯碼流程。最后對比了相同碼長條件下的LDPC碼在不同信噪比(Signal Noise Ratio,SNR)條件下的性能,以此來證明極化碼在不同水質(zhì)條件的水下光通信中的性能優(yōu)勢,且在水質(zhì)環(huán)境越差的條件下能夠表現(xiàn)出更優(yōu)越的漸進(jìn)性能,另外還通過改變碼長和譯碼寬度驗(yàn)證了不同參數(shù)對極化碼在該信道下的影響。
(1)
其中,GN表示極化碼的生成矩陣。
(2)
串行抵消譯碼列表(Successive Cancellation List,SCL)算法[4]是在串行抵消譯碼算法的基礎(chǔ)上做了一定的改進(jìn),是一種廣度優(yōu)先的譯碼算法。在每一層的判決時(shí)保留最好的L條路徑,L為譯碼寬度。SCL譯碼時(shí)會同時(shí)保留“0”和“1”兩條路徑,分別計(jì)算兩條路徑的度量,當(dāng)路徑數(shù)大于L時(shí),保留置信度最高的L條路徑并刪除其他路徑,在最后一個比特譯碼結(jié)束后,選擇可信度最高的一條路徑作為最終的譯碼數(shù)據(jù)并輸出。
CA-SCL譯碼算法[5]是基于SCL譯碼算法改進(jìn)而來的。CA-SCL譯碼算法是在SCL譯碼算法中對最后剪枝得到的L條路徑進(jìn)行CRC校驗(yàn),再從通過校驗(yàn)的路徑中選出最有可能的一條。由于使用該算法極化碼的性能能夠趨近最大似然譯碼的性能,因此選取CA-SCL譯碼算法作為譯碼方案。
目前對于水下光子的追蹤和水下光通信系統(tǒng)的建立主要有解析法和MC模擬算法。解析法主要是對實(shí)際的光傳輸情況作近似處理,只能適用于限定的深度范圍,而且利用其推導(dǎo)接收信號的數(shù)學(xué)表達(dá)式相當(dāng)困難。與解析法相比,MC模擬算法具有較大的靈活性,可以應(yīng)用于不同傳輸介質(zhì)的組合中,且原理簡單,計(jì)算方便。如1968年P(guān)LASS等[6]使用MC模擬算法計(jì)算了光在云層中的散射過程,系統(tǒng)地介紹了整個傳輸過程。1982年,LERNER等[7]利用MC模擬算法分析了激光在水下不同深度的角度分布和時(shí)域分布。2013年,GABRIEL等[8]利用MC模擬算法設(shè)計(jì)了水下數(shù)十米的通信系統(tǒng),并考慮了光源、接收機(jī)等對誤碼率的影響。2018年胡思奇[9]利用MC模擬算法建立了跨介質(zhì)和純水下的信道模型,并研究了不同調(diào)制方式對水下長距離通信的影響。
利用MC模擬得到水下光子的運(yùn)動軌跡,需要事先定義幾個重要的參數(shù):① 發(fā)射機(jī)參數(shù),包括波長λ、光束寬度ω0和最大初始發(fā)散角θ0,max; ② 接收機(jī)和發(fā)射機(jī)之間的距離D;③ 接收機(jī)孔徑大小和接收機(jī)視角FOV。MC模擬水下光信道沖激響應(yīng)的具體算法步驟[8]如下:
(1) 初始化。光子的初始權(quán)重設(shè)置為單位權(quán)重,初始位置和初始發(fā)射方向可以使用3個隨機(jī)變量來確定。初始位置根據(jù)U[0,1]確定(其中U[n,m]表示服從于n到m之間的均勻分布),初始方向由散射角θ和方位角φ確定,其中θ服從U[-θ0,max,θ0,max],φ服從U[0,2π]。
(2) 光子在海水中的隨機(jī)散射。如圖1所示,光子沿初始方向傳輸,在傳輸一段距離后可能會與水中的粒子相互作用而產(chǎn)生散射,這段距離可以稱為隨機(jī)步長(記為δ)。可以使用一個服從于U[0,1]的隨機(jī)變量r來輔助生成步長δ,具體如下式:
圖1 光子與水中粒子相互作用散射圖
δ=-ln(r)/c,
(3)
其中,c表示衰減系數(shù)。
(3) 光子的權(quán)重衰減。光子在經(jīng)過與粒子的相互作用后還會發(fā)生權(quán)重的衰減,用Wpre和Wpost分別表示碰撞前后的光子權(quán)重,具體可用下式表示:
Wpost=Wpre(1-a/c) ,
(4)
其中,a表示吸收系數(shù),c表示衰減系數(shù)。文中衰減系數(shù)c取決于吸收系數(shù)a和散射系數(shù)b,表示為c=a+b。由于不同的水質(zhì)條件下的浮游生物等粒子數(shù)量不同,因此可以依據(jù)衰減系數(shù)等參數(shù)的取值差異,將水質(zhì)類型分為純凈水、沿港水和渾濁水,具體如表1所示[10]。
表1 不同水質(zhì)條件下的吸收系數(shù)、散射系數(shù)和衰減系數(shù) m-1
(4) 更新光子方向。如圖1所示,光子經(jīng)過散射后會發(fā)生方向的偏移,需要更新其散射角θ和方位角φ。方位角φ可以直接由一個服從于U[0,2π]的隨機(jī)變量表示。而散射角θ的更新需要根據(jù)水質(zhì)條件來確定。文中使用一階格林斯坦(Henyey-Greenstein model,HG)散射函數(shù)[11]來模擬光子散射,如下式所示:
(5)
(6)
根據(jù)式(5)和式(6),θ可以表示為
(7)
(5) 接收端接收。如果光子到達(dá)接收面時(shí)光子權(quán)重大于10-4則接收,否則丟棄。另外,在仿真中沒有限制FOV的值,即設(shè)置FOV=180°。
模擬接收和丟棄的光子的權(quán)重比例,并計(jì)算到達(dá)接收面之前光子走過的總路徑,利用光速(≈2.26×108m/s,水下)可以將其轉(zhuǎn)化為從發(fā)射機(jī)到接收機(jī)的傳播時(shí)延。MC模擬算法本質(zhì)上是統(tǒng)計(jì)學(xué)方法,需要依賴大量的光子進(jìn)行模擬,所以文中生成了至少106個光子。
信道沖激響應(yīng)是描述一個信道最有用的信息,其可以量化信號的衰減和時(shí)間色散。利用光子強(qiáng)度Ik來近似表示信道沖激響應(yīng),在這里把Ik描述為接收機(jī)在某一時(shí)間間隔內(nèi)接收到的m個光子的權(quán)重WR的累加,如下式所示:
(8)
筆者在MC模擬算法仿真過程中,選擇波長為532 nm的藍(lán)綠激光,發(fā)射機(jī)參數(shù)中光束寬度ω0=3 mm,最大初始發(fā)散角θ0,max=20°,通信距離D=10 m,模擬了光子在3種不同水質(zhì)條件下的散射過程,得到了其對應(yīng)的信道沖激響應(yīng),具體表示如圖2所示。在純凈水和沿港水條件下Ik下降得比較平穩(wěn),而在渾濁水這種復(fù)雜水質(zhì)條件下,Ik出現(xiàn)了較大震蕩,說明該水質(zhì)條件對通信質(zhì)量的干擾性最大。
圖2 不同水質(zhì)條件下的光子強(qiáng)度分布圖
光信號在水下信道進(jìn)行傳輸,在接收端接收到的信號yn可以表示為
yn=xnhn+vn,
(9)
其中,xn表示發(fā)送信號,vn表示方差為δ2的加性高斯白噪聲(Additive White Gaussian Noise,AWGN),hn表示離散時(shí)間信道沖激響應(yīng),可以使用式(8)與Sa函數(shù)卷積得到,具體表示見下式:
(10)
其中,T為采樣間隔。
為了滿足高速率傳輸?shù)囊?建立了基于OFDM的仿真系統(tǒng),具體流程如圖3所示。首先由發(fā)射機(jī)生成隨機(jī)的二進(jìn)制數(shù)據(jù)di,然后使用碼率為1/2的極化碼對數(shù)據(jù)進(jìn)行編碼,隨后利用16QAM對編碼好的數(shù)據(jù)進(jìn)行調(diào)制,將調(diào)制好的16QAM符號映射到不同的子載波上,并在每8個子載波上插入導(dǎo)頻,以實(shí)現(xiàn)對接收機(jī)的信道估計(jì)。最后利用快速傅里葉逆變換(Inverse Fast Fourier Transform,IFFT)將插入導(dǎo)頻以后的調(diào)制符號Sk在時(shí)域上進(jìn)行變換,得到的OFDM符號為
圖3 基于OFDM的水下光通信系統(tǒng)流程圖
(11)
其中,N為子載波數(shù),k為子載波索引,n為時(shí)間序列。為了防止碼間干擾和塊間干擾的影響,在每個OFDM塊的開頭加入循環(huán)前綴(Cycle Prefix,CP),則發(fā)送數(shù)據(jù)表示為[12]
(12)
經(jīng)過式(9)的水下信道衰減,在接收端經(jīng)過移去CP和快速傅里葉變換(Fast Fourier Transform,FFT)操作后,將信號從時(shí)域轉(zhuǎn)為頻域,對其進(jìn)行信道估計(jì)得到的復(fù)值信道頻率響應(yīng)表示為
(13)
其中,m表示第m個導(dǎo)頻子載波,且Xp(m)=3+3j和Yp(m)分別表示發(fā)送和接收的導(dǎo)頻符號。隨后計(jì)算對數(shù)似然比(Log Likelihood Ratio,LLR)作為軟信息用于極化碼的構(gòu)造和譯碼中,由于使用的16QAM調(diào)制,因此第1個比特b0的LLR的值為[13]
(14)
(15)
極化碼的構(gòu)造就是計(jì)算極化操作后各個子信道的可靠度,然后通過排序選擇出可靠度最高的K位信息位索引。目前極化碼的構(gòu)造算法主要有二進(jìn)制擦除信道(Binary Erasure Channel,BEC)構(gòu)造、信道退化構(gòu)造以及蒙特卡羅構(gòu)造等。前兩種方法分別適用于BEC信道和對稱信道,而水下光信道是典型的非對稱信道,因此文中選用蒙特卡羅構(gòu)造來進(jìn)行極化碼的構(gòu)造流程。
(16)
對于式(16)很容易看出Z(W)的取值范圍為[0,1]。因此信道容量I(W)則有
(17)
當(dāng)信道容量I(W)=1時(shí),Z(W)=0;反之,當(dāng)I(W)=0時(shí),Z(W)=1。
蒙特卡羅構(gòu)造是一種近似構(gòu)造算法,可近似模擬子信道的巴氏參數(shù),由式(4)可進(jìn)行推導(dǎo),具體見式(18):
(18)
綜上,利用蒙特卡羅構(gòu)造完成極化碼的算法流程如下:
(2) 通過解調(diào)后,根據(jù)式(14)和式(15)計(jì)算每個對數(shù)似然比信息L(yi),并將其作為譯碼輸入進(jìn)行的SC譯碼,值得注意的是,此處的SC譯碼只是為了方便計(jì)算巴士參數(shù),與文中使用的CA-SCL譯碼算法不沖突;
(4)排序挑選值最小的K個信道的索引構(gòu)成索引集合,作為該信道信息位的選擇方案。
由于極化碼的構(gòu)造是基于大量仿真得到的,為了保證整個仿真過程能夠更加準(zhǔn)確,本次實(shí)驗(yàn)進(jìn)行了106次仿真。
表2 仿真中使用到的主要參數(shù)
文中在仿真時(shí)用到的主要參數(shù)如表2所示。
根據(jù)仿真流程和表中數(shù)據(jù)進(jìn)行了極化碼的構(gòu)造和譯碼,得到了3種不同水質(zhì)中的性能結(jié)果,并與碼長相近的LDPC碼[13]進(jìn)行了對比。
在純凈水條件下的性能曲線如圖4所示,極化碼在約4.1 dB以前時(shí)性能較差,在4.5 dB~5 dB時(shí)下降較快,在4.5 dB左右時(shí)性能已經(jīng)超過了LDPC碼。在沿港水條件下的性能曲線如圖5所示,極化碼在約6.5 dB以前時(shí)下降很慢,但是在約6.5 dB以后時(shí)下降速率遠(yuǎn)超未編碼和LDPC碼,而且當(dāng)BER要求在10-3左右時(shí),極化碼比LDPC碼的性能領(lǐng)先了約0.6 dB。在渾濁水條件下的性能曲線如圖6所示,未編碼方案在30 dB以前基本沒有下降,同時(shí)極化碼和LDPC碼都下降得很慢,在24 dB以前,LDPC碼的性能優(yōu)勢比較明顯,但是隨著SNR的增加,極化碼的漸進(jìn)性能優(yōu)勢明顯地表現(xiàn)出來,而且從圖中可以清晰地看出,LDPC碼在29 dB~30 dB時(shí)曲線下降速率變慢,已經(jīng)出現(xiàn)了誤碼平層的趨勢,而極化碼在后期的曲線下降速率越來越快,能夠證明極化碼在復(fù)雜水質(zhì)條件下具有優(yōu)秀的糾錯性能和應(yīng)用前景。
圖4 純凈水條件下的性能曲線圖
圖5 沿港水條件下的性能曲線圖
圖6 渾濁水條件下的性能曲線圖
綜合來看,LDPC碼在低信噪比時(shí)性能略優(yōu)于極化碼,這也符合LDPC碼前期收斂速度快的優(yōu)勢,但是極化碼的最大優(yōu)勢在于其譯碼的漸進(jìn)性,因此隨著信噪比的增加,極化碼的性能優(yōu)勢會表現(xiàn)得越來越明顯,且隨著水質(zhì)條件的變差其漸進(jìn)性能表現(xiàn)得越明顯,另外極化碼不會出現(xiàn)LDPC碼誤碼平層的問題,這一點(diǎn)在3種水質(zhì)條件下的誤碼率性能圖中均能明顯看到。從仿真結(jié)果來看,使用糾錯碼方案能夠大大提高水下光通信的性能,而且能夠證明極化碼在水下光通信中具有優(yōu)越的自適應(yīng)性和漸進(jìn)性,與應(yīng)用更廣泛的LDPC碼相比也具有一定優(yōu)勢。
最后針對兩種糾錯碼的譯碼復(fù)雜度進(jìn)行分析。假設(shè)兩種碼的碼長均為N,LDPC碼使用的BP譯碼算法的時(shí)間復(fù)雜度為O(N),極化碼使用的CA-SCL譯碼算法的時(shí)間復(fù)雜度為O(NlogN),但是BP譯碼在實(shí)際使用中需要多次迭代,復(fù)雜度也會相應(yīng)提高,而極化碼的CA-SCL譯碼中只需一次遍歷,不需多次迭代。綜上所述,相比LDPC碼,極化碼的編碼結(jié)構(gòu)更加清晰簡單,譯碼復(fù)雜度相差不大,且在譯碼中不需要多次迭代。
6.2.1 不同碼長對系統(tǒng)性能影響分析
為了分析碼長對極化碼在水下光通信中的性能影響,此處在不同水質(zhì)條件下對不同碼長的極化碼性能進(jìn)行仿真,碼率均為0.5,且均使用譯碼寬度設(shè)置為8的CA-SCL譯碼作為譯碼方案。在保持上述相同的條件下,將極化碼的碼長分別設(shè)置為1 024和2 048,對不同碼長極化碼的誤碼性能進(jìn)行仿真。
3種不同水質(zhì)條件下的極化碼的仿真結(jié)果如圖7所示。由圖可知,在純凈水條件下,當(dāng)信噪比大于2.5 dB時(shí),碼長較長的極化碼性能更優(yōu),當(dāng)誤碼率要求在約10-4時(shí),碼長2 048比碼長1 024有約0.5 dB的增益;在沿港水條件下也符合碼長越長性能越好的性質(zhì),當(dāng)誤碼率要求在約10-4時(shí),碼長2 048比碼長1 024有約0.6 dB的增益;在渾濁水條件下依然符合該性質(zhì),當(dāng)誤碼率要求在約10-4時(shí),碼長2 048比碼長1 024有約0.6 dB的增益。
圖7 不同碼長對極化碼性能的影響
綜合來看,3種不同水質(zhì)條件下的水下光通信均滿足極化碼碼長越長性能越好的性質(zhì),且從圖7中也能清晰地看到在水質(zhì)條件更差的渾濁水中,隨著信噪比的增加極化碼的性能越好,且不會出現(xiàn)誤碼平層的現(xiàn)象。
6.2.2 譯碼寬度對系統(tǒng)性能影響分析
為了分析采用CA-SCL譯碼時(shí)譯碼寬度對極化碼性能的影響,對采用不同譯碼寬度的極化碼性能進(jìn)行了仿真。極化碼的碼長均設(shè)置為2 048,碼率均為0.5,采用CA-SCL譯碼作為譯碼方案。在保持上述相同的條件下,CA-SCL譯碼算法的譯碼寬度L分別設(shè)置為1、2、4和8。
在純凈水條件下,不同譯碼寬度的極化碼性能仿真如圖8所示,若誤碼率要求為10-2時(shí),譯碼寬度為8的極化碼相比于譯碼寬度為1的極化碼約有0.8 dB的增益;相比于譯碼寬度為2的極化碼約有0.35 dB的性能增益;相比于譯碼寬度為4的極化碼約有0.15 dB的性能增益。在沿港水條件下,不同譯碼寬度的極化碼性能仿真如圖9所示,若誤碼率要求為10-3時(shí),譯碼寬度為8的極化碼相比于譯碼寬度為1的極化碼約有1 dB的增益;相比于譯碼寬度為2的極化碼約有0.6 dB的性能增益;相比于譯碼寬度為4的極化碼約有0.25 dB的性能增益。在渾濁水條件下,不同譯碼寬度的極化碼性能仿真如圖10所示,若誤碼率要求為10-4時(shí),譯碼寬度為8的極化碼相比于譯碼寬度為1的極化碼約有1.3 dB的增益;相比于譯碼寬度為2的極化碼約有0.8 dB的性能增益;相比于譯碼寬度為4的極化碼約有0.3 dB的性能增益。
綜合來看,極化碼的譯碼寬度越寬,系統(tǒng)的性能越好。這也符合文獻(xiàn)[4]中不同譯碼寬度對于傳統(tǒng)AWGN信道性能影響的結(jié)論,且從圖8~圖10中可以看出,水質(zhì)條件越差,譯碼寬度對極化碼的性能影響越大。
圖8 純凈水下不同譯碼寬度對極化碼性能的影響
圖9 沿港水下不同譯碼寬度對極化碼性能的影響
圖10 渾濁水下不同譯碼寬度對極化碼性能的影響
筆者利用MC模擬算法模擬了3種不同水質(zhì)條件下的水下光信道的沖激響應(yīng),在此基礎(chǔ)上建立了基于OFDM的水下光通信系統(tǒng),將極化碼和16QAM調(diào)制相結(jié)合,完成了極化碼的構(gòu)造和譯碼。通過仿真將極化碼與碼長相同的LDPC碼在同等條件下進(jìn)行了對比。仿真結(jié)果表明,使用編碼方案能夠顯著地提高系統(tǒng)的誤碼率性能,同時(shí)在高信噪比條件下,極化碼的性能優(yōu)于LDPC碼,能夠獲得更高的編碼增益,表現(xiàn)出了優(yōu)越的漸進(jìn)性能。尤其在水質(zhì)條件較差的環(huán)境中,極化碼的性能優(yōu)勢更加明顯,且不會出現(xiàn)誤碼平層的問題。此外,極化碼的編碼結(jié)構(gòu)更加清晰簡單,譯碼復(fù)雜度與LDPC碼相差不大,且在譯碼中不需要多次迭代。因此采用極化碼作為水下光通信場景中的編譯碼方案具有很強(qiáng)的競爭力和應(yīng)用潛力。