5G NR LDPC碼(1)—— LDPC碼設計原理

5G NR中規定了控制消息和廣播信道用Polar碼,數據傳輸用LDPC碼的方案。

  1. LDPC屬於線性分組碼,常用校驗矩陣或者Tanner圖來描述。
  • 校驗矩陣來描述LDPC碼,可以清晰的看到信息比特和校驗比特之間的約束關係,在編碼過程中使用較多。
  • Tanner圖把校驗節點和變量節點分爲兩個集合,然後通過校驗方程的約束關係連接校驗節點和變量節點。如果爲1,則有連線。圓圈爲變量節點,方框代表校驗方程。
  1. LDPC爲低密度奇偶校驗編碼,校驗矩陣一般是一個稀疏矩陣,即其中只有一小部分元素是1,其餘元素皆爲0。對於校驗矩陣爲H的LDPC碼,其碼字c滿足Hc=0。定義列重爲 i 的列所佔的比例爲vi,行重爲 i 的行所佔的比例爲hi,稱爲度分佈
  2. LDPC碼基於消息傳遞算法進行譯碼,校驗矩陣的稀疏性保證了譯碼算法複雜度隨着碼長線性增長。

LDPC碼設計原理

​ LDPC碼的校驗矩陣或Tanner圖決定了其性能。消息傳遞算法可以理解爲在Tanner圖上傳遞消息的過程,這些消息代表碼字中編碼比特值的概率分佈。通過跟蹤Tanner圖上傳遞的消息,採用密度演進算法可以估計LDPC碼的性能。另一方面,在實際應用中,LDPC碼必須以低複雜度的描述和編譯碼來實現,支持靈活的資源調度和重傳。隨着LDPC碼技術的發展,一些重要的技術特性涌現以滿足這些需求。比如,RL(Raptor Like)結構的出現使得LDPC碼可以很好的支持多碼率、多碼長以及增量冗餘混合自動重傳請求(IR-HARQ,Incremental Redundancy Hybrid Automatic Repeat request);準循環(Quasi-Cyclic)結構使LDPC碼的低複雜度、高吞吐的編譯碼器易於實現。針對這些關鍵技術,本節介紹LDPC碼的設計原理。

1. 消息傳遞算法與密度演進

(1)消息傳遞算法

  • 將Tanner圖加以推廣,可以得到更一般的因子圖,用來描述多變量函數的結構,校驗節點在因子圖中稱爲函數節點,如果變量節點是某個因子函數(檢驗方程)的自變量,那麼在因子圖上各變量節點和函數節點之間通過一條邊連接。
  • 求解邊緣函數時,利用因子圖將一個複雜任務分解成多個子任務,每個子任務對應到因子圖上的一個函數節點,這使得計算時不需要因子圖其他部分的消息,且傳送其計算結果僅由這些局部函數的自變量來承擔,從而簡化計算。計算邊緣函數需要計算乘積和求和,所以基於因子圖的這種計算邊緣函數的算法也叫做和積(SP,Sum-Product)算法
  • 在LDPC碼的譯碼過程中,消息傳遞算法計算的是每個比特的後驗概率(Posterior Probability),輸入是來自於解調模塊的各比特的先驗概率(Prior Probability),傳遞的是編碼比特的概率分佈,如LLR。對於無環的因子圖,一次消息傳遞就可以求出所有變量節點的邊緣函數。對於有環的因子圖,需要通過多次迭代計算,才能逼近變量節點的邊緣函數。 LDPC碼的校驗矩陣中一般都有環存在,所以消息傳遞算法是一種次優的逼近最大後驗概率(MAP,Maximum A Posteriori)的算法。在設計LDPC碼校驗矩陣的過程中,增大最小環的環圍(girth) ,使得消息傳遞譯碼過程中傳遞消息的相關度降低,是提升LDPC碼性能的技術之一。

