• 沒有找到結果。

中 華 大 學

N/A
N/A
Protected

Academic year: 2022

Share "中 華 大 學"

Copied!
41
0
0

加載中.... (立即查看全文)

全文

(1)

中 華 大 學 碩 士 論 文

有效減少低密度同位元檢查碼中 陷阱集合數量之演算法

An Algorithm to Effectively Reduce Trapping Sets in Low-Density Parity-Check Codes

系 所 別:資訊工程學系碩士班 學號姓名:M09702030 吳政哲 指導教授:王俊鑫 教授

中 華 民 國 100 年 8 月

(2)

i

摘 要

在 本 篇 論 文 中 , 我 們 探 討 如 何 在 建 構 低 密 度 同 位 元 檢 查 碼 (Low-Density Parity-Check code;LDPC code)時,藉由降低陷阱集合(Trapping set)的數量,來改進 其效能,尤其是在高雜訊比之下的錯誤率平緩現象(Error Floor)。在消除陷阱集合的 演算法中,我們觀察出凍結,分階段和換邊的選擇這三個不同動作的組合,對於降低 陷阱集合的數量有不同的影響。利用每次選邊時,計算出所有邊的結果,且選擇其中 最合適的,雖然複雜度高,但是能有效地降低大量的陷阱集合。本論文的方法可用於 任何架構的低密度同位元檢查碼,以增加碼的長度來有效提高效能,同時亦保有碼的 規律性,並且不需要變動到解碼演算法。

關鍵字: 陷阱集合、錯誤率平緩現象、低密度同位元檢查碼、錯誤更正碼、二分圖。

(3)

ii

ABSTRACT

In this paper, we discuss how to construct low-density parity-check (LDPC) codes, and propose an algorithm to improve error floor in the high SNR region by reducing the amount of trapping sets. We observe that in the trapping set elimination algorithm, choices of freezing edges, number of phases, and edge swapping are the critical factors. We found that by proper combining the above three factors, we can reduce trapping sets effectively, despite its high complexity. The method we proposed is universal, as it can be applied to any LDPC code structures. It improves performance at the expense of increasing the code length. However, the code regularity and decoding algorithm remain unaltered.

Keywords: trapping sets、error floor、low-density parity-check codes、LDPC、Tanner graph、Error Correcting Coding。

(4)

iii

致謝

終於也能寫到這頁了,那種如釋重負的感覺,真是舒暢!寫著這致謝的同時,也 將整個碩士生涯快速的瀏覽一遍,果然,記憶裡那種痛苦掙扎的感覺是淡了些,而那 些曾經在緊要關頭讓我突破困境向前衝的關鍵畫面卻還是一樣鮮明!一直以來我都 認為這篇論文是個不可能的任務,不止一次想要放棄,但最後還是如期完成,這都要 歸功於我有一群超強卡司的酒肉班底,撐著我走到最後,在此致上最真誠的感謝。

首先我要感謝翁文彥教授這些年的栽培與關懷,謝謝他帶著我去見識更高更遠的 世界,還給了我充分的機會與空間,鼓勵我勇敢的往前飛,引導我對自己的未來譜出 不同以往的願景,讓我在學術上與生活上都留下許多深刻且精彩美好的體驗與成長。

我也要感謝王俊鑫教授,在 Group meeting 中,因為王老師的一句話一個想法,讓我 找到研究的方向。

在碩士班的日子裡,研究室就像第二個家,在這裡所結識的夥伴都是幫助我成長 的重要人物。因此我要感謝小三同學、小董同學、小飛同學、老爹同學、阿砲同學、

阿光同學、阿仁學弟;感謝溫柔貼心且很包容我的女朋友昱雯。能夠認識你們,是我 碩士生涯加大學生涯中最重要的收穫(老同學囉)。此外,幸運的我還要感謝一群老朋 友,謝謝他們在各分東西後還能從各方稍來關心,定期陪我亂哈拉,幫我充滿微笑的 能量。

最後,我要感謝我的家人為我提供一個溫暖安靜的窩,讓我可以沈澱忙碌的實驗 和慌亂的情緒,謝謝爸爸、媽媽對我的寵愛和信任,讓我可以全心專注在自己的課業 上,不用為許多繁瑣的事情分心。

最要感謝的是還是這一路上曾幫助過我的師長與朋友們,感謝你們,我願把這份 榮耀和你們分享,謝謝!

(5)

iv

目錄

摘 要 ... i

ABSTRACT ... ii

致謝 ... iii

目錄 ... iv

表目錄 ... vi

圖目錄 ... vii

一、 簡介 ... 1

二、 錯誤更正碼及 LDPC code ... 5

2.1 錯誤更正碼 ... 5

2.1.1 錯誤更正碼的運作過程 ... 5

2.1.2 低密度同位元檢查碼 ... 6

2.2 LDPC 碼的表示法 ... 7

2.2.1 矩陣表示法 ... 7

2.2.2 圖形表示法(Tanner graph) ... 8

2.3 LDPC 碼的編碼原理 ... 8

2.4 LDPC 碼的解碼 ... 10

2.5 LDPC 碼解碼範例 ... 11

三、 相關研究 ... 15

3.1 何謂陷阱集合 ... 15

3.2 陷阱集合定義 ... 16

3.3 Ivkovic 的方法 ... 18

3.4 Ivkovic 演算法 ... 18

四、 FILMS 演算法 ... 20

4.1 修改方法說明 ... 20

4.2 四個影響陷阱集合的變因 ... 21

(6)

v

4.2.1 是否凍結(frozen) ... 21

4.2.2 分階段凍結與不分階段凍結(stage) ... 21

4.2.3 選邊(局部最佳選擇)(Local Minimum) ... 22

4.2.4 是否有改進(Improvement) ... 22

4.3 八個實驗方法 ... 22

4.4 FILMS 演算法 ... 24

五、 模擬環境與實驗結果 ... 25

5.1 IEEE 802.16e ... 25

5.2 實驗結果 ... 26

5.3 錯誤率比較 ... 27

六、 結論 ... 30

參考文獻 ... 31

(7)

vi

表目錄

表 4-1、各個方法的限制條件 ... 23 表 4-2、各個方法的說明 ... 23 表 5-1、每個方法的陷阱集合個數 ... 27

(8)

vii

圖目錄

圖 1-1、錯誤更正碼之運用目的與欲達到目標之示意圖 ... 1

