陳 果,彭小峰,曹 陽,任發韜,李小紅
(重慶理工大學 電氣與電子工程學院, 重慶 400054)
電力線通信(power line communication,PLC)具有覆蓋廣、成本低、用戶多等優點,是當前通信領域的一個研究熱點。然而,信號在電力線中傳輸時,會受到具有易突發、高強度的脈沖噪聲影響,導致電力線通信系統性能下降,嚴重阻礙電力線通信的發展[1]。
為克服脈沖噪聲對電力線通信的影響,人們提出了多種技術,例如信源編碼、信道編碼、OFDM技術等。其中,信道編碼無需改變現有的系統結構,是最為經濟的方法,因而受到國內外的廣泛關注。Daisuke Umehara等[2]提出了一種適用于加性白噪聲(additive white class a noise,AWAN)的Turbo碼以減輕電力線中的脈沖干擾,結果表明采用Turbo碼有效地提升了系統的性能。NikoletaAndreadou等[3]提出了LT碼與LDPC碼級聯的方案來提高系統的性能,并分別對LDPC碼作為外碼和內碼進行了性能分析,仿真表明LDPC-LT(Raptor)碼具有更好的性能。Zhaopeng Xu等[4]通過Raptor碼來解決PLC中的脈沖噪聲,其仿真結果表明Raptor碼能降低脈沖噪聲下的誤碼率。但Turbo碼具有較高的誤碼平層,需要級聯其他碼才能達到PLC通信要求。而在硬判決情況下,LT與LDPC碼級聯方案(Raptor編碼)會產生較高的誤碼率。
為提高抗脈沖干擾能力,并解決硬判決下Raptor碼的高誤碼率,在ML譯碼下,本文提出一種CRC碼(cyclic redundancy checks)與Raptor碼級聯的級聯碼方案,簡稱CRC-Raptor碼。首先,基于假設條件,給出了基于CRC-Raptor碼的PLC系統模型和電力線的信道模型;然后介紹具體的編碼方案,并推導CRC-Raptor碼在PLC系統中的譯碼失敗率;最后,對譯碼成功率與SNR、SNR和誤碼率的關系進行仿真,分析不同碼長下的譯碼成功率和誤碼率,并對CRC-Raptor、Raptor和CRC碼進行性能比較。仿真結果表明:當SNR達到一定值時,譯碼成功率會發生躍變;碼長越長,譯碼成功所需的SNR也就越??;CRC-Raptor碼相比Raptor碼和LT碼,編碼增益有明顯提升。
CRC-Raptor碼的PLC系統結構如圖1所示:二進制信息被分為n組,每組kbit,分別對每組信息進行CRC編碼,每組信息增加位的校驗信息,得到n組信息,每組(k+l)bit,再進行Raptor編碼,獲得m×(k+l)bit信息。將信息調制后,經電力線信道傳輸,將信息進行解調,得到m″組信息,每組(k+l)bit,然后對接收到的信息進行CRC校驗,校驗正確的包再利用Raptor譯碼器恢復出原有的信息,而錯誤的包則直接刪除。

圖1 PLC系統模型
為了表示電力線信道中的信號衰減特性以及頻率選擇特性,Zimmermann提出了多徑電力線信道傳輸模型,給定的信道頻率響應可表示為[5]:
0≤f≤B
(1)
式中:Np為總的信號傳輸路徑數,路徑的數目和其長度服從泊松過程,其單位長度的路徑速率v=0.2,最大路徑長度dmax=800 m。參數設置為:K=1,a0=0.3×10-2,a1=4×10-10,vp=2×108,路徑增益為[-1,1]的均勻分布[6]。其中:K是衰減因子指數;a0、a1表示衰減參數;di表示路徑的長度;di/vp表示路徑i的延時。頻段0~37.5 MHz用于信道生成,而2~28 MHz的子信道用于信息傳輸。

Middleton A類噪聲模型是表示電力線脈沖噪聲的常用數學模型之一[7],由許多服從泊松分布的脈沖噪聲組成,其噪聲幅度v的概率密度函數[8]為:
(2)

循環冗余校驗碼(cyclic redundancy check code,CRC碼)是一種系統的縮短循環碼,只能檢錯,而不能糾錯,但是具有良好的檢錯性能,所以被廣泛應用于幀校驗。CRC碼的結構如圖2所示。

