戚華興,高大勇
(貴州航天林泉有限公司,貴陽 550081)
由于無線通信信道中,存在多徑干擾、多普勒效應等影響,使信號衰減和信號失真嚴重,為解決該問題,Turbo乘積碼(turbo product code)為代表的編碼技術開始出現(xiàn)。
Turbo乘積碼(以下簡稱TPC)編碼簡便易行,同時對解碼端復雜度要求低,解碼延時小。研究表明,TPC技術可使得信號增益可提高近5dB(采用MSD+TPC,TPC矩陣為(64,57)×(64,57),Pe<1×10-4時)。隨即被廣泛應用在深空通信領域、數(shù)據(jù)傳輸領域、數(shù)據(jù)存儲領域、移動通信領域中。
TPC編碼通常由兩個或三個子碼構成的二維或三維乘積碼。下面將以兩維乘積碼為例來說明它編碼的過程。
①數(shù)組的前k1行和前k2列填入信息比特
②用C1碼的編碼規(guī)則對k2列信息編碼。
③用C2碼的編碼規(guī)則對k1行信息編碼。
乘積碼P的參數(shù)為碼長信息位長度可以證明,所有列都是C1的碼字,所有行都是C2的碼字,TPC碼的編碼結構如圖1所示。本文設計的編碼結構采用(64×57)×(64×57)的二維線性分組編碼。
圖1 TPC碼編碼結構
TPC編碼器通過交織器實現(xiàn)遞歸系統(tǒng)卷積碼編碼器1和編碼器2進行并行處理,編碼器1與編碼器2結構相同。
首先將輸入碼Dk劃分為長度為N的數(shù)據(jù)信息塊分別送給卷積碼編碼器1和交織器;編碼器1輸出流Y1k;經(jīng)過交織器擾序后的Dn數(shù)據(jù)流送入卷積碼編碼器2,生成流Y2k。
流Y1k、Y2k在時鐘同步下送給刪余器,經(jīng)刪余技術不斷地刪除Y1k、Y2k中的校驗位,形成校驗位序列X輸出給復用器。
復用器把原始信息數(shù)據(jù)碼流Dk和經(jīng)過刪余器輸出的校驗位序列X,進行復用調制,最終生成TPC碼序列輸出。其編碼原理如圖2所示。
本文采用二維(64,57)擴展?jié)h明碼編碼,行編碼和列編碼為同一個子編碼器。整個編碼器分成三個部分:原始數(shù)據(jù)緩存模塊、編碼模塊、TPC數(shù)據(jù)緩存模塊。三部分在FPGA內(nèi)部并行運行,有效的提高了編碼效率。
圖2 TPC編碼器原理
整個編碼過程為:以幀為單位的二進制數(shù)據(jù)流送入編碼模塊,編碼模塊把每幀的前3249個有效數(shù)據(jù)排成57*57的矩陣A,先對矩陣A的57行進行編碼,生成57*64的矩陣B,再對矩陣B的64列進行編碼,生成64*64的矩陣C,將矩陣C的數(shù)據(jù)按行輸出即為一幀編碼數(shù)據(jù)。下面將分別介紹每個模塊的具體設計方法和仿真結果。
原始數(shù)據(jù)緩存模塊是將輸入的串行數(shù)據(jù)進行位同步后進行存儲,系統(tǒng)設計時選用FPGA自帶哄模塊異步FIFO實現(xiàn)。
編碼模塊由行編碼模塊、列編碼模塊、行緩存、行交織器、列編碼器、列緩存、列交織器等部分組成。
行編碼模塊是將緩存中的數(shù)據(jù)讀出,按照TPC的編碼多項式要求,完成行編碼;行緩存是行編碼的數(shù)據(jù)以行為單位,寫入緩存中;行交織器是將緩存中以行為單位的數(shù)據(jù)按列進行提?。涣芯幋a器是將提取的列數(shù)據(jù)按照TPC的編碼多項式,完成列編碼;列緩存是將完成列編碼的數(shù)據(jù)以列為單位,寫入緩存中;列交織器是將以列為單位進行存儲的數(shù)據(jù),變換為以行為單位。
TPC數(shù)據(jù)輸出模塊是將變換后的數(shù)據(jù)進行存儲;并根據(jù)邏輯將緩存中完成TPC編碼的數(shù)據(jù)讀出,并按照規(guī)定的碼率、碼型將數(shù)據(jù)輸出。
根據(jù)原理,搭建了試驗平臺,主控芯片為XC6SLX4-2TQG-144C,試驗驗證平板如圖3所示。經(jīng)試驗驗證,本編碼器能夠實現(xiàn)二維(64,57)擴展?jié)h明碼結構的TPC編碼。
本文在FPGA平臺中設計并實現(xiàn)了基于二維(64,57)擴展?jié)h明碼結構的TPC編碼器,其原理樣機已通過地面試驗驗證,其設計在深空通信領域、數(shù)據(jù)傳輸領域、數(shù)據(jù)存儲領域、移動通信領域等領域有廣泛的參考價值。