• 沒有找到結果。

中 華 大 學

N/A
N/A
Protected

Academic year: 2022

Share "中 華 大 學"

Copied!
43
0
0

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

全文

(1)

中 華 大 學

碩 士 論 文

設計一個結構化的低密度同位元檢查碼使能 有較大周長及改進錯誤率平緩之現象 Design of Structured LDPC Codes with Large

Girth and Low Error Floor

系 所 別:資訊工程系碩士班 學號姓名:M09702038 董致銓 指導教授:王俊鑫 教授

中 華 民 國 100 年 8 月

(2)

i

摘 要

低密度同位元檢查碼(LDPC codes)近年來已受到各界的矚目,可應用在通訊系統 或是資料儲存上,我們透過實驗來最佳化分割及位移低密度同位元檢查碼的演算法中 放大倍率的選擇,在固定長度下的低密度同位元檢查碼可以將最小周長放得更大,在 固定的最小周長限制下可以減少所需的碼的長度。和文獻中的方法比較,除了保有原 有演算法的優點,可以建構任意的行權重、列權重及最小周長的矩陣外,本論文的貢 獻為證明了要達到目標的最小周長而放大的倍率可以縮小很多,藉此可大幅降低硬體 所需的複雜度及成本。此外,模擬結果顯示依照本文中演算法所建構出的LDPC code 之位元錯誤率具有較低的錯誤率可以縮小平緩之現象。

關鍵字: 最小周長(girth)、低密度同位元檢查碼(LDPC code)、迴圈(cycle)、二分圖 (Bipartite graph)。

(3)

ii

ABSTRACT

LDPC (low-density parity-check) code has been popular in recent years with applications in communication systems or data storage. In this paper, we present a fine-tuned partition-and-shift LDPC code construction algorithm with better choice of scaling factors. It is proved that we can either increase the girth of a fixed-length LDPC code or reduce the required code-length for a fixed girth constraint. Similar to the existing method in the literature, the constructed LDPC codes can have arbitrary column weight, row weight and girth. The codes we constructed have smaller scaling factors which implies lower hardware complexity and cost. With the reduced code length or increased girth, our simulation shows the error floor can be extended even lower.

Keywords: girth、LDPC codes、cycle、Bipartite graph

(4)

iii

致謝

寫著這致謝的同時,也將整個碩士生涯快速的瀏覽一遍,果然,記憶裡那種痛苦 掙扎的感覺是淡了些,而那些曾經在緊要關頭讓我突破困境的關鍵畫面卻還是一樣鮮 明!從碩士一年級開始,我就認為做研究是一個很艱辛的任務,隨著時光流失,也拼 過來了,感謝的人真的是不少。

首先我要感謝指導教授翁文彥老師三年來的栽培與關懷,謝謝他讓我在學習的過 程中給予我相當大的幫助,還給了我充分的機會與空間,鼓勵我勇敢的拼下去,引導 我對自己的未來譜出不同以往的願景,讓我在學術上與生活上都留下許多深刻且精彩 美好的體驗與成長。

在碩士班的日子裡,實驗室就像第二個家,在這裡所結識的夥伴都是幫助我成長 的重要人物。因此我要感謝實驗室裡的所有同學:小三、阿哲、小飛、阿光、及阿緯 學弟,不論是在哈拉還是在做研究上,都給我了我相當大的關心與幫助,像是會幫我 看我的論文哪邊寫的不好阿、句子順不順阿、無聊的時候又能夠哈拉一下。能夠認識 你們,是我碩士生涯加大學生涯中最重要的收穫。

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

在完成這份論文的過程中,我一直是患得患失的,而今能走到最後,繳出一份令 人滿意的成果,最要感謝的是還是這一路上曾幫助過我的師長與朋友們,感謝你們,

我願把這份榮耀和你們分享,謝謝!

(5)

iv

目錄

摘 要 ... i

ABSTRACT ... ii

致謝 ... iii

目錄 ... iv

表目錄 ... v

圖目錄 ... vi

一、簡介 ... 1

二、背景介紹 ... 4

2.1 錯誤更正碼 ... 4

2.2 低密度同位元檢查碼-編碼 ... 6

2.3 低密度同位元檢查碼-解碼 ... 8

三、PS-LDPC code ... 12

3.1 分割及位移設計 ... 12

3.2 迴圈與位移的關係 ... 16

3.3 最小周長的邊界 ... 17

3.4 任意的最小周長 ... 18

四、針對分割及位移 LDPC code 之改進 ... 24

4.1 已知演算法之缺點 ... 24

4.2 改進方法 ... 24

4.3 實驗結果與比較 ... 26

五、錯誤率之模擬與分析 ... 31

六、結論 ... 34

參考文獻 ... 35

(6)

v

表目錄

表 4-1. 達到最小周長為 g 所需的最小 p 值 ... 28 表 4-2. [實驗 2]方法 1 的結果 ... 29 表 4-3. [實驗 2]方法 2 的結果 ... 29

(7)

vi

圖目錄

圖 2-1. 錯誤更正碼的運作流程 ... 4

圖 2-2. 舉例的模擬圖 ... 5

圖 2-3. IEEE 802.16e 標準奇偶檢查矩陣格式 ... 6

圖 2-4. 二分圖與 LDPC codes 矩陣 H 的轉換 ... 8

圖 2-5. MPA 初始二分圖 ... 9

圖 2-6. Row processing 示意圖 ... 10

圖 2-7. column processing 示意圖 ... 11

圖 3-1. 分割及位移低密度同位元檢查碼的二分圖 ... 13

圖 3-2. 二分圖轉換的矩陣圖 ... 13

圖 3-3. 試算位移值 ... 14

圖 3-4. 二分圖所相對應的位移矩陣 S ... 14

圖 3-5. (a): S 中的封閉路徑 (b):在二分圖中的 6 迴圈 ... 17

圖 3-6. 演算法 1 的 pseudo code[10] ... 19

圖 3-7. 演算法 1 的流程圖 ... 20

圖 3-8. 演算法 2 的 pseudo code[10] ... 22

圖 3-9. 演算法 2 的流程圖 ... 23

圖 4-1. 建樹的舉例圖 ... 25

圖 4-2. 避免掉 4 迴圈的 S 矩陣 ... 26

圖 4-3. 最小周長為 14 的 S 矩陣 ... 27

圖 4-4. 最小周長為 16 的 S 矩陣 ... 28

圖 4-5. 最小周長為 6 的矩陣 H ... 29

圖 5-1. 模擬 1 ... 31

圖 5-2. 模擬 2 ... 32

(8)

1

一、簡介

隨著無線或有線的通訊系統、資料儲存的應用蓬勃發展,在資料傳輸上,訊息的 流通量急速增加,造成高傳輸率、高可靠度的通訊系統是必頇的。但資料傳輸過程中,

常常會因為外在的因素導致資料受到破壞,為了達到高可靠度及高效率的傳輸品質,

