Polar碼快速入門

rongyupan發表於2020-05-09

Polar碼快速入門

本科生在學習極化碼時,並不是件簡單的事情。網上極化碼的資料很少,而且基本上都是較難的論文。這篇文章是用來幫你快速入門極化碼。

Poalr碼背景

2015 年,國際電信聯盟無線通訊部(International Telecommunication Union-Radio Communications Sector,ITU-R)明確了未來 5G三大典型應用場景,分別為:

  1. 增強型移動寬頻(enhanced mobile broadband,eMBB)場景。要求支援更高的傳輸速率(峰值速率:上行鏈路達到 10 Gbit/s,下行鏈路達到 20 Gbit/s)、更高的頻譜效率(峰值頻譜效率:上行鏈路達到12 bit/(s·Hz),下行鏈路達到 30 bit/(s·Hz))等。

  2. 大規模機器類通訊(massive machine type communication,mMTC)。要求支援更大連線數密度(\(1×10^6\)個連線\(/km^2\))、更低能耗(終端電池使用壽命達到 15 年);

  3. 場景和超高可靠性低時延通訊(ultra-reliable and low latency communication,uRLLC)場景。要求支援更低的時延(上下行鏈路時延 0.5 ms,即端到端時延低於 1 ms)、更高的可靠度(達到 99.9999%,即 1 ms 內的誤幀率低於\(10^{-6}\))、更低的錯誤平層等。

而4G 中採用的通道編碼方案 Turbo 碼因在可靠性(Turbo 碼存在譯碼錯誤平層)、編譯碼複雜度、譯碼吞吐量和編碼效率等方面難以有效滿足 5G 場景下的各種效能要求。亟需為 5G 新空口(new radio,NR)設計更加先進高效的通道編碼方案,以儘可能小的業務開銷實現資訊快速可靠傳輸。

目前,國內外研究機構已針對 5G 通道編碼技術開展了大量研究,並已達成部分共識。Polar 碼因其理論證明可達到夏農極限,且具有可實用的線性複雜度編譯碼能力而受到業界重視,成為5G NR通道編碼方案的強有力候選者。在 2016 年 11 月召開的 3GPP RAN1#87 次會議上確定eMBB場景的 5G 短碼塊通道編碼方案採用 Polar 碼作為控制通道編碼方案。

Polar碼概述

2008 年,土耳其畢爾肯大學 Arikan 教授在國際資訊理論(International Symposium on Information Theory,ISIT)會議上首次提出通道極化(channel polarization)的概念。Polar碼的核心思想是通道極化,不同的通道對於極化方法也有區別。

2009 年,Arikan教授在中對通道極化進行更為詳細的闡述,並基於通道極化思想提出一種新型通道編碼方法,即 Polar 碼。 Arikan 分析了 Polar 碼的極化現象,並給出 Polar 碼在二元刪除通道(binary erasure channel,BEC)中的具體構造方法以及編譯碼過程。

考慮到 Arikan E 給出的 Polar 碼構造方法僅適用於 BEC 通道,具有較大的侷限性,Mori 和 Tanaka 等人借鑑低密度奇偶校驗(low-density parity-check,LDPC)碼的構造方法,提出採用密度進化(density evolution,DE)方式構造 Polar 碼,以適用於任意二進位制離散無記憶通道(binary discrete memoryless channel,B-DMC)。我們這節課主要研究物件就是B-DMC

我們這節課主要講述:

  1. 通道極化:通道合併和分解
  2. Polar碼的編碼方式
  3. Polar碼的譯碼方式(簡略)

通道極化

通道極化:包括通道合併和通道分解。

當合並通道的數目趨於無窮大時,一部分通道將趨於無噪通道,另外一部分則趨於全噪通道,這種現象就是通道極化。

無噪通道的傳輸速率會達到通道容量\(I(W)\),而全噪通道的傳輸速率趨於0。Polar碼的編碼策略正是應用了這種現象的特性,利用無噪通道傳輸使用者的有用資訊,全噪通道傳輸約定的資訊或者不傳資訊。

