?

基于CCSDS標準的衛星遙控LDPC編碼方案探討

2019-07-31 08:05王柏巖劉治軍王睿葉勉熊曉將韓笑冬
航天器工程 2019年3期
關鍵詞:譯碼校驗增益

王柏巖 劉治軍 王睿 葉勉 熊曉將 韓笑冬

(中國空間技術研究院通信衛星事業部,北京 100094)

遙控鏈路是實施星上設備狀態控制的唯一通道,主要實現遙控指令的接收、解調和譯碼,幀長較短的遙控指令以每天幾次甚至每周幾次的頻率傳輸到衛星,因此遙控方案設計需要考慮短指令、低延時、實現簡單及高可靠性等特點?,F有CCSDS遙控標準[1-2]推薦使用BCH(63,56)編碼方案,該方案適合低時延、指令幀較短的遙控系統。隨著航天技術的發展,下一代衛星需要使用遙控鏈路來支持越來越多的用途,例如將更大量的數據傳輸到衛星以實現在軌軟件的更新。因此,采用新的信道編碼技術、獲得更好的編碼增益,是升級現有CCSDS遙控信道編碼標準的核心要素。而目前BCH(63,56)編碼方案具有以下不足[3]:①遙控信道采用的BCH編碼方案較為簡單,只能糾正或檢測少量比特錯誤。②BCH編碼方案的接收機只能進行硬判決,無法進行軟判決,嚴重限制了編碼增益。由于無法獲得更好的編碼增益,只能通過提高發射端發射功率來確保遙控信息傳輸的可靠性,但由于衛星設備在尺寸、質量、功耗和效能等方面的限制,不可能無限制提升設備發射功率。對于下一代衛星而言,需通過優異的信道編碼方案設計來獲得可觀的信道增益,有效降低信號解調門限,進而抵消信號在長距離空間傳播過程中帶來的能量損失。

CCSDS委員會在2014年提出下一代衛星遙控業務[4]需要滿足:①比目前CCSDS遙控系列標準更高的遙控速率,遙控瞬時速率應至少在數千比特每秒。②利用現有的發射機和天線系統實現更高的性能,包括降低譯碼門限和提高編碼增益。為此,CCSDS于2015年發布CCSDS 231.1-O-1橙皮書[5],提出了3種性能優異的短碼長LDPC碼,以替代目前廣泛使用的BCH(63,56)碼。LDPC碼是分組碼,具有很優異的譯碼性能,譯碼方式是逐比特的迭代算法,在良好的譯碼方案下其性能甚至要高于Turbo碼[6]。目前,LDPC編碼方案主要用于下行數傳鏈路,例如:我國嫦娥2號探月衛星和“高分”衛星(下傳數據率最高可以達1 Gbit/s),以及實踐十號衛星(編碼速率為兩路并行300 Mbit/s);NASA的“界面區成像光譜儀”(IRIS)任務;在ESA下一代衛星數字視頻標準DVB-S2中作為內碼(碼長為16 200 bit或64 800 bit)。LDPC碼的研究主要集中在數傳鏈路和遙測鏈路[7],其LDPC編碼方案設計無法滿足遙控鏈路短指令、低延時、實現簡單、高可靠性的特點,因此需要針對下一代衛星遙控鏈路的業務需求設計合適的LDPC編碼方案。

本文將遙控指令分為短指令模式與內存上注指令模式,針對2種不同指令模式設計不同的LDPC編碼方案,可以獲得更好的編碼增益,提高遙控鏈路的可靠性。在此基礎上,通過仿真分析給出了本文中不同指令模式下LDPC編碼方案的誤碼字率曲線與漏檢錯誤率曲線,對比了編碼性能。針對本文的LDPC編碼方案可行性分析表明,此方案適用于衛星遙控協議體系,可以提高衛星遙控業務的可靠性。

1 LDPC編碼方案探討

在衛星遙控通信中,信道編碼技術是保證通信可靠性的必要手段。目前,在軌衛星越來越多,環境也越來越復雜,遙控的業務需求不斷變化,越來越多的大數據量業務需要通過這條鏈路傳輸到衛星(例如在軌軟件更新)。本節根據不同的遙控業務模式探討CCSDS遙控標準推薦的LDPC編碼方案,以期獲得更好的編碼性能,提高遙控可靠性。

1.1 遙控LDPC編碼模式分析

為了應對復雜多變的業務需求,根據衛星遙控鏈路的業務需要[8],可以將遙控指令分為兩大類,如表1所示。