錯誤更正碼(Correction Code)就扮演舉足輕重的角色,目的就是能將錯誤的資料救回 來的一個機制,確保資料傳輸的正確性。

錯誤更正碼早已廣泛運用於有線通訊、無線通訊及許多儲存媒體系統上,藉著額 外加入的位元訊息來保護原始的資料,也就是編碼的過程。在資料接收端,利用額外 加入的位元訊息來達到傳輸過程中之位元錯誤的偵測(Error Detection),修正錯誤的能 力通常與額外加上的資料多寡有關,一般而言,額外的資料越多,所能修正的錯誤也 越多,這就是解碼的過程,並且能將錯誤的資訊更正為正確的,有效降低位元錯誤率 (Bit Error Rate)。

早在 1948 年 Shannon 提出 Shannon-極限定理後,各種錯誤更正碼就開始被提出 討論,初期較為人熟知的有區塊碼(Block Code)、漢明碼(Hamming Code)、迴旋碼 (Convolutional Code) , 以 及 近 十 年 來 比 較 重 視 的 渦 輪 碼 (Turbo Code) 和 Low-Density-Parity-Check Code (LDPC)。LDPC Code 在 1962 年由 Gallager[1]所發明,

不過當時的電腦無法處理龐大的運算而且硬體複雜度過高導致此理論只能束之高 閣,被人們遺忘了將近 30 年,1993 年發明的渦輪碼,距離通道容量只有 1db,直到 1995 年 Mackay 與 Neal 重新提出研究後而發展的解碼演算法,卻可以逼近通道容量 至 0.0045db[16],且相較於渦輪碼亦有較低的計算複雜度。才開始被廣泛的討論應用,

所以在最新的無線通訊標準 IEEE 802.16e 標準中,已經將 LDPC Code 納入其解碼器 的選項之一。而且在下一代的衛星數位視訊廣播標準(DVB-S2)中,也將低密度同位 元檢查碼取代了渦輪碼,拜現今硬體製作技術的進步,高速的平行解碼製作方式得以 實現,使得 LDPC Codes 已成為目前相當熱門的研究領域。

在通訊系統中,資料在傳輸時因為有某些外在因素,使得接收到的資料發生錯 誤。像是受到雜訊干擾,或者傳輸媒介可靠度不佳等等。錯誤更正碼藉由傳遞多餘的

(9)

2

校正資訊,使得解碼器能在資訊發生錯誤時,設法於更正回來。低密度同位元檢查碼 (Low Density Parity-Check Code;簡稱LDPC Code)[1],就是一種效能很好的錯誤更正 碼,能夠有效修正產生錯誤的資訊,使得錯誤率能夠下降。低密度同位元檢查碼常以 二分圖(Bipartite graph)來表示[2],在二分圖中,最短的迴圈(the shortest cycle)之長度 稱為此二分圖的最小周長(girth)。設計在二分圖中使能夠有較大的最小周長對於低密 度同位元檢查碼的效能有重要意義。在低密度同位元檢查碼的解碼程序之中,透過和 積演算法(sum-product algorithm)將事後機率(posteriori probability)的問題最佳化,並且 重複的週期運算(iteration)。二分圖裡的短迴圈會造成解碼上運算的負擔,使解碼後的 結果無法收斂到正確的解[3]。因此,較大的最小周長通常是設計低密度同位元檢查 碼時的一個重要目標。研究發現[10],在低密度同位元檢查碼的設計裡,碼中的最小 距 離 (minimum distance , 簡 稱 dmin)[2] 會 決 定 低 密 度 同 位 元 檢 查 碼 在 高 訊 雜 比 (high-SNR)時的效能。然而,設計一個有較大的最短距離的低密度同位元檢查碼,複 雜度極高。[10]發現,最小距離會與最小周長有正相關,因此可藉由較低複雜度的演 算法來加大最小周長,進而設計出有較大的最小距離的低密度同位元檢查碼。

在 許 多 不 同 類 型 的 低 密 度 同 位 元 檢 查 碼 架 構 中 , 循 環 (cyclic) 和 類 循 環 (quasi-cyclic)是兩種硬體實作複雜度較低的設計,類似架構的編碼包含有限幾何碼 (finite-geometry codes)[4]、平衡不完全區塊設計碼(BIBD codes)[5]、代數建構(algebraic construction)[6]及佛索瑞爾法(Fossorier’s work)[7]等等[8][9]。佛索瑞爾法[7]能證實它 能夠讓循環和類循環這兩種的同位元檢查矩陣(parity-check matrix)沒有零的區塊且最 小周長至少能到達12。然而嚴格的循環和類循環這兩種架構不太適合應用在碼的長度 非常長的時候,因為它們較小的最小周長在碼的長度很長時會限制住它們的應用。

分割及位移低密度同位元檢查碼(Partition-and-Shift LDPC;簡稱 PS-LDPC)[10]

是一種特殊結構的低密度同位元檢查碼,其保有部分類循環 LDPC code 低硬體複雜 度的優點,又能達到較大的最小周長,可以說是一個具有實用性的折衷方案。本文參 考[10]的方法,用 PS-LDPC code 來建構有任意的最小周長、任意的行權重,以及有 彈性的碼率的 LDPC code,並且嘗試將其最佳化。透過實驗,我們發現欲達到所設定 的 girth 目標所需的 LDPC 矩陣之大小可以大幅度的降低,所設計出的 LDPC code 之 錯誤率表現也較前人之成果更佳。

(10)

3

本論文裡,採用分割及位移 LDPC Codes(PS-LDPC code)的架構,再加入條件檢 查。特性為: 1. 利用分割及位移的方法再加入迴圈條件,可以避免迴圈的產生。2.

使用 Lu 的演算法 1 及演算法 2,再透過放大倍率 P 的限制式,可以將原本最小周長 為 g 的矩陣,最多放大成 3g,也就是最小周長最大可以放大 3 倍。

我們針對 Lu[10]的方法提出疑點,在 Lu 的實驗中,透過放大倍率 P 的限制式,

要將 girth 從 6 放大到 14 所需要的 P 值為 9332 倍,可是實驗裡使用的 P 值卻只有 607 倍,差距有點大, 這會令人懷疑是否真的能讓最小周長是否真的能最大放大 3 倍,

或者是超過 3 倍。當達成一樣的最小周長 g 時,假如碼的長度可以比 Lu 的方法做出 來的短,代表放大的 P 值比 Lu 的方法小。也可以說,碼的長度一樣時,假如最小周 長還可以比改進前放的更大的話,表式錯誤率就能得到更低的錯誤率了。這就是我們 這篇論文的研究動機與目的。