圖 1-2、Waterfall Region 與 Error floor 示意圖 ... 2

圖 1-3、陷阱集合示意圖 ... 3

圖 2-1、錯誤更正碼流程 ... 6

圖 2-2、LDPC 碼的 H 矩陣 ... 7

圖 2-3、Tanner graph ... 8

圖 2-4、LDPC 檢查矩陣格式圖 ... 9

圖 2-5、最初資訊走向 ... 10

圖 2-6、左右遞增資訊走向 ... 11

圖 2-7、全部資訊走向 ... 11

圖 2-8、滿足 GHT = 0 示意圖 ... 12

圖 2-9、解碼步驟(一) ... 12

圖 2-10、解碼步驟(二) ... 13

圖 2-11、解碼步驟(三) ... 14

圖 3-1、隨機矩陣轉換的二分圖 ... 15

圖 3-2、隨機挑選的子圖 ... 15

圖 3-3、陷阱集合的轉換 ... 16

圖 3-4、變形的陷阱集合 ... 17

圖 3-5、放大矩陣的位置示意圖 ... 18

圖 3-6、換邊後的陷阱集合 ... 19

圖 3-7、重複選過 2 次邊的陷阱集合 ... 19

圖 4-1、Ivkovic 方法模擬過程 TS 個數變化 ... 21

圖 5-1、1/2 code-rate 標準矩陣 ... 25

圖 5-2、2/3A code-rate 標準矩陣 ... 25

圖 5-3、2/3B code-rate 標準矩陣 ... 26

圖 5-4、3/4A code-rate 標準矩陣 ... 26

(9)

viii

圖 5-5、3/4B code-rate 標準矩陣 ... 26

圖 5-6、code performance in 2/3A code-rate ... 27

圖 5-7、code performance in 3/4A code-rate ... 28

圖 5-8、code performance in 3/4B code-rate ... 28

(10)

1

一、 簡介

隨著無線通訊需求與應用的蓬勃發展,多媒體訊息流通量的急速增加,造成高傳 輸率、高可靠度之通訊路徑要求與日俱增,尤其進入全球個人行動資訊化的科技洪流 後,隨時隨地都能連接網路的行動通訊環境,已確定無線寬頻通訊系統運用的主流。

在寬頻通訊系統中,為達到高可靠度及高效率的傳輸品質,錯誤更正碼(Error Correction Code)將扮演舉足輕重的角色,目的在於確保傳輸資料的正確性:因為資料 在傳輸過程可能因為傳輸媒介的可靠度不佳,或外在因素的干擾而遭到破壞,為了盡 可能還原這些遭受破壞的資料,所以需要錯誤更正碼來修正。

錯誤更正碼早已廣泛運用於有線通訊、無線通訊及許多儲存媒體系統中,藉著加 入額外且具有與本體架構相關之位元,用以達到傳輸過程中之位元錯誤偵測(Error Detection),並進而達到位元錯誤更正(Error Correction)能力,使能夠有效降低位元錯 誤率(Bit Error Rate;BER),且可以有效節省傳輸時所需的功率。圖 1-1 為錯誤更正碼 在寬頻通訊系統中運用之目的與欲達到的目標示意圖。

圖 1-1、錯誤更正碼之運用目的與欲達到目標之示意圖

(11)

2

歷史上的錯誤更正碼有許多,效率也不盡相同,直到 1948 年薛農理論的出現,

距離薛農極限愈近愈能使錯誤率降低,但此時的錯誤更正碼距離薛農極限還是有一段 距離。直到 1993 年渦輪碼(Turbo Code)提出後,此碼與薛農極限大幅縮短距離,擁有 很好的編碼增益,但在硬體設計上所需的複雜度仍很高,於是許多研究者注意到 40 多年前 Gallager 博士所提出的低密度同位元檢查碼( Low-Density Parity-Check code;

LDPC code),以當時的硬體技術並無法使 LDPC 碼被實際應用,直到近年來積體電路 設計的進步,LDPC 碼才有機會又再度被人注意。LDPC 碼的編碼增益相當接近薛農 極限,與渦輪碼比較起來,其硬體實作所需的成本較低。

要判斷 LDPC 碼效率,通常以 Error Floor(即當資料錯誤率已降到最低點時,即 使再加強 SNR 也是呈現平緩曲線的狀態)出現的時機來做為一個標準,越早出現則表 示錯誤率已達極限,而越晚出現則表示還能有很大空間快速降低錯誤率,代表效率 好。

圖 1-2 為 Error Floor 的示意圖。Waterfall Region 表示在模擬中,錯誤率曲線急速下降 的情形,錯誤率仍在大幅度降低。而 Error Floor 則表示錯誤率曲線成平緩現象,錯 誤率無法快速降低,即使加強功率也維持相近的錯誤率。

圖 1-2、Waterfall Region 與 Error floor 示意圖

(12)

3

要延後 Error Floor 出現的時機,可以從修改解碼演算法和避免某些特定的拓樸圖 形出現,例如放大 girth 來避免小迴圈的形成或是控制陷阱集合(Trapping set;TS)形 成的大小與數量等等,論文中是以消除陷阱集合數量為目標來著手。陷阱集合為一群 變數節點(Variable nodes)的集合。當把與這些變數節點相連的檢查節點也搜尋出來,

能形成如圖 1-3 的圖形。在 LDPC code 所形成的二分圖中,可以找到許多類似這樣的 圖形。論文中用(a , b)TS 來表示陷阱集合,a 表示變數節點的個數,b 表示奇數分支 度檢查節點的個數。 奇數分支度檢查節點為除了跟此集合的變數節點有相連外,還 跟其他的變數節點有相連,用途為接收其他變數節點的資訊來判斷集合中的變數節點 是否有發生錯誤並修改。

圖 1-3、陷阱集合示意圖

陷阱集合中的 a 與 b 要愈大愈好,因為 a 愈大,表示整個集合的變數節點剛好同 時發生錯誤的機率會變小。而 b 愈大的話,表示奇數分支度檢查節點對外相連的資訊 就越多,相對的也能增加修正集合中錯誤的變數節點之機率,所以要避免小的陷阱集 合數目太多,因而對解碼演算法造成負擔與問題。

