Polar碼快速入門
本科生在學習極化碼時,並不是件簡單的事情。網上極化碼的資料很少,而且基本上都是較難的論文。這篇文章是用來幫你快速入門極化碼。
Poalr碼背景
2015 年,國際電信聯盟無線通訊部(International Telecommunication Union-Radio Communications Sector,ITU-R)明確了未來 5G三大典型應用場景,分別為:
-
增強型移動寬頻(enhanced mobile broadband,eMBB)場景。要求支援更高的傳輸速率(峰值速率:上行鏈路達到 10 Gbit/s,下行鏈路達到 20 Gbit/s)、更高的頻譜效率(峰值頻譜效率:上行鏈路達到12 bit/(s·Hz),下行鏈路達到 30 bit/(s·Hz))等。
-
大規模機器類通訊(massive machine type communication,mMTC)。要求支援更大連線數密度(\(1×10^6\)個連線\(/km^2\))、更低能耗(終端電池使用壽命達到 15 年);
-
場景和超高可靠性低時延通訊(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。
我們這節課主要講述:
- 通道極化:通道合併和分解
- Polar碼的編碼方式
- 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\),也就是紅筐所示的部分。具體組合方式如下:
這種由"\(\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時,具體組合方式如下
如上圖所示,\((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)\)被置換到上一半(紅框表示部分),而第二個碼字位元被置換到下一半(綠框表示部分)。
\(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階克羅內克積。
- 排列運算矩陣\(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
- 克羅內克積。比如\(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