移動通信中的信道編碼基礎

線性分組碼

假設信源輸出爲有限域GF(2)上連續的二元符號序列,稱爲消息序列。

在分組碼中每一個消息分組含有k個信息比特,一共有2k個不同的消息,對應2k個不同的碼字。所有碼字的集合構成一個(n,k)分組碼。其中參數n稱爲碼長,k稱爲碼的維度或消息長度,由編碼器產生的n-k個添加到每個輸入消息中的消息比特稱爲冗餘比特。碼率R=k/n,可以解釋爲每一個碼比特所攜帶的平均信息比特數。

1. 最小漢明距離
  • 漢明重量:表示一個碼字中非零元素的個數。
  • 重量分佈:用Ai表示分組碼中漢明重量爲i的碼字數,數A0,A1,A2,…,An稱爲該分組碼的重量分佈。A0=1,因爲有且只有一個全零碼字。
  • 最小漢明重量:分組碼中所有非零碼字的最小重量。
  • 漢明距離:兩個不同碼字對應位置元素不相同的元素個數。
  • 最小距離:分組碼中兩個不同碼字之間的最小漢明距離,也等於最小重量。

對於線性分組碼,確定其最小距離就等價於求最小重量。

  • 採用硬判決譯碼的糾錯性能由其最小距離決定;
  • 採用軟判決最大似然譯碼的糾錯性能由其碼重量分佈決定。
2. 生成矩陣和校驗矩陣

一個二元(n,k)線性分組碼C是GF(2)上所有n維向量組成的向量空間V的一個k維子空間,一共有2k個碼字。C中存在k個線性獨立的碼字,使得C中每個碼字是這K個線性獨立碼字的線性組合。

假設:待編碼的信息爲u,對應的碼字爲c,G爲生成矩陣,H爲校驗矩陣。

滿足:c = u · G,c · H = 0, GHT = 0。

3. 對一個線性碼簡單修改而構造新碼

假定C是一個已有的(n, k)線性分組碼,可以對其進行簡單修改而得到一個新碼。這些方法很簡單,但很實用。

  • 擴展碼(extending a code):通過對C中的碼字增加校驗符號而增加碼長(或者說獲得碼長更長的新碼),這對應於增加生成矩陣的列。例如,對Hamming碼增加一個全校驗位就得到擴展Hamming碼。

  • 刪餘碼(puncturing a code):通過將C中碼字的一些校驗符號刪去(或者說進行打孔)而減少碼長,從而得到碼率更高的碼。這對應於刪掉生成矩陣的列。

  • 縮短碼(shortening a code) :通過扔掉一些數據符號而減少碼長,這對應於刪去校驗矩陣的列或者減少生成矩陣的維數。新碼的碼率變小,扔掉的數據符號一般是固定取值的,從而收發雙方已知。

  • 增餘刪信碼(expurgating a code):它是在原碼基礎上,刪去一些數據符號而同時增加校驗符號,從而碼長不改變,但顯然碼率會降低,這對應於刪去生成矩陣的行。一個增餘刪信碼是原碼的子碼。

譯碼方法與性能度量

基於接收序列、編碼規則和信道的噪聲特徵,接收機進行判決,給出哪一個消息是實際發送的,這個判決操作稱爲譯碼。依賴於譯碼器的輸入不同,譯碼分爲硬判決譯碼和軟判決譯碼。

1. 硬判決(hard-deision)譯碼

假定一個二元(n, k)線性分組碼的碼字c採用BPSK調製並在AWGN信道上傳輸。二進制調製器只有兩個輸入(M =2),而信道輸出爲實數(-∞,+∞)。如果解調器的輸出採用兩個電平量化(Q =2),則譯碼器的輸入符號只有兩種取值。這種情況下,解調器是做硬判決,基於解調器硬判決輸出的譯碼稱爲硬判決譯碼。

2. 軟判決(soft-deision)譯碼

如果解調器的輸出採用多於兩個電平量化(Q> 2)或不進行量化,則解調器就是做軟判決,基於這個軟判決輸出的譯碼稱爲軟判決譯碼。

硬判決譯碼比軟判決譯碼易於實現,但是軟判決評碼能夠提供更好的性能。

信道編碼的主要方案

1. 低密度奇偶檢驗碼(LDPC)

LDPC編碼是基於稀疏二分圖(Biparite Graph)設計的校驗碼,採用迭代方式進行譯碼。經典的LDPC在長碼塊的時候有優異的性能和較低的譯碼複雜度,曾多次刷新與香農限的逼近記錄。