在論文[7]中,Ivkovic 等作者提出的方法是把某個 LDPC CODE 複製一次,然後 尋找出這兩個 CODE 中,影響錯誤率最深的陷阱集合(實際上為同一種陷阱集合,因 為 CODE 相同),做一個隨機選邊交換的動作並凍結,讓此陷阱集合的邊不能再被做 交換的動作,使其成為一個較大的陷阱集合,降低對錯誤率的影響。一直重複上述步 驟直到把原本影響錯誤率最深的陷阱集合轉換成較大的陷阱集合為止。

(13)

4

而本文研究探討的地方,就是針其他作者[7]演算法交換邊凍結的部份,與每次 是否能選到最好的結果來看,藉由從 4 個角度切入去探討是否能夠消除大量對錯誤率 影響較深的陷阱集合。第一,是否要凍結。第二,要分階段凍結或不分階段凍結。第 三,有條件的選邊,選擇結果最佳的。第四,每次選到的結果是否越來越好。利用這 4 個角度去交叉實作,且提出多個方案來瞭解消除大量的陷阱集合,對於錯誤率是否 有幫助。

在實作中,我們是以挑選某幾種陷阱集合來作實驗,並沒有一定要挑選影響錯誤 率最深的陷阱集合,實驗結果發現消除大量的陷阱集合,錯誤率的確有下降的趨勢,

而論文提出的修改方案,因為可以消除更多的陷阱集合,錯誤率下降的幅度也能小幅 增加。從此得知,消除大量的陷阱集合,對於錯誤率是有影響的。若是消除了影響錯 誤率最深的陷阱集合,則錯誤率有可能會大幅度下降。

本篇論文分為六個章節,第一章介紹本篇論文的簡介,第二章介紹了錯誤更正碼 與低密度同位元檢查碼的背景與組成形態。第三章則說明什麼是陷阱集合及其他作者 演算法。第四章介紹了本篇論文的作法與演算法。第五章將本篇提出的方法和相關研 究的論文進行錯誤率比較。第六章總結了本篇論文以及未來展望。最後則為參考文 獻。

(14)

5

二、 錯誤更正碼及 LDPC code

本章節將會介紹錯誤更正碼與低密度同位元檢查碼,以及 Tanner graph(二分圖) 是如何轉換的。而低密度同位元檢查碼又是如何執行解碼的動作。

2.1 錯誤更正碼

隨著行動通訊的市場越來越熱門,無線通訊的技術也在此環境下呈現高速發展。

而為了使所傳輸的訊息能達到更佳的可靠性,在錯誤更正碼的設計也就越來越重要。

要克服通道雜訊所造成的干擾,早期的作法是增強傳送設備的雜訊比,例如使用 更大的天線或是增強傳送的功率。直到 1948 年,Shannon 理論的出現,當時提出頻 道容量限制(Channel Capacity Limit)的證明,只要將傳送的資料經過編碼,且傳送資 料的速率小於通道容量,就可以讓接收資料時的錯誤率達到極低,並隨著碼的長度增 長錯誤率也趨於無限小,且證明必定有一種區塊碼可以達到極低的錯誤機率。

初期常見到的錯誤更正碼有區塊碼(Block Code)、漢明碼(Hamming Code)、里德 所羅門碼(Reed Solomon Code)及迴旋碼(Convolutional Code)等,近 10 年常見到的則 是渦輪碼(Turbo Code)及低密度同位元檢查碼。

2.1.1 錯誤更正碼的運作過程

當我們在傳輸資料時,受到外力的干擾或是無線環境中雜訊的影響,導致資料 受到破壞。這時就需要錯誤更正碼盡可能的還原這些受損的資料。而錯誤更正碼又是 如何運作的呢?在圖 2-1 中,我們讓資料在傳出前先經過一個編碼器,經過編碼器以 後,傳出來的東西除了原始資料外,又多加了一些與原始資料相關的資料(redundant bits),當經過通道後以後不論是原始的資料或是多餘的資料都有可能發生錯誤。可是 這些原始資料跟多餘的資料彼此之間都有互相關聯,於是透過解碼器就可以依照它們 之間的關係把錯誤修正回來,這就是錯誤更正碼的基本構想。而其中本文提出的方法 則是運用在編碼的部分。

(15)

6

圖 2-1、錯誤更正碼流程

2.1.2 低密度同位元檢查碼

低密度同位元檢查碼是由 Gallager 在 1962 年於博士論文中所提出,當時說明其 相當接近 Shannon 限界,但受限於當時的電腦無法處理龐大的運算與且硬體複雜度過 高,LDPC 碼無法被實際應用,導致一段很長的時間都不受重視。直到 1995 年 Mackay 等作者重新研究 LDPC 碼,提出並證明其可行性的解碼演算法,且具有接近通道極限 的良好性能,才成為近年來通訊編碼領域的熱門研究主題。

LDPC 碼為置信傳播(Belief propagation)[13]的疊代解碼演算法,也是一種和積解 碼演算法(sum-product algorithm)[14]。置信傳播指的是以圖形結構來進行推理的訊息 傳遞演算法(message passing algorithm),透過重複的交換訊息來推斷自身的機率。這 種解碼演算法會隨著碼長度的增加使複雜度呈線性增長,可應用於平行實現。

LDPC 碼有效率極佳的錯誤修正機能,用 LDPC 碼編碼的資料,能夠用較低的功 率發送訊號,且在遠處仍可以正確的接受到。在較差的傳輸環境中,也能高速大容量 化並改善惡劣的傳輸品質。

channel

noise

資料來源 編碼且傳送 接收且解碼 目的地

本文提出方法

A B

(16)

7

2.2 LDPC 碼的表示法

本節介紹兩種 LDPC 碼的表示方法,一種可以用矩陣來表示,第二種則是 Tanner 所提出的二分圖。

2.2.1 矩陣表示法

一個(n,k)LDPC 碼,其中 n 表示為碼的長度(Codeword),而 k 表示資料位元 (Information Bits)的長度,再利用一些公式產生出檢查矩陣 H。編碼率可定義為 R=k/n。

如圖 2-2,為一個(9,3)LDPC 碼,可以表示成一個由 0 與 1 所組成的稀疏矩陣,矩陣 的 列 我 們 用 檢 查 節 點 (Check-nodes) 來 代 表 , 而 矩 陣 的 行 則 是 用 變 數 節 點 (Variable-nodes)來表示。其中 H 矩陣又可分為規則、半規則以及不規則三種型態。行 權重為矩陣一行中 1 的個數,列權重為矩陣一列中 1 的個數。