(2)密度演進

  • 密度演進算法通過跟蹤消息傳遞過程,可以評估校驗矩陣的性能,以指導LDPC碼的設計。在消息傳遞算法中,變量節點到校驗節點之間傳遞的消息是編碼比特爲1或者0的LLR,其概率密度函數可以表徵LDPC碼的性能。

  • 假設所有的消息概率密度分佈是相互獨立的,即信道是無記憶的。根據變量節點向校驗節點的消息傳遞公式,輸出消息的概率密度函數可以通過卷積獲得。

  • 由於密度演進算法需要非常複雜的概率密度函數計算,往往假設LLR服從高斯分佈。由於高斯分佈的卷積仍然是高斯分佈,這近似 使得密度演進算法只需要追蹤隨機變量均值和方差的變化即可。密度演進算法可以計算出服從某種度分佈的校驗矩陣的譯碼門限,進而評估這種度分佈情況下LDPC碼的性能。

2. 速率匹配/HARQ

爲了支持靈活調度和提升系統吞吐量,LDPC碼需要支持多碼率編碼和IR-HARQ

  • 一種方案與Turbo碼類似,即先編碼得到一個低碼率(如LTE Turbo碼採用1/3) 的母碼,然後通過打孔實現高碼率。當需要重傳時,重傳打孔比特以實現IR-HARQ。該方案使LDPC碼和打孔方案的設計複雜度都很高。
  • LT碼和Raptor 碼的出現提供了另一種方案:Raptor-Like 結構的LDPC碼(RL-LDPC)。RL-LDPC碼先設計一個高碼率的校驗矩陣,然後通過擴展校驗矩陣以增量產生校驗比特,實現多碼率編碼,重傳擴展的校驗比特即實現了對IR-HARQ的支持。
  • 在LDPC碼的設計中,瀑布區(Waterfal Region,此區域內譯碼錯誤奉隨信噪比增加快速降低)的性能和錯誤平層是一對矛盾。 往往瀑布區較好的矩陣具有較高的錯誤平層,具有較低錯誤平層的矩陣瀑布區性能較差。

3. QC-LDPC碼

支持多種信息塊大小是LDPC碼實用化的另一個設計要求。

  • 如果直接根據信息塊大小設計LDPC碼的校驗矩陣,則需要非常多個校驗矩陣以滿足5GNR調度的信息塊顆粒度的需求,這對於LDPC碼的描還和編譯碼實現都不可行。QC-LDPC 碼的提出使這個問題得以解決。

  • QC-LDPC碼是一類結構化的 LDPC碼,其校驗矩陣可以分解爲ZxZ的全零矩陣循環移位矩陣。其中循環移位矩陣通過對ZxZ的單位矩陣向右循環移位獲得。擴展之前的矩陣稱爲基矩陣[對應的Tanner圖稱爲基圖(BG, Base Graph)],只包含元素“0”和“I”。“0” 的位置替換爲ZxZ的全零矩陣,“1” 的位置替換爲ZXZ的循環移位矩陣。

  • QC-LDPC碼的設計

    首先確定一個mxn的稀疏矩陣作爲BG,然後複製這個BG,複製的倍數爲Z,即矩陣變爲mZxnZ。複製之後,對變量節點和校驗節點之間的連線進行交織(這裏是循環移位),構成校驗矩陣。已經證明, 通過優化設計mxn的BG,可以保證擴展之後的mZxnZ校驗矩陣擁有較好的性能。BG的設計過程可以採用常規的LDPC碼設計方法,比如通過密度演進算法挑選具有較好譯碼門限的BG。

  • QC-LDPC碼的優點

    第一,通過分析BG就可以對校驗矩陣的性能有大致的瞭解。

    第二,描述複雜度低。對於傳統的LDPC碼,當其需要支持較長的消息序列時,校驗矩陣的規模巨大。然而對於QC-LDPC碼,只需要描述BG中非0元素的位置和相應的循環移位大小即可。

    第三,編譯碼複雜度低。由於其採用ZxzZ的循環移位矩陣,所以編碼時可以實現並行度爲Z的編碼過程,譯碼時可以實現Z個校驗方程相關消息的同時更新和傳遞,可以大大提升LDPC碼譯碼器的吞吐量。

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