PolarCode

張繼123發表於2017-09-29

什麼是polar code極化碼

  為了實現可靠的訊號傳輸,編碼學家在過去的半個多世紀提出多種糾錯碼技術如裡所碼(RS碼)、卷積碼,Turbo碼等,並在各種通訊系統中取得了廣泛的應用。但是以往所有實用的編碼方法都未能到夏農於1948年所給出的通道傳輸的容量極限(也稱為夏農界)。2008年在國際資訊理論ISIT會議上,Arikan首次提出了通道極化的概念,基於該理論,他給出了人類已知的第一種能夠被嚴格證明達到通道容量的通道編碼方法,並命名為極化碼(Polar Code)。Polar碼具有明確而簡單的編碼及譯碼演算法。通過通道編碼學者的不斷努力,當前Polar碼所能達到的糾錯效能超過目前廣泛使用的Turbo碼、LDPC碼。

  極化碼(polar code)是由土耳其畢爾肯大學(bilkent)Erdal Arikan教授於2008年首次提出,其論文從理論上第一次嚴格證明了在二進位制輸入對稱離散無記憶通道下,極化碼可以“達到”夏農容量,並且有著低的編碼和譯碼複雜度。從某種意義上說,極化碼“理論上”解決了近60年來資訊理論和編碼領域一直想要解決的問題。

  雖然極化碼的理論很優美,但其實際效能從其剛出現時還不太理想(“理論上”是指當碼長趨向於無窮時的效能;“實際”是指有限長度碼長)。但近年來,極化碼實際構造方法和列表連續消去譯碼演算法(list successive cancellaTIon decoding)等技術的提出,極化碼的整體效能在某些應用場景中取得了和當前最先進的通道編碼技術Turbo碼和低密度奇偶校驗碼(LDPC碼)相同或更優的效能。

  在這裡我們再談談arikan教授發明極化碼時所提到的2*2矩陣為核的極化碼的三大要點:(以下三點,或者是極化碼在通道編碼中最核心的創新。)

  1.上鞅收斂:構造了一個通道變換,如果不斷遞迴這個變換並隨機挑選變換結果的話,則變換結果的巴氏引數(Bhattacharya parameter)構成一個隨機過程。arikan證明這個隨機過程是一個上鞅,再利用上鞅中的隨機變數序列a.s收斂和按期望收斂,證明收斂結果為一個二值隨機變數。再證明這個二值隨機變數為0的概率是二元離散對稱無記憶通道容量I, 推斷證明碼長n無窮的時候可以挑出約nI個巴氏引數逼近0的無失真子通道,這就證明了通道極化是通道容量可達的。FoundaTIon and trends裡面polar章節,有另外一種證明方法,初等一些。

  2.SC譯碼:有了好碼還需要有好的譯碼演算法。夏農和Gallager都已經證明,大部分碼都是好碼,只缺好的,多項式複雜度的譯碼演算法。arikan使用通道變換中的遞迴結構,先譯“壞”通道的結果,甚至凍結“壞”通道的譯碼結果為0(降低位元速率),然後作為“好”通道譯碼的依據。複雜度是超線性的,非常Nice.
PolarCode