圖2 CRC碼的結構
圖2中,m(x)的k個系數對應k個信息位,r(x)的(n-k)個系數對應(n-k)個校驗位,整個c(x)就是一個碼字。m(x)為(k-1)次多項式,r(x)為(n-k-1)次多項式,c(x)為(n-1)次多項式,g(x)為(n-k)次的生成多項式。
編碼時,發送端把長度為k的原始數據表示成二進制多項式m(x),m(x)首先與xn-k相乘,然后再被g(x)整除,得到長度為n-k的余式r(x),即
r(x)=(m(x)·xn-k)modg(x)
(3)
校驗時,如果接收碼字c′(x)可以被生成多項式g(x)整除,則c′(x)=c(x);否則c(x)在傳輸過程中出錯。錯誤碼字能夠通過CRC校驗的概率非常低,例如:采用16位的CRC校驗函數,其檢錯率達到99%以上。
Raptor碼編碼原理由文獻[9]給出。本文采用CRC-Raptor的級聯編碼方案,相比傳統的編碼順序,其編碼時間更短。
由于Raptor碼的本質是包的異或,我們將使用分組異或代替Raptor來證明該方法的有效性。假設Pi是一個P×i的源符號,Q是源包異或生成的編碼符號,Pic、Qc分別是Pi、Q的CRC值。一個符號Pi可以表示成一個多項式Pi(x),同時m-bit的CRC因子可以表示為m階的多項式G(x)。包異或生成的編碼符號Q可以表示為Q(X)=P1(x)?P2(x),在GF(2)中符號“⊕”表示異或運算。假設采用CRC-32,編碼符號Q的零初始化CRC值可以表示為:
CRCz(Q)=xm[P1(x)⊕P2(x)]modG(x)=
xm[P1(x)]modG(x)⊕
xm[P2(x)]modG(x)=
CRCz(P1)⊕CRCz(P2)
(4)
式(4)可以證明在編碼過程中,CRC-Raptor的編碼方案是可行的,即CRC的編碼順序不會影響編碼過程,同時CRC-Raptor的編碼方案能節省較多編碼時間,得到更好的性能。

首先對Raptor碼ζ(γ,k,Ω,Φ)的ML譯碼性能界進行分析,Raptor碼ζ(γ,k,Ω,Φ)的碼字生成式為
(5)

(6)
根據文獻[11]矩陣乘積的性質,可以得到:
(7)
式中:N(·)表示矩陣的零向量空間;R(·)表示由矩陣生成的列向量空間。由于使用系統LDGM碼,所以預編碼生成矩陣一定是滿秩,因此譯碼失敗率可以改寫為:
(8)
(9)
結合電力線信道并參考文獻[12]推導出電力線信道下CRC-Raptor碼ML譯碼失敗概率的上界
(10)
(11)
(12)

電力線通信中CRC-Raptor碼ML譯碼失敗概率的下界為

(13)

為了驗證CRC-Raptor碼對電力線通信中脈沖噪聲的抗干擾能力,在Matlab環境下建立電力線信道噪聲模型,對其系統性能進行仿真。仿真參數設置如下:選取16位的CRC碼,LDGM碼的碼率為1/2,LT碼的度分布為魯棒孤子度分布[13],其中c=0.03,δ=0.2。信道參數:Γ=0.1,即脈沖噪聲方差超過背景噪聲10倍,時間間隔λ=0.015,脈沖持續時間td均勻分布在10 μs

圖3 ML譯碼成功率上下限
圖3為Raptor碼長K=1 000時,得到的ML譯碼成功率上下限。從圖3中譯碼成功率與SNR的關系可以看出:SNR較低時,譯碼成功率幾乎等于0;而當SNR增加到一定值時,譯碼成功率出現跳躍式增長,同時仿真得到的關系圖處于譯碼上限和下限的范圍內;當SNR為18~22 dB時,譯碼成功率由0躍變至1。
圖4為不同碼長情況下譯碼成功率與SNR的關系,其中K分別取500、1 000、1 500。從圖4可以看出:SNR為一定值時,譯碼成功率會出現跳躍式增長;隨著K值的增大,產生躍變所需要的SNR也越小。碼長K=1 500時,ML譯碼成功率在SNR為14~16 dB區間時出現跳躍式增長;碼長K=1 000時,譯碼成功率在SNR為19~21 dB區間出現躍變;碼長K=500時,SNR處于24~26 dB區間時,譯碼成功率發生躍變。該仿真結果進一步說明碼長K越長,則譯碼成功所需的SNR也就越小。

圖4 不同碼長時ML譯碼成功率與SNR的關系
圖5為采用不同信道編碼情況下的誤碼率與SNR關系,碼長K=1 000。由圖5可以看出:CRC-Raptor級聯編碼的性能優于Raptor碼和LT碼。當SNR為12 dB時,CRC-Raptor碼的誤碼率約為3×10-4,Raptor碼誤碼率約為9×10-3,而LT碼的誤碼率約為9×10-2,CRC-Raptor相比于Raptor碼,其誤碼率下降了約8.7×10-3,而相比于LT碼下降了約8.97×10-2,其誤碼率明顯降低。因此,采用CRC-Raptor編碼方案有效地改善了電力線通信系統的性能。

圖5 誤碼率與SNR的關系
本文提出了CRC-Raptor編碼方案來克服PLC中的脈沖噪聲。LT碼由于結構和譯碼算法原因,其譯碼過程中單個錯誤在解碼過程中會產生多個錯誤,所以LT碼不適用于電力線信道。從理論上分析 CRC-Raptor碼在ML譯碼下的譯碼失敗率上下限,并利用Matlab對其進行仿真。仿真結果表明:K=1 000,當SNR∈(18,21)時,譯碼成功率迅速地從0躍變為無限接近于1;不同碼長情況下,譯碼成功率與SNR的關系也不同,碼長越長,譯碼成功率在SNR較小時就會出現躍變,如K=1 500,SNR∈(13,15)時,譯碼成功率迅速上升;誤碼率與SNR關系表明:CRC-Raptor碼是一種高糾錯性能的編碼方式,相比Raptor與LT碼具有更明顯的優勢。