張樺林,孫發(fā)魚,2,唐 強
(1.西安機電信息技術(shù)研究所,陜西 西安 710065;2.機電動態(tài)控制重點實驗室,陜西 西安 710065)
近年來遠程武器彈藥的發(fā)展逐步邁向制導智能化、控制精細化等方向,其信息化、數(shù)字化和研制復雜程度大幅度提升[1],因此在武器系統(tǒng)研制過程中必須利用先進的試驗測試手段,遙測設備作為武器彈藥飛行試驗時必不可少的組成部分,既是試驗是否成功的鑒定方法,又是在出現(xiàn)故障后尋找故障原因的診斷手段。
目前的遙測飛行試驗任務呈現(xiàn)出大射程、超視距、高碼率等特點。且彈藥所處的空間電磁環(huán)境復雜多變,會對遙測無線電信號產(chǎn)生干擾,同時遙測無線電信號的多徑效應,也不利于箭地無線通信,尤其是高碼率無線遙測的正常工作[2]。目前在研的遠程火箭彈型號項目飛行試驗均面臨遙測傳輸距離長,遙測傳輸數(shù)據(jù)量大的挑戰(zhàn),這些試驗要求都對遙測信號的傳輸質(zhì)量提出了更高標準[3],故有效提高遙測系統(tǒng)的通信可靠性,對于遙測任務中箭地間的信息傳輸十分重要。
新一代遙測系統(tǒng)有著提高數(shù)據(jù)傳輸速率、通信可靠性和頻帶利用率的要求。目前主流遙測技術(shù)體制PCM/FM,由于較低的功率和頻譜利用率,已經(jīng)不能滿足實際應用的需求。將TPC編譯碼技術(shù)與BPSK/QPSK等高效頻譜調(diào)制技術(shù)相結(jié)合,研究其在兵器彈箭遙測系統(tǒng)中的應用,有著非常重要的意義,可以提高系統(tǒng)的抗噪聲性能,保障遙測傳輸?shù)目煽啃訹1]。
隨著彈箭遙測傳輸速率的不斷提高, 其解調(diào)門限效應和功率利用率低等問題已不能滿足日益增長的實際需求。為解決高碼率(5~10 Mb/s)遙測數(shù)據(jù)傳輸過程中出現(xiàn)的無線作用距離下降和傳輸可靠性低等問題,將信道編碼技術(shù)應用在遙測系統(tǒng)中。在彈載空間資源有限的情況下,相比提高發(fā)射功率與增加接收天線口徑的傳統(tǒng)手段,采用信道編碼技術(shù)是一種經(jīng)濟高效的解決方式,可在保持彈上發(fā)射機輸出功率和地面接收天線直徑不變的情況下額外獲得較大的信道增益,確保遙測數(shù)據(jù)正確可靠,有效提高彈箭飛行體與地面站間通信的質(zhì)量。
本文以目前在研的遠程制導火箭彈飛行試驗為背景,針對遠距離、高碼速率及復雜環(huán)境下彈上回傳數(shù)據(jù)的高誤碼率問題,提出在現(xiàn)有彈箭遙測通統(tǒng)中,加入TPC信道編碼模塊,以改善通信的可靠性。在研究TPC編碼算法的基礎(chǔ)之上,結(jié)合兵器遙測實際工程項目需求,基于Altera 公司Cyclone Ⅳ系列FPGA EP4CE10F17C8平臺,提出一種高集成,小型化,具有較高編碼增益和編碼效率的TPC編碼模塊設計和實現(xiàn)方法。
TPC編碼,又名Turbo乘積碼,是一種性能接近香農(nóng)極限的優(yōu)良信道編碼技術(shù),具有編繹碼結(jié)構(gòu)簡單、碼長靈活,負載度較小的特點,可以在不增大系統(tǒng)帶寬的條件下,取得較好的編碼增益[4]。TPC碼由Turbo碼改進而來,相比之下,TPC編碼器不含復雜的交織器,硬件結(jié)構(gòu)更加簡單,且編碼增益不會隨著碼率的提高而迅速下降,且譯碼延時更小。相比RS編碼、卷積碼,TPC碼具有更高的編碼增益和效率[2]。相比于LDPC碼復雜編碼過程,TPC碼具有編碼算法更加簡單的優(yōu)勢。同時TPC碼擁有分量碼選擇多樣,可變碼長的特點,可以較好地適應不同需求背景的兵器高碼率箭地遙測通信。
從編碼結(jié)構(gòu)的角度可以將TPC碼理解為一種級聯(lián)塊狀碼,一般由2個及以上的分量碼構(gòu)成,也可以按同樣的構(gòu)造方式擴展到多維[5]。TPC碼在分量碼選擇上具有多樣性,可以是 RS碼、漢明碼、BCH碼、奇偶校驗碼和擴展?jié)h明碼等[6-8]。由于可以根據(jù)需要來決定分量碼個數(shù),因此TPC編碼在算法復雜度上更為靈活,具有相對較高的可調(diào)性。目前在航天領(lǐng)域,主要以擴展?jié)h明碼做為TPC碼的分量碼,已廣泛應用于衛(wèi)星通信系統(tǒng)中。在國際航天遙測等領(lǐng)域,通常采用IEEE 802.16標準進行TPC編碼的設計[2]。IEEE 802.16標準所推薦TPC碼的碼型如表1所示。
表1 IEEE802.16標準推薦碼型Tab.1 IEEE802.16 recommended code type
可見奇偶校驗碼的編碼效率相比擴展?jié)h明碼更高,但由于奇偶校驗碼的糾錯能力較差,以及兩種不同碼長組合的擴展?jié)h明碼的算法復雜度過大,故一般情況優(yōu)先考慮相同碼長的二維擴展?jié)h明碼作為TPC碼的分量碼。
從編碼原理的角度理解,可以將TPC碼看作是一種串行級聯(lián)分組碼,編碼器由其分量碼的編碼器級聯(lián)而成。以二維TPC碼為例,其擁有2個分量碼,編碼結(jié)構(gòu)如圖1所示。
圖1 二維TPC編碼結(jié)構(gòu)Fig.1 Two-dimensional TPC coding structure
二維TPC碼的編碼步驟為:
1) 將k2×k1的信息位矩陣按順序輸入編碼器的存儲單元;
2) 用C1碼完成k2行編碼,得到k2×n1的數(shù)據(jù)矩陣;
3) 用C2碼的規(guī)則完成n1列編碼,得到n2×n1的數(shù)據(jù)矩陣;
其中行編碼與列編碼的先后順序可以互換[9-10]。二維TPC碼的編碼過程如圖2所示。
圖2 二維TPC碼編碼過程 Fig.2 Schematic diagram of TPC coding
TPC碼的編碼方法,以IEEE 802.16標準推薦的(64,57)×(64,57)擴展?jié)h明碼作為分量碼的二維TPC碼為例,每個碼字包含57個信息位,7個校驗位,其中校驗位與信息位的運算關(guān)系如式(1)所示:
(1)
定義一個TPC編碼前的原始遙測數(shù)據(jù)矩陣M,大小為k×k,只包含信息位,I1為遙測數(shù)據(jù)經(jīng)TPC行編碼生成大小為k×n的矩陣,I2為遙測數(shù)據(jù)經(jīng)TPC列編碼后大小為n×n的矩陣,I1、I2均包含由信息位與校驗位;G為TPC分量碼的生成矩陣。其中M、I1、I2三者滿足如式(2)式(3)所示關(guān)系:
I1k×n=Mk×k×Gk×n,
(2)
(3)
進行TPC行列編碼時,各原始信息碼字m1,m2,…,mk通過編碼運算,得到其相應的編碼后碼字i1,i2,…,in,各碼字組成一個TPC碼組,完成編碼后得到的主要參數(shù)為
碼長:n=n1×n2,
信息位:k=k1×k2,
碼率:R=R1×R2=k1/n1×k2/n2,
最小漢明距離:dmin=dmin1×dmin2。
由通信編碼理論可知,若分量碼C1可以糾正t1=(d1-1)/2個錯誤,分量碼C2可以糾正t2=(d2-1)/2個錯誤,故可知二維TPC碼C可以糾正t=(d1×d2-1)/2個錯誤[11]。
由IEEE 802.16標準可知,TPC碼的子碼選擇眾多,不同子碼類型TPC碼的編碼效率、糾錯性能不同,其占用邏輯資源及算法復雜度也不同,當?shù)螖?shù)過多時,會出現(xiàn)大量延時等問題。與此同時由于飛行過程中彈上的高過載環(huán)境,有限的空間存儲資源以及對數(shù)據(jù)傳輸實時性的嚴格要求,對兵器彈載遙測TPC編碼器軟硬件的設計,應在誤碼率與編碼增益得到提高的基礎(chǔ)上,兼顧硬件運行速度、軟件算法復雜度、邏輯資源消耗等具體要求[1-2],綜合糾錯性能和較小延時的性能需求,選擇合理的TPC分量碼及譯碼迭代次數(shù)。
在Matlab中使用AWGN信道對火箭彈飛行環(huán)境進行模擬,使用BPSK調(diào)制方式,通過對不同分量碼類型的TPC編碼進行不同次數(shù)的迭代仿真,對TPC編碼效果及糾錯性能進行分析。
2.1.1分量碼的選擇
選取IEEE 802.16標準推薦碼型中的(16,11)×(16,11),(32,26)×(32,26),(64,57)×(64,57),(128,120)×(128,120)四種不同類型的分量碼進行編碼仿真,結(jié)果如圖3所示。
圖3 不同碼型TPC碼BER的仿真曲線Fig.3 Simulation of different type TPC code bit error rate
分析圖3的誤碼率變化曲線可知,經(jīng)過TPC編碼后,遙測數(shù)據(jù)誤碼率有明顯降低??傮w來講,當信噪比較低時,在同一誤碼率量級下,短碼與長碼的糾錯能力相差不大,可提供的編碼增益相近,當信噪比達到4 dB左右時,采用長碼作為分量碼的TPC編碼效果更佳。在理論上碼長越長,糾錯能力和編碼效率越高,然而如果碼長過大,會占用過多硬件邏輯資源,增加編譯碼算法復雜度,故綜合考慮使用碼長適中,糾錯能力較強的(64,57)×(64,57)擴展?jié)h明碼作為分量碼,進行下一步設計仿真。
2.1.2迭代次數(shù)對TPC編碼性能的影響
對分量碼為(64,57)×(64,57)二維TPC碼進行不同迭代次數(shù)的仿真,結(jié)果如圖4所示。
圖4 不同迭代次數(shù)仿真結(jié)果Fig.4 Simulation of different iterations
由圖4的仿真結(jié)果可知,經(jīng)TPC編碼可有效提高編碼增益,且迭代次數(shù)越多,系統(tǒng)對數(shù)據(jù)傳輸過程中產(chǎn)生誤碼的糾錯能力越強。當誤碼率為10-4數(shù)量級時,經(jīng)過1次迭代,TPC編碼可提供的增益約3.5 dB,經(jīng)過2次迭代,TPC編碼可提供的增益約為4 dB,迭代3次可提供的編碼增益約4.5 dB,迭代4次可提供的編碼增益約5 dB。而當?shù)螖?shù)過多時,編譯碼器占用的邏輯資源會相應增加,編譯碼過程的延時急劇增大,此時TPC編碼對于顯著降低誤碼率,提高編碼增益的能力相對減弱,故使用4次迭代,即可較好地平衡性能和復雜度的需求。
經(jīng)上述仿真分析,在誤碼率達到10-4數(shù)量級時,使用擴展?jié)h明碼(64,57)×(64,57),迭代4次時,相比不經(jīng)過信道編碼直接傳輸數(shù)據(jù),提供了5 dB左右的編碼增益,綜合考慮糾錯能力、編譯碼實時性、編碼器占用資源和軟硬件實現(xiàn)復雜度等因素,使用IEEE 802.16標準推薦碼型(64,57)×(64,57)擴展?jié)h明碼作為二維TPC編碼的分量碼,進行信道編碼模塊軟硬件實現(xiàn),可以滿足箭地數(shù)據(jù)通信的可靠性要求。
在遠程制導火箭彈飛行試驗中,彈上遙測系統(tǒng)具有傳輸數(shù)據(jù)量大、實時性要求高、硬件資源少等特點,實際項目和工程常面臨體積、重量和功耗等指標的嚴格限制。FPGA作為一種運算速率高,系統(tǒng)功耗低的實用性硬件架構(gòu),適應彈上嚴苛的環(huán)境和低功耗的應用需求,可以較好地將遙測信道編碼算法與硬件集成。
2.2.1TPC編碼單元結(jié)構(gòu)
每個TPC遙測信道編碼單元,由同步字(32 bit)和TPC編碼數(shù)據(jù)(4 096 bit)構(gòu)成。TPC編碼數(shù)據(jù)由原始信息碼元(3 249 bit)和校驗位(847 bit)組成。原始信息碼元包括數(shù)據(jù)有效標識(16 bit)、遙測數(shù)據(jù)(3 232 bit)和保留位(1 bit)。TPC遙測信道編碼的單元組成如圖5所示。
圖5 TPC遙測信道編碼單元組成示意Fig.5 Schematic diagram of channel coding unit
2.2.2工程實現(xiàn)
彈載遙測數(shù)據(jù)在進行TPC信道編碼時,首先生成同步字、數(shù)據(jù)有效標識,生成初始信息矩陣和保留位一般均默認為0。隨后按行輸入初始信息數(shù)據(jù),得到57×57的信息矩陣,依次計算出各行校驗位,并將計算結(jié)果添加在各行信息位的后方,直到前57行信息位數(shù)據(jù)的行編碼全部完成。隨后依次計算出各列校驗位,并將計算結(jié)果添加在各列信息位的下方,在計算完前57列信息位數(shù)據(jù)后,繼續(xù)按列編碼算法計算之前行編碼得到的校驗位數(shù)據(jù)(共計7列),得到校驗位的校驗,至此完成所有64列數(shù)據(jù)的列編碼,得到64×64的編碼后矩陣并輸出。
TPC編碼器主要分為4個模塊,由預處理模塊、輸入緩存(串并轉(zhuǎn)換)、TPC行列編碼模塊(行列交織)、輸出緩存模塊(并串轉(zhuǎn)換)構(gòu)成,編碼器結(jié)構(gòu)框圖如圖6所示。本TPC編碼器的設計,采用寄存器替代了大量使用RAM和FIFO的傳統(tǒng)方法,在行列編碼及交織時節(jié)省了時序,提高了編碼器的工作速度。模塊間采用流水線結(jié)構(gòu)連接,相對占用存儲資源更少,合理節(jié)約了彈上物理存儲空間。
圖6 TPC編碼器結(jié)構(gòu)框圖Fig.6 Structure diagram of TPC encoder
在QuartusII軟件中完成TPC編碼模塊的RTL、testbench文件編寫,編譯通過后在Questasim軟件中對(64,57)×(64,57)二維TPC碼進行編碼仿真測試。定義系統(tǒng)時鐘50 MHz,幀頭為FDB18540,軟件定義產(chǎn)生PCM信源碼流。系統(tǒng)復位后進入編碼狀態(tài),串行待編碼數(shù)據(jù)在每個時鐘上升沿,由data_in輸入din_fifo,完成時鐘同步等預處理工作,經(jīng)header檢測到data_in中的幀頭數(shù)據(jù)FDB18540后,ok信號拉高。仿真結(jié)果如7所示。
圖7 信源數(shù)據(jù)加幀頭FDB18540 Questasim仿真Fig.7 Simulation of FDB18540 Questasim with source data and frame header
完成幀頭校驗后,數(shù)據(jù)由din_fifo進入輸入緩存data_in_reg,通過移位進行串并轉(zhuǎn)換,每57個時鐘得到一幀57位寬的數(shù),并行進入編碼部分,首先完成行編碼,得到深度57、位寬64,共3 648 bit數(shù)據(jù),并存入寄存器data_hang。接著完成列編碼,得到的深度7、位寬64,共448 bit數(shù)據(jù),存入寄存器data_lie。隨后將經(jīng)行列編碼得到的4 348+448=4 096 bit的數(shù)據(jù)存入輸出緩存data_hl中,通過移位完成并串轉(zhuǎn)換后,由data_out串行輸出已編碼數(shù)據(jù),由圖8可知,編碼器可按照TPC編碼規(guī)則完成對串行遙測數(shù)據(jù)的編碼任務。
圖8 TPC編碼 Questasim 仿真Fig.8 Simulation of Questasim encoded by TPC
將經(jīng)過(64,57)×(64,57)二維TPC編碼后的數(shù)據(jù)導入Matlab軟件中,在AWGN信道,BPSK調(diào)制環(huán)境下,迭代次數(shù)為4,完成信道譯碼仿真,并與未經(jīng)信道編碼的原始數(shù)據(jù)碼流進行對比,結(jié)果如圖9所示,加入TPC編碼器較好改善了遙測傳輸?shù)目煽啃?,在誤碼率為10-4量級下,有效提供4.8 dB左右的編碼增益,實現(xiàn)了對TPC編碼模塊功能及性能的驗證。
圖9 TPC編碼性能實測仿真Fig.9 Simulation of TPC coding measurement
本文針對高碼率數(shù)據(jù)傳輸?shù)谋尘跋拢鬟b測的實際工程項目需求,闡明了在現(xiàn)有遙測系統(tǒng)中加入信道編碼模塊的必要性,分析了TPC編碼原理及方法,并對幾種常見的不同碼長的TPC碼性能進行比較仿真,同時結(jié)合工程實際,設計了一種基于FPGA硬件平臺的遠程火箭彈彈載遙測TPC編碼器。實驗數(shù)據(jù)表明,使用擴展?jié)h明碼(64,57)×(64,57)作為分量碼,TPC編碼器可在誤碼率為10-4數(shù)量級下,提供4.8 dB左右的編碼增益,可以較好地完成TPC信道編碼功能。