本篇論文分為六個章節,第一章介紹了撰寫本篇論文的動機和目的,第二章介紹 了 LDPC Codes 的背景,包含編碼及解碼的介紹。第三章介紹了 PS-LDPC code 的相 關研究及設計方法。第四章提出針對已知 PS-LDPC code 設計方法的質疑,並且提出 方法加以改良。第五章為本篇論文之實驗與設計之結果與錯誤率之模擬,並與前人之 成果加以比較。第六章則為本篇論文的總結。

(11)

4

二、背景介紹

本章節將會介紹錯誤更正碼的基本原理、LDPC codes 的編碼及解碼相關介紹。

2.1 錯誤更正碼

錯誤更正碼的原理是在原始的資料來源端,因為傳送的環境可能惡劣或者是外在 因素的關係會使得資料遭受到破壞,所以必頇加上額外的資料來保護原始的資料,這 就是編碼。在接收資料端,利用這些額外加上的資料,來判別原始資料是否有錯誤,

將保護過的資料解碼後成為原始我們要的資料,這過程就是解碼。更正錯誤的能力通 常與額外加上的資料多寡有關,一般而言,額外的資料越多,所能更正的錯誤也越多,

LDPC 也是利用此種方式來達到更正錯誤的效果。如下圖 2-1,就是一個錯誤更正碼 的運作流程。

圖 2-1. 錯誤更正碼的運作流程

(12)

5

如上圖 2-1,錯誤更正碼是應用在 OSI 網路七層中的實體層,資料在傳送之前,

會先經過編碼(encode),過程中的傳輸環境我們稱為一個通道(channel),在通道中可 能會有一些雜訊、外在干擾或者訊號衰退的關係,導致原本傳送端的資料被破壞,故 在接收端要收到資料之前,就有一個解碼(decode)的機制,解碼的機制就能將錯誤的 資料解回正確的。當然一個設計良好的編碼對解碼的效能影響也是很大的,除了本身 解碼的演算法好壞會影響到效能,編碼設計的好,對於解碼就會有更大的幫助,本篇 論文是在探討編碼。

在錯誤更正碼中,錯誤率的平緩現象(error floor),往往會影響整個效能,不論是 在無線的環境中,還是資料儲存上,當然是希望錯誤率越低越好,要讓錯誤率越來越 低,也就是希望它錯誤率的平緩現象是越來越晚發生的。下圖 2-2 為舉例的模擬圖。

分別標示了 waterfall region 與 error floor。

圖 2-2. 舉例的模擬圖

Waterfall region 代表的意思是錯誤率正在急驟下降中的現象,通常在規則性結構 的 LDPC codes 會比較早出現,萬一碼設計的不好的話,error floor 也有可能會比較早

(13)

6

出現,相對的非規則性結構的 LDPC codes 雖然 waterfall region 會比較晚出現,但是 通常 error floor 也會比規則性結構的晚出現,相對的設計上也會比較複雜。

要判斷錯誤更正碼的效率好壞,通常就會像圖 2-2 一樣,會有這種模擬圖來呈現,

一個好的錯誤更正碼,在當 SNR(雜訊比)值越高的時候,代表資料加入更多的保護,

所以錯誤率一定是要越來越低的才對,所以我們設計的碼,就必頇讓 error floor 越晚 出現越好。

2.2 低密度同位元檢查碼-編碼

LDPC codes 為一種線性區塊碼(Linear Block Code),此編碼的原理是用一個生成 矩陣(Generate matrix)與將所要傳輸的訊息作相乘的動作,會產生比原始資料還要長 的編碼字(code word),編碼字長度越長,則編碼的效益就越高。接收端接收到此訊號 後會與轉置後的奇偶檢查矩陣(Parity-Check matrix)相乘來檢查及修正接收到的資 料。假設奇偶檢查矩陣乘上編碼字後得到的結果若全為 0,則此編碼字為有效的編碼 字,再經過解碼回復到原始資料的狀態。一個好的編碼設計可以增加解碼的效能 。 一般來說,奇偶檢查矩陣的形式會如下圖 2-3 表示。

圖 2-3. IEEE 802.16e 標準奇偶檢查矩陣格式

(14)

7

這一個奇偶檢查矩陣是在 2001 年由一個叫做 Richardson 的學者所提出來的,將 這矩陣分成了六個 block。其中 T 為一個下三角矩陣。令原始資料位元為 u,則傳輸 資料的 codeword 就為 v=[u p1 p2](p1和 p2為檢查位元)。

利用 m×n 的奇偶檢查矩陣 H 的定義 H〃vT=0 這個關係式:

得出:

AuT+Bp1T+Tp2T=0 (2.1) CuT+Dp1T

+Ep2T

=0 (2.2) 由式(2.1)可得:

p2T=T-1= (AuT+Bp1T) (2.3) 將式(2.3)帶入(2.2)可得

(D+ET-1B) p1T= (ET-1A+C) uT (2.4) 令 ø =-ET-1B+D,定義 ø 為單位矩陣,所以可推得:

P1T= (ET-1A+c) uT (2.5) 最後完成編碼字 v=[u p1 p2]

在 LDPC 碼的表示中,一種是用矩陣來表示,另外一種是以二分圖來表示,兩種 表示法可以互相轉換。

在一個 LDPC code 矩陣 H 或由 LDPC code 矩陣 H 所轉換的二分圖中,矩陣的形 式為由 0 或 1 所組成的稀疏矩陣,由 m 個檢查節點(check nodes)及 n 個位元節點(Bit nodes)所組成,每一個位元節點由(0)2或(1)2組成,每一個檢查節點會去蒐集與自己連 接的位元節點的資料,算看看是否加總為 0,假如為 0,即為正確;假如不為 0,資 料就發生錯誤,就必頇透過設計演算法去解決。下圖 2-4 為二分圖與 LDPC codes 矩 陣 H 之間的轉換,V 代表位元節點,C 代表檢查節點,總共有 3 個檢查節點及 3 個位 元節點,V 與 C 有相連的話在矩陣上會填入 1,沒有相連則填入 0。

(15)

8

圖 2-4. 二分圖與 LDPC codes 矩陣 H 的轉換

一個(n,k)的 LDPC code,n 代表碼的長度(Codeword),k 代表資料位元(Information Bits)的長度,碼率(code rate)為 R=k/n。在一個 LDPC code 矩陣 H 中,行權重(column weight)與列權重(row weight)的相同與否,我們又可以將 LDPC code 矩陣 H 矩陣分為 規則性(regular)與非規則性(irregular)的結構。列權重為一列中 1 的個數為多少,行權 重為一行中 1 的個數為多少,假設 H 矩陣中行權重跟列權重都固定,則此 H 就為規 則性的。相反的,都不固定的 H 矩陣為非規則性結構。在效能方面,非規則性的矩 陣錯誤率平緩之現象會比較晚出現,代表錯誤率下降的比較多,但是硬體設計上也相 對的比較複雜。

2.3 低密度同位元檢查碼-解碼

