基於低密度奇偶查核碼的分散式訊源編碼機制
研究生:王韋超 指導教授:張文輝 博士
國立交通大學 電信工程研究所
中文摘要
本論文針對二位元相關訊源,利用低密度奇偶查核碼具體實現 Slepian-Wolf 理論在 分散式訊源編碼的應用。訊源相關模型以兩種虛擬通道模型表示,分別是二位元對稱通 道與 Gilbert 通道。針對訊源編碼輸出的校驗子經由雜訊通道傳輸的問題,我們提出基 於渦輪碼原則推導的疊代訊源通道解碼。我們將考慮兩種通道碼,低密度奇偶查核碼應 用在分散式訊源編碼的校驗子生成以達到資料壓縮效果,而迴旋碼則用於提昇壓縮資料 對抗通道雜訊的能力。模擬結果顯示基於低密度奇偶查核碼的分散式訊源編碼機制,配 合疊代訊源通道解碼演算法,可同時兼顧高壓縮率及強健性能。
關鍵字:低密度奇偶查核碼, 分散式訊源編碼, Gilbert 通道, 疊代訊源通道解碼
A Study of Low-Density Parity Check Code for Distributed Source Coding
Student: Wei-Chao Wang Advisor: Dr. Wen-Whei Chang Institute of Communications Engineering,
National Chiao Tung University Hsinchu, Taiwan
Abstract
In this thesis, we study the use of low-density parity check (LDPC) codes for distributed source coding (DSC) of correlated binary sources. The Slepian-Wolf theorem states that there is no less in rate to compress two correlated sources using separate encoding, provided that the decoding is done jointly and the source correlation is available to both the encoder and decoder. Source correlation is modeled by two types of virtual channels: binary symmetric channel (BSC) and Gilbert channel. Also proposed is an iterative source-channel decoding (ISCD) algorithm for dealing with the Slepian-Wolf problem over noisy channel. An outer LDPC code is used to perform DSC, and an inner convolution code is used for enhancing the error protecting capability of the compressed data. Simulation results indicate the combined use of ISCD and LDPC-based DSC can provide error robustness as well as channel efficiency.
Keywords: low-density parity check (LDPC), distributed source coding (DSC), iterative source-channel decoding (ISCD) .
誌謝
光陰匆匆,時光飛逝,轉眼間兩年研究學涯即將結束。這篇誌謝文,起頭比論文難 寫,想說的話與感謝之言實在難以單篇涵蓋,無奈規範至上,只好舉杯望月寄情竹湖,
不免有念天地之悠悠獨愴然而涕下之感。為了逃避工作,當完兵後幸運地重回交大電信,
一路走來相當順遂,一人寢宿舍,二校區往返機車無礙,三生有幸受到張文輝老師教導,
每日朝九晚五,生活相當愜意,至此難免離情依依,不捨之心難以言喻。
首先,感謝老師兩年來的指導,在研究與精神上給予相當多的幫助。此外,謝謝陳 信宏老師、張寶基老師以及王忠炫老師,口試當天分享許多經驗,讓學生獲益良多。另 外感謝 97 同梯的吳兄鴻材,總在困難處提點並熱心參與系壘為系爭光。實驗室同屆成 員,步步維盈,與眾不凡的程式能力協助突破了長久研究瓶頸,除此也常關心生活起居,
三餐問候並討論生活議題。帥哥鴻竣,熱血敢衝的有為青年,為實驗室帶來許多歡笑活 力,兩年生活因為如此有許多想不到的回憶。GY 志賢,同為南台灣出身,直爽不諱的 台語常令人憶起家鄉,能與之同寢實在難得。實驗室可愛的學弟妹,怡華嘩啦,平衡了 陽盛陰衰的 lab,也分享許多美食給大家,雖然為了生活常不在實驗室,晉瑋也是。同 儕之間,至中與 James,感謝你們讓羽球團有經費來源,讓寢室常有人在,一人早一人 晚,充滿家的感覺。感謝小不點詩倩,讓我認識新竹美食,許多奇異的經驗有著無法忘 懷的瘋狂痕跡。謝謝你們,真的!
最後感謝我的家人,有你們的陪伴,讓我能心無旁騖完成學業,往人生下一階段邁 進。
目錄
中文摘要 ... i
Abstract ... ii
誌謝 ... iii
目錄 ... iv
表目錄 ... vi
圖目錄 ... vii
第 1 章 緒論 ... 1
1.1 研究動機與方向 ... 1
1.2 章節概要 ... 3
第 2 章 基於 LDPC 矩陣的通道碼 ... 4
2.1 LDPC 矩陣 ... 4
2.2 Tanner 圖示法 ... 5
2.3 LDPC 矩陣的建構模式 ... 7
2.3.1 Gallager 法 ... 7
2.3.2 隨機產生法 ... 8
2.3.3 累進邊際成長演算法 ... 9
2.4 LDPC 通道碼的解碼演算法 ... 11
2.4.1 機率域的加乘演算解碼器(Probability-Domain SPA Decoder) ... 13
2.4.2 對數域的加乘演算解碼器(Log-Domain SPA Decoder) ... 16
第 3 章 基於 LDPC 矩陣的分散式訊源編碼 ... 19
3.1 分散式訊源編碼理論 ... 19
3.2 無記憶性通道假設的 Slepian-Wolf 壓縮 ... 20
3.3 記憶性通道假設的 Slepian-Wolf 壓縮 ... 22
第 4 章 雜訊通道下 Slepian-Wolf 壓縮 ... 28
4.1 擴展式的 LDPC 碼 ... 28
4.2 迴旋碼與其通道解碼演算法 ... 29
4.2.1 迴旋碼(Convolution Code) ... 30
4.2.2 BCJR 解碼演算法 ... 31
4.3 疊代式訊源通道解碼 ... 33
第 5 章 實驗模擬與結果分析... 38
5.1 傳輸無誤的實驗環境設定 ... 38
5.1.1 BSC 虛擬通道 ... 38
5.1.2 Gilbert 虛擬通道... 40
5.2 傳輸有誤的實驗環境設定 ... 41
5.2.1 BSC 虛擬通道 ... 41
5.2.2 Gilbert 虛擬通道... 43
第 6 章 結論與未來展望... 46
參考文獻 ... 48
表目錄
表 5.1 基於 LDPC 碼的 DSC 模擬數據 ... 39
表 5.2 Gilbert 虛擬通道的 LDPC-DSC 解碼數據 ... 40
表 5.3 ISCD 模擬數據 ... 42
表 5.4 Gilbert 虛擬通道的 ISCD 數據 ... 44
圖目錄
圖 2.1 Tanner 圖例 ... 6
圖 2.2 變數點的樹狀圖 ... 10
圖 2.3 LDPC 碼的渦輪架構 ... 12
圖 2.4 從變數點到查核點的前半部疊代 ... 12
圖 2.5 從查核點到變數點的後半部疊代 ... 13
圖 3.1 相關訊源的無失真編碼流程 ... 19
圖 3.2 分散式訊原編碼之碼率範圍 ... 20
圖 3.3 BSC 假設的分散式訊原編碼架構 ... 20
圖 3.4 BSC 通道的 Tanner 圖 ... 21
圖 3.5 Gilbert 通道模型 ... 22
圖 3.6 Gilbert 虛擬通道的分散式訊源編碼架構 ... 23
圖 3.7 Gilbert 通道的 Tanner 圖 ... 24
圖 4.1 LDPC 矩陣示意圖 ... 28
圖 4.2 擴展式 LDPC 矩陣示意圖 ... 29
圖 4.3 迴旋碼的(a)狀態圖與(b)柵狀圖 ... 31
圖 4.4 位元層級柵狀圖 ... 31
圖 4.5 ISCD 編碼端 ... 33
圖 4.6 ISCD 解碼端 ... 34
圖 5.1 基於 LDPC 碼的 DSC 模擬結果 ... 39
圖 5.2 Gilbert 虛擬通道的 LDPC-DSC 解碼結果 ... 41
圖 5.3 ISCD 模擬結果 ... 43
圖 5.4 Gilbert 虛擬通道的 ISCD ... 45
第1章 緒論
1.1 研究動機與方向
Gallager 在 1960 年的博士論文[1]中首次提出的低密度奇偶查核(low-density parity
check, LDPC)碼,為一線性區塊通道碼(linear block channel code),且對於資料傳輸與通 道儲存提供了接近容量(near-capacity)的效能。由於 VLSI 實作上的難度,早期研究只有 Zyablov 與 Pinsker[2],Margulis[3],和 Tanner[4]。其中 Tanner 針對低密度奇偶查核矩陣 建構了雙邊架構圖,包含變數點與查核點以及邊際線,對於之後疊代訊息解碼演算法有 深遠影響。近期則有 Spielman[5]與 Mackay[6][7]的研究。此外,具有長區塊的 LDPC 碼 透過疊代解碼過程展現出接近容量的效能[8],也是一重要的研究議題。基於 LDPC 矩陣 的建構影響疊代複雜度及其效能的事實,因此 Hu 等研究者[9][10],提出累進邊際成長 演算法(progressive-edge growth, PEG),主要概念在於建構長周長的 LDPC 矩陣,且建構 過程中確保新增的邊際不會影響當前的周長。
被遺忘 40 餘年的 LDPC 之所以能夠重見天日,其實有其歷史催生因素存在。首先,
於 1962 年,當時錯誤修正碼的主流用途幾乎都是聲音的傳送,其編碼長度 n 比較短,
無法充分發揮 LDPC 碼的優點,其效能也差於早兩年開發的里德所羅門碼(Reed Solomon Code)。如今,時空逆轉,多數應用環境的編碼長度 n 從數百到數萬,尤其是高速資料 通訊。例如無線的資料通訊應用,編碼長度 n 約在 200~5,000 個位元之間;若是光纖的 中樞網路,其編碼長度 n 就可以高達數萬個位元。過去被視為標準錯誤修正碼的里德所 羅門碼,其典型的編碼長度 n 約是在 255。但是,不可否認的,LDPC 碼當編碼長度 n 越龐大時,符號的計算量也跟著大幅度增加,可能是以 n 的平方或是 n 的 3 次方遞增。
不過,打破此僵局的 Flarion Technologies 找到減少計算量的方法,讓計算量與 n 成比例,
此問題便被克服。
第二個讓 LDPC 碼浴火重生的觸媒就是半導體製程的進步。誠如先前所提,LDPC 碼能夠揮灑的空間是編碼長度 n 較大的場合,也就意味著處理電路的規模也會相對成比 例增加。晶片面積也跟著變大,成本自然上揚,而解決此問題的絕佳良方就是 90 奈米 的半導體製程。美商朗訊(Lucent)曾針對光通訊用途,採用 0.16 毫米製程試做一個 1Gbps 傳送速度的 LSI,內部光是編碼電路的門閘數量就高達 175 萬個,LSI 的大小為 7.2 毫米。
另一家公司 System LSI 也針對 HDD 訊號處理電路用途,採用 0.13 微米製程,試做一個
1Gbps 傳送速度的 LSI,內部電路的門閘數量也是接近 100 萬個,LSI 的大小為 3 毫米。
依據 LSI 設計廠商的估算,若是採用 90 奈米設計準則,LSI 大小約可以降到 2 毫米,邁 入實用化便來日不遠。
至於分散式訊源編碼(distributed source coding, DSC)的相關研究,則起源於 1970 年 代 Slepian 和 Wolf 針對兩相關訊源提出的無失真編碼理論[11]。主要訴求是,兩個有相 關性的訊源,可藉由資源共享的合併編碼(joint encoding)模式降低其理論熵值(entropy)。
更重要的是,即使在各自獨立編碼(separate encoding)的情況下,仍能以合併解碼(joint decoding)模式取得相同的理論熵值。為了具體實現這個壓縮理論值,2003 年 Pradhan 和 Ramachandran 首次運用了通道編碼理論的碼分級校驗子(syndrome)觀念[12]。他們將兩 個訊源所屬的位元序列劃分成定長的區塊,其中一個訊源進行通道編碼處理後傳送其碼 組 (coset) 的 校 驗 子 ; 而 另 一 個 完 全 不 壓 縮 的 訊 源 則 視 為 接 收 端 的 邊 訊 息 (side information)。其關鍵在於事先建立一個足以描述兩訊源之間相關性的數學模型,並將 其視之為一虛擬的傳輸錯誤通道。而在接收端,則針對邊訊息進行通道解碼處理,最後 在校驗子所屬的碼組中找出訊源的最佳預估值。分散式訊源編碼系統的壓縮率及合成品 質,取決於兩項關鍵元件:訊源相關模型及校驗子生成機制。
在[13]中,LDPC 碼首次被應用到 Slepian-Wolf 理論基礎,利用低密度查核矩陣進 行訊源壓縮並產生其校驗子,且採用對稱性分散式訊源架構進行分析。而 Xiong 等學者,
進一步將 LDPC 碼運用到非對稱的 DSC 上[14]。假設通道無傳輸錯誤下,以虛擬的二位 元對稱通道(binary symmetric channel, BSC)模擬兩訊源間的相關性,將校驗子訊息納入 疊代解碼過程,其效能遠高於渦輪碼的最佳值。Eckford 等學者者提出 LDPC 碼在記憶 性通道(Gilbert-Elliott channel)的運用[15],更能符合實際通道環境的模擬。我們將以此 為參考,建構一記憶性虛擬通道(Gilbert channel),並具體實現基於 LDPC 碼的 DSC 架 構,同時附加考慮的狀態點資訊也有助於疊代解碼正確還原訊源。
針對雜訊環境下的 Slepian-Wolf 壓縮,Hu 與 Li 於[16]中提供模擬架構,分開訊源 與通道編碼可使設計簡單且易於掌控,合併解碼採用渦輪原則提昇整體效能。至於疊代 訊源通道解碼(iterative source-channel decoding, ISCD),主要探討 Slepian-Wolf 壓縮輸出 的校驗子經由雜訊通道傳輸時的挑戰。我們將考慮兩種通道碼,LDPC 碼應用在分散式 訊源編碼的校驗子生成,由於校驗子有誤,解碼採用擴展式 LDPC 矩陣進行疊代訊息演 算法,而迴旋碼(convolution code)則提昇壓縮資料對抗通道雜訊的能力,解碼以 BCJR 演算法為主,並求出通道額外訊息做為訊源解碼端的軟性輸入信息。透過兩解碼器之間
額外訊息的交換,以提昇整體解碼效能。
1.2 章節概要
第 2 章介紹 LDPC 碼的理論基礎,包含矩陣表示與 Tanner 圖,以及通道解碼所使 用的演算法,PEG 建構方式也一併討論。第 3 章介紹 DSC 原理與基於 LDPC 碼的分散 式訊源編碼機制,另外分別檢視虛擬通道為 BSC 或 Gilbert 通道的解碼流程。第 4 章則 介紹疊代訊源通道解碼,包含額外訊息的運作與 BCJR 演算法,及針對校驗子傳輸錯誤 而推導的擴展式 LDPC 碼。第 5 章進行實驗模擬與分析。第 6 章則為結論與未來展望。
第2章 基於 LDPC 矩陣的通道碼
此章節介紹低密度奇偶查核碼(low density parity check code,LDPC)的理論基礎以及 演算流程,首先以奇偶查核矩陣和 Tanner 圖來分析基本架構。接著根據 Tanner 圖的程 度分布模式,歸類出兩種不同型態的 LDPC 碼,分別為規則與不規則形態。我們也參考 歷年文獻提供不同的矩陣建構方法,包含最初 Gallager 提供的方式與隨機產生法,以及 目前常用且證實為最佳的累進邊際成長演算法(Progressive Edge-Growth)。
2.1 LDPC 矩陣
LDPC 碼,為一線性區塊通道碼(linear block channel code),且對於資料傳輸與通道 儲存提供了接近容量(near-capacity)的效能。由 Gallager 在 1960 年的博士論文[1]中首次 被提出,卻一直到近十年來才被熱烈討論。期間 Tanner 重新泛論 LDPC 碼並提出對應 的圖碼表示架構,現今被通稱為 Tanner 圖(Tanner graphs)。90 年代中期,MacKay,Luby 與 Neal 等學者,進一步探討線性區塊碼(linear block code)有關稀少(sparse)或低密度 (low-density)奇偶檢驗矩陣的優點。
由於 LDPC 碼產生容易,例如隨機建構方式,且解碼演算複雜度與碼的區塊長度呈 線性關係,再加上其可觀的效能,使得 LDPC 碼有許多不同的應用。研究方向有相關效 能的分析,疊代解碼演算的收斂,Slepian-Wolf 壓縮的使用,以及通道編碼與資料壓縮 的交互運作。
LDPC 碼可以在非二進位的字元上運作,但我們在此只考慮二進位的 LDPC 碼。由 於 LDPC 碼為線性區塊通道碼的一種,因此將其描述成一 k 維度的子空間集合 C ,且每 一 合 法 碼 字 在 二 進 位 域 (binary field) 上 具 有 n 個 位 元 。 進 一 步 表 示 , 基 底 向 量
0 1 1
{ , ,..., k }
B g g g 組 成 碼 空 間 C , 且 對 於 所 有 合 法 碼 字 c 可 以 表 示 成
0 0 1 1 ... k 1 k 1
cu g u g u g ,或以矩陣表示為 c uG ,其中訊息位元組u
u u0, ,...,1 uk1
, G 為 *k n 維度的生成矩陣(generator matrix),其列向量為
g 。生成矩陣i G 的零空間C 為
n k
n維度,且由基底向量B
h h0, ,...,1 hn k 1
組成,所以對於碼空間 C 任何一合 法碼字c皆滿足chiT 0。而整體矩陣可寫成cHT 0,其中H就是我們所提到
n k
*n維度的奇偶查核矩陣(parity check matrix),其列向量為
h 。 i一個
n k 的二進位線性區塊通道碼,k 個訊息位元透過生成矩陣 G 產生, n個位元的 合法碼字c,所以對應碼率為 /k n 。總共的合法碼字有 2k個,而且任何兩合法碼字相加 會得到另一個合法碼字。LDPC code 為二進位線性區塊碼,且其查核矩陣H所擁有位元 1 的個數比例很少,這種現象稱低密度(low-density)或稀疏(sparse)。另外,位元 1 個數 的比例(相較於 0)並無一定值來決定低密度與否,只是高效能的查核矩陣,對應的 1 出 現比例都很少。而由於 1 出現的密度很低,所以大幅降低解碼的複雜度。2.2 Tanner 圖示法
Tanner 針對 LDPC 碼提出一有效的圖解表示架構,也就是所稱的雙邊架構圖 (bipartite graph),現今比較常被稱做 Tanner 圖。首先,將低密度查核矩陣的節點(nodes) 分成兩種類型,而邊際(edge)只會連接於不同類型的節點上,不允許有同類型節點互連 的現象。此兩種類型的節點分別為:
(1) 合法碼字中n個位元對應的節點,又稱位元節點(bit nodes)或變數點(variable nodes)。
(2) m
n k
個查核節點,稱作查核點(check nodes)或作用點(function nodes)。在此我們統一用 v nodes 和 f nodes分別代表變數點和查核點。
在查核矩陣H中,我們依序連接hji為 1 的查核點 j 與變數點i,依循此方法完成所 有連線即繪成完整的 Tanner 圖。舉例來說,
n k 為,
10,5 的線性區塊碼,且
wc 2,r 4
w 表示成查核矩陣如下:
1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1 H
(1)
對應的 Tanner 圖如圖 2.1 所示。
v0
v1 v 2 v 4 v5 v 6 v7
v
8 v 9f0 f1 f2 f3 f4
v3
圖 2.1 Tanner 圖例
從列角度來看,變數點v v v 和0, ,1 2 v 連接到查核點3 f ,主要是查核矩陣0 H中第零列
00 01 02 03 1
h h h h (其餘皆為 0),接著依序觀察查核點f f1, 2, f3,f 所各自對應的列向4 量,如此即可繪出 Tanner 圖。我們也可以從行角度做起,變數點c 連接到查核點0 f 與0 f ,1 因為矩陣H中第零行h00h10 1。由於是規則的查核矩陣,所以每一個變數點有 2 個邊 際連接(degreew =2),每一個查核點有 4 個邊際連接(degreec w =4)。 r
在 Tanner 圖上,從任一節點出發且不重複路徑,最後返回同一點所走過的邊際總數 或長度 l,我們稱為一個循環(cycle)。而在所有循環之中,具有最小長度的,稱為此 Tanner 圖的周長(girth)。顯而易見,最小的循環長度為 4,反應在H矩陣中,位元 1 出現在矩 形的四個角落。循環長度大小對於低密度奇偶查核矩陣的疊代訊息解碼有深遠的影響,
越短的循環其解碼效果越差,原因在於訊息傳遞解碼演算(message passing algorithm),
短循環增加了節點間訊息的相關性。為了避免循環長度過短(例如l4),建構一個好的 低密度奇偶查核矩陣,是一門重要的研究議題。
規則(regular)的 LDPC 碼,是指一m n 維度( m* n k)的查核矩陣,每一行皆具有wc 個位元 1,每一列皆具有w 個位元 1。此外,任兩列或兩行在同一個位置上出現 1 的次r 數不會超過一次,此現象影響低密度奇偶查核矩陣的效能好壞。從另一方面來說,每一 個碼字會被查核w 次;每一組查核方程式會包含c w 個碼字。定義上會給予密度值r
c r
w m w n
,所以低密度也可以指wc m&wr n ,查核矩陣總共有w nc w mr
個 1,且由於 m n k ,碼率Rk n/ 1
w wc r
,所以wc w 。習慣上我們以r
w wc, r
表示規則的低密度奇偶查核矩陣碼,例如
3, 6 regular LDPC code。反之,若一低密度奇偶查核矩陣中,各行或各列 1 出現的個數不為定值,我們稱非 規則(irregular)的 LDPC 碼。而不同行與列的重值則以多項式表示為( )x 與( )x ,稱做 程度分布多項式(degree distribution polynomials)。
1 1
( ) ,
dv
d d d
x x
(2)d為對應在 Tanner 圖上,所有連接於變數點的邊際數目(總和為 d )百分比,而d 為v v nodes 邊際數最大值。同理,
1 1
( ) ,
dc
d d d
x x
(3)d為對應在 Tanner 圖上,所有連接於查核點的邊際數目(總和為 d )百分比,而d 為c f nodes邊際數最大值。
2.3 LDPC 矩陣的建構模式
2.3.1 Gallager 法
Gallager 提供一簡單實用的方式,令k 為正整數且大於 1,H 為1 k kw r維度的查核 矩陣,其內部每一列有w 個 1,每一行 1 的個數則只有一個。分配方式以列來排序,第r
( 1, 2,..., )
i i k 列將w 個 1 分到第r
i1 wr 1 ~iwr行之內。一旦建立好H ,剩餘的1 2...wc
H H
為H 各自做適當的行置換。查核矩陣1 H因此具有kwc*kw 維度分布,表示如下: r
1
2
wc
H H H
H
(4)
由 Gallager 法建構的查核矩陣,任兩列或兩行同位置 1 出現的次數絕對不會超過一 次,且為規則 ( ,w w ,但不保證循環長度一定大於 4。由於矩陣c r) H中,位元 1 的總數 為kw w ,因此密度值r c kw w k w wr c 2 r c 1 k,所以選定適當大小 k,使得查核矩陣H具
有低密度,即可完成低密度奇偶查核矩陣的建立,式子(5)為一例子。
15 20
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
H
1
1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0
1 0 0 0 1 0 0 0 1
1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0
5 4
5 4
5 4 1
2
3
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 H
H
H
(5)
另外值得一提也是 LDPC 矩陣的優點,就是當區塊長度n趨近無窮大,其合法碼字間的 最短距離dmin(minimum distance),也會與n成比例關係。
limsup 0 , limsup min 0
n n
d k
n n
(6)
這對於解碼效果有極大的影響,試舉
n k m d, , , min
(2,1, 6,10)的迴旋碼為例,當n值不 斷攀升,dmin始終維持定值,一旦錯誤個數使dmin 2terror1不成立,解碼端將無法正確 還原訊息。2.3.2 隨機產生法
除了 Gallager 建議的造碼方式,也有人提出隨機的 LDPC 碼(random LDPC code)。
為了符合其碼率為 k n ,必須先設計一查核矩陣且具有適當的行重w 以及相當的列數c
m n k
,而為了使列重w 為定值以及r m n k,須滿足wc n wr
n k
。因此當 n能被 n k 整除,wr w nc
n k
,對應產生規則的低密度查核矩陣;如果n無法被 n k 除盡,則改寫數學式為wc n w n kr
b w n k br
b w( r1) ,其中b 為定值,所以在矩陣中會有兩個列重,分別為w 和r wr 1,即是非規則的 LDPC 矩陣。對此,假 設已找到部分查核矩陣如下:
1 1, 2,..., 1
i i
H h h h (7)
隨機產生的h 必須為i
n k
*1維度,且具有w 的行重。另外,還需經過三個步驟才能將ch 歸入我們所要的矩陣集合裡。 i
(1) h 不得與i Hi1內元素重複,反之,重新產生比對。
(2) h 比對所有在i Hi1集合內的元素,同一位置 1 出現的次數不得超過一次,反之,重 新產生比對。
(3) 將h 加入集合,如果此暫定集合前i b 個列重wr 1且後
n k b
個列重wr,則h 為i 所要的新元素,而新集合定為H ,反之,重新產生比對。 i2.3.3 累進邊際成長演算法
本論文採用的 LDPC 矩陣,是根據 MacKay 發表於研究網站[17]的模擬程式軟體所 建構。此軟體主要是根據累進邊際成長演算法(Progressive Edge-Growth,PEG)寫成,過程 可參考文獻[9],在此我們簡介演算內容。
首先定義演算過程中使用的參數。
I E 代表著 Tanner 圖,,
I Iv If為節點集合,包含變數點群Iv
v v0, ,...,1 vn1
與查核點群If
f0, ,...,f1 fm1
。 E 為所有邊際的集合,在查核矩陣 H 中,若hji 1,代表對應的邊際
v fi, j
E,且0 i n 1, 0 j m 1。 另外定義程度分布序列
0, 1,..., 1
v v v vn
D d d d ,其中
vi
d 表示變數點v 所擁有的邊際數或程i 度,且 0 1 ... 1
v v vn
d d d ;同理,
0, 1,..., 1
f f f fm
D d d d 。而
i
k
E 為變數點v v 的第i k 個邊際,
而且0 1
vi
k d
。最後,按照圖 2.2,定義
i
l
N 是由變數點v v 出發且深度(depth)為 l 的延i 展式樹狀圖,收集圖上所有查核點並集合統稱為變數點v 的鄰居。其中樹狀圖的連接方i 式,一開始從變數點v 連接所有邊際到查核點上,而被連接的查核點也會有對應邊際連i 接到其他變數點,依此類推,其他變數點再各自連線延展,就可以完成樹狀圖。至於樹 狀圖中未被連接的查核點群,另外定義成N ,亦即lvi i
i
l l
v v f
N N I 。此外,定義所有通 過變數點v 的循環之最小值為局部周長i
vi
g ,因此周長為各變數點局部周長的最小值
0 0 1
min , ,...,
v v vn
g g g g 。
v
i...
...
...
...
...
...
...
... ...
...
...
0 Depth
1 Depth
Depth l
圖 2.2 變數點的樹狀圖
要直接建立一個具有最大周長的 Tanner 圖,整體上有難度。因此,累進邊際成長演 算提供了一個次佳的做法,概念在於讓每個變數點的局部周長為最大值,即使有新的邊 際連接於此。換句話說,變數點新增的邊際所產生的循環,並不會影響之前局部周長的 最 大 值 。 舉 例 來 說 , 假 定 已 經 建 立 邊 際 集 合
0 1 ... 1
v v vi
E E E , 且 暫 定 周 長
0 0
1m i n , , . . . ,
i
t
v v v
g g g g ,若再新增邊際群
vi
E 於目前 Tanner 圖上,產生的循環必須不影 響到g ,因此,我們必須使局部周長t
vi
g 盡可能最大化。
所以,在新增邊際群
vi
E 的過程中,是邊際接著邊際完成,而且每條通過變數點v 的i 邊際都確保其最短循環維持最大值且不影響周長的變動。每當新增一邊際於變數點v 時,i 會先將v 做深度i l 的樹狀圖延展,並使得Nlvi 且Nlvi1 ,或者
i
l
N 中集合元素總數v
停止增長且小於m。之後將新的邊際接連到N 裡程度分布最小的查核點,如此可以保lvi
證通過此邊際的最短循環至少大於2
l2
。總結演算流程如下:for i0 to n1 do
begin
for k 0 to 1
vi
d do begin
if k 0
建立邊際Ev0i
f vj, i
,其中 0vi
E 為變數點v 第 0 個邊際接於查核點i fj。且此查核點為目 前邊際集合
0 1 ... 1
v v vi
E E E 對應的 Tanner 圖下,查核程度(check degree)最小的查核 點。
else
擴展變數點v 的樹狀圖且深度為i l ,並使得 i
l
Nv 且Nlvi1 ,或者
i
l
N 中集合元素總v
數停止增長且小於m。建立 i
,
k
v j i
E f v ,其中
i
k
E 為變數點v v 第i k 個邊際接於查核點 fj。 而選取的查核點為N 集合裡程度分布最小的節點。 lvi
end end
新邊際連接的查核點,是從N 中選取的,雖然以程度最小的節點為優先挑選,但lvi
是容易遇到多重選擇問題,尤其是起初建立 Tanner 架構圖的過程,同樣程度分布的查核 點有許多。所以一般採用兩種方式,一為隨機選取,另一則是按照編號挑選。
2.4 LDPC 通道碼的解碼演算法
LDPC 碼的疊代解碼過程,是基於渦輪原則推導而得。如圖 2.3 所示,渦輪原則的 四大重點分別為:
(1) 成員區塊間的連接(Concatenation of component blocks)。在 LDPC 矩陣中,變數點 被查核點群查核,而查核點檢驗變數點群的正確性,兩群節點在 Tanner 圖上相互 連接。
(2) 交換器(Interleaver)。相接的成員區塊間必須使用交換器打亂其訊息的相關性,而 LDPC 矩陣本身即是隨機建構,可視為一交換器。
(3) 軟性輸入與輸出(soft-input-soft-output,SISO)的解碼過程。
(4) 額外訊息的交換(Exchange of extrinsic information)。
Interleaver Variable
nodes
Check nodes
圖 2.3 LDPC 碼的渦輪架構
訊息傳遞演算法(message passing algorithm),是利用 Tanner 圖進行其疊代解碼,而 每一次疊代會在變數點與查核點之間進行額外訊息(extrinsic information)的交換,傳遞路 徑則為對應的邊際(edge)。邊際上的訊息依照傳遞方向可分為兩類,qi j, ( )x 與rj i,( )x 。訊 息從變數點x 出發傳遞到查核點i fj定義為qi j, ( )x ,反之,rj i, ( )x 為查核點 fj出發到變數 點x 的訊息。舉例來說,前半部疊代如圖 2.4 所示,變數點i x 處理所有來自查核點(除0 了 f )的輸入訊息2
r0,0,r1,0
以及通道訊息(來自y ),並輸出0 q0,2給查核點 f 。特別強調的2 是,變數點x 排除來自查核點0 f 的輸入訊息,是為了避免查核點2 f 重複利用已知的訊2 息,而造成不可預期的解碼效果,所以只有「額外」訊息在路徑上做資料交換。f0 f1 f2
x0
y0 channel sample
r0,0
r1,0
q0,2
圖 2.4 從變數點到查核點的前半部疊代
後半部疊代如圖 2.5 所示,查核點 f 傳遞輸出訊息0 r0,4給變數點x ,是針對 Tanner4 圖上所有與之相連變數點(除了x )的輸入訊息4
q0,0,q1,0,q2,0
,處理後將額外訊息輸出給 x 。疊代解碼不停重複直到事先給定的次數上限,或滿足某些條件才會終止。例如,4T 0
xH 常被用於程式迴圈內。
x0 x1 x2 f0
x4
q0,0
q1,0
q
2,0r0,4
圖 2.5 從查核點到變數點的後半部疊代
有了訊息疊代概念之後,接著解說訊息qi j, ( )x 與rj i,( )x 代表的含意。qi j, ( )x 指的是 給定通道y 以及所有來自查核點(除了i fj)的額外訊息下,碼字中第i 個位元值為 0 或 1 的機率,數學表示成Pr
xi 0 or 1|input message
。而rj i,( )x 定義為在碼字第 i 個位元值 等於 0 或 1 搭配其他相連變數點的額外訊息下,查核方程式 fj滿足的機率。數學表示
Pr check equation f is satisfied input message j | 。
2.4.1 機率域的加乘演算解碼器(Probability-Domain SPA Decoder)
為了方便推導演算,首先定義相關符號,如下表所示。
j j
V = 連接查核點 的變數點群 f
j j i
V \ i = 連接查核點 的變數點群 f \ 變數點 x
i i
C = 連接變數點 x 的查核點群
i i j
C \ j = 連接變數點 x 的查核點群 \ 查核點 f
v i
M ~ i = 來自節點 以外所有變數點的訊息 x
c j
M ~ j = 來自節點 以外所有查核點的訊息 f
Pi Pr(xi 1| yi)
i i
S =查核方程式包含( x )被滿足的事件
ij i i i c
q b = Pr x = b | S , y , M ~ j ,其中 ∈b 0,1。
ji j i v
r b = Pr 查核方程式 被滿足 f | x = b, M ~ i ,其中 ∈b 0,1。
若訊息以機率模式傳遞,透過上述定義表示qij
0 如下:ij(0)
q Pr(xi 0 |y S Mi, i, c(~ ))j (8) (1 Pi) Pr(S xi| i 0, ,y Mi c(~ )) / Pr( )j Si
(9)
'
' \
(1 ) (0)
i
ij i j i
j C j
K P r
(10)其中我們使用兩次貝式定理,以及訊息間無相關假設。同理可推,
'
' \
(1) (1)
i
ij ij i j i
j C j
q K P r
(11)其中常數Kij的選定,是為了保證qij(0)qij(1) 1 成立。
接下來為了推導rji
b ,我們必須運用到定理 1 的結論。定 理 1. (Gallanger): 假 設 有 M 個 不 相 關 的 二 進 位 位 元a , 且 位 元 為 1 的 機 率i P r (ai 1) pi,則位元串{ }ai iM1擁有偶數個 1 的機率為
1 1
(1 2 ) 2 2
M
i l i
p
(12)透過上述結果,我們將pi qij
1 ,重新套用並改寫成下式。'
' \
1 1
(0) (1 2 (1)) 2 2 j
ji i j
i V i
r q
(13)因此,當x 為 0 時,其他碼字位元i
xi' :i'Vj\i
必須總含偶數個 1,以便滿足查核 方程式 fj。另外rji(1) 1 rji(0)。訊息傳遞演算的目標是計算碼字各位元的後驗機率(a posteriori probability 或 APP),
所以初始值設定為q bij
Pr
xi b y| i
,換句話說,qij
1 Pi和qij
0 1 Pi。而y 代i 表通道實際接收值,以下針對兩種常見通道模型進行分析。1. 二位元對稱通道(binary symmetric channel,BSC):yi
0,1 且通道錯誤率
Pr i | i
p y b x b ,假設Pr
xi 1
Pr
xi 0
1/ 2,APP 初始值設定如下:
1 ,Pr |
,
i
i i
i
p y b
x b y
p y b
當
當 (14)
2. 二位元輸入的白色高斯雜訊通道(binary input-additive white Gaussian noise channel, BI-AWGNC):xi 1
1 ,yi xi ni且雜訊n 為i
0,2
無相關性高斯分布。所以 APP 初始值設定如下:
2
1Pr xi x y| i 1 exp 2y xi (15) 綜合以上結果,初始值的設定,訊息qij
x 和rji
x 的關係,變數點與查核點內部 資料的運作,以及疊代終止條件。我們對操作在機率域的訊息疊代解碼(加乘演算)做總 結。(步驟 1)初始化:
根據 LDPC 矩陣畫出對應的 Tanner 圖後,將所有邊際上訊息歸零,並設定碼字各 位元的對應初始值q bij
Pr
xi b y| i
。例如在 BSC 通道假設下,qij
1 Pi和
0 1ij i
q P。
(步驟 2)更新查核點到變數點的額外訊息:
'
' \
1 1
(0) (1 2 (1)) 2 2
j
ji i j
i V i
r q
(16)(1) 1 (0)
ji ji
r r (17)
(步驟 3)更新變數點到查核點的額外訊息:
'' \
(0) 1 (0)
i
ij ij i j i
j C j
q K P r
(18)'
' \
(1) (1)
i
ij ij i j i
j C j
q K P r
(19)而Kij的選定,是為了保證qij(0)qij(1) 1 成立。
(步驟 4)分別對碼字各位元i 計算後驗機率:
(0) 1 (0)
i
i i i ji
j C
Q K P r
(20)(1) (1)
i
i i i ji
j C
Q K P r
(21)而K 的選定,是為了保證i Qi(0)Qi(1) 1 成立。
(步驟 5)硬性決定解碼位元值,並判定疊代終止與否。
0, 0 0.5;
1, otherwise
i i
X if Q
(22)
假定疊代次數達到最大值或所有查核方程式被滿足,我們會終止程式迴圈。反之,重複 步驟 2。
2.4.2 對數域的加乘演算解碼器(Log-Domain SPA Decoder)
就 Viterbi 與 BCJR 演算法而言,更常使用對數域的訊息傳遞過程,原因在於機率 域相關的乘法運算容易造成數值不穩定,而且實作上對數域的加法運算相對簡單。所以,
在對數域操作的加乘演算法,是我們訊息傳遞過程的主要方式。
首先重新定義 LLR(log-likelihood ratio),以便後續的推導公式:
Pr( 0 | ) ( ) log
Pr( 1| )
i i
i
i i
x y
L x x y
(23)
( ) log (0) (1)
ji ji
ji
L r r
r
(24)
( ) log (0) (1)
ij ij
ij
L q q
q
(25)
( ) log (0) (1)
i i
i
L Q Q
Q
(26)
因此針對不同通道錯誤,對數域後驗機率初始值個別表示如下:
ij
i ( 1) logyi 1 p
L q L x BSC
p
(27)
ij
i 2 i 2
L q L x y BIAWGNC (28)
重新檢視式子(13),得到 '
' \
1 2 (1)ji (1 2 (1))
j
i j i V i
r q
的結果,再搭配定理 2 如下:定理 2: 假定 p 與0 p 為正數且相加為 1,則兩數有相對關係如下式。 1
0 1 0 1 1
tanh 1log( / ) 1 2
2 p p p p p
(29)
因此,得到最後表示式(30)。
'
' \
1 1
tanh( ( )) tanh( ( ))
2 2
j
ji i j
i V i
L r L q
(30)雖然成功轉換機率表示式到對數域,但仍存在相乘關係與複雜 hyperbolic 方程式。
對此,我們進一步將L q( ij)分解成對應的大小與正負值。
( ij) ij ij
L q (31)
( )
ij sign L qij
(32)
( )
ij L qij
(33)
因此,式子(30)繼續改寫如下方流程。
' '
' \ ' \
1 1
tanh( ( )) tanh( )
2 2
j j
ji i j i j
i V i i V i
L r
(34)1
' '
' '
( ) = 2 tanh ( tanh(1 ))
ji i j 2 i j
i i
L r
(35)
1 1
' '
' '
= 2 tanh log log( tanh(1 ))
i j 2 i j
i i
(36)
1 1
' '
' '
= 2 tanh log log(tanh(1 ))
i j 2 i j
i i
(37)
' '
' \
' \
= ( ( ))
j j
i j i j
i V i i V i
(38)其中 ( ) log tanh( / 2)
log 1 1x x
x x e
e 且1( )x ( )x 。
如此一來,原本相乘的部分變為相加,大幅減低運算量及花費成本。在取得L r
ji 的 表示式之後,L q
ij 只要將機率域下qij
0 與qij
1 相除並取對數即可。
'
' \
( ) ( ) ( )
i
ij i j i
j C j
L q L x L r
(39)而L Q 如法炮製。
i綜合以上結果,我們對於對數域的訊息疊代解碼(加乘演算)做總結如下:
(步驟 1)初始化:
根據 LDPC 矩陣畫出對應的 Tanner 圖後,所有邊際上訊息歸零,並設定碼字各位 元的對應初始值(LLR),例如 BSC 通道下,
ij
i ( 1) logyi 1L q L x p
p
。
(步驟 2)更新查核點到變數點的額外訊息:
' '' \
' \
= ( ( ))
j j
ji i j i j
i V i i V i
L r
(40)其中,ij sign L q ( ij)且ij L q( ij) 另外 ( ) log tanh( / 2)
log 1 1x x
x x e
e 。 (步驟 3)更新變數點到查核點的額外訊息:
'
' \
( ) ( ) ( )
i
ij i j i
j C j
L q L x L r
(41)(步驟 4)分別對碼字各位元i 計算對數上的後驗值:
( ) ( ) ( )
i
i i ji
j C
L Q L x L r
(42)(步驟 5)硬性決定解碼位元值,並判定疊代終止與否。
0, 0;
1, otherwise
i i
if L Q
X
(43)
假定疊代次數達到最大值或所有查核方程式被滿足,我們會終止程式迴圈。反之,重複 步驟 2。
第3章 基於 LDPC 矩陣的分散式訊源編碼
此章節介紹分散式訊源編碼理論(distributed source coding, DSC),並展現 LDPC 矩陣 在 Slepian-Wolf 理論的具體實現。透過加乘演算法(Sum-product algorithm)與訊息傳遞過 程(Message passing processing)的推導,聚焦在邊訊息(side information)的不對稱訊源壓縮。
基於 LDPC 碼的分散式編碼與解碼機制,將在內文做詳細的解說。
3.1 分散式訊源編碼理論
有別於標準化壓縮技術的複雜編碼器及簡易解碼器,分散式訊源編碼架構是將運算 量從編碼端轉移到解碼端,其低複雜度的編碼演算法非常適合應用在無線感測網路 (wireless sensor networks),以滿足其低功率與即時製作的設計需求。分散式訊源編碼的 相關研究,起源於1970年代Slepian和Wolf針對兩相關訊源提出的無失真編碼理論[11]。
其主要訴求是,兩個有相關性的訊源,可藉由資源共享的合併編碼模式降低其理論熵值,
更重要的是即使在各自獨立編碼的情況下,仍能以合併解碼模式取得相同的理論熵值,
如圖 3.1所示。
Encoder 1
Encoder 2
Noiseless channel
Noiseless channel
Joint decoder
X
Y
ˆ ˆ, X Y
No communication
圖 3.1 相關訊源的無失真編碼流程
假設H X( )與H Y( )分別為X與Y兩個訊源的熵(entropy)值,根據Shannon的編碼 理 論 , 針 對 兩 者 合 併 編 碼 所 需 的 最 小 碼 率 為 其 合 併 熵 值 H X Y( , ) , 而
( , ) ( ) ( )
H X Y H X H Y。令人驚訝的是,分散式訊源編碼理論證明,即使在編碼端 分別針對X與Y進行 獨立編碼(separate encoding),只要解碼端採用合併解碼 (joint decoding)模式,最小碼率仍然可以逼近H(X,Y)。更明確的說,若Y是以熵值H Y( )進行 編碼,則X的理論熵值可由H X( )減少為H X Y( | ) H X Y( , )H Y( )。依此理論設 計的無失真分散式訊源編碼器稱為Slepian-Wolf編碼器,其碼率範圍如圖 3.2所示。