短指令模式是以低碼速率提供數據長度約100 bit的短指令,遙控碼速率為1~4 kbit/s,所占用的頻段為S或X頻段。由于速率較低,此模式下帶寬不受限。短指令大部分是對衛星能源、姿態的控制指令,以及重要載荷的指令,因此發出錯誤指令可能是災難性的。目前,未采用信道編碼時,遙控鏈路預算余量約為1.5 dB,而BCH編碼方案只可以提供1~2 dB的編碼增益,余量均較小。在實際任務中,采用BCH編碼方案時沒有出現普遍丟幀的情況,主要是因為天地設備也均留有較大的裕量,盡管如此,還是應該進行理論計算,盡量提升編碼增益,而不是依賴設備自身的裕量。因此,針對短指令模式,CCSDS 231.1-O-1橙皮書于2015年推薦3種碼長的LDPC短碼,其性能優于目前廣泛使用的BCH碼,可以保證獲得更好的可靠性。

內存上注指令多用于衛星軟件在軌更新,上傳的數據量較大,長度約為4000 bit,因此需要較高的碼速率(最高可達1 Mbit/s)來縮短內存上注的時間。因為碼速率較高,可以借用載荷業務鏈路完成衛星遙控指令注入,所占用的頻段可以為Ka或Ku頻段。在此模式下,受限于天線的發射功率,較高的碼速率所需要的帶寬也較大,因此需要較高的編碼效率。針對內存上注指令模式數據量大、速率高的特性,可以參考CCSDS 131.0-B-2藍皮書于2011年發布遙測信道編碼標準中編碼效率為223/255的LDPC編碼方案。

1.2 短指令模式中的LDPC編碼方案

根據表1中所示,對于幀長較短的遙控指令,需要選擇碼塊長度在100 bit左右且擁有良好糾檢錯能力和較低譯碼復雜度的編碼方案。當采用低編碼效率的編碼方案時,需要更多的迭代來保證正確的譯碼,這樣也會相應增加遙控接收機信號捕獲鎖定的難度,因此,本文對編碼增益和系統復雜度折中考慮,編碼效率建議設置為1/2。CCSDS 231.1-O-1橙皮書中推薦了3種碼長的LDPC短碼,這3種碼率為1/2的LDPC(n,k)短碼分別為LDPC(128,64)碼,LDPC(256,128)碼,LDPC(512,256)碼,其中n代表編碼后的碼塊長度,k代表有效信息位長度。

LDPC碼最初是用一個稀疏校驗矩陣來定義的線性分組碼,后來將LDPC碼的校驗矩陣H對應到被稱為Tanner圖的雙向二分圖上。Tanner圖上的兩部分節點分別為信息節點和校驗節點,它們之間的連接線稱為“邊”。若第j個信息節點與第i個校驗節點有邊相連接,則校驗矩陣中的H(i,j)=1,否則為0。在Tanner圖中,與節點i相連的邊稱為節點i的度。圖1給出了編碼效率為1/2的LDPC碼的Tanner圖[9],其中信息節點用圓圈表示,校驗節點用方塊表示。信息節點的度分布為非正則的,每個信息節點的邊數平均為4個。這樣設計可以降低短碼長LDPC的誤碼平層,但代價是提高了信噪比的門限和譯碼復雜度。

圖1 編碼效率為1/2的LDPC碼Tanner圖Fig.1 Protograph for rate of 1/2 LDPC codes

根據圖1所示的Tanner圖構建LDPC(128,64)碼,LDPC(256,128)碼,LDPC(512,256)碼[10]。這3種LDPC碼字的校驗矩陣H由m×m的子矩陣構成,其中m=k/4=n/8。

(1)

(2)

(3)

式中:Im和0m為m×m的單位矩陣和零矩陣;Φk為單位矩陣Im循環右移k位后的矩陣;⊕為模2加法運算。

LDPC編碼過程實際上是輸入信息序列和生成矩陣G的乘積。為了完成上述3種LDPC編碼,必須先通過校驗矩陣H求得生成矩陣G,然后利用生成矩陣進行編碼。

上述3種碼長的LDPC短碼生成矩陣都可以由校驗矩陣通過運算給出,其計算步驟如下。

(1)將校驗矩陣H分為前4m列和后4m列兩部分,P是大小為4m×4m的子矩陣,組成了H矩陣的最后4m列,Q是大小為4m×4m的子矩陣,組成了H矩陣的前4m列,即H=[QP]。

(2)計算矩陣W=(P-1Q)T,采用模2運算。

上述3種LDPC碼長均較短,其生成矩陣大小相對較小,且具有塊循環特性,因此可以采用循環移位的方式構造生成矩陣。表2~4給出了這3種LDPC碼的第1行,第m+1行,第2m+1行,第3m+1行的十六進制值。

