劉亦偉
(北京全路通信信號研究設計院集團有限公司,北京 100070)
鐵路通信作為通信系統(tǒng)的重要行業(yè)應用具有其特殊的應用需求,如應用信息傳送的高可靠性、高可用性、底時延、低誤碼率等[1-2]。在鐵路廣播通信系統(tǒng)中,使用前向糾錯技術可以有效降低系統(tǒng)誤碼率[3-4]。但現(xiàn)有的前向糾錯編碼技術通常使用固定碼率,且碼塊之間相互不獨立。固定碼率對于變長的應用層數(shù)據(jù)可能會造成通信系統(tǒng)承載能力的浪費。由于碼塊間不獨立,部分碼塊損壞可導致整個應用層信息錯誤或丟失。研究噴泉碼(RaptorQ)技術,將其作為一種前向糾錯的編碼方式[5]應用于鐵路廣播通信系統(tǒng)中,可在保證系統(tǒng)誤碼率的同時,最大限度的利用系統(tǒng)資源。同時,依賴于噴泉碼自身的編碼特點,譯碼是否成功僅與接收到的信息數(shù)量相關,部分信息的丟失不會對應用層信息造成影響。本文通過對不同丟包率條件下,達到不同誤碼率等級要求時所需的譯碼開銷進行仿真,實現(xiàn)對噴泉碼性能研究的目的。
噴泉碼是一種沒有碼率的編碼方式。編碼后生成的碼組包括兩部分:系統(tǒng)碼(Source symbols)和修復碼(Repair symbols)。其中系統(tǒng)碼由信源的內容按照碼組的符號(symbol)大小直接分割形成;修復碼由系統(tǒng)碼通過運算生成。系統(tǒng)碼的個數(shù)由每個碼組的長度和信源內容的大小決定,修復碼的個數(shù)由用戶根據(jù)網(wǎng)絡承載能力,丟包率等因素按照系統(tǒng)需要規(guī)定[6]。發(fā)送過程中源節(jié)點在不知道這些數(shù)據(jù)包是否被成功接收的情況下,持續(xù)發(fā)送數(shù)據(jù)包。例如:假設信源包含k個原始碼組,在噴泉碼編碼時可以產生k+n個碼組。其中n個新加碼組為修復碼,稱之為overhead。接收端只要收到k(1+ε)個碼組的任意子集,即收到一個稍微大于原來k值的N,就可通過譯碼,以高概率(和ε有關)成功地恢復全部信源內容。噴泉碼包含兩類,盧比變換LT 碼和Raptor 碼[7]。
鐵路車地廣播通信系統(tǒng)由地面發(fā)送系統(tǒng)和車載接收系統(tǒng)兩部分組成,如圖1 所示。地面發(fā)送系統(tǒng)由地面數(shù)據(jù)服務器和通信發(fā)送基站兩類設備組成。應用數(shù)據(jù)由數(shù)據(jù)服務器發(fā)送給通信基站后,由通信基站通過無線方式發(fā)射。
列車上裝備車載電臺。當列車進入基站覆蓋區(qū)后,由車載電臺接收數(shù)據(jù),并將譯碼后的應用數(shù)據(jù)傳送給對應的車載設備。
由于廣播系統(tǒng)中地面與車載設備的通信沒有信息反饋機制,因此需要使用前向糾錯技術。廣播通信系統(tǒng)數(shù)據(jù)處理流程如圖2 所示。RaptorQ 所在的前向糾錯層,承擔了降低應用數(shù)據(jù)傳輸誤碼率,提高系統(tǒng)整體可靠性的重要任務。
圖1 鐵路車地廣播通信系統(tǒng)示意圖Fig.1 Schematic diagram of railway broadcast communication system
圖2 廣播通信系統(tǒng)數(shù)據(jù)處理流程示意圖Fig.2 Schematic diagram of data processing flow of railway broadcast communication system
地面?zhèn)群蛙囕d側均包括3 個邏輯層次,即應用層、前向糾錯層、物理層。地面設備側,應用數(shù)據(jù)首先到達前向糾錯層,通過RaptorQ 編碼將信源信息變?yōu)橄到y(tǒng)碼組和修復碼組。RaptorQ 編碼后,將所有碼組傳遞給物理層,由物理層完成加擾,時隙映射,調制等工作后,通過無線方式發(fā)出。
車載設備側,從無線通道接收到數(shù)據(jù)后先經(jīng)過物理層,完成解調、信息提取、解擾等工作。此時信息恢復為RaptorQ 編碼后得到的系統(tǒng)碼組和修復碼組。由于無線傳輸過程中存在誤碼的影響,接收到的碼組數(shù)量將小于等于發(fā)送的碼組數(shù)量。利用噴泉碼譯碼是否成功僅與接收到信息數(shù)量相關,部分信息的丟失不會對應用層信息造成影響的編碼特點,對接收到的碼組進行譯碼。理論上來說,當接收到的總碼組數(shù)量大于等于系統(tǒng)碼組個數(shù)時即可將應用數(shù)據(jù)成功譯出,對于應用數(shù)據(jù)來說不會出現(xiàn)誤碼。
因此,選擇合適的碼組長度和修復碼個數(shù),是降低系統(tǒng)壓力,減少譯碼開銷,提高系統(tǒng)整體性能的關鍵環(huán)節(jié)。為了達到這個目的,本文對不同碼組長度在不同丟包率條件下的譯碼開銷進行了仿真。
噴泉碼在鐵路車地廣播通信系統(tǒng)中糾錯性能的仿真實驗基于LINUX 系統(tǒng)進行。使用C 語言在Ubuntu14.04 操作系統(tǒng)下進行仿真模型搭建。
系統(tǒng)仿真架構包括5 個部分,如圖3 所示。
圖3 噴泉碼糾錯性能仿真系統(tǒng)示意圖Fig.3 Schematic diagram of error correction performance simulation system of RaptorQ
1)生成定長的隨機數(shù)作為信源。信源的長度根據(jù)工程上的實際需求來確定,這里使用1 800 Byte。
2)將信源(隨機數(shù))進行RaptorQ 編碼。
3)編碼后的系統(tǒng)碼組和修復碼組通過同樣的消除信道,以此來模擬網(wǎng)絡中的丟包現(xiàn)象。
4)接收端將收到的碼組進行RaptorQ 譯碼。
5)將譯碼后的數(shù)據(jù)與信源數(shù)據(jù)進行比較,得到應用層數(shù)據(jù)的誤碼率。
噴泉碼糾錯性能仿真使用1 800 Byte 的隨機數(shù)作為信源。選擇了4 種碼組長度大?。╯ymbol size)作為研究對象,分別為16 Byte,32 Byte,48 Byte,64 Byte。每一種碼組的長度都對網(wǎng)絡丟包率從1%到10%的情況進行了測試。每組仿真?zhèn)鬏敹紡膋個系統(tǒng)碼組和1 個修復碼開始,此時傳輸?shù)目偞a組數(shù)為(k+1)。傳輸1 000 次,每次接收端譯碼成功則成功次數(shù)加1。如果1 000 次傳輸?shù)某晒Υ螖?shù)不為1 000,即接收側出現(xiàn)了誤碼時,修復碼個數(shù)加1,傳輸?shù)拇螖?shù)清零,此時傳輸?shù)目偞a組數(shù)為(k+2),以此類推。直到1 000 次傳輸,接收成功次數(shù)也為1 000,即誤碼率為0%時停止,此時傳輸?shù)目偞a組數(shù)為(k+n),記錄此時所需要的修復碼的個數(shù)n,計算譯碼開銷S。這里譯碼開銷S為修復碼與系統(tǒng)碼個數(shù)的比值,即:
1)仿真的碼組長度分為4 種:16 Byte,32 Byte,48 Byte,64 Byte。
2)需要編碼的信源大小為:1 800 Byte。
3)每種參數(shù)組合的仿真次數(shù)為1 000 次。
4)當出現(xiàn)丟包時認為丟失了一個碼組。
5)丟包率仿真范圍1%到10%,步長1%。
1)對于每種碼組長度和丟包率,仿真起始的修復碼個數(shù)為1。
2)嘗試1 000 次編碼、傳輸、解碼。
3)解碼成功,則成功計次數(shù)加1。
例如:在1%丟包率下,初始修復碼個數(shù)為1,若傳輸1 000 次的解碼成功率不為100%,則修復碼個數(shù)加1。直到修復碼個數(shù)為n時,解碼成功率為100%,記錄修復碼的個數(shù)。
4)將信道的丟包率加1%,進行下一個丟包率的仿真。
5)重復1)~4)。
6)找出每種丟包率下,解碼成功率為100%時的譯碼開銷,譯碼開銷計算方法見公式(1)。
4 種碼組長度在不同丟包率下達到100%譯碼成功率時所需要的譯碼開銷仿真結果如表1 和圖4所示。
通過對仿真數(shù)據(jù)和曲線的分析可以得到以下結論,對于固定大小的信源, 1 000 次傳輸達到100%的譯碼成功率:
1)對于任意的碼組長度和丟包率,通過增加修復碼的個數(shù),總可以實現(xiàn)1 000 次傳輸100%的譯碼成功率;
2)隨著網(wǎng)絡丟包率的增加,需要的譯碼開銷隨之增加;
3)當網(wǎng)絡丟包率增加時,碼組越大,所需的譯碼開銷增長越快。
表 1 不同丟包率和碼組長度譯碼開銷測試結果Tab.1 Test results of decoding overhead for different packet loss rate and code block length
圖4 丟包率與譯碼開銷關系圖Fig.4 Relation diagram of packet loss rate and decoding overhead
4)對于不同的網(wǎng)絡丟包率,使用的碼組長度越小所需要的譯碼開銷越小。
5)同樣的譯碼開銷,碼組越小可以抵抗的網(wǎng)絡丟包率越大。
本文介紹了鐵路車地廣播通信系統(tǒng)架構,探討噴泉碼作為前向糾錯碼在系統(tǒng)中的作用,研究了噴泉碼譯碼開銷與碼組長度的關系。通過仿真實驗對噴泉碼的性能進行了測試。測試表明,在同樣的網(wǎng)絡條件下,碼組長度越小,譯碼開銷越小。同樣的譯碼開銷下,碼組長度越小,可以抵抗的網(wǎng)絡丟包率越大。
因此在實際使用中,在滿足系統(tǒng)需求的前提下,應優(yōu)先考慮使用小長度的碼組進行噴泉碼編碼傳輸。但考慮到處理時間問題,小長度的碼組可能需要更大的處理時間,因此在鐵路通信系統(tǒng)設計時還需要進一步考慮。建議后續(xù)對碼組長度和處理時間相關問題做深入研究。