行權重和列權重都固定,則為規則檢查矩陣。只有其中一個固定,則為半規則檢 查矩陣。兩個都不固定則為不規則檢查矩陣。從效率上來說,不規則的 LDPC 碼效能 是最佳的,但轉成硬體設計時,也因不規則導致複雜許多。本篇論文所模擬的 LDPC 碼是基於 IEEE 802.16e 中的標準矩陣下去做修改,屬於不規則檢查矩陣。

圖 2-2、LDPC 碼的 H 矩陣

(17)

8

2.2.2 圖形表示法(Tanner graph)

LDPC 碼矩陣可以轉換成二分圖(Bipartite graph),稱作 Tanner 圖。對於解碼演算 法傳遞訊息的過程之敘述很有幫助。Tanner 圖是由邊跟節點來組成,節點分檢查節點 與變數節點兩種,而邊則是連接這兩種不同型態的節點。如下圖 2-3,為圖 2-2 的矩 陣 H 所轉換成的二分圖。在圖 2-2 的 H 中,C1 這一列在 V1、V2 與 V3 的元素值為 1,

當轉換成二分圖時,即表示 C1 與 V1、V2 及 V3 有相連,以此類推,把所有節點間 的關係以連線方式表達出來,便可以把 H 矩陣轉換成二分圖,H 矩陣的列數就等於 檢查節點的個數,H 矩陣的行數就等於變數節點的個數。LDPC 碼的解碼方式可用 Tanner 圖來說明,所以 LDPC 碼也可以被歸類為圖形碼。

圖 2-3、Tanner graph

2.3 LDPC 碼的編碼原理

在 2001 年,Richardson 所提出的 Efficient Encoding of LDPC 的方法,對於 LDPC 碼要編碼有很大的幫助。對 LDPC 來說,檢查矩陣 H 的好壞能影響解碼結果的效能 表現。圖 2-4 為檢查矩陣格式圖。

(18)

9

圖 2-4、LDPC 檢查矩陣格式圖

圖中空白的部分為零元素,其中 T 為一個下三角矩陣。令 u 為訊息位元,p 和1 p 為2 檢查位元,傳輸資料 x=[u P1 P2],利用 H〃xt= 0 的關係示可以得知:

AutBp1tTp2t 0 (3-1) CutDp1tEp2t 0 (3-2) 由式(3-1)可推得:

p2tT1(AutBp1t) (3-3) 將式(3-3)代入式(3-2)可推知:

(ET1BD)p1t (ET1AC)ut (3-4) 令ψ=DET1B,定義ψ 為單位矩陣,所以可以推得:

p1t (ET1AC)ut (3-5)

(19)

10

2.4 LDPC 碼的解碼

在 1962 年,Gallager 除了介紹 LDPC 碼的存在外,也提出一個最接近 Shannon 限界結果的解碼演算法,稱作疊代解碼演算法(Iterative Decoding Algorithm),此後的 學者根據此演算法也提出眾多相關的研究。依訊息傳遞的不同,也出現各種不同名稱 的演算法,如和積演算法、置信傳播演算法以及訊息傳遞演算法。

LDPC 的解碼方式,是把傳輸資料由變數節點端輸入,經過一些公式運算後,再 傳出新的訊號至檢查節點端作運算,之後再回傳至變數節點端,重複來回的運算,直 到訊號收斂不再變化為止,這就是疊代解碼演算法。

我們可以用一個很簡單的概念來了解訊息傳遞的應用,假如有一群士兵排成一列,

而我們想要知道這群士兵的總數為何。我們可以利用一些方法來得知答案,當從某一 側鄰兵得知一個數字時,在加上自己本身,也就是此數字再加 1,並且將這新的數字 再往另一側士兵傳,以此類推。此方法是利用當某個士兵收到數字時,這數字表示在 士兵的左側或是右側共有多少士兵。我們用圖解的方式來說明這個概念:

圖 2-5 中,一開始士兵都知道至少有一個士兵(自己本身)。接下來每個士兵將左 右兩側接收到的數字加 1 並繼續傳遞下去,加 1 表示將鄰側士兵人數加上自己本身,

再報給下一位士兵得知,如圖 2-6。最後每個士兵左右側所傳出的數字相加(黑色資訊 流),再加 1 即可得知士兵總人數,如圖 2-7。

圖 2-5、最初資訊走向

(20)

11

圖 2-6、左右遞增資訊走向

圖 2-7、全部資訊走向

從這例子,我們可以得知 LDPC 碼就是利用這原理將複雜的問題拆解成一些較小的問 題,而每個小問題所需要的計算複雜度也相對的降低很多,經過彼此之間消息互相傳 遞的機制來達到解碼效果。

2.5 LDPC 碼解碼範例

對於 LDPC 碼的解碼過程中,必需要滿足 GHT=0 這個限制條件。意謂著每個檢 查節點所連接到的變數節點,相加的總和必須為 0,這樣才能滿足訊息傳遞的定義。

如圖 2-8:

V1、V3、V6 及 V8 均連到 C1,所以 V1+V3+V6+V8 的位元值總和必須為 0。同理,

V2、V3、V5 及 V7 均連到 C2,所以 V2+V3+V5+V7 的位元值總和必須為 0。

(21)

12

V1

V8 V7 V6 V5 V4 V3 V2 C1=V1+V3+V6+V8

C4=V4+V6+V7+V8 C3=V1+V2+V4+V5 C2=V2+V3+V5+V7

圖 2-8、滿足 GHT = 0 示意圖

我們用一個簡單的例子來解釋 LDPC 碼滿足 GHT=0 且如何解碼:

圖 2-9 為某一段二分圖的子圖,在傳送的時候,因為受到雜訊的干擾,所以導致 有些變數節點無法判斷出它的值,這時我們就可以用訊息傳遞的方式,也就是 GHT=0 這公式來找出節點的值。

圖 2-9、解碼步驟(一)

(22)

13

在圖 2-9 中,我們先刪除已知數值的變數節點和與它有所連接的邊(只剩與紅色 邊有相連的節點),然後找分支度為 1 的檢查節點,只有 C1 滿足這條件,所以先從 C1 開始處理。從公式知道 C1=V1+V2+V3+V5 總和必須為 0,而我們已知 V1、V3 及 V5 的值,所以求得 V2 的值為 0。