規定:

對任意\(N=2^n(n \geqslant 0)\)個獨立的B-DMC通道\(W\),使用遞迴的方式,合併成\(W_N\);然後再將\(W_N\)拆分為相關的通道\(\left \{ W_N^{(i)}: 1\leqslant i \leqslant N \right \}\),就是通道極化現象的具體實現過程。

通道極化過程

我們總結一下:
原先有N個性質相同的B-DMC通道,現在通過通道合併--通道分解的形式,得到了\(W_N^{(1)} \rightarrow W_N^{(N)}\)新的N個通道,這N個通道中,就有無噪和全噪通道,然後我們就能利用這N個不同性質的通道進行資訊傳輸。

通道合併

B-DMC通道: \(W: X \rightarrow Y\),其中,\(x=(x_1, x_2 \cdots)\)表示輸入向量集合,\(y=(y_1, y_2 \cdots)\)表示輸出向量集合。轉移概率記為:\(W (y|x),x \in X,y \in Y\)

通道合併:對N個互相獨立的B-DMC通道\(W\)合併,生成通道\(W_N\),記作:\(W_N : X^N \rightarrow Y^N\)。其中,\(X^N=(x_1, x_2 \cdots x_N)\)表示輸入序列,\(Y^N=(y_1, y_2 \cdots y_N)\)表示輸出序列。通道的轉移概率為\(W^N(y_1^N | x_1^N) = \prod_{i=1}^N W(y_i | x_i)\)

下面,我們研究N值不同時,通道合併的具體過程。

(1)N = 1 時,\(W_1 = W\),不用進行通道合併;

(2)N = 2時,\(W_2: X^2 \rightarrow Y^2\)。兩個通道\(W\)組合成了\(W_2\),也就是紅筐所示的部分。具體組合方式如下:

N=2示意圖

這種由"\(\oplus\)"和走線構成的圖成為長度為N的極化碼的編碼圖,表示這張圖的矩陣被稱為生成矩陣\(G_N\),比如當N=2時,\(G_2=F=\begin{bmatrix} 1 & 0 \\ 1 & 1\end{bmatrix}\)\(F\)也被稱為核心矩陣。

\((u_1, u_2)\)為信源序列,也成為信源位元;\((x_1, x_2)\)為輸入的編碼序列,即碼字位元;\((y_1, y_2)\)為輸出序列。

從上圖中,我們可以寫出輸入序列的表示式:\(x_1=u_1\oplus u_2, x_2 = u_2\)

我們也能看出,這個是個積通道。轉移概率為:\(W_2(y_1, y_2 | u_1, u_2) = W(y_1|u_1 \oplus u_2) W(y_2 | u_2)\)

(3)N=4時,具體組合方式如下

N=4示意圖

N=4示意圖

如上圖所示,\((W_2^{(1)}, W_2^{(1)}) \rightarrow (W_4^{(1)}, W_4^{(2)}), (W_2^{(2)}, W_2^{(2)}) \rightarrow (W_4^{(3)}, W_4^{(4)})\)

轉移概率為\(W_4(y_1^4 | x_1^4) = W_2(y_1, y_2| u_1 \oplus u_2, u_3 \oplus u_4)W_2(y_3, y_4|u_2, u_4)\)

信源位元和碼字位元的關係:\(u_1^4 \rightarrow x_1^4\)的對映關係表示式為:\(x_1^4 = u_1^4G_4, G_4=\begin{bmatrix} 1 & 0 & 0 & 0 \\ 1 & 0 & 1 & 0 \\ 1 & 1 & 0 & 0 \\ 1 & 1 & 1 & 1 \end{bmatrix}\)

這個生成矩陣是怎麼來的?直觀上來說,可以把上面的式子進行矩陣運算(加法為模2加法),可得\((x_1, x_2, x_3, x_4)=(u_1 \oplus u_2\oplus u_3\oplus u_4, u_3 \oplus u_4, u_2 \oplus u_4, u_4)\)這個結果就是圖表反應的結果。如果從數學上來說,見下面一般情況的N的分析。

