梅 歡,涂衛(wèi)軍,萬蔣亮,汪 海
(1.航空工業(yè)洪都,江西 南昌,330024;2.空軍駐南昌地區(qū)軍事代表室,江西 南昌,330095)
在產(chǎn)品研制階段,遙測系統(tǒng)用于獲取飛行試驗中航天器各系統(tǒng)的工作狀態(tài)參數(shù)和環(huán)境數(shù)據(jù),為確定航天器性能或進行故障分析提供依據(jù)。航天器飛行試驗耗費巨大,每次試驗必須盡可能多地獲取各種數(shù)據(jù),遙測系統(tǒng)的性能優(yōu)劣直接影響到產(chǎn)品的研制進程及費用,影響著武器性能的改進和提高。因此,遙測數(shù)據(jù)的準確性在航天器的研制和發(fā)展中發(fā)揮著非常重要的作用。
當用于傳輸遙測數(shù)據(jù)的各種信道中存在噪聲或干擾時,遙測數(shù)據(jù)的傳輸常常會出現(xiàn)差錯,這種情況在隨傳輸距離、屏蔽情況等干擾因素而顯著變化的無線傳輸信道中很嚴重。遙測系統(tǒng)隨工作環(huán)境的不同而受到的干擾程度和差錯特點存在很大的差異。單一的糾錯方式很難得到較低的碼率。本文綜合硬判決譯碼和軟判決譯碼的優(yōu)缺點,提出了一種軟硬結(jié)合的混合譯碼糾錯編碼算法,通過對測試向量進行硬判決譯碼來選擇正確碼字,不僅沒有性能上的損失,而且實現(xiàn)方式也比較簡單。
由編碼理論可知,RS碼是非二進制的BCH碼,在(n,k)RS碼中輸入信號分為k×m bit一組,每組包括k個符號,而每個符號則由m個bit組成。對于長度2-1為符號的RS碼,每個符號都是有限域GF()中的一個元素;因而,最小碼距為d的RS碼生成多項式具有如下形式:
式中a為GF(2)中的一個元素。
又由于RS碼屬于線性循環(huán)分組碼,因此它具有如下性質(zhì):
式中:d為最小漢明距離;n-k為數(shù)據(jù)冗余數(shù)量,t為錯誤個數(shù);e為刪除個數(shù)。
由此,可以得出RS碼具有如下特性:
1)允許在一定范圍內(nèi)隨意減少或增加冗余校驗數(shù)目,當冗余度發(fā)生變化時,算法可以通過調(diào)整刪除操作進行譯碼。
2)RS的最小漢明距離與冗余校驗位數(shù)成比,即碼的糾錯能力隨冗余度的增加而增加。
RS碼的硬判決譯碼(HDD)算法已經(jīng)得到廣泛應用,而代數(shù)軟判決譯碼(SDD)算法則可獲得更大的編碼增益,是目前信道編碼領(lǐng)域的研究熱點之一。
目前比較流行的代數(shù)軟判決譯碼算法主要包括KV算法、BGMD算法和LCC算法等。在這些算法中,LCC譯碼算法通過對各重數(shù)為1的測試向量進行譯碼,不僅降低了硬件實現(xiàn)的復雜度,而且性能上與KV算法相比并無損失,具有廣闊的應用前景。
硬判決在通信系統(tǒng)中是指對解調(diào)之后的信息進行硬判決,得到比特級的判決結(jié)果;在廣義的信道中則是指接收端的輸入信息在集合{0,1}中的取值。
在信息從發(fā)送端到接收端的傳遞過程中,由于干擾和噪聲的存在使得接收到的信息不同于發(fā)送信源,這樣就使得相應的校驗方程不能滿足。比特反轉(zhuǎn)算法認為參與不滿足的校驗方程個數(shù)最多的比特的錯誤概率最高,在一次迭代之后對該比特進行反轉(zhuǎn),用反轉(zhuǎn)之后的準碼字繼續(xù)進行校驗方程的計算,這就是其名稱的來歷。
譯碼步驟之前,首先要設(shè)定一個最大迭代次數(shù),以免在不能正確譯碼的情況下增加不必要的運算和陷入死循環(huán)。
對信道接收序列y=(y,y,…,y),其硬判決定義為z:
算法的具體步驟如下:
①對信道輸出進行硬判決,得到硬判決結(jié)果z;
②計算每個校驗方程,如果所有校驗方程均滿足,則結(jié)束譯碼,輸出z,作為碼字。否則進行步驟③;
③統(tǒng)計每個比特參與的不滿足校驗方程的個數(shù),即fn(1≤n≤N);
④反轉(zhuǎn)最大fn對應的比特,并返回步驟②。
重復上述步驟直到得到的結(jié)果滿足校驗方程或達到最大迭代次數(shù),如果達到最大迭代次數(shù)仍然不能正確譯碼,則宣布譯碼失敗,將最后一次的結(jié)果作為譯碼輸出。算法中,每次迭代只能反轉(zhuǎn)一個比特,為了提高算法效率,可以設(shè)定一個反轉(zhuǎn)門限,當fn大于這一門限時,就反轉(zhuǎn)fn對應的比特,但是門限需要仔細的選定,否則會降低碼字性能。
優(yōu)化后的算法流程圖如圖1所示,包括重數(shù)分配、校驗子計算、關(guān)鍵方程計算、Chien搜索,譯碼失敗檢測和Forney算法等模塊。首先對通過信道輸入的軟信息進行重數(shù)分配并產(chǎn)生測試向量,然后對測試向量進行關(guān)鍵方程求解,得出錯誤位置多項式,計算關(guān)鍵方程采用iBM譯碼算法,通過Chien搜索得出多項式根的個數(shù),接著由DF模塊進行判別,如果錯誤位置多項式最高次項的冪和該多項式根的個數(shù)相同,則認為譯碼成功,最后通過Forney算法計算錯誤值多項式進行糾錯,否則運算下一個測試向量。
圖1 算法流程圖
信道譯碼的目的是構(gòu)建一組硬判決碼字,使其存在一個測試向量為正確碼字的概率最大。就RS碼而言,這等價于使每個測試向量的錯誤碼字不超過(nk+1)/2的概率最大化。傳統(tǒng)譯碼的重數(shù)分配過程為:首先根據(jù)信道輸出的軟信息產(chǎn)生可靠度矩陣,然后按照這個矩陣選擇η個最不可靠的點且0<η<2t,同時分配重數(shù),使其重數(shù)為1,這樣做的目的是增加了糾錯譯碼半徑,最大糾錯數(shù)可以達到(n-k+1)/2+η。當η>2t時,譯碼器的復雜度過高,不利于硬件實現(xiàn)。重數(shù)分配中產(chǎn)生的測試向量需要計算可靠度最高的硬判決碼字和可靠度次高的硬判決碼字的比值,這個比值稱為碼字的相對可信度,即
式中:r為接收到的碼字。由式(4)可以看出,越接近1則表示碼字越不可靠。將所有碼字按照相對可靠度排列,選擇出η個最不可靠的點,每個分配兩個插值點,分別為(α,β)和(α,β′);剩余的n-η個位置分配一個插值點為(α,β)。此處的α表示伽羅華域元素,和分別表示第j個位置的可靠度最高的硬判決碼字和可靠度次高的硬判決碼字。對每個碼字選擇插值點即能生成測試向量,由于有η個最不可靠的點,故測試向量的總數(shù)為2。
基于硬判決和軟判決算法的重數(shù)分配步驟不同于傳統(tǒng)的重數(shù)分配。只需要根據(jù)可靠度選擇η個不可靠的碼字將其標記為0,產(chǎn)生2個測試向量;剩余的n-η個碼字都標記為1。
譯碼器校驗子算法:
輸入R(x),R(x),m(x),j=1。
對于i=0~255,
①當m=1,
②其他,
當j<η+1,j=j(luò)+1。
③按照可靠度降低的順序?qū)⑺械臏y試向量按照格雷碼遍歷進行排序,先將可靠度最高的測試向量進行譯碼。
如果錯誤位置多項式最高次項的冪不等于多項式根的個數(shù),將下一個測試向量S與S中校驗子不同的部分進行替換然后進行譯碼,否則輸出。
輸出正確的S(k=1~2t)。
其中,R(x)表示接收碼字的可靠度最高的硬判決信息;R(x)表示接收碼字的可靠度次高的硬判決信息;m(x)表示所譯碼字的重數(shù);S(1<g<2t)表示公共點的2t個校驗子的計算結(jié)果;S(x=1or2,1<j<η)用于計算不同點的校驗子。首先根據(jù)重數(shù)分配計算n-η個公共點的校驗子,然后計算η個不可靠點的校驗子,最后將其按照格雷碼的編碼順序?qū)⑵浣M合成2η個測試向量,相鄰的兩個測試向量之間只有一個點不同,這樣做的目的使可靠度高的測試向量優(yōu)先譯碼,而且不需要計算所有的校驗子。S(1<k<2t,x表示2η個測試向量的二進制表示形式)表示組合后的校驗子,在組合校驗子時,測試向量的二進制表示形式中,0代表選擇點的硬判決碼字R(x),1代表選擇點的可靠度次高的硬判決碼字R(x)。
圖2為本文提出的算法及硬判決譯碼算法的仿真結(jié)果圖。
圖2 仿真結(jié)果圖
仿真結(jié)果表明,本文提出的算法相比于硬判決譯碼算法,在誤幀率RFER=0.001時,編碼增益高出0.3dB。
本文依據(jù)遙測數(shù)據(jù)的實際需求,結(jié)合遙測譯碼的各種算法,提出了一種基于軟判決和硬判決混合譯碼算法。仿真結(jié)果表明,該算法能夠提高遙測數(shù)據(jù)的接收效果,提升數(shù)據(jù)的準確性,糾錯能力進一步提升。