LDPC首先在數字電視上得到應用。之後LDPC在WiMAX標準和無線局域網(WLAN)、無線高保真(WiFi)中成爲可選技術。在5G NR標準中作爲eMBB數據信道的編碼方案。

近年來,LDPC在短碼設計、支持靈活碼長碼率、碼率兼容/自適應重傳等方面都有許多突破。

2. 極化碼(Polar 碼)

Polar碼是一種新提出的線性分組碼,是針對二元對稱信道(BSC)的嚴格構造碼,可以達到BSC的信道容量。基本思想是利用信道的兩極分化現象,把承載較多信息的比特放在理想信道中,而把已知比特“凍結比特”放在非理想信道中。信道極化是一種普遍存在的現象,不僅在BSC信道,而且在AWGN信道也廣泛存在。它隨着碼長的增長變得更爲明顯。

極化碼雖然歷史不長,但是已有很多在碼字設計和譯碼算法方面的經驗,在碼的性能指標上有較強的競爭力,這使得它在5G NR標準中作爲eMBB控制信道的編碼方案。

3. 卷積碼(Convolutional Code)

卷積碼採用維特比譯碼算法。具體:採用時不變的網格結構(Trellis)來有效的譯碼。之後又出現了其他的基於Trillis的譯碼算法,如BCJR算法。卷積碼可以分爲非遞歸和遞歸兩種類型。常用的經典的卷積碼多數是非遞歸的。

當約束長度較小時,卷積碼的譯碼複雜度較低,性能也不算差。尤其是碼長較短時,卷積碼性能與Turbo碼的相近。所以,它廣泛應用於3G和4G中的各類物理控制信道、系統消息信道、一些適用於低成本終端的下行業務信道中。

一般的卷積碼需要有若干比特用來對卷積碼的移位寄存器清零,即讓編碼器的狀態迴歸0。爲了降低這部分開銷, LTE採用咬尾卷積碼。其特點是編碼器的結束狀態需要與初始狀態相同。由於接收端並不知道咬尾卷積碼編碼器的狀態,譯碼複雜度稍有增加。

4. Turbo碼

Turbo碼使人們看到性能逼近香農界的優秀性能,並領略到隨機編碼的潛力和迭代譯碼的威力。從此,隨機信道編碼與迭代譯碼成爲主流的編碼思路。

Turbo碼的思想是在編碼環節引入隨機圖樣的交織器,將兩個遞歸卷積碼並行或串行的級聯起來,這樣就增加了這個碼字的糾錯能力。在譯碼環節上採用次優但是複雜度較低的迭代算法。比特的軟信息在兩個卷積譯碼器之間往復迭代,使得置信度不斷提高。

相對傳統LDPC碼,Turbo碼在碼長、碼率的靈活度和碼率兼容自適應重傳方面有不少優勢。因此,它在3G和4G中是必選的編碼方式。但是Turbo碼的譯碼複雜度在多數情況下要高於LDPC,尤其在大碼長和高碼率場合下。

5. 外層編碼

爲了進一步提高信道編碼的前向糾錯和檢錯能力,可以在物理層的信道編碼之上加外層編碼。

在2G中,內層的信道編碼一般是糾錯能力有限的分組碼或者卷積碼,此時外層編碼成爲不可或缺的環節。3G/4G/5G系統中,依然採用外層編碼(如CRC)來進行糾錯和檢錯。

5G需要支持低時延高可靠場景,這些業務所佔資源很有可能打掉一些其他業務——如移動寬帶、海量物聯網——等的資源。這會對那些被打掉資源的業務造成突發性干擾。而外層編碼有望承載這些業務的信道的魯棒性。

此外,外層編碼可以提高鏈路自適應的能力。這在有HARQ的情況下,能使鏈路更有效的進行重傳。

6. 其他高級編碼方案
重複累積碼(RA碼)

在Turbo碼和LDPC碼的基礎上提出的一種信道編碼方案。綜合了兩者的優點:不僅具有Turbo碼的簡單性,而且具有LDPC碼的並行譯碼特性。

脊髓碼(Spinal碼)

Spinal碼是一種在時變信道中適用的無速率碼,也是一種逼近香農界的碼。其核心是對輸入消息比特連續使用僞隨機哈希函數結合高斯映射函數不斷產生僞隨機量化的高斯符號。相比於現存的信道編碼,Spinal碼可以在碼長很短的條件下逼近香農容量。在較好的信道條件下,Spinal碼的性能優於現存的信道編碼加高階調製方案。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章