極化碼之tal-vardy算法(1)

  繼前兩節咱們分別探討了極化碼的編碼,以及深刻到高斯信道探討高斯近似法以後,咱們來關注一個很是重要的極化碼構造算法。這個算法並無一個明確的名詞,所以咱們以兩位發明者的名字將其命名爲「Tal-Vardy算法」。html

  在《極化碼小結(2)》之中,咱們簡單講述了BEC信道下構造極化碼的方法——經過直接計算巴氏參數Z(W)來構造,計算複雜度爲O(N)。算法

  在《極化碼之高斯近似》中,咱們討論了經常使用的高斯信道下構造極化碼的方法——高斯近似,計算複雜度也爲O(N)。編程

  如今,咱們再次將極化碼的觸手伸向另外一種常見的信道——二元對稱無記憶信道(BMS)。數據結構

  因爲篇幅可能較大,所以我將分兩節對該算法進行一個簡略的介紹。我會將本文涉及到的參考文獻放在相關內容開頭,並建議有須要的各位去讀原論文。less

  【1】《How to Construct Polar Codes》Ido Tal, Alexander Vardy.函數

 

Part1. 簡單介紹
工具

  這套算法中,有兩個核心的信道操做,一種叫作信道弱化(degrade),另外一種叫作信道強化(upgrade)。論文做者形象的將這兩種操做產生的弱化信道、強化信道與原信道的關係比喻成「三明治」的結構。性能

圖1 三種信道之間的關係示意編碼

  論文的大體思路,就是經過將原始信道經過弱化操做和強化操做,使之成爲弱化信道和強化信道。分析發現,這兩種信道在各類參數水平上都極爲接近,所以經過相似數學上的「兩邊夾定理」,咱們能夠用這兩個信道來近似原始信道。spa

  「tal-vardy算法」構造極化碼的思路是直接計算各信道的錯誤機率Pe(W),而後利用這個參數來挑選咱們所需的信息位。這種挑選信道的方法顯然更具備廣泛性。。「Tal-Vardy算法」是針對B-DMC(二元離散無記憶)信道提出的,對於像高斯信道這樣具備連續輸出的信道不能直接使用。所以做者也提出了一種辦法,使得這種算法一樣可以應用於輸出連續的信道。

  咱們以前提到過,計算信道錯誤機率Pe(W)的難度在於W的輸出符號集大小隨着n呈指數型增加,這是須要克服的難點。爲了使上述計算成爲可能,做者在弱化操做或強化操做中,經過使用「合併函數」,使得輸出符號集可以縮減到指定的符號集大小。

  利用該算法構造極化碼的時間複雜度爲n的線性複雜度。

  根據論文的思路,爲了更好的理解這篇論文中所提出的這一算法,咱們將嘗試從三個部分來探討。分別是輸出字符集的合併、信道操做、如何處理連續對稱信道。

 

Part2.研究對象

  【2】《A Note on Symmetric Discrete Memoryless Channels》Ingmar Land.

  在研究極化碼構造問題時,咱們常常遇到各類各樣的信道,如今咱們來作一個簡單的總結。

 DMC(離散無記憶信道)

  DMC具備離散的輸入字符集X,離散的輸出字符集Y,以及轉移機率函數P(y|x)。它的輸出僅僅與當前的輸入有關,所以它又是無記憶信道。

  假設輸入字符集大小爲Mx,輸出爲My,不失通常性的,咱們假設:

  那麼,這個 信道的轉移機率能夠用一個矩陣來表示:

  注意到,矩陣的每一行的和都爲1。

 

Strongly Symmetric DMCs(強對稱DMC)

  在介紹這個信道以前,咱們先來介紹一個概念——恆等排列

  若是向量v和向量μ中的元素徹底相同,只是元素的排列順序不一樣,那麼,咱們稱v爲μ的一個恆等排列。

  eg.  μ=[1 2 3 4],v=[2 4 1 3],則v是μ的一個恆等排列。

  定義:對於一個信道的轉移機率矩陣,若是矩陣的每一行都是其餘行的恆等排列;每一列都是其餘列的恆等排列,那麼咱們稱這個轉移機率矩陣所描述的DMC爲「強對稱DMC」。

  一個很是特殊的例子是二元對稱信道(BSC):

