周 宇,張 峰,劉 艷
(西安工業大學 電子信息工程學院,陜西 西安 710021)
電力線通信(Power Line Commun-ication,PLC) 是現代智能電網中的一種重要通信方式,在智能家居、能源控制和智能抄表等場合有著廣泛應用[1]。
G3-PLC 技術是基于OFDM 技術的高速窄帶電力線載波技術體系。OFDM 因具有抗多徑干擾和頻率選擇性等特點,非常適合在電力線載波通信系統中使用。但是,由于電力線信道特性惡劣,噪聲顯著且具有時變性[2],通信質量易受信號衰減、阻抗匹配等多種因素的影響。如何提高電力線通信的可靠性,一直是研究的熱點[3]。
文獻[4]表明準確的符號定時同步是實現OFDM 系統數據可靠傳輸的關鍵,目前主要的延時自相關同步方法具有一段峰值平臺,不利于準確的符號定時同步。文獻[5]指出,相比PRIME 標準,G3-PLC 標準抗干擾性良好,但速率相對較低,結構復雜,不利于硬件實現。
針對上述問題,本文在對G3-PLC 物理層信號傳輸模型、信號處理算法及信號的可靠傳輸進行優化研究的基礎上,以ARM 處理器為核心,實現基于G3 標準的電力線載波通信系統,極大地改善了系統效率和數據傳輸的可靠性。
G3-PLC 系統中核心的PLC 信號處理單元涉及的算法較多,計算量大,且系統對實時性要求較高。本文選擇意法半導體的ARM 處理器STM32F4 構建PLC 信號處理單元。該處理器主頻400 MHz,片上資源豐富,能夠滿足PLC 信號處理單元對處理速度、控制、參數配置及通信接口等各方面的開發需求。信號傳輸模型的硬件平臺方案,如圖1 所示。

圖1 系統方案
實現方案具體工作原理如下。
數據發送:終端設備A 將待傳輸的數據通過UART 傳送至PLC 信號處理單元,經過各種編碼處理及OFDM 調制后形成多載波信號,再進行D/A 轉換將待傳輸模擬信號由耦合單元耦合至電力線發送。
數據接收:電力線上傳輸的信號由耦合單元接收,經自動增益控制模塊處理成為PLC 信號處理單元要求的幅度范圍,經A/D 轉換由PLC 信號處理單元進行存儲、OFDM 解調及譯碼處理形成接收數據,通過UART 傳送至通信終端設備B。
OFDM 通過FFT 將寬帶信道分成許多正交的子信道,將連續的高速數據流轉變為許多平行的低速數據流并調制在不同的子載波上[6]。
在OFDM 系統中,若電力線信道被分為N個具有相互正交特性的子信道傳輸信號,發送端的N個信號用S=[s0,s1,…,sN]T表示,則每個OFDM 符號由N個調制后的子載波合成。OFDM 調制解調原理可以用數學公式表示為:

式中,0 ≤t≤T,T表示OFDM 符號持續時間;si表示第i個子信道中的待傳輸信息;fi表示第i個信道對應的載波頻率。
IFFT/FFT 算法的實現與優化在OFDM 系統中至關重要。針對浮點FFT 運算量大以及浮點單片機存在功耗大、價格高、計算效率低等問題,采用浮點格式與Q0~Q31定點格式的程序轉換,提高系統運算效率。浮點轉定點可表示為:

其中x表示浮點數,Xk表示轉換后的定點數,k為移位次數。由于ARM 中移位操作可以作為四則運算指令的一部分不占用額外的指令周期,可大大提高格式轉換效率。本文通過ARM 外設定時器測試FFT 運行時間,結果表明,浮點FFT 運行時間為8.80 ms,而定點FFT 僅為0.47 ms,運算時間大幅減少。FFT 效率的提高加快了OFDM 符號輸出的頻率,提高了系統通信速率。
傳輸數據經多載波合成得到的信號一般為復值信號。為保證OFDM 調制信號為實信號,避免接收端的相關檢測,需對幀結構進行合理設計。
由于任一復數序列可進行虛實分解,即:

式(5)中:

對式(6)和式(7)分別進行DFT 變換,得:

由上述可知,為了使基帶OFDM 調制信號實數化即需要使Xop(k)為零,對應的X(k)=X*(N-k),即將IFFT 之前的N/2 個信息數據與該N/2 個信息數據的共軛倒序信息數據共同組成長度為N的具有共軛對稱特性的信息數據。
結合推導,設計的OFDM 符號結構如圖2 所示。

圖2 OFDM 符號幀結構
圖2 中一個OFDM 符號結構包含N個子載波,m個有效子載波,整個OFDM 符號幀關于中心對稱。在進行N點IFFT 變換時,可保證OFDM 信號為實信號,減少系統運算量。
符號同步的目的是使接收端得到與發送端相同周期的符號序列。為了使OFDM 系統中數據可靠傳輸,必須解決惡劣電力環境下的數據同步問題。
系統中,發送端在每個符號前加一小段高電平信號,接收端通過高電平檢測判斷OFDM 符號的位置。發送端D/A 模塊由定時器中斷控制轉換頻率,接收端由定時器觸發A/D 轉換,并通過DMA 完成A/D 模塊與存儲器的數據傳輸,將DMA 配置為每傳輸N個數據產生一次傳輸完成中斷。由于系統中每個OFDM 符號包含N個子載波且帶一小段峰值電平,所以最多兩次DMA 傳輸可得到一個完整的OFDM 符號。
在程序中通過狀態轉移的方法實現符號同步。設計的狀態轉移方案如圖3 所示。

圖3 狀態轉移方案
S0狀態:待DMA 接收完成一組數據后,將C置1,然后判斷DMA 是否為第一次傳輸數據;若是,則進狀態S1,否則進入狀態S2。
S1狀態:對DMA 傳輸過來的數據進行閾值判斷,尋找FFT 窗的起始位置W;若未找到窗的起始位置,W置-1,進入S0狀態;若W>0,則進入狀態S2;W=0,則進入S3。
S2狀態:若是DMA 第一次傳輸的數據,將數據的W~N-1 位賦值給數組FFT[]的0 ~N-W-1位,C置0,進入S0狀態。若是第二次DMA 數據,則將DMA 傳輸數據的0 ~W-1 位的值賦給數組FFT[],并將C置0,T 置1,進入狀態S3。
S3狀態:對fft[]中的數據進行解調,將T和F置0,進入狀態S0。
狀態轉移變量描述,如表1 所示。

表1 狀態轉移變量描述
3.2.1 利用RS 編碼糾正系統突發錯誤
RS 編碼(Reed-Solomon Codes,RS)是一種m進制BCH 碼。實際應用時,m被設置為2q,即每個碼元由q個二進制比特序列組成。RS 碼具有很強的糾錯能力,編碼效率高,適合糾正突發錯誤。編碼器如圖4 所示。

圖4 編碼器結構
將k個碼元信息分兩路輸入編碼器中,在完成除法功能后,把余式的系數保留在移位寄存器中,即保存所有生成的監督碼元。
將得到的監督碼元按順序跟在原始輸入信息碼元后面組成RS(n,k)碼。系統接收端利用BM 迭代算法進行RS 譯碼,運算復雜度較低,可滿足通信實時性。
3.2.2 利用卷積編碼消除系統錯誤
G3-PLC 系統權衡了卷積編碼的編碼效率與約束度兩種因素,最終選用(2,1,7)卷積編碼。編碼電路中采用6 位移位寄存器,對應的編碼效率為1/2,約束度N=7。卷積編碼器如圖5 表示。

圖5 卷積碼編碼器
在接收端采用維特比譯碼算法,維特比算法利用卷積碼的網格結構,大大降低了譯碼復雜度,具有高效性、實時性和準確性。
3.2.3 利用時頻聯合分段重構提高系統抗擾性
為了同時在時頻二維空間中增強系統的抗干擾性,對信號進行時頻聯合分段重構。對待編碼信息先按照頻域分段重構算法進行編碼,經IFFT 調制后再進行時域分段重構[7]。
分段重構算法原理如下。有用的OFDM 信號為E,經分段重構編碼后的信息用S(m,l)表示,分段重構編碼原理可用式(10)描述:

式中,m表示子載波的個數,n1表示分段重構次數,l表示OFDM 信息的序號,u為整型變量且有u=0,1,2,3,…,n1-1。
發送端信號進行時頻聯合分段重構后,接收端利用最大似然譯碼方法,依據信息所占的比率判斷發送信息,能夠極大提高譯碼準確性。
維納濾波(Wiener Filtering)是一種基于最小均方誤差準則對平穩過程的最優估計器,結構如圖6 所示。

圖6 維納濾波結構
s(n)是原始信號,w(n)是噪聲信號,則輸入信號為:

輸出信號可表示為:

根據最小均方誤差準則,最佳濾波器的加權系數h(k)應滿足維納-霍夫方程:

其中,xxφ表示x(n)的自相關序列,sxφ表示x(n)和s(n)的互相關序列。
維納濾波要求信號是平穩的,直接運用維納濾波效果較差。因此,利用循環維納濾波對OFDM 信號進行處理,以便在較低階次時依然有較好的濾波效果[8]。
考慮到維納-霍夫方程的求解運算量較大,為了減少運算量,采用萊文森遞推算法求式(10)的最優解,避免了矩陣求逆運算。
在電力線系統中采用循環維納濾波器的算法過程如下。
(1)對待濾波信號x(n)進行分段處理,每一小段待處理信號的長度大于一個完整的OFDM 信號的長度,形成新的待濾波信號x(l,k):

其中,k表示第k段信號,l表示分段長度。
(2)若分段長度為N,對待濾波信號x(l,1)進行自相關:

對待濾波信號x(l,1)和期望信號s(l,1)的互相 關為:

根據維納霍夫方程得出第1 段的系統函數h(n,1),計算y(l,1):

同理,對待濾波信號x(l,k),k=2,3,…,m的自相 關為:

對待濾波信號x(l,k)和y(l,k-1)的互相關為:

根據維納霍夫方程得出第k段的系統函數h(n,k),計算y(l,k):

(3)信號重組,將y(l,k)依次連接,組成濾波輸出結果y(n)。
4.1 系統可靠性測試
為了驗證通信系統性能,利用MATLAB 對系統進行仿真,系統參數按照G3 標準進行設置。時頻聯合分段次數均為4 次,循環維納濾波階次為60,在實測電力線信道環境下對每個信噪比進行800 幀數據測試,多次實驗得到誤碼率曲線如圖7 所示。

圖7 系統誤碼率
由圖7 分析可知:通信系統受實際的電力線噪聲干擾時,信噪比從-16 dB 開始誤碼率下降明顯,在信噪比為-11 dB 時誤碼率可達10-4,表明設計的通信系統可靠性高,可以滿足一般通信需求。
系統測試方案如圖8 所示,采用兩臺PC 機作為系統的通信終端,通過UART 和ARM 發送單元及接收單元通信。按照G3-PLC 標準進行參數設置,最后采用電力線作為通信測試信道。
通信終端A 通過串口助手連續發送由0 和1 組成的數據,由ARM 發射機進行編碼和調制后發送到ARM 接收機。接收機對接收到的數據進行濾波、解調和解碼,并將解碼后的數據顯示到串口助手。通過對比發現,系統收發數據相同且保持同步。系統通信速率可達100 kb/s,驗證了設計的通信系統的合理性。

圖8 系統測試方案
論文在高性能、低功耗的ARM 上實現G3-PLC通信系統,成功進行了數據發送和接收的系統驗證,結果表明:
(1)在糾錯編碼的基礎上,將循環維納濾波算法和時頻聯合分段重構編碼引入G3-PLC 系統,大幅提高了系統抗干擾性能。
(2)狀態轉移方案的設計,解決了接收機數據狀態和進度不同步的問題。
(3)對稱的幀結構設計及定點化FFT,提高了系統運行效率。