在 1962 年,Gallager 除了介紹 LDPC 碼的存在外,也提出一個最接近 Shannon 限界結果的解碼演算法,稱為疊代解碼演算法(Iterative Decoding Algorithm),簡單來 說,LDPC 的解碼方式,是把傳輸資料由位元節點端輸入,經過一些公式運算後,再 傳出新的訊號至檢查節點端作運算,之後再回傳至位元節點端,重複來回的運算,直 到資料訊息收斂不再變化為止,這就是疊代解碼演算法。此後的學者根據此演算法也 提出眾多相關的研究。解碼的演算法有很多種,像是和積演算法(SPA)、Log-Domain

(16)

9

演算法、最小和演算法、BP 演算法(Belief propagation decoding algorithm)、MPA 演算 法(Message passing algorithm)等等,不管是編碼上還是解碼上或者是 code design,都 是有很多人在研究的,每年的論文數也都不少。Row(i)代表的是由 check nodes 所形 成的集合,column(j)代表的是由 bit nodes 所形成的集合,每一個 bit node 由(0)2或(1)2

組成,每一個 check nodes 會去蒐集與自己連接的 bit nodes 的資料,算看看是否加總 為 0,假如為 0,即為正確,假如不為 0,資料就發生錯誤,就必頇透過設計演算法 去解決。以下我們就介紹 MPA 演算法。

簡單來說 MPA 演算法指的就是 bit nodes 跟 check nodes 會互相幫忙解出彼此所 需要的答案。Step1: "Row processing" ,check nodes 會去收集 bit node 的資料後,回 傳給 bit node 為 1 或者 0 ; Step2 :"Column processing",bit nodes 會去收集 check nodes 所提供的資料後,再回傳給 bit nodes 為 1 或 0。經過多次的 iteration 後,得出所需要 的解。且 MPA 演算法也為平行解碼的方式,適合應用在當今高技術的硬體上。

Message passing decoding algorithm

下圖 2-5 為一進行 MPA 演算法前的初始圖

圖 2-5. MPA 初始二分圖 初始:

(17)

10

步驟 1: Pass message from V to C (Row processing) 步驟 2: Pass message from C to V (Column processing)

一次的步驟 1+步驟 2 稱為一個 iteration,經過多次的 iteration 後,就會得出所需要的 解。

V to C and Row processing

步驟 1: 如下圖 2-6 所示,pass message from V to C,C1會根據他收到 V1、V2、V3 的資訊,來回傳給 V4所需要的正確的值。

圖 2-6. Row processing 示意圖 1+1+0+?=0,so ?=0

(18)

11

C to V and column processing

步驟 2: pass message from C to V

processing  如下圖 2-7 所表示,column processing 會作多數決的投票 (majority vote),Vi會去收集 check nodes 所 提供的資料後,

再回傳給 Vi正確的值。

圖 2-7. column processing 示意圖

經過多次的檢查及運算後,即解碼為正確的值,利用彼此之間消息互相傳遞的機 制來達到解碼效果。所以說,假設設計出來的 LDPC 碼的最小周長可以很大的話,表 示能夠透過彼此傳遞訊息的資料也越多,資源比較多,代表透過傳遞訊息得出正確的 解的機會也越大;相反的,假如最小周長很小,能夠透過彼此傳遞訊息的資料也越少,

資源比較少表示能透過傳遞訊息得出正確的解的機會也越小,所以我們希望能夠設計 一個較大的最小周長的 LDPC 碼。

(19)

12

三、PS-LDPC code

3.1 分割及位移設計

我們可以從二分圖裡去建構一個低密度同位元檢查碼。令 Vc為一個包含所有 m 個檢查節點(check nodes)的集合以及 Vb為一個包含所有 n 個位元節點(bit nodes)的集 合。接著取一個大小(size)同樣為 p 的值將 Vc分割成 Nc個互斥(disjoint)的子集合,故 m=Nc〃p,p 屬於正整數。相同的,用同樣的 p 值,將 Vb分割成 Nb個互斥的子集合,

故 n=Nb〃p,p 屬於正整數。這裡要求 Nc≧j 且 Nb≧k (j 為位元節點的權重,k 為檢查 節點的權重),二分圖裡的每一個子集合裡的元素分別的將它們編上索引(0 至 p-1)。

同樣的也將 Vc裡的每個子集合編上索引(1 至 Nc)及 Vb裡的每個子集合編上索引(1 至 Nb)。我們命名參數 p 為每個子集合的基數(cardinality)。

當下列兩點成立時,我們稱一個檢查節點子集合 A 連到一個位元節點子集合 B:

(1) 子集合 A 裡的 p 個檢查節點,每一個檢查節點都有連到子集合 B 裡面的位元 節點。

(2) 子集合 A 裡不同的檢查節點就必頇連到在子集合 B 中不同的位元節點。

因此,兩個子集合之間的點建立成兩個子集合連結的關係是一對一的。為了去建 構一個能夠使檢查節點權重 k 和位元節點權重 j 一樣的規則性低密度同位元檢查碼,

我們讓每一個檢查節點的子集合連到 k 個位元節點子集合並且每一個位元節點子集 合連到 j 個檢查節點子集合。接著再更進一步的在加入下列限制:每一個檢查節點,

在檢查節點子集合裡的第 α 的位置,編上索引為 Xc,相連到在位元節點子集合裡的 第β 的位置,編上索引為 Xb,也就是 Xb=Xcp Sα,β ,0≦Sα,β≦p-1 且p 表示為除以 p 取 餘數做加法(modulo-p addition)。故用以上這樣的方法定義分割及位移低密度同位元檢 查碼(PS-LDPC codes)。圖 3-1 表示分割及位移低密度同位元檢查碼的二分圖。圖中有 由位元節點形成的 6 個子集合並且能夠被檢查節點相連,但每一個檢查節點只能剛好

(20)

13

被 3 個位元節點連結。圖 3-2 為圖 3-1 二分圖轉換成矩陣的示意圖,每個區塊由 p × p 的單位矩陣組成,並且會有位移的資訊

圖 3-1. 分割及位移低密度同位元檢查碼的二分圖

圖 3-2. 二分圖轉換的矩陣圖

參數定義:Sα,β,1≦α≦Nc,1≦β≦Nb,上數的定義就稱為位移(shifts)。用一樣 位移 Sα,β的值做檢查節點裡同樣第α 個子集合裡的檢查節點去連接位元節點裡同樣為 第β 個子集合裡的位元節點。挑選在 Nc ×Nb矩陣裡所有的 Sα,β值之後,把它稱為位移 矩陣(shift matrix) S=[Sα,β]。S 中的第 α 列儲存與檢查節點的第 α 個相連的子集合之位

(21)

14