在下圖 2-10 中,我們也是先刪除已知數值的變數節點和與它有所連接的邊,然 後找分支度為 1 的檢查節點,只有 C3 滿足這條件。C3=V1+V2+V4+V7,已知 V1、

V2 及 V7 的數值,所以 V4 的值為 1。最後剩下 C2 可選,如下圖 2-11(a),

C2=V1+V3+V4+V6,已知 V1、V3 及 V4 的數值,得知 V6 的值等於 1,最終整個解 碼便完成,如圖 2-11(b)。

圖 2-10、解碼步驟(二)

(23)

14

(a) (b) 圖 2-11、解碼步驟(三)

(24)

15

三、 相關研究

3.1 何謂陷阱集合

在下圖 3-1 中,為某個 LDPC 碼所轉換成的二分圖示意圖,我們可以在這圖中找 到幾個隨機選到的變數節點,加上跟這些選到的變數節點有相連的檢查節點,如圖 3-2。

圖 3-1、隨機矩陣轉換的二分圖

圖 3-2、隨機挑選的子圖

(25)

16

在上圖 3-2 中,我們隨機挑選到這 5 個變數節點,以及跟它們所相連的檢查節點。

形成像這樣的一個子圖,然後我們用陷阱集合的定義去判斷它是否為陷阱集合。圖中 的子圖就是陷阱集合(有顏色的節點與邊所形成的子圖),而我們可以找到許多類似這 種型態的子圖。在這篇論文中,我們用另一種圖示來表示陷阱集合,我們用●來表示 變數節點,□表示偶數分支度的檢查節點,■表示奇數分支度的檢查節點。如下圖 3-3。

圖 3-3、陷阱集合的轉換

3.2 陷阱集合定義

同位元檢查碼所形成的二分圖,我們稱之為 G,它是由兩種節點(Node)所構成:

變數節點(variable node)以及檢查節點(check node)。互相連接的節點稱之為鄰居,而 一個節點的分支度則是看它鄰居數目來判斷。最小迴圈周長 g(girth)為二分圖 G 中最 小迴圈的長度。陷阱集合首先提出的概念是在[4],但在這裡我們是用[10]的形式來說 明。

定義1: 對於一個 m 乘 n 的矩陣 U=(Ui,j)而言,1≦i≦m, 1≦j≦n,它的 m 乘 h 的 投影矩陣是從 U 中取出 h 行所成的集合。這 h 行的編號分別為 j1,j2,…,jh 定義2: 令 H 為低密度同位元檢查碼的同位元檢查矩陣,H 中的(a,b)陷阱集合 TS,

是 H 的一個大小為 a 的投影矩陣 T,且 T 具有 b 個奇數分支度的列,而 a≧b>0。

從拓樸圖來說明,一個 TS 為一個有 a 個變數節點和 b 個奇數分支度的檢查節點

(26)

17

的子圖。在解碼過程中,最有可能因為雜訊出現(noise realizations)而導致解碼錯 誤的地方,就是陷阱集合[6]、[12]。

定義3: 在 TS 中,關鍵數 K 為從開始就落入解碼錯誤到最後的最少數目的變異節點。

K 值的大小表示此陷阱集合對於效能影響的深淺。

範例 1:在圖 3-4(b)中為(5,3)陷阱集合[9]。這個陷阱集合的關鍵數 K=3[11]。這表示 在解碼過程中,從最初就發生錯誤一直到最後還有錯誤的 3 個變數節點。若是這 3 個變數節點錯誤表示落入此陷阱集合,那解碼器將增加負擔於糾正錯誤。圖 3-4(a)為 (4,4)陷阱集合,雖然變數節點數目比較少,但是它的關鍵數 K=4 較大。所以要是一 個碼同時有上述的(5,3)陷阱集合和(4,4)陷阱集合,那在訊框錯誤率(FER)的效能,受 (5,3)陷阱集合影響較重,因為同錯 3 個變數節點的機率大於同錯 4 個變數節點。

圖 3-4、變形的陷阱集合

在最後,我們注意到(5,3)陷阱集合是一個變動震盪(oscillatory)的陷阱集合。假設 在對角線上有 3 個變數節點在一開始就發生錯誤,在第一次週期運算後這 3 個點會被 解碼正確,但剩餘的 2 個點卻會變成錯誤。當第二次週期運算後,這 2 個點又會被解 碼正確,但最初的 3 個點則再次錯誤,一直重複循環。

備註:在二進制消除通(BEC)中的關鍵數為陷阱集合的大小[1]。在[7]中有說明何謂最 主要的陷阱集合及如何影響碼的效能。

(27)

18

3.3 Ivkovic 的方法

從一個已知的長度為 n 的低密度同位元檢查碼 C,可以建構成一個長度為 2n 的 低密度同位元檢查碼 C(2)H 是 C 的同位元檢查矩陣,H(2)是 C(2)的同位元檢查矩陣。

H(2)與H的關係為:

圖 3-5、放大矩陣的位置示意圖

簡單來說 H(2)是由 2 個相同的 H 矩陣所組成,分別為 H1和 H2,一開始是直接複製 H. 假如 H 為一個 m 乘 n 矩陣,那麼 H(2)就是為 2m 乘 2n 矩陣。在二分圖 G 中,每 一條邊就代表不為 0 的元素(矩陣中表示為 Ht,k)。而交換邊也就是說要改變矩陣中 0 與 1 的數值,如選擇 Ht,k這條邊,則Ht(,k2)Hm(2)t,nk變更為 0,Hm(2)t,kHm(2,)nk變更為 1。

下圖 3-6 為兩個(5,3)陷阱集合作交換邊的動作。假設我們已知低密度同位元檢查碼 C 中最主要陷阱集合為哪個,將利用下方演算法來述說 Ivkovic 作者的方法。

3.4 Ivkovic 演算法

(1) 複製某個低密度同位元檢查矩陣並命名為 H1和 H2,既然為相同的矩陣表示有一 樣的陷阱集合。初始值:已交換邊(SwappedEdges)=、已凍結邊(FrozenEdges)

=。

(2) 選擇陷阱集合中的關鍵數(critical numbers)。

(3) 在 C1中選擇一個為最小關鍵數的陷阱集合,並命名為 TS1

TS1

E 表示為 TS1所有邊

(28)

19

的集合。If (

TS1

E 已交換邊) goto (5)。Else goto (4)。

(4) 在

TS1