所以,組合通道\(W_4\)和原始通道\(W^4\)之間的轉移概率可表示為:\(W_4(y_1^4 | x_1^4) = W^4(y_1^4|u_1^4G_4)\)

(4)將上述結論類比到任意N,兩個獨立通道 \(W_{\frac {N}{2}}\) 可以通過通道組合轉換成原道\(W_{N}\)

可以參考下圖理解一下這個規律:長度為N的極化碼編碼圖的最左列是豎著排列的\(N/2\)個長度為2的極化碼的編碼圖,所以這\(N/2\)個長度為2的極化碼的第一個碼字位元\((u_1 \oplus u_2, u_3 \oplus u_4 \cdots u_{N-1} \oplus u_N)\)被置換到上一半(紅框表示部分),而第二個碼字位元被置換到下一半(綠框表示部分)。
N=8示意圖

\(u_1^N \rightarrow x_1^N\)可表示為\(x_1^N=u_1^NG_N\)

\(G_N = B_NF^{\otimes n}\)為N階生成矩陣。

其中,\(B_N\)為N階位元反轉矩陣,實現倒位功能。\(B_N=R_N(I_2 \otimes B_{N/2})\)\(I_2 = F^2\)\(R_N\)是個排列運算矩陣。

核心矩陣\(F=\begin{bmatrix} 1 & 0 \\ 1 & 1 \end{bmatrix}\)\(F^{\otimes n}\)為矩陣F的n階克羅內克積。

  1. 排列運算矩陣\(R_N\)。舉例來說:\((a_1, a_2, \cdots, a_N)R_N = (a_1, a_3,a_5,\cdots,a_{N-1},a_2,a_4,\cdots,a_N)\)
    比如N=4時,\(R_N=\begin{bmatrix} 1 & 0 &0&0 \\ 0&0&1&0 \\ 0&1&0&0 \\ 0&0&0&1\end{bmatrix}\)。也就是在每列的1,3,……,2,4……對應位置為1,其餘為0
  1. 克羅內克積。比如\(A=\begin{bmatrix} 1 & 2 \\ 3&4 \end{bmatrix}, A \otimes F=\begin{bmatrix} 1F & 2F \\ 3F&4F\end{bmatrix}\),然後在對應位置展開即可。

如果感興趣,用上面這些公式可以驗證一下N=4時的生成矩陣。

組合通道和原始通道的轉移概率為:\(W_N(y_1^N|u_1^N) = W^N(y_1^N | u_1^N G_N)\)

通道分解

通道分解過程是將組合通道\(W_N\)分裂成N個二進位制輸入位元通道\(W_N^{(i)}\)的過程。

我們先以N=2時為例。組合通道\(W_2\)分裂為\(W_2^{(1)}, W_2^{(2)}\),即極化過程:\((W,W) \rightarrow (W_2^{(1)}, W_2^{(2)})\)

(1)傳輸信源序列\(u_1\)的極化通道\(W_2^{(1)}(y_1, y_2 | u_1)\)的轉移概率為:

\(W_2^{(1)}(y_1, y_2 | u_1) = P(y_1, y_2, u_1)/P(u_1)=\cdots = \frac {1} {2} \Sigma_{u_2}W(y_1|u_1 \oplus u_2)W(y_1 | u_2)\)

(2)傳輸信源序列\(u_2\)的極化通道\(W_2^{(2)}(y_1, y_2, u_1 | u_2)\)的轉移概率為:

\(W_2^{(1)}(y_1, y_2 | u_1) = P(y_1, y_2, u_1, u_2)/P(u_2) = \cdots = \frac {1} {2} W(y_1|u_1 \oplus u_2)W(y_1 | u_2)\)

上面的推導中省略了很多步驟。我們只需要瞭解結論,有興趣的同學課下可以來找我要具體的過程。

那麼,我們分解出的兩個通道能滿足極化通道的要求嗎?接下來我們可以驗證一下極化通道的特性。