表2 LDPC(128,64)碼生成矩陣Table 2 Generator matrix of LDPC(128,64) code

表3 LDPC(256,128)碼生成矩陣Table 3 Generator matrix of LDPC(256,128) code

表4 LDPC(512,256)碼生成矩陣Table 4 Generator matrix of LDPC(512,256) code

通過表2~4中的每一行進行循環移位,即可得到CCSDS遙控應用中推薦的3種LDPC碼的生成矩陣G。在進行編碼時,只需要存儲上述表格中的4行十六進制數,因此所占用的存儲資源大大減少。

1.3 內存上注指令模式中的LDPC編碼方案

由于衛星設計越來越復雜,對于大數據量內存上注的需求不斷增加。星載軟件需要經常在軌更新,FPGA也需要在軌重復配置。因此,現有的短碼字信道編碼方案和數據鏈路協議設計已經無法滿足如此大量數據的傳輸。而長碼字的信道編碼方案可以獲得更大的編碼增益,在傳輸過程中能提供更好的糾檢錯能力。

通過表1中內存上注指令的特性分析,可以得到如下結論:①內存上注指令需要更長的碼塊,這樣才可以獲得更好的編碼增益。②編碼效率需要折中考慮到帶寬和功率的因素。在一定的鏈路性能條件下,一般通過編碼增益的最大化盡可能減小星載發射功率,但是付出的代價是需要提高編碼效率,并占用更大的帶寬,而編碼效率和頻譜效率又共同決定了能獲得的最大信息傳輸速率。對于內存上注指令的編碼方案設計,可以參考遙測信道編碼標準[7]中信道編碼方式的設計。該標準中主要規定了5種遙測信道編碼方式,包括卷積碼、R-S碼、級聯碼、Turbo碼、LDPC碼。對于大數據量的遙控指令,需要選擇編碼增益較好且編碼效率較高的編碼方案,這樣可以提高譯碼的正確性,也會相應減少遙控接收機信號捕獲鎖定的難度。因此,本文推薦使用碼率為223/255的LDPC碼。標準中LDPC碼采用截斷碼形式,先產生LDPC(8176,7154)碼,其校驗矩陣見式(4)。每個Ai,j是一個511×511的循環矩陣。每個32陣列的循環子矩陣的行重為2,即每行中1的個數為2。校驗矩陣每行的總行重是32。每個循環子矩陣中第1行中1的位置在表5的第2列被定義,每個隨后的行是由前1行的1 bit右循環移位給出。有511個可能位置,由0到510表示。第3列代表校驗矩陣中1的絕對位置,有8176個可能的位置,由0到8175表示。LDPC(8176,7154)子碼的生成矩陣見式(5)。

(4)表5 LDPC(8176,7154)碼循環矩陣Table 5 Circulants of LDPC(8176,7154) code

(5)

LDPC(8176,7154)碼可截斷生成LDPC(8160,7136),編碼效率為223/255。其構造方法為:①編碼器接收長度為7136 bit的傳送幀作為輸入;②將18個0放置在待編碼(U)的7136 bit信息之前,產生一個7154 bit元素的行向量;③這個向量乘以式(5)定義的生成矩陣,產生一個8176 bit的向量,這個向量由18個0、7136個信息比特和1022個效驗比特(P)組成;④丟棄這個向量中的18個前導0,在末端附加2個0,就產生了一個8160 bit的碼字。

18個填充比特、信息比特、校驗比特和2個填充0比特的格式,如圖2所示。

圖2 LDPC(8160,7136)碼格式Fig.2 Format of LDPC(8160,7136) code

2 LDPC編碼性能仿真分析

為了研究LDPC碼在遙控應用中的性能,本節給出了LDPC碼在高斯白噪聲信道條件下的性能曲線,采用經典的置信傳播(BP)譯碼算法進行譯碼,譯碼過程中最大迭代次數設置為100次。本次仿真的3種LDPC短碼碼率均為1/2,編碼前信息序列長度分別為64,128,256,LDPC(8160,7136)碼率接近223/255,編碼前信息序列長度為7136。圖3和圖4給出了3種LDPC碼的誤碼字率和漏檢錯誤率曲線。其中,未編碼數據的誤碼字率用虛線表示,由于未編碼系統中所有的錯誤都無法被檢出,因此2張圖中的虛線相同。對于CCSDS遙控信道編碼標準推薦采用BCH(63,56)碼,根據系統設計需求,BCH譯碼可以工作在檢錯與糾錯2種模式下[11-12]。當工作在檢錯模式下,可以實現3 bit的檢錯;當工作在糾錯模式下,可以實現1 bit的糾錯和2 bit的檢錯。圖3中檢錯模式誤碼字率曲線在未編碼曲線的右邊,是因為檢錯模式沒有糾錯能力,糾錯模式則可以獲得有限的編碼增益,但檢錯能力較差。圖4中檢錯模式的檢錯能力明顯好于糾錯模式,但檢錯模式沒有糾錯能力。

