1. 程式人生 > >極化碼之tal-vardy算法(1)

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

及其 討論 調用 指定 n) 十分 深入 alt 根據

  繼前兩節我們分別探討了極化碼的編碼,以及深入到高斯信道探討高斯近似法之後,我們來關註一個非常重要的極化碼構造算法。這個算法並沒有一個明確的名詞,因此我們以兩位發明者的名字將其命名為“Tal-Vardy算法”。

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

  在《極化碼之高斯近似》中,我們討論了常用的高斯信道下構造極化碼的方法——高斯近似,計算復雜度也為O(N)。

  現在,我們再次將極化碼的觸手伸向另一種常見的信道——二元對稱無記憶信道(BMS)。

  由於篇幅可能較大,因此我將分兩節對該算法進行一個簡略的介紹。

我會將本文涉及到的參考文獻放在相關內容開頭,並建議有需要的各位去讀原論文。

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

Part1. 簡單介紹

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

技術分享圖1 三種信道之間的關系示意

  論文的大致思路,就是通過將原始信道通過弱化操作和強化操作,使之成為弱化信道和強化信道。分析發現,這兩種信道在各種參數水平上都極為接近,因此通過類似數學上的“兩邊夾定理”,我們可以用這兩個信道來近似原始信道。

  “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算法的應用。

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