移值;S 中的第 β 行儲存與位元節點的第 β 個相連的子集合之位移值。因此,在 S 中 列的對外連結個數α,行的對外連結各數 β,就是決定第 α 檢查節點子集合如何去連 接第β 個子集合後形成的 Sα,β。假如在第α 個檢查節點子集合與第 β 個位元節點子集 合沒有互相連結,表示他沒有對外連結,在位移矩陣 S 中的入口(entry)就以“*”來表 示。每一個檢查節點子集合只有連到 k 個位元子集合,而且總合又為 Nc個檢查節點 子集合,故只有存在 k〃Nc個非“*”位移值。圖 3-3 為舉例圖,用群與群之間的連接方 式算出位移值。圖 3-4 為圖 3-1 二分圖所相對應的位移矩陣 S。

圖 3-3. 試算位移值

圖 3-4. 二分圖所相對應的位移矩陣 S

(22)

15

從以上的建構方式可得出碼率,在分割及位移低密度同位元檢查碼裡,行權重 j 及列權重 k 已經不受限制。所以我們可以設計一個有任意行權重 j 及列權重 k 的分割 及位移低密度同位元檢查碼。在一個規則性的碼中,假如少數的線性相依同位元檢查 方程式忽略不做,則碼率ρ=1-(j/k)。因此,我們可以調整 j 與 k 的值產生想要的碼率 的分割及位移低密度同位元檢查碼。舉例來說,假如想要一個ρ=8/9 且行權重為 3 的 分割及位移低密度同位元檢查碼,就可以調整設定 j=3 及 k=27。

(23)

16

3.2 迴圈與位移的關係

因為小的迴圈會對低密度同位元檢查碼的解碼有害,所以必頇將它消除。首先用 分割及位移低密度同位元檢查碼的二分圖找出在位移矩陣 S 中與迴圈有相關的封閉 路徑(closed path)。

定理 1(2t 迴圈)[10]:若且為若在位移矩陣 S 中有任一條長度為 2t 的封閉路徑且擁有 2t 個轉角(corner)

t

S t

S1,1.. 2,2 違反迴圈條件(Cycle Condition) :

...

...

) 1