E 中任選一個邊 e 做交換,並把邊 e 加入已凍結邊(假如存在的話)。設定已交 換邊=已交換邊邊 e。

(5) 凍結

TS1

E ,使得它們在接下來的步驟都不得變動交換。設定已凍結邊=已凍結邊

TS1

E

(6) 重複步驟(2)至步驟(4),直到我們把所描述大小的陷阱集合盡可能的移除。

步驟(5)是必須的,若沒有執行凍結所有邊的動作,當又重複選到此陷阱集合的某個 邊時,可能會引起相同關鍵數的陷阱集合又再次形成。從圖 3-6 和圖 3-7 可得知,因 重複交換邊未凍結使得原本(10,6)陷阱集合又變回 2 個(5,3)陷阱集合。

圖 3-6、換邊後的陷阱集合

圖 3-7、重複選過 2 次邊的陷阱集合

(29)

20

四、 FILMS 演算法

在這章節我們將提出為何要修改 Ivkovic 的方法,且在這些修改條件下,我們發 現幾種不同的做法,在經過模擬測試後,能找到比 Ivkovic 實驗結果更好的消除陷阱 集合的方法。

4.1 修改方法說明

在模擬過程中,要計算出矩陣裡各種陷阱集合的個數,尤其是 a 值越大的(a,b) 陷阱集合,需要很高的複雜度。而 Ivkovic 的方法提出要以有最小關鍵數的陷阱集合 來作修正,但我們此陷阱集合中的 a 值並不一定是最小關鍵數,所以我們的方法並不 以消除最小關鍵數的陷阱集合為條件,而是指定 a 為 3 的陷阱集合來降低計算集合個 數的複雜度,且以消除陷阱集合的數量來作為判斷方法的好壞。若是某個方法能大幅 度消除陷阱集合的個數,則表示此方法可以在知道已 a 為最小關鍵數的條件下,消除 大量會影響效能的陷阱集合,進而提升效能。

把 Ivkovic 的方法模擬過後,發現在其演算法步驟(4)隨機選邊交換,可能會造成 換邊後陷阱集合反而增加,從圖 4-1 可看出。用來作測試的為 IEEE 802.16e 中的 H 矩陣,矩陣放大兩倍後計算出以 a 為 3 的各種陷阱集合個數。(a,b)陷阱集合中,我們 把 b 值取出,用來判斷每次換邊是在哪種陷阱集合執行。

從圖 4-1,我們看出在第 5 次換邊以後,(3,0) 陷阱集合的個數從 2 增加至 4。在 第 10 次換邊後,(3,1)陷阱集合的個數也從 42 增加至 45。而且因為凍結的邊數太多,

導致(3,2)陷阱集合及(3,3)陷阱集合都無法做到換邊的動作。顯示隨機選邊的方式並不 能使結果達到最好,主要在於兩點:一.是否選擇到合適的邊及二.交換邊的次數(與凍 結哪些邊有關)。

(30)

21

圖 4-1、Ivkovic 方法模擬過程 TS 個數變化

4.2 四個影響陷阱集合的變因

因此我們用控制下列 4 個變因來作模擬實驗:(A)是否凍結,(B)分階段與不分階 段凍結,(C)選邊(局部最佳選擇),(D)是否有改進。

4.2.1 是否凍結(frozen)

凍結的部分很重要,若是凍結太多邊,則換邊的機會少。若是不凍結,則陷阱集 合又會在消除後又形成。如圖 3-5 與圖 3-6 的對照圖,所以凍結的條件要取得平衡。

4.2.2 分階段凍結與不分階段凍結(stage)

例如說,在撰寫模擬程式時,必須先求得 a 等於 3 的所有陷阱集合的個數,如 (3,0) 陷阱集合、(3,1)陷阱集合、(3,2)陷阱集合及(3,3)陷阱集合,並假設分別存在 A、B、C

(31)

22

及 D 的陣列中。分階段凍結表示執行完 A 陣列中的陷阱集合後,就設定已凍結邊為, 已交換邊為,也就是清除所有凍結的邊後,再去執行 B 陣列中的陷阱集合,此時重 新開始凍結。不分階段凍結則表示執行完 A 陣列後,再繼續執行 B、C 及 D 陣列,

不做清除凍結的動作。分階段的做法可以使我們的換邊機會增加,雖然有可能會導致 之前消除的陷阱集合再次形成,但是消除的幅度會大於增長的幅度,對整體而言是有 益的。

4.2.3 選邊(局部最佳選擇)(Local Minimum)

在每一次的選邊中,也許有好幾種選擇,但要如何得知選擇的邊會是合適的。在 模擬中我們把每個可選擇的邊都計算出陷阱集合個數,每次選邊都不跳過,且選擇其 中陷阱集合個數最少的邊。例如,修改(3,0)陷阱集合時,若這次換邊有 3 種選擇,計 算出的陷阱集合個數依次為:158、172、125。則我們會選擇換邊後陷阱集合個數為 125 的邊,其餘的以此類推。

4.2.4 是否有改進(Improvement)

這部分其實與上述所講的選邊是類似的,只是條件更嚴謹。把每次可選的邊計算 出陷阱集合個數後,還要與上一次換邊的結果做比較,只在比前一次陷阱集合個數還 少的邊中做選擇。若是沒有邊可選,則跳過此次換邊。例如,修改(3,0) 陷阱集合時,

第 2 次換邊後陷阱集合個數比第 1 次換邊後陷阱集合個數還多,所以回復到第 1 次換 邊後的狀態,跳過第 2 次換邊,直接計算第 3 次換邊後的結果,再跟第 1 次換邊後的 陷阱集合個數做比較,然後一直重複這些步驟直到把所有的陷阱集合都做過一遍。

4.3 八個實驗方法

由上述 4 個條件來看,我們提出八個修改方法來作模擬測試,並試著找出其中影 響結果最重要的因素。如表 4-1、表 4-2 說明。

(32)

23

表 4-1、各個方法的限制條件 凍結 分段段凍結 選邊 改進

方法 1 Y N N N

方法 2 Y Y N N

方法 3 N NA N N

方法 4 Y N Y N

方法 5 Y Y Y N

方法 6 Y N N Y

方法 7 Y Y N Y

方法 8 Y Y Y Y

表 4-2、各個方法的說明 方法說明

方法 1 為 Ivkovic 作者的方法。(不分階段凍結) 方法 2 為 Ivkovic 作者的方法。(分階段凍結)