圖3中,在誤碼字率為10-5量級時,LDPC(128,64)碼較未編碼系統增益為6 dB,較糾錯模式BCH碼增益為4 dB,LDPC(256,128)碼較LDPC(128,64)碼增益為1 dB,LDPC(512,256)碼較LDPC(256,128)碼增益為1 dB。圖4中,LDPC碼的漏檢錯誤率曲線也明顯低于BCH碼,其中,LDPC(256,128)碼只有很少的漏檢錯誤,而LDPC(512,256)碼完全沒有漏檢錯誤。

對于LDPC(128,64)碼,其誤碼字率曲線最大約為1.5 dB,因為其性能既取決于編碼器,也取決于譯碼器。LDPC碼采用的迭代譯碼算法基本思想是利用校驗位提供的冗余信息對有效信息進行補償。迭代次數不斷增加,校驗位能提供的新的外部消息越來越少。因此,迭代次數超過一定數量后,譯碼性能并不會有明顯的改善。在實際系統中采用LDPC碼,應根據應用需求合理地選擇最大迭代次數,以平衡性能和譯碼延時之間的矛盾。

圖5為標準中推薦的LDPC(8160,7136)碼的性能曲線。當誤碼字率為10-5量級時,LDPC(8160,7136)碼所需信噪比(Eb/N0)約為3.8 dB,未編碼系統所需Eb/N0約為11 dB,編碼增益約為7 dB。

在未來衛星的遙控鏈路設計中,傳輸遙控指令仍然作為一個最基本功能,同時應當還包括在正?;蛘咄话l情況下向衛星傳輸一些大容量的數據。由于衛星本身攜帶的天線尺寸非常小,可用來提供數據通信的功率非常有限,因此需要盡可能地節省在遙控上消耗的功率。通過上述仿真結果分析可知,不同類型衛星的遙控業務采用LDPC編碼方案設計,可以獲得4~7 dB的編碼增益,這樣能有效降低信號解調門限,進而抵消遙控信號在長距離空間傳播過程中帶來的能量損失。

3 LDPC編碼方案可行性分析

3.1 通信鏈路傳輸單元數據格式設計可行性分析

通過仿真分析可以看出,LDPC碼在遙控應用中可以獲得很好的性能,但是需要考慮在協議方面的實現問題。CCSDS遙控標準中,信道編碼方案的可靠性和有效性尤為重要,因此需要設計良好的協議格式。CCSDS 231.0-B-2[2]中同步與信道編碼子層接收數據鏈路協議子層的傳輸幀,將其組織成遙控鏈路傳輸單元(CLTU)幀格式后從物理層發送出去。BCH碼塊的數據格式依靠CLTU數據格式來實現。數據鏈路層傳輸幀被分割成56 bit的信息塊,其中最后一段不足56 bit時填充0。之后每個56 bit信息塊分別通過BCH(63,56)編碼器編碼,每個BCH碼塊后面需要補充一個0來保證整字節,生成連續的BCH碼塊組成CLTU幀。CLTU幀格式如圖6所示。CLTU的開始序列界定了一個CLTU幀的開始,由16 bit同步字組成。CLTU的結尾序列界定了幀的結尾,接收端檢測到該序列后即停止解碼,結尾序列與BCH碼塊長度一致。

圖6 BCH碼CLTU組幀示意Fig.6 Components of BCH CLTU

對于本文的LDPC編碼方案,可以采用與BCH編碼相似的格式設計。遙控同步與信道編碼子層可以組成相應長度k的碼塊。此外,對于結尾序列,其長度要求等于碼塊長度。本文以LDPC(128,64)碼為例,2個數據鏈路子層傳輸幀分別為25 byte和15 byte,如圖7所示。傳輸幀被分割成64 bit的數據塊,此時不需要填充,因為40 byte正好可以分割成5個64 bit的數據塊。通過LDPC編碼器生成連續的128 bit的碼塊,并添加開始序列和結尾序列,最后完成LDPC(128,64)碼的CLTU組幀。