( , 1, 1 2, 2 2 1, 2 1 2, 2

2 1

1 S i i S S S i i S i i

p p

i p t

i

pS2t1,2t1pS2t,2t 0(p表示為除以 p

取餘數做減法: modulo-p subtraction),則此分割及位移低密度同位元檢查碼的二分圖 裡就不包含 2t 迴圈。此定理 1 之證明請參考文獻[10]。舉例來說,圖 3-5(b)的 6 迴圈,

它是一條由彼此相關的 6 個轉角 S2,5、S3,5、S3,4、S4,4、S4,6和 S2,6所組成且長度為 6 的 封閉路徑,封閉路徑裡彼此關係是連續不斷的,就像圖 3-5(a)裡右下的一個封閉路徑。

在 S 中擁有 2t 個轉角

t

S t

S

S1,1, 2,2.. 2,2 的任一條封閉迴圈,假如不符合迴圈條件定理 的話,則此二分圖不會有 2t 迴圈存在。換句話說,圖 3-5 裡的封閉路徑

S2,5-S2,6+S4,6-S4,4+S3,4-S3,5算出來的總位移值只要能讓它不為 0 的話,則在 H 裡就能避 免 6 迴圈的出現。

(a)

(24)

17

圖 3-5. (a): S 中的封閉路徑 (b):在二分圖中的 6 迴圈

3.3 最小周長的邊界

定理 1 表示迴圈條件可以預防 2t 迴圈,可是定理 1 卻沒有告訴我們是否可以找 到所有長度為 2t 且違反迴圈條件的封閉路徑形成的位移矩陣 S。可以從下列定理 2[10]

與定理 3[10]知道答案。

A. 最小周長之上界 (Upper Bound on Girth)

定理 2 [10] :每一個分割及位移低密度同位元檢查碼是由擁有最小周長 g≦2(L(C1)+L(C2)-L(C1∩C2))的位移矩陣 S 建構而來的,其 C1和 C2是在 S 中的任 意兩條封閉路徑且 C1∩C2≠ø。在[10]有定理 2 之證明。

B. 達成最小周長的邊界 (Achieving the Girth Bound)

以下為表示定理 2 中最小周長 g 之上界是可以達成的。

定理 3[10] :基於位移矩陣 S,我們可以建構一個任意最小周長

g≦2minC1,C2(L(C1)+L(C2)-L(C1∩C2))的分割及位移低密度同位元檢查碼,其 C1C2是在 S 中的任意兩條封閉路徑且 C1∩C2≠ø。在[10]有定理 3 之證明。且 p 的限 制[10]為

(b)

(25)

18

p≧[(j-1)(k-1)](g/2-1)∕(j〃k-j-k) (3.1) 藉由定理 3,可以導出一個結論。

結論 1:從一個最小周長為 g 的小的分割及位移低密度同位元檢查碼,可以建構 出一個任意最小周長為 gc≦3g 的分割及位移低密度同位元檢查碼。在[10]有結論 1 之 證明。

但是,在文獻[10]作者提出的 p0=607、最小周長放大到 14 的實驗與結論 1 作比 較,有些令人質疑的地方如下:

1. 最小周長從 6 放大到 14, 並沒有將原本的最小周長為 g 的 S,經過實驗後達到 3g。

2. 從 p 的限制式(1)中,作者的 j=3、k=4 算出來的 p 值應該是 9332,是一個很大的 值,然而 Lu 發表的結果只有 607 理論和實驗結果有存在差距會讓人覺得也許可 以把原本最小周長為 g 的 S,經過實驗後變成超過 3g。

3. 原作者提出的最小周長邊界為上界,最多就是放大 3 倍,但在實作上的時候,可 能會比較不理想,且不夠嚴謹,如果能夠給下界的話,譬如最小周長從 g 放大成 3g 時,需要的 p 值為一個下界(pmin),我想這樣對於實作上,才會有最大的幫助。

以上,我們發現實驗跟定理的差距有點大,所以我們透過自己的實驗來驗證最小周長 邊界條件是否嚴謹。

3.4 任意的最小周長

藉由結論 1[10],可以將一個設計有最小周長為 3g 的分割及位移低密度同位元檢 查碼,這樣困難的問題轉換成設計一個比較簡單且最小周長只有 g 的低密度同位元檢 查碼。假如最小周長為 g 的分割及低密度同位元檢查碼還是很難建構出來,我們還可 以再進一步將最小周長的需求減少為

g/3

。用這樣的方法,最後就可以將所設計的 碼的最小周長減少為 g≦12,藉由結論 1,我們可以根據一個 j× k 且全為“1”的矩陣去 設計出行權重為 j,列權重為 k,且最小周長 g≦12 的分割及位移低密度同位元檢查 碼。

(26)

19

以下為藉由結論 1,基於最小周長為 g 的分割及位移低密度同位元檢查碼,建構最小 周長為 gc≦3g 的分割及位移低密度同位元檢查碼之演算法 1[10]與演算法 2[10]。

演算法 1:從最小周長為 g 的分割及位移低密度同位元檢查碼,建構最小周長為 gc≦3g 的分割及位移低密度同位元檢查碼,下圖 3-6 為 Lu 的演算法 1 之 pseudo code,

說明如何建構一個 S 矩陣(gc: construct g)。

圖 3-6. 演算法 1 的 pseudo code[10]

(27)

20

下圖 3-7 為演算法 1 之流程圖,S 矩陣中每個欄位產生的位移值,透過迴圈條件 下去檢查,沒有達成迴圈條件,則此位移值就為可以用的,直到每個欄位的值都產生 好為止,即建構出一個 S 矩陣。

圖 3-7. 演算法 1 的流程圖

(28)

21

演算法 1:

初始化:令 H 為有最小周長 g 之分割及位移低密度同位元檢查碼的同位元檢查矩陣 (parity-check matrix) 。設 H 為位移矩陣 S 的關聯矩陣 (incidence matrix)。S 中的欄位 除了“*”,剩下的 k〃Nc個欄位為未確定的值。用 S1,S2….,SkNc來表示這些 k〃Nc個欄 位。儲存的方式是由左至右,逐列運作。

1. r=1

2. 步驟一:Sr值為亂數產生(0≦ Sr<p) 3. for (g/2≦ t ≦ gc/2-1)

4. for (S 中的每一條長度為 2t 的封閉路徑,Sr有參 5. 與到哪一條封閉路徑,則此條封閉迴圈的起始值 6. 至結束 Sr,做迴圈條件

t i 2

1(-1)i+1 Sαi,βi,是否為 0) 7. 把會使得迴圈條件成立的 k 值加入禁止位移陣列 8. (Prohibit_shift array 裡)

9. k=k+1;

10. end for

11. while(Sr值不為 Prohibit_shift array 裡的值) 12. 則迴圈條件不成立,將 Sr填入 S 裡

13. end while

14. 將 Prohibit_shift array 清除 15. end for

16. if (r=k〃Nc) 17. 到步驟二 18. else

19. r=r+1,回到步驟一

20. 步驟二:基於結果 S 矩陣建立分割及 21. 位移低密度同位元檢查碼

(29)

22

演算法 2:建構一個任意最小周長 g 的分割及位移低密度同位元檢查碼,下圖 3-6 為 Lu 的演算法 2 之 pseudo code,說明只要透過演算法 2,就可以得到任意最小 周長的 PS-LDPC codes

圖 3-8. 演算法 2 的 pseudo code[10]

(30)

23

下圖 3-9 為演算法 2 的流程圖,演算法 2 是把演算法 1 包起來,說明除了能夠建

構任意最小周長的 PS-LDPC codes 之外,在設計上的最小周長假如太大,可以透過 ,則可以問題簡化成最小周長設計到≦12 就好。

圖 3-9. 演算法 2 的流程圖

如此一來,透過 Lu 的演算法 1 及演算法 2 就可以建構任意最小周長的 PS-LDPC codes 了。

( 1 ) / 6

2 g

t

( 1 ) / 6

2 g

t

( 1 ) / 6

2 g

t

 12 g

t

( 1)/6

2 gt

(31)

24

四、針對分割及位移 LDPC code 之改進

在 Lu 的方法中,經過 3.3 我們自己的實驗後,出來的結果的確是有讓人質疑的 地方,實驗和定理是有點差距的,這也表示應該是可以做的更好才對,也就是可以將 矩陣的最小周長放的更大。接下來我們就提出本論文的改進方法,再加以證實可以比 Lu 的方法做的更好。

4.1 已知演算法之缺點

透過 3.4 的演算法 1 與演算法 2,我們可以經由放大 p 倍後,產生一個比原本最 小周長只有 g 的位移矩陣 S,放大成最小周長為 3g 的分割及位移低密度同位元檢查 碼。舉例來說,假如有一個最小周長為 4 的位移矩陣 S,就可以透過以上的方法放大 p 倍得到一個最小周長為 12 的 H0。但是 p 的大小與周長邊界條件是否嚴謹是我們可 以探討的地方。在 Lu 的方法中[10],告訴我們經過他的演算法就一定能將最小周長 最多放大 3 倍,可是放大倍率的值確實是讓人質疑的,不夠嚴謹,而且 Lu 的實驗裡,

最小周長從 6 放大到最小周長 14,所需要的 p 值與限制式(3.1)算出來的值相差太大,

造成碼的長度太冗長,假如能將碼的長度減少,又能將最小周長放大,這樣才是最好 的。在 3.3 章節中我們有提出質疑的地方,接下來我們會提供一個改進的方法。

4.2 改進方法

利用慢慢增加 p 的大小,來實驗長度相同的碼,最小周長能放大到多少,再來 與 Lu 的方法做比較。

在我們的方法中,首先,用的演算法 1 跟 Lu 作者是一樣的,但是為了我們能夠 利用慢慢增加 p 值來探討當 p 值增加到多少時,此時的矩陣最小周長能放大到多少,

所以我們必頇先建好能夠再矩陣中找迴圈的工具。在本論文的實驗裡,我們分別建了

(32)

25

找能夠在矩陣中找到 4-迴圈、6-迴圈、8-迴圈、10-迴圈、12-迴圈、14-迴圈、16-迴圈,

當然也不一定只能夠找到 16-迴圈,這隻程式是可以繼續發展下去的,只是因為要跟 Lu 作者的方法下去做比較而已。而且在做迴圈條件的時候,譬如我們現在想要一個 不包含 10-迴圈以下的矩陣 H,也就是一個最小周長為 12 的矩陣,此時的迴圈條件裡 就必頇同時加入 4-迴圈、6-迴圈、8-迴圈、10-迴圈,有了這項找迴圈的工具就讓我們 的實驗能夠更順利執行。下面我們就來說明如何建立在矩陣中分別尋找 4-迴圈、6- 迴圈、8-迴圈、10-迴圈…等等。

圖 4-1. 建樹的舉例圖

步驟 1.在一個矩陣 H 中,由列元素 C1、C2…Cx(檢查節點)及行元素 B1、B2…By(位 元節點)組成。因為有 1~y 個位元節點,所以可以建出 y 棵樹,樹根分別為 B1、B2… By

步驟 2.由步驟 1 建出樹根後,接著建出與每個樹根有相連的第一層,舉例來說,

如上圖十三在矩陣中 B1這行可以找到 C1、C3、C5的值為 1,就代表這三個檢查結點 與 B1樹根有相連,這三個檢查結點為這一棵樹的第一層。

步驟 3.建出每一棵樹的第二層資料,乘步驟 2 的例子說明,從 B1中找到了 C1、 C3、C5後,再分別從 C1、C3、C5這三列找到欄位為 1 的位元節點,且找到的位元節 點不能跟樹根重複,並且將第二層的位元節點是由第一層的哪一個檢查節點相連的位 置儲存。

步驟 4.建出每一棵樹的三層資料,且找到的檢查節點不會跟第一層的檢查結點重 覆。一樣也要將第三層檢查節點與上一層的哪一個位元節點相連的位置儲存。

(33)

26

步驟 5.建了三層的資料(不包含樹根)後,就可以得知矩陣裡所有 6-迴圈的資料。

假如要找 4-迴圈的資料,樹建到第二層即可;如果要找到 8-迴圈的資料,樹就必頇 建到第四層,以此類推。

如此,就可以把找迴圈的程式套用在 Lu 作者演算法 1 的迴圈條件裡面了,譬如 想要最小周長為 8 的矩陣,就把 4-迴圈及 6-迴圈的資料都找出來,然後再加以避免。

改進的方法:修改 Lu 的演算法 2,重點在於利用慢慢放大 p 的值,再去觀察是否能減 少碼的長度而能得到較大的最小周長。

目的 : 如果產生出來的矩陣最小周長跟 Lu 的一樣,但是長度比較小;或者是長度一 樣,但是最小周長能變大,則方法成功。

步驟 1: 利用演算法 1 產生出來的 H 矩陣,當作 S。

步驟 2: 在 S 矩陣中給個初始 p 值, p 最小從 4 開始,放大 p 倍得出來的矩陣 H,

再用找迴圈(4-迴圈、6-迴圈、8-迴圈、10-迴圈、12-迴圈、14-迴圈、16-迴 圈等等)的程式,去檢測最小周長已經放大到幾倍。

步驟 3: 假如想達到的最小周長沒辦法達成,則 p=p+1,直到產生出來為止。

4.3 實驗結果與比較

[實驗 1] 用 Lu 的方法與我們自己提出的方法來做比較。首先建一個行權重 j=3、列 權重 k=4、p1=5 且避免掉 4 迴圈的 S 矩陣,如圖 4-2。

圖 4-2. 避免掉 4 迴圈的 S 矩陣

(34)

27

基於 S,可以建構出一個最小周長為 6、碼率為 0.25 的 15×20 同位元檢查矩陣 H1 (方法 A)使用 Lu 的方法,將最小周長為 6 的 H1矩陣放大到最小周長為 14 的矩 陣 H0(n=12140、j=3、k=4),需要的最小 p0值為 607。如下圖 4-3 為最 小周長為 14 的 S 矩陣(位移值=“-1”代表群與群之間無相連)。

圖 4-3. 最小周長為 14 的 S 矩陣

(方法 B)用我們自己的方法將最小周長為 6 的 H1矩陣放大到最小周長為 14 的矩 陣 H0,需要的最小 p0值只要 150。不僅如此,放大到最小周長為 16 時,

需要的最小 p0值也只需要 520,如此,碼的長度會變短,效能也會提升。

下表 4-1 為用我們的方法,矩陣放大到最小周長為多少時,需要的最小 p 值(pmin)為多少。下圖 4-4 為最小周長為 16 的 S 矩陣。

(35)

28

圖 4-4. 最小周長為 16 的 S 矩陣

表 4-1. 達到最小周長為g 所需的最小 p 值 g 8 10 12 14 16 18 pmin 4 15 44 150 520 1570

從實驗 1 結果,可以發現用相同的 S 建出來 H0,我們的方法建出來的最小周長 的確是比 Lu 的方法還要大,也可以說固定想達到的最小周長為多少時,我們的方法 建出來的碼的長度,會比 Lu 的方法建出來的碼的長度短,所以 Lu 的確沒有做到最 好。

[實驗 2] 初始矩陣的選擇:根據我們提出的方法,實驗用最小周長為 6 作為初始矩陣 與較大的最小周長矩陣作為初始矩陣,所得到的實驗結果做比較。

(方法 1)初始用最小周長為 6 的 15×20(j=3、k=4)H,如下圖 4-5,經由我們的方 法,實驗的結果為下表 4-2。

(方法 2)將下圖 4_5 的 H,經由我們得方法,p0=4,可以得到最小周長為 8 的 60×80 H’當作初始矩陣,實驗的結果為下表 4-3。

(36)

29

圖 4-5. 最小周長為 6 的矩陣 H

表 4-2. [實驗 2]方法 1 的結果

g 8 10 12 14 16 18 pmin 4 14 42 142 432 1400

表 4-3. [實驗 2]方法 2 的結果 g 10 12 14 16 18 pmin 6 20 66 263 1170 備註:表 4-3 的 pmin值必頇×4 才能與表 4-2 作比較

從實驗 2 可以發現,用較小的最小周長為 6 的 S 作為初始矩陣,和用較大的最小 周長為 8 的 S 作為初始矩陣,當 H 的長度 n 一樣的時候,發現用較小的最小周長 S 作為初始矩陣得到的 H 的最小周長會比較大,也可以說想要達成一樣的最小周長的

(37)

30

時候,初始矩陣的最小周長小一點可能會比較好。舉例來說,從實驗 2 得到的表 4-2 及 4-3 中,最小周長從 6 直接放大到 14 所需要的 p 值最小為 142,相對於最小周長從 6 放大到 8 再放大到 14 所需要的 p 值為 66×4=264。所以在這些特定的條件下,這樣 的方法經過我們實驗 2 所得出來的結果,也許矩陣的最小周長利用分段式放大的方 法,不一定會比較好。也說明了初始矩陣的選擇,的確是有可能是個影響很大的因素,

但是能不能證明使用較小的最小周長當成初始矩陣來放大會比較好,這是需要再經過 非常多次實驗的。

(38)

31

五、錯誤率之模擬與分析

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

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

用我們提出來的演算法將圖 4-5 的(15×20)矩陣當作我們初始的 S 矩陣,放大的倍 率 p 為 142,去建構一個行權重為 4、列權重為 3、碼率為 0.25 且最小周長為 14 的 H(2130×2840)。比較的對象為 Random LDPC code,行權重為 4、列權重為 3、最小周 長為 6,長度一樣為 2130×2840。如下圖 5-1,為我們的模擬 1。

圖 5-1. 模擬 1

在模擬 1 中,因為我們選擇碼率較低的矩陣,矩陣中也許會有比較多的小迴圈,

導致在模擬的進行上需要花比較久的時間。由於模擬的環境是用軟體模擬,效率沒有 用硬體模擬來的好,如果是用硬體來執行模擬的話,也許模擬執行上速度就會比用軟

(39)

32

體快了更多,所以碼率較低的模擬結果,可能為無法預期的,因為當 SNR 值越高的 時候,錯誤率會用來越低,在模擬中就會花越多的時間去找出發生錯誤的地方。但是 已經有學者提出一個事實,在同樣的碼的長度下,只要最小周長比較大,則跑出來的 模擬結果錯誤率一定會比較低。

在第二個模擬中,我們則選擇碼率較高的矩陣來跑模擬,如下圖 5-2。

圖 5-2. 模擬 2

模擬 2 中,同樣的用我們提出來的演算法加上 Lu 方法中的演算法 1,將行權重 為 6、列權重為 2、最小周長為 6 且碼率為 0.67 的矩陣 H(12×36),當作我們初始的 S 矩陣,放大的倍率 p 為 50,去建構一個最小周長為 12、行權重為 6、列權重為 2 的 矩陣 H(600×1800)。比較的對象為 Random LDPC code,行權重為 6、列權重為 2、最 小周長為 6,矩陣大小一樣為 600×1800 的 H。在模擬 2 中,由於我們選擇是一個碼 率較高的矩陣,矩陣中的小迴圈也許就會比碼率較低的矩陣來的少,在 SNR 值較高 的情況下,就會比較容易找到發生錯誤的地方,因此從模擬圖中可以明顯的看出來我

(40)

33

們用改進後的方法建出來的矩陣,錯誤率的確是可以比 Random LDPC code 降的更 低,因為在 SNR 值較高的情況下,Random LDPC code 的錯誤率似乎已經沒辦法在持 續下降的很多了,但是我們的方法看的出來錯誤率還是在持續下降中,的確是縮小了 錯誤率平緩的現象。

(41)

34

六、結論

低密度同位元檢查碼近年來已經應用到通訊、廣播及HDD硬碟等領域,如今已 成為業界注目的焦點。本篇論文採用的架構為分割及位移低密度同位元檢查碼,針對 Lu的方法加以改進。

我們透過實驗來最佳化分割及位移低密度同位元檢查碼的演算法中放大倍率的 選擇,在固定長度下的低密度同位元檢查碼可以將最小周長放得更大,在固定的最小 周長限制下可以減少所需的碼的長度。和文獻中的方法比較,除了保有原有演算法的 優點,可以建構任意的行權重、列權重及最小周長的矩陣外,本論文的貢獻為證明了 要達到目標的最小周長而放大的倍率可以縮小很多,藉此可大幅降低硬體所需的複雜 度及成本,且經過我們改進的方法後,的確能證實放大的倍率可以縮小很多。在實驗 二裡,我們提出了初始矩陣的選擇這個議題,實驗二的結果是初始矩陣用較小的最小 周長進行放大最小周長會比較好,但是對於初始矩陣的選擇,未來也許能夠在進行更 多的實驗去下結論。此外,模擬結果顯示依照本文中演算法所建構出的LDPC code之 位元錯誤率的確是具有較低的錯誤率可以縮小平緩之現象。

(42)

35

參考文獻

[1] R. G. Gallager, “Low-Density Parity Check Codes. Cambridge,” MA: MIT Press, 1963.

[2] R. M. Tanner, “A recursive approach to low complexity codes,” IEEE Trans. Inf.

Theory, vol. IT-27, no. 5, pp. 533–547, Sep. 1981.

[3] F. R. Kschischang, B. J. Frey, and H. A. Loeliger, “Factor graphs and the sum product algorithm” IEEE Trans. Inf. Theory, vol. 47, no. 2, pp.498–519, Feb.2001.

[4] Y. Kou, S. Lin, and M. P. C. Fossorier, “Low-density parity-check codes based on finite geometries: A rediscovery and new results,” IEEE Trans. Inf. Theory, vol. 47, no. 7, pp. 2711–2736, Nov. 2001.

[5] B. Vasic, “Structured iteratively decodable codes based on Steiner systems and their application in magnetic recording,” Proc. IEEE Globecom 2001, vol. 5, pp.

2954–2960, Nov. 2001.

[6] H. Tang, J. Xu, Y. Kou, S. Lin, and K. A. S. Abdel-Ghaffar, “On algebraic

construction of Gallager and circulant low-density parity-check codes,” IEEE Trans.

Inf. Theory, vol. 50, no. 6, pp. 1269–1279, Jun. 2004.

[7] M. P. C. Fossorier, “Quasicyclic low-density parity-check codes from circulant permutation matrices,” IEEE Trans. Inf. Theory, vol. 50, no. 8, pp. 1788–1793, Aug.

2004.

[8] B. Vasic and O. Milenkovic, “Combinatorial constructions of low-density

parity-check codes for iterative decoding,” IEEE Trans. Inf. Theory, vol. 50, no. 6, pp.

1156–1176, Jun. 2004.

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

(43)

36

[10] J. Lu and J. M. F. Moura, “Structured LDPC codes for High-Density Recording:

Large Girth and Low Error Floor,” IEEE Trans. Inf. Theory, vol. 42, no. 2, pp.

208–213, Feb. 2006.

[11] X. Y. Hu, E. Eleftheriou, and D. M. Arnold, “Regular and irregular progressive edge-growth Tanner graphs,” IEEE Trans. Inform. Theory, submitted for publication.

[12] D. J. C. Mackay, “Good error-correcting codes based on very sparse matrices,” IEEE Trans. Inf. Theory, vol. 45, no. 2, pp. 399–431, Mar. 1999.

[13] J. M. F. Moura, J. Lu, and H. Zhang, “Structured LDPC codes with large girth,”

IEEE Signal Processing Magazine, vol. 21, no. 1, Jan. 2004.

[14] J. Lu, J. M. F. Moura, and U. Niesen, “Grouping-and-shifting designs for structured LDPC codes with large girth,” in Proc. ISIT 2004, Chicago, IL, Jun. 27–July 2 2004.

[15] B. Vasic and O. Milenkovic, “Combinatorial constructions of low-density parity-check codes for iterative decoding,” IEEE Trans. Inf. Theory, vol. 50, no. 6, Jun. 2004.

[16] Sae-Young Chung, G. David Forney Jr., Thomas J. Richardson and Rudiger Urbande, “On the design of low-density parity-check codes within 0.0045 dB of the Shannon limit,” IEEE Communications Letters, vol. 5, no. 2, pp. 58-60, Feb.2001.

參考文獻

相關文件

Singleton,”A methd for computing the fast Fourier Transform with auxiliary memory and limited high-speed storage”, IEEE Trans. Audio

Park, “A miniature UWB planar monopole antenna with 5-GHz band-rejection filter and the time-domain characteristics,” IEEE Trans. Antennas

Kwong, “Metal nanocrystal memory with high-k tunneling barrier for improved data retention, ” IEEE Trans. Electron

Lin, “Automatic Music Genre Classification Based on Modulation Spectral Analysis of Spectral and Cepstral Features”, IEEE Trans.. on

The objective is to evaluate the impact of personalities balance in a project management team on the team’s performance.. To verify the effectiveness of this model, two

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

Shi, “Worst case tolerance analysis of linear analog circuits using sensitivity bands,” IEEE Trans. Shi, “Worst-case analysis of linear analog circuits using sensitivity bands,”

The permutation performance of Tango Route March (Tango_RM) can get the most approach effect of best prediction permutation.. The method of permutation effect analysis takes