由轉移概率,我們可得\(I(Y_1Y_2;U_1)+I(Y_1Y_2U_1;U_2)=2I(X_1;Y_1)=2I(W)\),其中\(I(W)\)表示通道\(W\)的互資訊。這個式子表達的意思是:通道\(W\)的兩次複用所能傳遞的資訊等於極化通道\(W_2^{(1)}\)\(W_2^{(2)}\)所能傳遞的資訊的和,極化通道不會損失資訊傳輸的能力

\(I(Y_1Y_2;U_1) \leqslant I(Y_1Y_2U_1;U_2)\),即\(W_2^{(2)}\)\(W_2^{(1)}\)的傳信能力大,也就是\(W_2^{(2)}\)\(W_2^{(1)}\)有更大的容量,當碼長趨於無窮時,計劃通道的容量非0即1。這裡具體的證明我們不再展開,通過兩者的大小比較有個直觀的認識即可。

推廣到N,我們定義極化通道表示式為\(W_N^{(i)}(\mathbf{y_1^N, u_1^{i-1}} | u_i)\),表示輸入為\(u_i\),輸出是\(\mathbf{y_1^N, u_1^{i-1}}\),也就是極化通道\(W_N^{(i)}\)能觀察到W的輸出\(\mathbf{y_1^N}\)和位元值\((u_1, u_2,\cdots,u_{i-1})\)。這是因為極化碼使用序列抵消譯碼,從\(u_1\)開始逐一估計信源位元,直到\(u_N\),所以在譯碼\(u_i\)時,\((u_1, u_2,\cdots,u_{i-1})\)的值都已經獲得,被當作譯碼\(u_i\)所需要的反饋

(二)Polar編碼

根據通道極化現象,可將原本相互獨立的N 個原始通道轉化為 N 個通道容量不等的位元信
道。當 N 趨於無窮大時,一部分通道的容量趨於0,而另一部分通道的容量趨於 1。

假設 K 個通道的容量趨於 1,N-K 個通道的容量趨於 0,可選擇 K 個容量趨近於 1 的通道傳輸資訊位元,選擇 N-K 個容量趨近於 0 的通道傳輸凍結位元,即固定位元,從而實現由 K 個資訊位元到 N 個編碼位元的一一對應關係,也即實現位元速率為 K/N 的Polar 碼的編碼過程。

具體編碼方式可表示為\(x_1^N=u_1^NG_N\)。生成矩陣如何計算等問題在上面已經說過了。

Polar 碼可由引數\((N,K A,u_{A^c})\)的陪集\(G_N\) 碼定義。

\(N=2^n\)為碼長;

K為資訊位元個數,也就是無噪通道數;

A 為資訊位元位置集合,A 中元素個數等於 K;

\(A^c\)為補集,也就是全噪通道的集合;

\(u_{A^c}\)為凍結位元所對應的序列,在\(A^c\)上傳輸的序列。由於凍結位元所在的通道特性極差,在資訊傳輸過程中一般固定設為 0。

由於上述編碼中的生成矩陣\(G_N\)中存在位元反轉矩陣\(B_N\),故該編碼方式也稱為位元反轉編碼

在 3GPP 中已確定 Polar 碼採用無位元反轉編碼,並把採用該編碼方式得到的 Polar 碼稱為“基本Polar 碼”,其生成矩陣為\(G_N = F^{\otimes n}\)

(三)Polar譯碼

極化碼的譯碼基本方法主要有:連續消除(Successive Cancellation, SC) 譯 碼 、 置 信 傳 播 (Belief Propagation, BP) 譯 碼 、 線 性 規 劃 (Linear Programming, LP) 譯 碼 、 基 於 SC 列 表 (Successive Cancellation List, SCL)譯碼、最大似然(Maximum Likelihood, ML)譯碼等。

參考文獻:《極化碼講義》-於永潤編寫。下載連結

ch9-極化碼。http://staff.ustc.edu.cn/~wyzhou/chapter9.pdf

《面向 5G 新空口技術的 Polar 碼標準化研究進展》:謝德勝、柴蓉等;重慶郵電大學行動通訊重點實驗室;2018−08−10