目前,大多數低軌衛星遙控業務已采用BCH編碼方案,高軌衛星(如地球同步軌道衛星)仍采用大回路比對校驗方案,建議后續高低軌衛星遙控業務選擇合適時機完成LDPC編碼方案的轉型。本文的LDPC編碼方案在提高遙控可靠性的同時,其CLTU幀格式設計可以兼容現有CCSDS遙控標準中數據鏈路層和物理層協議,改動量較小,能夠滿足我國下一代衛星遙控業務的應用需求。

圖7 LDPC(128,64)碼CLTU組幀示意Fig.7 Components of LDPC(128,64)code CLTU

3.2 譯碼方案復雜度可實現性分析

LDPC碼譯碼算法眾多,CCSDS標準中并未給出譯碼算法的具體規定。由于LDPC碼的校驗矩陣具有稀疏性,因此存在許多高效LDPC譯碼算法,如BP算法,其基本原理是通過貝葉斯準則獲得近似最大后驗概率進行譯碼。而后續衍生的對數域置信傳播算法(LLR-BP算法)及最小和算法,也主要是對這兩個過程進行優化,其大體的譯碼流程如下。①初始化:將接收到的碼字序列分別送至各個變量節點;②迭代處理:完成校驗節點和變量節點更新,直到獲得合法碼字或者達到最大迭代次數;③后驗信息更新及判決輸出:根據校驗節點反饋的信息,變量節點的后驗信息進行更新,并利用后驗信息進行碼字判決,作為譯碼碼字輸出。

表6中給出上述3種譯碼算法進行一次迭代譯碼的復雜度,其中d為列重。

表6 不同譯碼算法復雜度比較Table 6 Complexity of different decoding algorithms

在上述3種譯碼算法中,BP算法包含大量乘法運算,復雜度最高。LLR-BP算法是將基于概率的BP算法轉化到對數域中,即把乘法運算轉化為加法運算,從而使其復雜度大幅降低。最小和算法只采用LLR值進行校驗節點更新操作,因此譯碼過程中只有加法運算,復雜度明顯小于上述2種算法。

針對本文中2種不同指令工作模式,LDPC碼方案的譯碼算法可以統一,但在實現上有略有區別。由于工作模式的信息長度不同,星上譯碼器的輸入輸出緩存需要根據信息長度自適當調整。由于編碼方案中校驗矩陣不同,星上譯碼器的矩陣校驗節點和變量節點設計也需要滿足相應的編碼方案。

目前,FPGA和數字信號處理器(DSP)是衛星數字信號處理中常用的主處理芯片。DSP適合于串行運算,其主頻較高功耗較大;FPGA則適合于實現高度并行的運算結構,同時具有可重復編程的特點,靈活性較高。由于LDPC碼具有準循環結構,其編譯碼器設計適于并行實現,能夠支持較高傳輸速率信號的處理。

通過對譯碼方案復雜度的分析可知,在下一代衛星遙控應用中,星上遙控譯碼器可以采用并行的FPGA譯碼器架構,譯碼算法可以采用最小和算法,其譯碼復雜度較低,硬件實現資源占用較低,能夠滿足衛星遙控LDPC編碼方案的實施。

4 結束語

目前,衛星遙控應用中廣泛采用BCH碼,很難滿足未來航天應用復雜多樣的需求。為此,本文基于CCSDS標準,探討在下一代衛星遙控系統設計中采用LDPC碼來提高編碼增益。根據下一代衛星遙控業務需要,將遙控指令分為短指令模式與內存上注指令模式,針對2種不同指令工作模式探討不同的LDPC碼應用方案。針對LDPC編碼方案的可行性,本文提出采用與BCH碼相似的格式設計,星上遙控譯碼器采用并行的FPGA譯碼器架構,可實現更為優異的編碼增益,提高遙控數據傳輸速率。雖然LDPC碼在工程上存在編譯碼復雜度較高的問題,但本文中LDPC碼長均較短,編譯碼器電路實現只需要較少的邏輯資源,因此通過合理的編碼器架構設計可以大大降低編譯碼復雜度,后續會針對這一問題開展進一步研究。

猜你喜歡
譯碼校驗增益
“增益”還是“損耗”?挑戰性工作要求對工作?家庭增益的“雙刃劍”影響*
復雜多耦合仿真模型校驗工具研究
使用Excel朗讀功能校驗工作表中的數據
基于擴大候選碼元范圍的非二元LDPC加權迭代硬可靠度譯碼算法
電能表在線不停電校驗技術
有源環路低通中運放帶寬對相噪的影響
基于增益調度與光滑切換的傾轉旋翼機最優控制
分段CRC 輔助極化碼SCL 比特翻轉譯碼算法
基于校正搜索寬度的極化碼譯碼算法研究
精通文件校驗的“門道”
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合