方法 3 在 Ivkovic 作者的演算法中,去除步驟(5)凍結的動作。

方法 4 修改 Ivkovic 演算法,在步驟(4)選邊的動作,選擇局部結果最好的。(不分 階段凍結)

方法 5 修改 Ivkovic 演算法,在步驟(4)選邊的動作,選擇局部結果最好的。 (分 階段凍結)

方法 6 修改 Ivkovic 演算法,在步驟(4)選邊的動作,加入條件限制,每一次修改 都做判斷,若是比原來個數多則跳過。(不分階段凍結)

方法 7 修改 Ivkovic 演算法,在步驟(4)選邊的動作,加入條件限制,每一次修改 都做判斷,若是比原來個數多則跳過。(分階段凍結)

方法 8 在以方法 7 為基礎的條件下,再加入選擇結果做好的限制。

(33)

24

4.4 FILMS 演算法

經過實際測試後,發現方法 7 可以大幅度的消除我們指定的陷阱集合。下方為我 們修改後的演算法。

FILMS 演算法(方法 7)

(1) 複製某個低密度同位元檢查矩陣並命名為 H1和 H2,既然為相同的矩陣表示有一 樣的陷阱集合。初始值:已交換邊=、已凍結邊=。

(2) 在 H1中選擇一個(a,b)陷阱集合,找出所有以 a 為變數節點的陷阱集合。(a,1) 陷 阱集合、(a,2)陷阱集合,阱集合 a,a)陷阱集合並命名為 A1,A2,A 集 Aa

(3) A1的陷阱集合為 TS1,TS2,…,TSn

TS1

E ,

TS2

E ,…,

TSn

E 分別表示 TS1,TS2,…,TSn所有邊 的集合。If (

TS1

E 已交換邊) goto (5)。Else goto (4)。

(4) 在

TS1

E 中把每個邊 e 都做交換並與上一次結果(陷阱集合的個數)作比較,選擇結果 最好的(個數最少),則把邊 e 加入已凍結邊(假如存在的話),並設定已交換邊=已 交換邊邊 e 。若是結果變的更差(比原來陷阱集合個數多),則跳過此步驟。

(5) 凍結

TS1

E ,使得它們在接下來的步驟都不得變動交換。設定已凍結邊=已凍結邊

TS1

E

(6) 重複步驟(3)至步驟(5),直到我們把 A1中的陷阱集合盡可能的移除。設定已交換 邊=、已凍結邊=。(這步驟為分階段凍結)。

(7) 以 Aa中的陷阱集合為主,重複步驟(3)至步驟(6),直到 A1、A2、…、Aa都執行過 一次結束。

(34)

25

五、 模擬環境與實驗結果

這一章節我們會說明我們是以哪些矩陣來作上述 8 個實驗方法的比較,且把我們 其中修改過後結果最好的方法與 Ivkovic 的方法作錯誤率的模擬實驗,證明我們的方 法比 Ivkovic 的好。

5.1 IEEE 802.16e

IEEE 802.16e 為最近幾年的無線寬頻網路標準,其矩陣結構是由許多小單元矩陣 所構成。矩陣中的-1 為零矩陣,而 0 則表示為單位矩陣,其餘剩下的元素則表示為單 位矩陣向右做循環位移(位移的次數由元素值決定),依此架構形成矩陣。

在 IEEE 802.16e 的標準中,n 固定為 24,而 m 則依所使用的碼率有所改變,全部共 有四種碼率,分別為 1/2、2/3、3/4 及 5/6,其中 2/3 與 3/4 又分為 A 和 B 兩種,所以 共有 6 種不同的檢查矩陣。本論文選擇其中幾種作為模擬矩陣。

圖 5-1、1/2 code-rate 標準矩陣

圖 5-2、2/3A code-rate 標準矩陣

(35)

26

圖 5-3、2/3B code-rate 標準矩陣

圖 5-4、3/4A code-rate 標準矩陣

圖 5-5、3/4B code-rate 標準矩陣

5.2 實驗結果

在上述 5 個矩陣中,我們隨機選取一組來做實驗。選擇 2/3A code-rate 標準矩陣,

原始矩陣大小為 8 乘 24,放大後矩陣為 16 乘 48。表 5-1 為每個方法均做 100 次後 才得到的平均數值,照順序消除(3,0)陷阱集合、(3,1)陷阱集合、(3,2)陷阱集合及(3,3) 陷阱集合,4 種陷阱集合。

從表 5-1,我們可以看出在(3,0)陷阱集合及(3,1)陷阱集合大部分方法消除的個數 不會相差太多,但後面兩個就很明顯有差距,尤其是方法 7 更是令陷阱集合個數大幅 減少,與 Ivkovic 方法(方法 1)作比較,也是略勝一籌。可見分階段凍結與改進對於要 消除陷阱集合個數有很大的幫助。

(36)

27

表 5-1、每個方法的陷阱集合個數 (3,0)TS (3,1)TS (3,2)TS (3,3)TS 放大後 16 120 388 784 方法 1 2 38 175 614 方法 2 2.5 34 152 583 方法 3 16 119 385 780 方法 4 2 34 172 630 方法 5 2 32 151 560 方法 6 1 35 182 629 方法 7 3 32 134 503 方法 8 3 50 174 536

5.3 錯誤率比較

模擬環境:利用 Ivkovic 演算法及本論文 FILSM 演算法,使用的程式語言工具為 MATLAB,將矩陣 H 修改出來後,跑模擬的工具為 C 語言,位元錯誤率(bit error rate:

ber)的效能比較是在高斯通道(Gaussian channels)上進行

圖 5-6、code performance in 2/3A code-rate

(37)

28

圖 5-7、code performance in 3/4A code-rate

圖 5-8、code performance in 3/4B code-rate

(38)

29

從圖 5-6 至圖 5-8,Ivkovic 方法為藍線,我們修改的方法為綠線,每次模擬的結 果都發現我們的方法的確可以擁有較低的錯誤率,若是可以刪除大量陷阱集合,且優 化 LDPC 碼的矩陣,的確有很大機會使得 LDPC 碼的錯誤率降低。

(39)

30

六、 結論

