1. 程式人生 > >極化碼小結(1)

極化碼小結(1)

一個暑假過去了,身心懈怠,知識荒疏,為了方便接下類的研究工作。這裡對已經掌握的極化碼知識做一個簡單的小結。

Chapter1 極化碼簡介:

  極化碼建立在通道極化這一現象之上。

  通道極化現象來自於通道合併通道分裂這兩種通道操作。

通道合併:

  將N個獨立通道W通過變換使之變為一個具有“集體意義”的通道WN,這裡“集體意義”的產生來源於變換,而變換遵循固定的規則。

  首先,變換是一個遞迴過程。對於N(N=2n)個獨立通道W,想要將其變為一個具有“集體意義”的通道WN需要進行n次通道操作,每次通道操作都將N個通道變為N/2個小型的通道集合體,這樣通過遞迴N-->N/2-->N/4-->……-->4-->2-->1就可以實現N個通道的合併。

  每次通道操作又分為兩個部分:

  • 對通道輸入向量的運算。譬如在B-DMC通道中,輸入向量服從等概率分佈,我們假設輸入向量為。對它進行的操作為
  • 置換操作。對於上一步得到的向量,通過置換操作使其變為

  圖解:

  對於一個單獨的通道W:X—>Y 來說,它的通道轉移概率為W(Y|X)。對於具有“集合意義”的WN來說,它的轉移概率為。上述兩步變換操作可以用生成矩陣GN來代替,運算關係為 ,於是轉移概率變為。這裡的向量x跟上面說的v是一個道理, 就不用mathtype編輯公式了,直接截的圖。

  這裡我們關注轉移概率公式的一個細節。公式左邊是WN,指代一個由N個獨立通道合併得到的“通道集合體”。右邊是WN

,指代N個排列在一起但是相互獨立的通道。公式左邊我們很好理解,我們完全可以將這個集合體看作一個單獨通道,(y1~yN)是它的輸出,(u1~uN)是它的輸入。但是我們如何理解公式右邊呢?WN究竟是表徵的是一種怎樣的運算呢?是W的N次乘方嗎?

  答案是,WN代表的是乘積運算,表示N個通道的轉移概率W相乘。但是它又不僅僅是相乘,當我們把WN拆開成N個因子相乘的形式來寫的時候,我們必須考慮到生成矩陣在其中所起到的線性變換作用。以W2和W4為例我們來具體解釋一下:

  這是W2的展開式,我們看到,展開時u1和u2先是根據生成矩陣進行了線性變換,然後才相乘。W4同理:

  可見,通道合併並未在物理層面上真正的將互不干涉的通道進行了合併,而是通過數學的方法使這些通道產生千絲萬縷的聯絡,形成一個具有某種“集合意義”的通道集合體。因此,下面我們再進行通道分裂的時候也並不是像吃奧利奧一樣把兩個通道掰開,實際上這些通道一直都是有機的結合在一起,它們本身在集體中就保持著自身的完整屬性,通道分裂只是提取出通道在“集體”中的個體特性。而正如我們將發現的那樣,這個集體中的個體特性與之前的個體特性已經大為不同,這種不同的巨集觀表現就是就是通道極化現象。

通道分裂:

所謂通道分裂,其實就是在上述形成的集合體中觀察單個通道的屬性(主要觀察轉移概率)。

  對於通道集合體中的單個通道來說,它的轉移概率通過以下定義來求得:

  這是一個定義式。從這個式子我們看到,由於原本獨立的通道與其他通道有機的結合在了一起,當我們再次觀察每個通道時,它們的轉移概率將受到其他通道的影響。由於通道合併是一個遞迴過程,通道分裂作為通道合併的“逆過程”,不可避免的也是一個遞迴過程。

  文獻《極化碼編碼與譯碼演算法研究》(作者:王繼偉)中指出,對於上式計算分裂通道的轉移概率,其演算法複雜度隨碼長增加呈指數型增加。而將定義式寫成如下的迭代式能夠使演算法具有線性複雜度:

  這個公式是通過歸納法得到的。

  如何理解上面的定義式?為什麼要這麼定義?

  下面的遞推公式的證明在Arikan的論文《Channel Polarization:……》第20頁的附錄(appendix / section-B)給出,如何理解這個遞推公式?如何理解遞推公式的推導過程?

  上面這兩個問題我無法回答,看官如果有同樣的疑問或者有問題的答案請移步討論區,發表您的見解。

  從通道的合併與分裂的描述中我們可以隱約發現 ,通道合併與極化碼的編碼在形式上非常相似,而通道分裂與極化碼的解碼在形式上非常相似。

  根據我們對通道合併與分裂的觀察,在極化碼的模擬體系中:為了完成極化碼編碼,工作的重點放在生成矩陣的構造;而通道分裂的特殊定義又指明瞭極化碼的譯碼應該採用序列譯碼的方式。此外,通道極化現象展示了極化碼的巨集觀特性 ,通過分析極化現象中的特定引數,我們可以確定極化碼編碼過程中的資訊位選取方案。

通道極化:

通道極化是通道合併與通道分裂兩種通道操作的結果。在上述兩種操作下,原本相同的N個W通道產生了極化現象,其中一部分通道的通道容量趨近於1,另一部分通道的通道容量趨近於0。

  這是一個非常特別的現象,因為我們可以利用這種極端的情況,通過在通道容量趨近於1的一部分通道傳輸有用資訊,而在另一部分通道上傳遞無用資訊(即資訊量為0的資訊),實現對夏農限的逼近。

  這裡是我曾經編寫的對通道極化現象進行模擬的matlab程式碼和結果圖,有興趣的讀者可以看一下:

  理論依據主要是這個公式:

  當然不僅僅是這個公式,具體內容請移步論文《channel polarization……》的第【I-B-3) 】節。

  因此,基於上面的闡述,我們說極化碼建立在通道極化理論的基礎上。

極化碼的特點:

  極化碼的特點大家都耳熟能詳了,歸納起來主要有兩點:

  • 可以到達夏農限;

    什麼是夏農限?如何到達夏農限?到達夏農限有什麼意義?

    夏農第二定理(有噪通道編碼定理)指出:當通道的資訊傳輸率不超過通道容量時(R≤C),採用合適的通道編碼方法可以實現任意低的傳輸差錯。

夏農第二定理通俗來說就是,在R不大於C的情況下,存在一種能夠實現資訊的絕對可靠傳輸的編碼方案。而所謂夏農限就是同時滿足絕對可靠、R逼近C的理想情況。夏農第二定理並沒有告訴我們如何進行通道編碼,但是它指導著我們去尋找更加符合這種理想狀態的編碼方案,從turbo碼到LDPC碼,越來越逼近這一理想,而極化碼的出現,在理論上實現了這一理想。

    這種理想的編碼方案使我們能夠在一個噪聲通道中以理論上最小的差錯率和最快的速度進行資訊傳輸。

  • 複雜度低;

    根據Arikan的論文《channel polarization……》中的計算和描述,使用遞推方法進行編碼和譯碼的極化碼的編碼、譯碼複雜度均為O(NlogN)。這是一個線性複雜度,相對來說其複雜度比較低。複雜度的計算具體位置在論文的VII-C,VIII-A兩節。筆者水平有限,無法理解並闡述清楚,感興趣者請移步論文。

  以上就是對極化碼的簡單介紹,與之前實踐性非常強的模擬系列不同,這一章重在理論。

  筆者水平有限,歡迎各位在評論區提出指導和意見。