圖2 二元對稱信道

  二元對稱信道的輸入字符集爲{0,1},輸出也爲{0,1},其轉移機率矩陣爲:

  

對稱DMC

  定義:對於一個轉移機率矩陣,若是它可以按列拆分爲數個子矩陣,使得每個子矩陣都知足「強對稱」定義,那麼,咱們稱這個轉移機率矩陣所描述的DMC爲「對稱DMC」。

  一個特殊的例子是二元刪除信道(BEC):

 

圖3 二元刪除信道

  它的輸入字符集爲{0,1},輸出字符集爲{0,△,1},其中△爲刪除符號。BEC的轉移機率爲:

  顯然 ,它能夠按列拆分爲兩個子矩陣:

  這兩個矩陣都符合強對稱信道的定義,所以BEC是對稱DMC。

  另一個特例是AWGN信道。BPSK調製下,AWGN信道的輸入字符集爲{-1,1}。首先,能夠用相對於y = 0對稱的量化區間來量化輸出(也即,將連續輸出近似爲離散輸出),它的子信道都是BSC,根據上述定義,所生成的信道是對稱的。其次,這個量化區間能夠設置的無窮小,其子信道依舊是BSC,不過子信道的數量趨近於無窮。

 

弱對稱DMC

  定義: 對於一個轉移機率矩陣,若是它的每一行都是其它行的恆等排列,且每一列之和都是相等的,那麼,咱們稱這個轉移機率矩陣所描述的DMC爲弱對稱DMC。

  eg.給定一個弱對稱DMC,其輸入字符集爲{0,1}(注意,這個地方在【2】中錯寫爲{0,1,2}),輸出字符集爲{0,1,2},其轉移機率矩陣以下:

  若是一個信道的輸出符號集爲{0,1},那麼咱們稱這個信道有二元輸入,「二元輸入的對稱無記憶信道」,這就是本文中的算法所研究的對象。咱們來簡單瞭解一下它的性質。

  Arikan論文(特指《channel polarization……》)的第VI-A節中對「對稱的二元離散無記憶信道」的性質進行了詳細的說明,參考文獻【1】的第II節中對此也有描述。

  對於一個無記憶信道W,咱們假設它的輸入爲二進制數,且它是對稱的,則有W:X→Y,其中X爲輸入符號集,X={0,1};Y爲輸出符號集,Y任意。根據定義,對於Y,存在一個恆等排列知足:

  i)

  ii) ,對於全部的y∈Y都成立。

  爲了方便起見,咱們將記爲,並稱和y爲共軛對。咱們假設輸出符號集Y爲一個有限輸出集(這個假設,在將算法推廣到具備連續輸出符號集的信道中時,會被證實)。

  在Arikan論文的第VI-A節中,給出了這樣一個定理:

Proposition 13(定理13):

  若是一個B-DMC W是對稱的,那麼,也是對稱的,而且有:  其中運算 「·」 是一種速記。咱們簡記x·y:當x=0時,x·y → y;當x=1時,x·y→。如同上面的定義,y和爲共軛對。

  這是一個很是重要的結論,咱們將在下面的信道操做中屢次使用這個公式來進行計算的化簡,請讀者留意。

  Arikan論文中給出了定理13的證實。

 

Part3.合併函數

  從邏輯順序角度考慮,咱們先來探討一下合併函數的內容。不過在這以前,咱們必須先熟悉一下弱化信道與強化信道,這對於合併函數的介紹是必不可少的。

弱化信道

  對於原始信道W:X→Y,對於信道Q:X→Z,若存在一箇中間信道P:Y→Z,使得對於全部的x和z都有:  那麼,咱們寫,指代Q相對於W是弱化的。

強化信道

  強化信道的描述與弱化信道相似,實際上,只須要將上式中的W和Q調換位置,就可以獲得強化信道的表述:

  寫,指代Q'相對於W是強化的。

   對合並函數的理解從一個引理開始:

Lemma7:

  設W:X→Y爲BMS信道,假設y1,y2爲輸出字符集Y中的符號。對於信道Q:X→Z,定義其輸出字符集Z爲:  則,對於全部的x和z,定義:

  那麼,有

   引理7中,字符集Z中的「\」表示「不包含」。

  咱們能夠看到,在這個引理之中,咱們放入了一個原始的W信道,獲得了一個弱化信道Q。而且從W到Q,信道的輸出字符集的大小發生了改變,Q字符集大小比W小2。所以,從這一點來看,咱們能夠經過引理 7同時獲得一個弱化的、具備更小字符集的BMS信道。

  引理7的證實並不難。咱們只須要對中間信道P進行巧妙的定義:

  對於中間信道P:Y→Z,從Y到Z的映射關係爲:以100%的機率映射爲以100%的機率映射爲,其他的符號一一映射爲自身。

  顯然,這樣的中間信道是存在的,根據前面的描述,Q是W的弱化信道。

  得證。

  合併函數是用來解決因Arikan信道合併迭代公式形成的信道輸出字符集爆炸增加的有力工具。根據引理7,對於一個具備v大小輸出字符集的原始信道W,經過合併一對符號(及其共軛符號)的操做,咱們每次都能使信道的輸出字符集大小減2。經過屢次調用這一操做,咱們可以將W的輸出字符集大小降到任意的大小μ。在【1】中,μ也用來表示「保真度」,通常來講,μ越大,合併函數的調用次數越少,系統性能越好,相應輸出字符集也就越大,極化碼構造算法的計算複雜度也就越高。

  如今,咱們有了合併函數這個有力的工具,可是要應用它,還有一個問題須要解決。在每一次的合併操做中,咱們應該合併哪兩個符號,是在輸出符號集中隨意挑選嗎?仍是須要遵循必定的原則?

  【1】中的定理8對此進行了限定。

Theorem8

  對於BMS信道W:X→Y,輸出字符集Y有m個元素,假設有:

1 ≤ LR(y1) ≤ LR(y2) ≤ ······ ≤ LR(ym)

  對於Y中任意兩個符號a,b,設I(a,b)爲合併後信道容量的大小。則,對於 1 ≤ i ≤ j ≤ k ≤ m,有:

  定理8中,LR(y)表示似然判決下,y符號的最大似然值。經過定理8,咱們能夠發現,對相鄰兩個符號進行合併後所獲得的信道的信道容量,老是大於非相鄰符號的合併結果。這必定理指導咱們在每一次合併時,都選擇相鄰符號進行合併。定理8的證實在【1】的附錄中給出。

  爲此,咱們對W信道的輸出符號集Y按照最大似然值排序。假設輸出符號集Y大小爲2L,包含L個共軛對。

  注意到定理8中的似然值排序,有隱含條件LR≥1。

  似然值定義爲:

  根據對稱信道的定義:,能夠獲得,對於有:

  一樣,對於有:  所以,對於共軛對,1 ≤ i ≤ L ,兩者一定有一個知足似然值大於等於1。咱們挑選出這個符號做爲這對共軛對的表明,參與似然值的排序,最終獲得

  當咱們將相鄰兩個符號 yi 和 yi+1 合併爲 z 後,有:

  除此以外,爲了在合併操做的過程當中,儘量少的損失信道容量,咱們傾向於選擇合併先後信道容量變化最小的那一對相鄰元素。所以,在對輸出符號集按照似然值排序以後,咱們在合併以前還要作的一項工做就是,尋找信道虧損最小的相鄰元素。咱們設爲合併先後信道的虧損,並以此爲挑選合併相鄰元素的依據。

  遵循【1】中的符號命名規則,咱們設 a,b,a',b',分別表示:  定義

  其中:

  這樣,合併以前,咱們經過計算全部相鄰元素合併後信道容量的虧損,找到虧損值最小的那一對相鄰元素就能夠了。

  【1】第V節中對這部份內容的介紹十分詳細,給出了包括合併函數中諸如堆棧、鏈表、指針的相關數據結構概念的介紹,並簡述了合併函數的算法實現,思路很是清晰,可做爲編程參考。

  以上對合並函數的介紹,僅僅針對信道弱化操做展開。合併還能夠經過信道強化操做,這部份內容稍微複雜一些,我沒法表述清楚,請讀者自行探索。

 

  下一節中,咱們將着重介紹信道弱化與信道強化操做,若是篇幅容許,咱們將探索二元高斯信道下tal-vardy算法的應用。

相關文章
相關標籤/搜索