本文一開始就介紹了什麼是錯誤更正碼,也了解到錯誤更正碼的運用與目的,並 進而提到低密度同位元檢查碼,了解 LDPC code 的編碼及解碼原理。我們得知延後 error floor 出現的時機,能提升 LDPC 碼的效率,而延後的方法有很多種,可以從放 大 girth 或是降低陷阱集合的數量來實驗。在其他論文中,Ivkovic 等作者提出消除陷 阱集合的個數可以使得錯誤率能下降,因此本文便以此論點為目標進行實驗動作。

在測試模擬中發現幾個疑點,對於陷阱集合的形成有很大的影響,針對這些疑點 提出 4 個方向來作實驗。1.是否需要凍結(Frozen),凍結會造成換邊機會減少,那要 是不凍結結果會如何? 2.分階段凍結與不分階段凍結(Stage),對凍結的程度做一個分 配。3.選邊(Local Minimum),不再用隨機選邊,而是用條件控制來選擇我們要的邊。

4.是否有改進(Improvement),如果選到不好的邊,造成結果不好,那我們可以選擇不 換邊來避免這情形。

依照這 4 個方向,我們提出 8 個實驗方法來測試在哪種條件下,可以讓我們得到 較佳的結果。實驗中發現使用 FILMS 演算法的方法 7 的結果最好,即使跟 Ivkovic 的方法比較,也有較佳的結果,消除較多的陷阱集合。因此我們便以這 2 種方法來作 模擬比較,模擬圖中也很明確的表示出方法 7 有較低的錯誤率,所以消除較多的陷阱 集合對於錯誤率是有幫助。但是為了要選出最適當的邊,所以必須把每個邊都執行換 邊後的計算,導致方法 7 有很高的複雜度。若是要配合最小關鍵數的條件,則此方法 則須再以更容易的方式,來判斷要如何選出最合適的邊,以降低更高的複雜度。

在未來則是希望能在多二個實驗可以來測試是否能達到更低的錯誤率。第一個實 驗先找出在各種 SNR 下一個奇數 degree 檢查節點的可解率,並且給予權重,每種 SNR 下權重都會有所變化。當每次換邊時,便把各種陷阱集合的總數乘以各自的權重,然 後加總一起找出最少成本的邊,測試能否消除更多陷阱集合。另一個實驗則是找出全 部陷阱集合的關鍵數,並測試是否有方法可以讓兩個不同關鍵數的陷阱集合作為結合,

把容易發生錯誤的小陷阱集合替換成更大的陷阱集合,以延緩錯誤率平緩現象的發生,

且提升在訊框錯誤率中的效能。

(40)

31

參考文獻

[1] C. Wang, “Code annealing and the suppressing effect of the cyclically lifted LDPC code ensemble,” 2006 IEEE Information Theory Workshop , Chengdu, China, Oct.

22–26, 2006, unpublished.

[2] C. Kelley, D. Sridhara, and J. Rosenthal, “ Tree-Based Construction of LDPC Codes Having Good Pseudocodeword Weights. ”

[3] D. Divsalar and C. Jones, “ Protgraph LDPC Codes with Node Degrees at Least 3,”

Proc. IEEE GLOBECOM, San Francisco, CA, 2006.

[4] D. MacKay and M. Postol, “Weaknesses of margulis and ramanujan margulis low-density parity check codes,” Electron. Notes Theoret. Comput. Sci., vol. 74,2003.

[5] J. K. Moura, J. Lu, and H. Zhang, “Structured LDPC codes with large girth,” IEEE Signal Proc. Mag., vol. 21, no. 1, pp. 42–55, Jan. 2004.

[6] M. Stepanov and M. Chertkov, “ Instanton analysis of low-density parity-check codes in the error-floor regime.” in Proc. IEEE Int. Symp. Inf. Theory (ISIT),Seattle, WA, Jul. 9–14, 2006.

[7] M. Ivkovic, S. K. Chilappagari ,and B. Vasic, “Eliminating Trapping Sets In Low-Density Parity-Check Codes by Using Tanner Graph Covers.”IEEE Trans. Inf.

Theory, vol. 54, NO. 8, AUGUST.2008.

[8] N. Varnica and M. Fossorier, “ Improvements in belief-propagation decoding based on averaging information from decoder and correction of clusters of nodes,” IEEE Communications Letters, vol. 10, no. 12, pp. 846–848,Dec. 2006.

[9] S. K. Chilappagari, S. Sankaranarayanan, and B. Vasic, “Error Floors of LDPC Codes on the Binary Symmetri Channel,” presented at the Proc. Int. Conf. Commun., ICC 2006, Istanbul, Turkey, Jun. 2006.

(41)

32

[10] S. Laendner, T. Hehn, O. Milenkovic´, and J. Huber, “When does one redundant parity-check equation matter?,” presented at the Proc. IEEE GLOBECOM, San Francisco, CA, 2006.

[11] T. J. Richardson and R. Urbanke, “The capacity of low-density parity-check codes under message-passing algorithm,” IEEE Trans. Inf. Theory, vol. 47, no. 2, pp.

599–618, Feb. 2001.

[12] T. J. Richardson, “Error floors of LDPC codes,” in Proc. 41st Annu. Allerton Conf.

Commun., Contr. Comput., 2003

[13] J. Pearl, “Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference,” San Mateo, CA: Morgan Kaufmann, 1988

[14] D. MacKay, “Good error correcting codes based on very sparse matrices,”

IEEE Trans. on Inform. Theory, vol. 45, pp. 399–431, Mar. 1999.

參考文獻

相關文件

Performance of BP decoding for IEEE 802.16e (1152, 576) code with the proposed early termination mechanism A: (a) Average number of required decoding iterations (b) Block

○ Propose a method to check the connectivity of the graph based on the Warshall algorithm and introduce an improved approach, then apply it to increase the accuracy of the

In this paper, we propose a practical numerical method based on the LSM and the truncated SVD to reconstruct the support of the inhomogeneity in the acoustic equation with

Now, nearly all of the current flows through wire S since it has a much lower resistance than the light bulb. The light bulb does not glow because the current flowing through it

In summary, the main contribution of this paper is to propose a new family of smoothing functions and correct a flaw in an algorithm studied in [13], which is used to guarantee

In this paper, we have shown that how to construct complementarity functions for the circular cone complementarity problem, and have proposed four classes of merit func- tions for

Therefore, in this research, we propose an influent learning model to improve learning efficiency of learners in virtual classroom.. In this model, teacher prepares

In Section 4, we give an overview on how to express task-based specifications in conceptual graphs, and how to model the university timetabling by using TBCG.. We also discuss