上一節咱們瞭解了tal-vardy算法的大體原理,對所要研究的二元輸入無記憶對稱信道進行了介紹,並着重介紹了可以避免輸出爆炸災難的合併操做,這一節咱們來關注信道弱化與強化操做。算法
【1】《Channel polarization: A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels》Erdal Arıkanless
【2】《How to Construct Polar Codes》Ido Tal, Alexander Vardy函數
Part1.信道弱化與信道強化spa
信道弱化:3d
咱們給出一個信道。對於信道,若是存在一箇中間信道使得對於全部的都有:code
那麼咱們記:,指代信道Q相對於信道W是弱化的。blog
很容易證實下面這些性質:ci
1) 這種「弱化」是具備傳遞性的,相似a≤b,b≤c,則a≤c。input
2) 咱們定義「弱化」操做中的恆等性質,相似a≤b,b≤a,則a≡b。數學
3) 這種恆等性質具備對稱性,相似a≡b,則b≡a。
對於信道的強化操做,這裏就再也不解釋了。實際上,只須要把上式中的信道W和信道Q調換一下位置,就可以的獲得信道強化的操做,以及相似的公式和下面的性質。
經過弱化操做後獲得的弱化信道Q,咱們重點關注它的三個參數。不過,在那以前咱們先來看一下原始信道W的參數狀況。
對於一個二元無記憶對稱信道W:
<1> 信道錯誤機率Pe:
咱們假設Pe(W)爲最大似然判決下的錯誤機率,若是輸入服從等機率分佈(即傳輸0和1的機率都爲1/2),那麼咱們能夠獲得:
<2> 巴氏參數Z(W):
<3> 信道容量I(W):
由W獲得的弱化信道的參數變化狀況以下:
論文中並無直接給出後兩個結論的導出,第二個結論在論文的參考文獻中已經被嚴格證實,第三個結論在第二個結論的基礎上能夠被證實。這兩個證實超出了個人能力範圍,須要證實的能夠從論文參考文獻給出的引用目錄裏面去找。咱們重點來關注第一個公式,以及它的證實。
如上爲證實過程,由第一步到第二步很好理解,直接把定義公式代入就行。從第二步到第三步須要稍稍解釋一下。
咱們能夠先忽略掉最外層的1/2倍乘和對z的求和,對比後面的內容。
這兩種操做形成差別的緣由就在於運算的邏輯順序問題。
第二步的式子中,咱們把W(y|0)和W(y|1)看作兩個總體,忽略總體中每個加數的細節,關注總體的大小,再取兩個總體的最小值。
第三步的式子中,咱們將W(y|0)和W(y|1)拆開來看,咱們逐項拿出數對進行對比,只留下較小的那一項,這樣最後相加的加數項的每一項,都是它所對應的那一對數中的較小者,這樣的一組加數相加獲得的和必定是小於等於第二步的。
固然,這只是一種定性的分析,咱們也能夠用數學語言去描述它,讓它在形式上更加嚴謹。
弱化操做
在介紹信道弱化操做前,讓咱們先來回顧一下Arikan遞推公式。tal-vardy算法每一步只操做兩個信道,所以咱們關注Arikan對單步信道轉化的描述。
【1】-I-E中明確指出,兩個獨立的二元輸入信道副本W:X→Y可以經過單步信道轉化,變成一對二元輸入信道:和。其中輸出字符集的映射關係爲:。信道轉移機率之間的關係爲:
【2】中對這兩種信道操做進行了從新定義。【2】提出了兩種符號分別用來表徵這兩種信道轉化操做。第一種操做記爲:,第二種操做記爲:。所以,咱們獲得:
從【1】中的介紹,咱們發現,原始信道副本的輸入字符集爲{0,1},長度爲2;假設輸出字符集長度爲 「2L」,則經過第一種信道操做獲得的信道 W' 的輸出字符集長度爲「2L×2L」,經過第二種信道操做獲得的信道 W'' 的輸出字符集長度爲 「(2L)2×2」。這個結論很重要,與接下來的信道操做有關。
這個現象很好說明,兩個W信道副本都只有兩個輸出字符,分別爲y一、y2和它們的共軛,2L=2。假設咱們簡記y→0,→1。則第一種信道操做的輸出字符集有2L×2L=4,四種可能——{00,01,10,11};第二種信道有2×(2L)2=8,八種可能——{000,001,010,011,100,101,110,111}。能夠看到,隨着單步信道轉化的進行,信道的輸出字符集長度將隨着轉化次數的增長爆炸增加。在碼長較大時,這將使得極化碼的構造計算複雜度變得不可控制,咱們以前介紹的合併函數就是爲了解決這個問題而存在的。
【2】中的引理5是信道弱化操做的核心理論。
Lemma5
給定一個二元輸入的信道 W:X→Y ,設:
假設Q是W的弱化信道:,並記:
則,咱們能夠獲得:
且
這個引理對於強化操做,同樣成立,只須要將上述的Q和W互相調換位置。
引理5的證實位於【2】Page6。
引理5告訴咱們,一個弱化信道,即便對它進行信道轉化操做後,它依然是一個弱化信道。
【2】中對信道弱化操做部分作了與合併函數一樣的描述方式,將信道弱化操做視爲一個函數。函數的輸入爲原始BMS信道W,以及指定輸出字符集長度μ;函數輸出爲一個弱化BMS信道Q,Q的輸出字符集最大不超過μ。
信道極化操做
在信道極化過程當中,對於信道轉化方法的選擇問題(即在每個節點判斷進行信道操做1,仍是信道操做2),能夠視爲一個二進制樹的生成。在【1】中Arikan爲咱們展現了這樣一張圖:
咱們暫且稱其爲「碼樹」。
碼樹的根爲原始的信道副本,在每一級code_level上都會產生兩個分支,上分支使用第一個信道轉化公式,下分支使用第二個信道轉化公式。咱們以上圖爲例,N=2^n=8,n=3。n即code_level,表示樹的深度;N即code_length,表示樹的廣度。藉助二進制數,咱們能夠很容易的找到從樹根到樹梢的路徑。例如,當 i 取5時,咱們將 i-1 轉化爲位數爲 n=3 的二進制數:(5-1)10→(100)2。對應到碼樹中,從樹根開始,三級分支分別取下、上、上分支,使用相應的信道操做,就可以獲得這一極化信道。
所以,在信道操做中,咱們能夠將信道指數(channel index)轉化爲二進制數,經過逐位讀取並進行判斷,使用相應的信道操做,就可以實現信道極化。【2】中給出了一個很是清晰的算法思路:
算法複雜度
在上面的算法中,咱們假設每次執行合併函數的時間爲,遵循上述算法A中的符號使用規則,對於n個信道來講,因爲每一個信道指數有m位,所以總共調用合併函數的次數爲n·m次,用時。可是,因爲許多中間信道的計算是在作重複性的工做,所以,實際計算不一樣信道的次數爲(2n-1-1)次,所以總的時間複雜度應該爲,也即。
實際上,咱們可以利用對稱信道的特色,進一步下降計算複雜度。
還記得咱們在上一節強調過的Arikan給出的定理13嗎?
因爲咱們的信道操做是單步進行的,每一次只進行兩個信道的合併,在上圖的(58)式中,取N=2,i=1,咱們能夠獲得第一種信道操做的對應公式: 其中,G2=[1 0; 1 1]。不失通常性的,咱們假設發送的比特爲0,即u1=0,而且,咱們令等式右端的發送端等於1(即令a1=1),能夠獲得:
【咱們爲何要這麼作?】
【回憶一下對稱信道的定義之中,有這樣一條:】 【顯然,咱們這樣作的目的是爲了獲得字符對(y1,y2)的共軛對。】
當a2分別取0、1時,有:
也即,有兩個共軛對,一個是,另外一個是。對上式進一步的轉化,咱們能夠發現,容易獲得:
以及:
通俗來講,上面這一番計算的意義在於,在信道轉化操做以後,咱們沒有必要計算輸出字符集中每個字符的轉移機率。實際上,咱們只須要對一半字符進行計算。
相似的,咱們能夠對第二種信道操做進行相似的計算,令i=2,則輸出字符集共有3個字符,能夠組成8中不一樣的組合,最後實際上只須要計算4種組合。
本節的內容就是這樣,下一節咱們將討論如何對BAWGN信道使用tal-vardy算法。