• 沒有找到結果。

低密度同位檢查碼技術及其在數位電視廣播系統應用之研究

N/A
N/A
Protected

Academic year: 2021

Share "低密度同位檢查碼技術及其在數位電視廣播系統應用之研究"

Copied!
58
0
0

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

全文

(1)國 立 交 通 大 學 電信工程學系碩士班 碩 士 論 文 低密度同位檢查碼技術及其在數位電視廣 播系統應用之研究 A Study on LDPC Coding Technique and Its Application to Digital Video Broadcasting Systems 研 究 生 指導教授. 中. 華. 民. 國. : :. 林永哲 黃家齊. 九十四. 年. 博士. 八. 月.

(2) 低密度同位檢查碼技術及其在數位 電視廣播系統應用之研究 A Study on LDPC Coding Technique and Its Application to Digital Video Broadcasting Systems. 研 究 生 : 林永哲. Student. :Yong-Jhe Lin. 指導教授 : 黃家齊 博士. Advisor :Dr. Chia-Chi Huang. 國 立 交 通 大 學 電 信 工 程 學 系 碩 士 班 碩 士 論 文. A Thesis Submitted to Institute of Communication Engineering College of Electrical Engineering and Computer Science National Chiao Tung University in Partial Fulfillment of the Requirements for the Degree of Master of Science in Communication Engineering June 2005 Hsinchu, Taiwan, Republic of China. 中 華 民 國 九十四 年 八 月.

(3) 低密度同位檢查碼技術及其在數位 電視廣播系統應用之研究. 研究生:林永哲. 指導教授:黃家齊 博士. 國立交通大學 電信工程學系 摘要 錯誤更正碼的種類很多,其中有一種名為低密度同位檢查碼的錯誤更正碼在 最近受到重視,因為其編碼增益直逼雪儂極限,解碼器簡單且硬體成本低。在本 論文中,我們將低密度同位檢查碼的編碼與解碼方式應用於數位電視廣播系統 中。傳統的數位電視廣播系統的編碼方式是由兩層編碼所組成,分別為外層編碼 (里德所羅門碼)及內層編碼(迴旋碼),而且這兩層的編碼都有各自的交錯器。為 了簡化數位電視廣播系統的編碼,我們使用一個低密度同位檢查碼來取代原本的 里德所羅門碼及迴旋碼,及其所對應的交錯器。我們藉著計算機模擬來比較低密 度同位檢查碼與傳統的兩層編碼在數位電視廣播系統中錯誤率的表現。. i.

(4) A Study on LDPC Coding Technique and Its Application to Digital Video Broadcasting Systems Student: Yong-Jhe Lin. Advisor: Dr. Chia-Chi Huang. Institute of Communication Engineering National Chiao Tung University. Abstract This thesis proposes a new encoding and decoding method which can be applied to Digital Video Broadcasting (DVB) Systems. There are many kinds of error correction codes. Low Density Parity Check (LDPC) Code gets a lot of attention recently because its coding gain is near the Shannon limit. Moreover, the decoder is easy to implement and the hardware cost is low. Conventional Digital Video Broadcasting System uses two concatenated codes, an outer code (Reed-Solomon code) and an inner code (Convolutional code), respectively. These two codes have different interleavers. In order to simplify the coding scheme of Digital Video Broadcasting Systems, here we use a single Low Density Parity Check code to substitute for the original Reed-Solomon code and the Convolutional code, together with their interleavers. We use computer simulation to compare the bit error rate performance of the Low Density Parity Check Code and the original concatenated codes in Digital Video Broadcasting Systems.. ii.

(5) 誌謝 兩年研究生的日子,在師長諄諄教誨與同學的相互扶持中,歡樂的劃下完美 的句點。這之間學到很多也得到很多,期望自己能將所學貢獻給社會,也不枉父 母與從小到大的老師們對我的栽培與愛戴。能運用所學為這個社會盡一份棉力, 並實踐夢想,身為畢業生的我,感到無比光榮與鼓舞。 能順利的完成學業,要感謝論文指導教授黃家齊先生,在教授細心教導下, 所有課業上的問題都迎刃而解;在人生觀上也給予寶貴的意見,謝謝您!老師。 其次,感謝實驗室的學長、學姊和學弟妹們對我生活上的關心和課業上的協 助,共同度過這一段歡樂時光。一起寫論文的子豪、清凱、冠樺,是患難相助的 好同學們,無論是課業討論、論文撰寫、工作站維護等等,感激這些同學的鼎力 幫忙。寢室裡一起生活的室友,柏良、凱元與景程,兩年來就像家人般給予我全 力的支持,是我一生中難忘的朋友。 另外,好朋友佳璘、佳穗、育維、憲明、聲政、弘恩、一夫和適任等等,更 帶給我許多歡笑也與分享予我寶貴經驗,讓我學習到許多新知識,增廣了見聞, 大家相處在「北國精靈」更是笑聲不斷、熱情不減,透過成員們的知識交流與心 得分享,這個溫馨的社團必定可以永續經營下去。 最後衷心謝謝我的親愛的家人們,爸爸、媽媽、姊姊和弟弟,是我最大的精 神支柱,讓我無後顧之憂地完成碩士學位,這份榮耀是屬於全家人的。. 林永哲 謹誌 中華民國九十四年八月. iii.

(6) 目錄 中文摘要.........................................................................................................................i 英文摘要........................................................................................................................ii 誌謝.............................................................................................................................. iii 目錄...............................................................................................................................iv 圖目錄............................................................................................................................v 表目錄...........................................................................................................................vi 第一章............................................................................................................................1 簡介........................................................................................................................1 第二章............................................................................................................................2 2.1 里德所羅門碼介紹..........................................................................................2 2.2 編碼器..............................................................................................................3 2.3 解碼器..............................................................................................................7 第三章..........................................................................................................................14 3.1 低密度同位檢查碼介紹................................................................................14 3.2 編碼器............................................................................................................15 3.3 解碼器............................................................................................................18 3.3.1 Tanner Graph.......................................................................................18 3.3.2 解碼的機率演示圖............................................................................20 3.3.3 Bit node 到 Check node 的機率算法.................................................21 3.3.4 Check node 到 Bit node 的機率算法.................................................23 3.3.5 LDPC 解碼時的 Update Equation ....................................................29 第四章..........................................................................................................................38 4.1 LDPC block length 求得 ...............................................................................38 4.2 模擬結果........................................................................................................44 第五章..........................................................................................................................49 結論與未來發展的方向......................................................................................49 參考文獻......................................................................................................................50. iv.

(7) 圖目錄 圖 2.1 Linear Feedback Shift Register 架構圖...........................................................12 圖 3.1 低密度同位檢查碼編碼方塊圖.......................................................................17 圖 3.2 Tanner Graph.....................................................................................................18 圖 3.3 HV T = 0 方塊圖 ............................................................................................19 圖 3.4 解碼器的架構圖..............................................................................................20 圖 3.5 Bit node 的 message-passing ...........................................................................21 圖 3.6 Bit node 的 message-passing ...........................................................................23 圖 3.7 LDPC decoder...................................................................................................29 圖 3.8 bit node 傳送到 check node 的機率資訊 ......................................................30 圖 3.9 check node 傳送到 bit node 的機率資訊 ......................................................30 圖 3.10 Ψ ( x) 的函數圖 ..............................................................................................35 圖 4.1 DVB-T 系統發射機的功能方塊圖 ................................................................39 圖 4.2 DVB-T 系統接收機的功能方塊圖 ................................................................39 圖 4.3 LDPC 取代 DVB-T 兩層編碼的發射機功能方塊圖 ....................................40 圖 4.4 LDPC 取代 DVB-T 兩層編碼的接收機功能方塊圖 ....................................40 圖 4.5 里德所羅門碼 RS(204,188,t=8)錯誤保護封包.............................................41 圖 4.6 外層編碼之交錯分佈後的資料結構分佈,I=12 bytes.................................41 圖 4.7 外層交錯器和反交錯器結構圖......................................................................42 圖 4.8 交錯器的輸入與輸出關係圖..........................................................................43 圖 4.9 DVB-T 在 AWGN 通道境下模擬結果 ...........................................................45 圖 4.10 DVB-T 在 fading 通道境下 30 公里車速模擬結果 .....................................45 圖 4.11 DVB-T 在 fading 通道境下 60 公里車速模擬結果 .....................................46 圖 4.12 LDPC 在 AWGN 通道境下模擬結果 ...........................................................46 圖 4.13 LDPC 在 fading 通道境下 30 公里車速模擬結果 .......................................47 圖 4.14 LDPC 在 fading 通道境下 60 公里車速模擬結果 .......................................47 圖 4.15 LDPC 與 RS+convolution 在 fading 通道境下模擬結果 .............................48. v.

(8) 表目錄 表格 2.1 由本質多項式 p( x) = x 4 + x + 1 建構 GF (16) ..............................................4 表格 4.1 系統的模擬參數..........................................................................................44. vi.

(9) 第一章 簡介 在歐規的數位影像廣播系統之地面廣播系統(DVB-T System)的架構中由兩 層編碼所組成,且各自有其交錯器 (Interleaver) ,外層編碼器 (Outer Coder) 為. Reed-Solomon code、內層編碼器(Inner Coder)為 Convolutional code。. 因為 LDPC(Low Density Parity Check code)的效能可以比 Turbo code 還好, 所以在論文中研究使得 LDPC 的 block length(編碼後的長度)等於 DVB-T 系統中 兩層交錯器總共的深度,根據這個深度來決定 LDPC 的碼字(code word)長度,以 模擬結果來分析 LDPC 在同樣 DVB-T 系統環境下的效能。在論文中詳細針對. Reed-Solomon code 及 LDPC code 的編碼、解碼及所用到的演算法方法做一個介 紹。. 1.

(10) 第二章 2.1 里德所羅門碼介紹 里德所羅門碼(Reed-Solomon Codes),簡稱 RS Code,里德所羅門碼是在西 元 1960 年由 I. Reed 以及 G.. Solomon 在他們麻省理工學院(M.I.T.)實驗室所共 同發明。自從里德所羅門碼被發明之後,這麼多年來它一直被廣泛的應用於現今 工業界各種方面,例如家庭裡的光碟機、硬體儲存設備及外太空的太空船通訊。. 里 德 所 羅 門 碼 的 效 能 非 常 好 , 但 其 缺 點 為 需 要 用 大 的 有 限 場 (Finite. field) GF (q ) 來建立長的里德所羅門碼,有限場 (Finite field) 亦可稱為 Galois Field。且里德所羅門碼的算術複雜度隨符號域大小 GF (q) 成指數成長,因此里德 所羅門碼的編解碼複雜度將隨其長度增加而變得非常高。里德所羅門碼的解碼過 程一般分為四個步驟:計算病徵函數 (Syndromes) 、找出錯誤位置多項式 (Error. Locator Polynomials)、解出錯誤位置(Error Locator)與計算錯誤值(Error Value)。. 2.

(11) 2.2 編碼器 假設一個有限場 (Finite field) 裡有 q 個元素 (elements) ,通常以符號表示為. GF (q),其中 Finite field 裡面的元素個數 q 一定是以 p m 的形式個數來表示, p 在 此表示為一個質數,而 m 表示為一個正整數。在 Finite field 裡的元素 α 其次方. (order) 為 最 小 的 正 整 數 m , 且 滿 足 α m = 1 , 則 α 稱 為 本 質 元 素 (primitive elements),在 GF (q) 中的元素都可以用 α 的次方的形式來表示,也使得 GF (q) 的 乘法運算變得更為簡單,而連續 q − 1 個 α 的次方所表示出的數值是相異的,所以 GF (q ) 總共有 q − 1 個非零的元素,分別表示成 {1, α , α 2 , α 3 ,..., α q − 2 } 。 假設在 GF (q) 中的本質元素 α 是一個本質多項式(primitive polynomial) p( x) 的根,所以我們可以利用這個本質多項式 p( x) 來建構一個 GF (q )。在原本的本質 多項式是以多項式型式(polynomial representations)的表示方法,而根據本質元素 是 多 項 式 的 一 個 根 的 關 係 , 我 們 可 以 把 他 代 換 成 指 數 形 式 (exponential. representations)的表示方法,這時是利用把多項式型式的表示方法取 modulo 轉換 成指數形式(exponential representations)的表示方法。. 以下我們舉一個例子來說明 GF (q ) 的建立,首先假設在一個 GF (16) 中,有 一個本質多項式 p( x) = x 4 + x + 1,本質元素 α 是本質多項式 p ( x) 其中的一個根, 所以我們可以得到 α 4 + α + 1 = 0,在二進位表示法的算術運算下,α 4 + α + 1 = 0 相 當於 α 4 = α + 1 。下列表格 2.1 為 GF (16) 的建立。. 3.

(12) 指數形式. 多項式型式. 0. 0. α0. 1. α1. x1. α2. x2. α3. x3. α4. x4 = x + 1. α5. x5 = x + x 2. α6. x6 = x 2 + x3. α7. x7 = x3 + x + 1. α8. x8 = x 2 + 1. α9. x9 = x3 + x. α 10. x10 = x 2 + x + 1. α 11. x11 = x 3 + x 2 + x. α 12. x12 = x3 + x 2 + x + 1. α 13. x13 = x3 + x 2 + 1. α 14. x14 = x3 + 1. 表格 2.1 由本質多項式 p ( x) = x + x + 1 建構 GF (16) 4. 里德所羅門碼其編碼方式如下,假設有一連串 k 個的消息符號(information. symbol) m ,可以表示成 {m0 , m1 , m2 ,..., mk − 2 , mk −1} ,經過編碼後的里德所羅門碼的 碼字(code word) c ,可以表示成 {c0 , c1 , c2 ,..., cq −1} ,這是因為 GF (q) 裡總共有 q 個 元素,而碼字是這 q 個元素中的組合,我們先利用 k 個的消息符號來組成一個消 息 符 號 多 項 式 m( x) , m( x) = m0 + m1 x + ... + mk − 2 x k − 2 + mk −1 x k −1 , 因 為 消 息 符 號 (information symbol)是 GF (q) 裡面的元素,所以有 q 種不同的可能性,因此里 4.

(13) 德 所 羅 門 碼 的 碼 字 c 總 共 有 qk 種 可 能 性 , 碼 字 c 可 以 表 示 為. c = (c0 , c1 ,..., cq −1 ) = ⎡⎣ m(0), m(α ), m(α 2 ),..., m(α q −1 ) ⎤⎦ 。. 公式(2.1)以方程式的形態表示里德所羅門碼的碼字 c ,若以矩陣的型態來表 示的話,則如公式(2.2)所示。. m(0) = m0 m(α ) = m0 + m1α + m1α 2 +. + mk −1α k −1. m(α 2 ) = m0 + m1α 2 + m1α 4 +. + mk −1α 2( k −1). m(α q − 2 ) = m0 + m1α q − 2 + m1α 2( q − 2) +. + mk −1α ( q − 2)( k −1). m(α q −1 ) = m0 + m1α q −1 + m1α 2( q −1) +. + mk −1α ( q −1)( k −1). ⎤ ⎡ m0 ⎤ ⎡ m(0) ⎤ ⎥ ⎢ m ⎥ ⎢ m(α ) ⎥ α ⎥⎢ 1 ⎥ ⎢ ⎥ 2( k −1) ⎥ i ⎢ m2 ⎥ = ⎢ m(α 2 ) ⎥ α ⎥ ⎢ ⎥⎢ ⎥ ⎥ ⎢ ⎥⎢ ⎥ q −1 ⎥ ( q −1)( k −1) ⎥ ⎢ ⎥ ⎢ α ⎦ ⎣ mk −1 ⎦ ⎣ m(α ) ⎦. 0 0 ⎡1 ⎢1 α α2 ⎢ ⎢1 α 2 α4 ⎢ ⎢ ⎢⎣1 α ( q −1) α 2( q −1). (2.1). 0. ( k −1). (2.2). 以上的里德所羅門碼表示法可以寫成 (n, k ) RS Code, n 代表經過編碼後的 消息符號長度,也就是跟上面 q 個元素是一樣的 (n = q ) ,而其中 k 代表輸入碼字 的消息符號長度。以. k 來表示里德所羅門碼的編碼率(Code Rate) ,其中同位元 n. 檢查碼的長度(parity-check symbols)為 n − k 個。. 假 設 里 德 所 羅 門 碼 的 產 生 多 項 式 (generator polynomial) 為 g ( x) , n−k. g ( x) = ∏ ( x − α i ) i =1. g 0 + g1 x + g 2 x 2 + ... + g n − k x n − k 。同位元檢查碼表示成 p ,總共有. n − k 個同位元檢查碼, p = [ p0 , p1 , p2 ,..., pn − k −1 ] ,所以碼字表示為 C ,為消息符. 號 m 後面加上同位元檢查碼 p 所產生的。且碼字 c( x) = m( x) g ( x) ,也就是說消息 符號 m( x) 乘上產生多項式 g ( x) 。 C = [ c0 , c1 , c2 ,..., cn −1 ] = [ p0 , p1 , p2 ,... p2t −1 , m0 , m1 , m2 ,..., mk −1 ]. 5. (2.3).

(14) c ( x ) = m( x ) g ( x ) = ( m0 + m1 x + ... + mk − 2 x k − 2 + mk −1 x k −1 )i( g 0 + g1 x + g 2 x 2 + ... + g n − k x n − k ) = c0 + c1 x + c2 x 2 + ... + cn −1 x n −1 =. n − k −1. ∑ i =0. (2.4). pi xi + x n − k m( x). = p ( x ) + x n − k m( x ). 其中同位元檢查碼 p( x) 的選擇是由產生多項式 g ( x) 可以整除碼字多項式. c( x) 決 定 , 在 二 進 位 表 示 法 的 算 術 運 算 下 , 可 知 同 位 元 檢 查 碼 p( x) = Rg ( x ) ⎡⎣ x n − k m( x) ⎤⎦ ,而符號 Rg ( x ) [⋅] 代表被產生多項式 g ( x) 除之後所剩下的餘 式,即 p( x) 是 x n − k m( x) 被 g ( x) 除之後所剩下的餘式。. 综合以上編碼的方式,我們可以整理出里德所羅門碼的三個編碼步驟:. 第一步: 由消息符號可以算出消息符號多項式. m( x) = m0 + m1 x + ... + mk − 2 x k − 2 + mk −1 x k −1 ,進而求出 x n − k m( x) 。 第二步: 求出同位元檢查碼 p( x) = Rg ( x ) ⎡⎣ x n − k m( x) ⎤⎦ 。 第三步: 由第一步驟所求出的 x n − k m( x) ,再加上第二步驟中運算出的 p( x) ,即 可求出碼字多項式 c( x) 。. 6.

(15) 2.3 解碼器 里 德 所 羅 門 碼 其 解 碼 方 式 如 下 , 假 設 錯 誤 向 量 (error vector) 為 e = [ e0 , e1 ,..., en −1 ],因此可以寫出錯誤多項式為 e( x) = e0 + e1 x + ... + en −1 x n −1,所以訊. 號經過通道之後所接收到的訊號 v( x) 為碼字多項式 c( x) 加上錯誤多項式 e( x) ,. v( x) = c( x) + e( x) = v0 + v1 x + v2 x + ... + vn −1 x n −1 , v( x) 可以由產生多項式 g ( x) 的根. {α , α. n−k. 2. ,..., α n − k } 算出, g ( x) = ∏ ( x − α i ). g 0 + g1 x + g 2 x 2 + ... + g n − k x n − k 。因為碼字. i =1. 多項式(code word polynomial)c( x) 可以被產生多項式 g ( x) 整除,而且 g (α j ) = 0. for j = 1, 2,3,..., 2t ,其中 t =. n−k 代表里德所羅門碼可以更正的錯誤數量。利用 2. 這些關係,我們可以導出接收到的訊號 v( x) 有著下列的式子:. v(α j ) = c(α j ) + e(α j ) = m(α j )i g (α j ) + e(α j ) = e(α j ). (2.5). = e0 + e1α + e2α j. n −1. = ∑ eiα ij. ,. 2j. + ... + en −1 x. ( n −1) j. j = 1, 2,..., 2t. i =0. 所以由式子 (2.5) 中的 2t 個方程式可以算出病徵函數 (syndromes) 多項式. S j ,只要把錯誤(error pattern) ei 從 i = 0,1, 2,..., n − 1 全部求出就可以得到 S j 了。 n −1. Sj. v(α j ) = ∑ eiα ij. ,. j = 1, 2,..., 2t. (2.6). i =0. 假設傳送的訊號經過通道(channel)後有發生 v 個錯誤,且這 v 個錯誤在里德 所羅門碼可以更正的錯誤數量 t 範圍內, 0 ≤ v ≤ t ,一開始我們不知道這些 v 個錯 誤發生在哪些位置上,我們先假設這 v 個位置分別是 i1 , i2 , i3 ,..., iv ,因此我們可以 知道錯誤的多項式(error polynomial)為下式: e( x) = ei1 x i1 + ei2 x i2 + ei3 x i3 + ... + eiv xiv. (2.7). 7.

(16) 其中 ei1 代表錯誤的多項式中第 l 個位置錯誤的值,因為一開始我們都不知道. i1 , i2 , i3 ,..., iv 錯誤的位置發生在哪裡,及 ei1 , ei2 , ei3 ,..., eiv 錯誤的值是多少,於是接下 來 我 們 要 求 出 錯 誤 的 位 置 和 其 值 。 從 式 子 (2.5) 及 (2.6) 我 們 可 以 求 出. S1 , S 2 , S3 ,..., Sv 。 S1 = v(α ) = e(α ). (2.8). = ei1α + ei2 α + ei3α + ... + eiv α i1. i2. i3. iv. 根據公式(2.8)我們在這邊做一個代數變換的動作,首先定義錯誤的值(error. value)為 Yl , Yl = eil , l = 1, 2,3,..., v ,另外定義錯誤位置(error location number)為 X l , X l = α il , l = 1, 2,3,..., v , il 表示第 l 個錯誤的真實位置。所以把這兩個重 新定義後變數代入到公式(2.8),我們可以的到下式:. S1 = v(α ) = e(α ) = ei1α i1 + ei2 α i2 + ei3α i3 + ... + eiv α iv. (2.9). = Y1 X 1 + Y2 X 2 + Y3 X 3 + ... + Yv X v 另外我們也可以根據新的定義把公式(2.8)代換成下式: S j = Y1 X 1j + Y2 X 2j + Y3 X 3j + ... + Yv X vj. j = 1, 2,..., 2t. ,. (2.10). 以上說明里德所羅門碼整個解碼過程有下列兩個步驟: 第一步: 由公式(2.6)計算特徵多項式. Sj. n −1. v. i =0. l =1. v(α j ) = ∑ eiα ij =∑ eil X l j. ,. j = 1, 2,..., 2t. 第二步: 由公式(2.10) S j = Y1 X 1j + Y2 X 2j + Y3 X 3j + ... + Yv X vj. ,. j = 1, 2,..., 2t ,我們. 可 以 從 總 共 2t 個 非 線 性 多 項 式 中 分 別 解 出 錯 誤 的 位 置. X l = α il , l = 1, 2,3,..., v ,還有錯誤的 Yl = eil , l = 1, 2,3,..., v 。. 因為上面所提到的解碼方法要解 2t 個方程式,若 t 很大時,則解方程式變的 比較複雜,為了有效率來解出以上介紹里德所羅門碼錯誤的位置和錯誤的值,後 人發明出一種演算法來解碼,稱為 Forney's algorithm,Forney's algorithm 中定義 2t. 一些參數:病徵多項式(syndrome polynomial) S ( x) = ∑ Si xi ,錯誤位置多項式(error i =1. 8.

(17) locator polynomial) 為 Λ ( x) ,且定義 Λ ( x) 多項式的根是錯誤位置 (error location number)為 X l = α il , l = 1, 2,3,..., v 的倒數。 Λ ( x) 1 + Λ1 x + Λ 2 x 2 + ... + Λ v x v v. ∏ (1 − xX ) l. l =1. (2.11). X l = α il. ,. 把上式(2.11)中的 Λ ( x) 一次微分得到 Λ '( x) 。 '. ⎡ v ⎤ Λ ( x) = ⎢∏ (1 − xX l ) ⎥ ⎣ l =1 ⎦ v ⎡ ⎤ = −∑ ⎢ X l ∏ (1 − xX j ) ⎥ l =1 ⎣ j ≠l ⎦ '. (2.12). 接下來我們把 X k−1 代入到 Λ ' ( x) ,得到式子(2.13)。 v ⎡ ⎤ Λ ' ( X k−1 ) = −∑ ⎢ X l ∏ (1 − X k−1 X j ) ⎥ l =1 ⎣ j ≠l ⎦ −1 = − X k ∏ (1 − X k X j ). (2.13). j≠k. 再來定義錯誤值多項式(error evaluator polynomial)為 Ω( x) Ω( x) = Λ ( x)[1 + S ( x)]. mod x 2t +1. ∞ ⎤ ⎡ v ⎤⎡ = ⎢∏ (1 − xX l ) ⎥ ⎢1 + ∑ S j x j ⎥ ⎣ l =1 ⎦ ⎣ j =1 ⎦ ∞ ⎡ v ⎤⎡ ⎛ v ⎞ ⎤ = ⎢∏ (1 − xX l ) ⎥ ⎢1 + ∑ ⎜ ∑ eil X l j ⎟ x j ⎥ ⎠ ⎦ ⎣ l =1 ⎦ ⎣ j =1 ⎝ l =1 v ∞ ⎡ v ⎤⎡ j⎤ = ⎢∏ (1 − xX l ) ⎥ ⎢1 + ∑ eil ∑ ( X l x ) ⎥ ⎣ l =1 ⎦ ⎣ l =1 j =1 ⎦ v ⎡ v ⎤⎡ = ⎢∏ (1 − xX l ) ⎥ ⎢1 + ∑ eil ⎣ l =1 ⎦ ⎣ l =1. (2.14). ⎛ X l x ⎞⎤ ⎜ ⎟⎥ ⎝ 1 − X l x ⎠⎦. ⎡ ⎤ = Λ ( x) + ∑ ⎢ eil X l x∏ (1 − X l x ) ⎥ l =1 ⎣ j ≠l ⎦ v. 9.

(18) 接下來我們把 X k−1 代入到 Ω( x) ,得到式子(2.15)。 v ⎡ ⎤ Ω( X k−1 ) = Λ ( X k−1 ) + ∑ ⎢e ji X l X k−1 ∏ (1 − X j X k−1 ) ⎥ l =1 ⎣ j ≠l ⎦ −1 = eik ∏ (1 − X j X k ). (2.15). j≠k. 由式子(2.13)及(2.15)我們經過運算之後可以求出 eik 。. eik =. Ω( X k−1 ). ∏ (1 − X j≠k. =−. j. X k−1 ). Ω( X k−1 ). (2.16). Λ ' ( X k−1 ) Xk. =−. X k Ω( X k−1 ) Λ '( X k−1 ). 以上我們已經算出錯誤的值(error value)為 eik ,接下來要算出錯誤位置多項 式(error locator polynomial)的係數 X l = α il , l = 1, 2,3,..., v 則需要下列的過程:. Λ ( x) = 1 + Λ1 x + Λ 2 x 2 + ... + Λ v x v ⇒ Λ ( X l−1 ) = 1 + Λ1 X l−1 + Λ 2 ( X l−1 ) + ... + Λ v ( X l−1 ) = 0 2. v. 2 v 0 = ⎡⎣Yl X l j + v ⎤⎦ ⎡⎢1 + Λ1 X l−1 + Λ 2 ( X l−1 ) + ... + Λ v ( X l−1 ) ⎤⎥ ⎣ ⎦ j +v j + v −1 j +v−2 j ⇒ Yl ( X l + Λ1 X l + Λ2 X l + ... + Λ v X l ) = 0 , l = 1, 2,3,..., v. ⇒. (2.17). 針對公式(2.17)的 l = 1, 2,3,..., v ,我們把這 v 個錯誤全部代入到公式之後,則 公式(2.17)可以改寫成下式:. Yl ( X l j + v + Λ1 X l j + v −1 + Λ 2 X l j + v − 2 + ... + Λ v X l j ) = 0. l = 1, 2,3,..., v. ,. v. v. v. v. l =1. l =1. l =1. l =1. ⇒ ∑ Yl X l j + v + Λ1 ∑ Yl X l j + v −1 + Λ 2 ∑ Yl X l j + v − 2 + ... + Λ v ∑ Yl X l j = 0 ⇒ Λ1S j + v −1 + Λ 2 S j + v − 2 + Λ 3 S j + v −3 + ... + Λ v S j = − S j + v. (∵ S. j. = Y1 X 1j + Y2 X 2j + Y3 X 3j + ... + Yv X vj. ,. 10. ,. j = 1, 2,3,..., v. j = 1, 2,3,..., 2t ). (2.18).

(19) 根據公式(2.18),我們可以把它用寫成用矩陣的方法來表示: ⎡ S1 ⎢S ⎢ 2 ⎢ ⎢ ⎢ ⎢⎣ Sv. Sv ⎤ ⎡ Λ v ⎤ ⎡ − Sv +1 ⎤ Sv +1 ⎥⎥ ⎢⎢ Λ v −1 ⎥⎥ ⎢⎢ − Sv + 2 ⎥⎥ ⎥⎢ ⎥ ⎥=⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎥⎢ ⎥ ⎥ ⎢ ⎥ ⎢ ⎢ ⎥ S 2 v −1 ⎦ ⎣ Λ1 ⎦ ⎣ − S 2 v ⎥⎦. S2 S3. Sv +1. (2.19). 因為一開始解碼的過程中,我們並不知道有幾個錯誤 v ,因此首先假設錯誤 的個數剛好等於里德所羅門碼可以更正的錯誤數量( v =t ),進而計算 ⎡ S1 ⎢S ⎢ 2 ⎢ ⎢ ⎢ ⎢⎣ Sv. Sv ⎤ Sv +1 ⎥⎥ ⎥ 的行列式,若行列式 ≠ 0 ,則方程式有解,表示 v 為里 ⎥ ⎥ S2 v −1 ⎥⎦. S2 S3. Sv +1. 德所羅門碼可以更正的錯誤數量 t ,若行列式 = 0 ,則就逐次把 v 減 1,直到行列 式 ≠ 0 才停止,此時 v 就是實際錯誤的個數了,而得到正確實際錯誤的個數 v 後, 我們利用公式(2.19)就可得到錯誤位置多項式(error locator polynomial),所以整個 里德所羅門碼解碼過程就結束了。. 由於前述的里德所羅門碼解碼演算法運算過程過於複雜,必須要運用到反矩 陣的運算,所以比較沒效率,速度也比較減慢,於是這裡另外介紹一個疊代演算 法可以改進此問題,稱為 Berlekamp-Massey Algorithm,以下為此演算法的詳細 介紹。. 根據公式(2.18)我們做一下代數變換,令 j + v = j ' 代入公式(2.18)之後可以寫 出下式:. Λ1S j + v −1 + Λ 2 S j + v − 2 + Λ 3 S j + v −3 + ... + Λ v S j = − S j + v , j = 1, 2,3,..., v ⇒ Λ1S j ' −1 + Λ 2 S j '− 2 + Λ 3 S j ' −3 + ... + Λ v S j '−v = − S j ' , j ' = v + 1, v + 2, v + 3,..., 2v v. ⇒ S j ' = −∑ Λ i S j '−i , j ' = v + 1, v + 2, v + 3,..., 2v i =1 v. ⇒ S j = −∑ Λ i S j −i , j = v + 1, v + 2, v + 3,..., 2v i =1. 11. (2.20).

(20) v. 因為由上式可以知道 S j = −∑ Λ i S j −i , j = v + 1, v + 2, v + 3,..., 2v 是屬於疊代 i =1. 形式,所以在電路實現可以表示成線性迴授移位暫存器(Linear Feedback Shift. Register),如圖 2.1 所示。 Sj−v. ......, S j −v −3 , S j −v−2 , S j −v−1. −Λv. ×. −Λv−1. S j −v +1. ×. −Λv−2. +. S j −1. S j −v + 2. ×. −Λv−3. +. ×. −Λ1. +. × +. 圖 2.1 Linear Feedback Shift Register 架構圖. 所以原先需要求錯誤位置多項式之係數的問題,我們可以將其轉變成找出線 性迴授移位暫存器的最短長度,因而使其輸出的前 2t 個線性迴授移位暫存器的 輸出就是病徵函數 S1 , S 2 , S3 ,..., S2t ,此時乘法器所乘上的值(tap)就是我們所要 的錯誤位置多項式 Λ ( x) 。. 在Berlekamp-Massey 演算法有五個參數定義,分別為連接多項式(connection. polynomial) Λ ( k ) ( x) 、 更 正 多 項 式 (correction polynomial) T ( x) 、 差 異 值 (discrepancy) Δ ( k )、線性迴授移位暫存器的長度 L、指標變數(indexing variable) k 。. Berlekamp-Massey. 演. 算. 法. 的. 解. 碼. 方. 式. 就. 是. 使. 得. Λ ( k ) ( x) = Λ k x k + Λ k −1 x k −1 + Λ k − 2 x k − 2 + ... + Λ1 x + 1 成為一個長度為 k 的的連接多項 式,其係數為 k 個線性迴授移位暫存器的值(tap)。. 我們開始要找第一個 Λ (1) ( x),則在線性迴授移位暫存器相對應的輸出即為第 一個病徵函數 S1。再來線性迴授移位暫存器的第二個輸出拿來和第二個病徵函數. S2 做比較,如果這兩者有差異值 Δ (1) ,就用這個差異值來建立一個更新的連接多 項式;相反的,如果這兩者中間沒有差異,則連接多項式不用更新,且繼續拿此 連接多項式去產生線性迴授移位暫存器的第三個輸出值,再與第三個病徵函數 12.

(21) S3 做比較。如此重複上述步驟運算,直到線性迴授移位暫存器的輸出已經產生 2t 個病徵函數 S1 , S 2 , S3 ,..., S2t 。因此Berlekamp-Massey 演算法運算過 2t 次後就可以 得到錯誤位置多項式 Λ ( x) 了,用Berlekamp-Massey 演算法可以利用遞迴的方法 使得解碼更有效率。. 以下為詳細的 Berlekamp-Massey 演算法過程: 第 1 步:. 從接收到的訊號算出病徵函數 S1 , S 2 , S3 ,..., S2t 。. 第 2 步:. 初始化演算法中的各項變數, k = 0 , Λ (0) ( x) = 1 , L = 0 , T ( x) = x 。. 第 3 步:. k = k + 1 ,由前面 k − 1 的連接多項式 Λ ( k ) ( x) 來計算差異值 Δ ( k ) 。 L. Δ ( k ) = S k − ∑ Λ i( k −1) S k −i i =1. 第 4 步:. 若 Δ ( k ) = 0 ,則表示不用更新連接多項式,直接進行第 8 步。. 第 5 步:. 更新連接多項式 Λ ( k ) ( x) = Λ ( k −1) ( x) − Δ ( k )T ( x). 第 6 步:. 若 k ≤ 2 L ,則,直接進行第 8 步。. 第 7 步:. L = k − L , T ( x) =. Λ ( k −1) ( x) Δ(k ). 第 8 步:. T ( x) = xiT ( x). 第 9 步:. 若 k < 2t ,則直接進行第 3 步。. 第 10 步:. 求出 Λ ( x) = Λ (2t ) ( x) 的根,這樣就可以得到錯誤的位置及錯誤的大小了。. 13.

(22) 第三章 3.1 低密度同位檢查碼介紹 低密度同位檢查碼 LDPC code(Low Density Parity Check code) 原本年由. Robert Gallager 在 1962 年所發明的,這是一種使用大段長的線性段碼,由於當 時電腦能力不足以處理複雜性計算,而且由於 VLSI 技術尚未成熟,因此使人們 淡忘許久,直到 1995 年由 Mackay 與 Neal 重新發展出 Tanner Graph 的解碼方 式,使得解碼時使用兩個狀態的同位檢查格子(parity check trellis),所以解碼器容 易實現,且 VLSI 技術的快速發展使得 LDPC code 又逐漸的被人們所廣為討論。. 14.

(23) 3.2 編碼器 低密度同位檢查碼的編碼方式為 G (產生矩陣)乘上一個 U (訊息向量)而產生 V (碼字向量)。由於低密度同位檢查碼須符合 V (編碼向量)乘上 H (同位檢查矩陣). 後等於零的規則,即是 HV T = 0 ,所以可由下列方法得到 V (碼字向量)。假設低 密度同位檢查碼以(N,K)的線性區塊碼來表示,其中有 N-K 個檢查位元,K 個位 元與 U (訊息向量)相同。 H (同位檢查矩陣)的大小為 M × M 。. HV T = 0. (3.1). H = [ A | B]. (3.2). V = [C | U ] = UG. (3.3). 其中 A 表示為 M × M 的矩陣大小, B 表示為 M × ( N − M ) 的矩陣大小。C 表 示為 1× ( N − K ) 的矩陣大小, U 表示為 1× K 的矩陣大小。由(3.2)式及(3.3)式代入 到(3.1)式。 即可得到. AC T + BU T = 0. ⇒ C T = A−1 BU T. 所以編碼向量 V = [UBT ( A−1 )T | U ] = UG. (3.4) (3.5). 又因為 UG = V = [UBT ( A−1 )T | U ] 的關係式,可以求得產生矩陣 G 。 所以產生矩陣 G = [ BT ( A−1 )T | I ]. (3.6). H (同位檢查矩陣)的維度為 M × N G (產生矩陣)的維度為 K × N. U (訊息向量)的維度為 1× K. 其中低密度同位檢查碼的編碼率為. K N −M = 。 N N. 15.

(24) 以下舉一個例子可以更方便了解低密度同位檢查碼的編碼過程:. ⎡1 ⎢0 ⎢ ⎢1 H =⎢ ⎢0 ⎢1 ⎢ ⎣0. 1 1 0 1 0 0. 0 1 0 1 1 0. 1 0 0 1 0 1. 0 1 1 0 1 0. 1 0 1 1 0 0. A ⎡1 ⎢ ⎢1 ⎢0 AT = ⎢ ⎢1 ⎢0 ⎢ ⎣1. 0 1 0 1 0⎤ 1 0 1 0 0 ⎥⎥ 1 0 1 1 0⎥ ⎥ 0 0 1 0 1⎥ 1 1 0 1 0⎥ ⎥ 0 1 1 0 0⎦ ⎡1 0 0 1 ⎢0 0 0 1 ⇒ BT ( A−1 )T = ⎢ ⎢0 0 1 1 ⎢ ⎣0 1 0 1. 0 1 0 1 0 1. 0 1 0 0 1 1. 1 0 1 0 0 1. 0⎤ 0 ⎥⎥ 1⎥ ⎥ 0⎥ 1⎥ ⎥ 1⎦. B. ⎡0 ⎢0 BT = ⎢ ⎢1 ⎢ ⎣0. 1 0 1 0 1⎤ 1 0 0 1 1⎥⎥ 0 1 0 0 1⎥ ⎥ 0 1 0 1 1⎦. 1 0⎤ 1 1 ⎥⎥ 1 0⎥ ⎥ 1 0⎦. ⎡1 ⎢0 所以產生矩陣 G = [ BT ( A−1 )T | I ] = ⎢ ⎢0 ⎢ ⎣0. 0 0 0 1. 0 0 1 0. 16. 1 1 1 1. 1 1 1 1. 0 1 0 0. 1 0 0 0. 0 1 0 0. 0 0 1 0. 0⎤ 0 ⎥⎥ 0⎥ ⎥ 1⎦.

(25) 以上介紹低密度同位檢查碼的編碼方式,而其步驟可用下圖來表示:. Message Vector. Generator Matrix. Codeword Vector. U. G. V. Parity Check Matrix. Null Vector. Codeword Vector. V. H 圖 3.1 低密度同位檢查碼編碼方塊圖. 17. 0.

(26) 3.3 解碼器. 3.3.1 Tanner Graph 在低密度同位檢查碼中,我們可以把 H (同位檢查矩陣)分成兩個部份來看, 其維度為 M × N 。這兩部份分別包含 check node 和 bit node。第一個部份是先看. H (同位檢查矩陣)的列,把所有的列可以看成 check node,每一列看成一個 check node,也就是說總共有 M 個 check node,再來就是把行看成 bit node,也就是碼 字(Codeword)的 bit 數,相當於有 N 個 bit node。. Parity Check Cj. Check node. Bits. Bit node. Bi. 圖 3.2 Tanner Graph. 我們以 3.2 節的 H (同位檢查矩陣)為簡單的說明例子,因為低密度同位檢查 碼解碼的過程要符合 HV T = 0 ,所以每一個 check node 連到的 bit node 均要滿足. HV T = 0 的關係式, V = (b1 , b2 , b3 , b4 , b5 , b6 , b7 , b8 , b9 , b10 ) 。. 18.

(27) ⎡1 ⎢0 ⎢ ⎢1 H =⎢ ⎢0 ⎢1 ⎢ ⎣0. 1 1 0 1 0 0. 0 1 0 1 1 0. 1 0 0 1 0 1. 0 1 1 0 1 0. 1 0 1 1 0 0. 0 1 0 1 0 1. 0 1 0 0 1 1. 1 0 1 0 0 1. 0⎤ 0 ⎥⎥ 1⎥ T ⎥ ,經由 HV = 0 的式子成立,也就是說 bit 0⎥ 1⎥ ⎥ 1⎦. node 只有連到 check node 的元素是”1”的時候,因此可以用下面的方塊圖來簡化 表示 HV T = 0 的關係。. b1 b2 b3. b1 + b2 + b4 + b6 + b9. b4. b2 + b3 + b5 + b7 + b8. b5. b1 + b5 + b6 + b9 + b10. b6. b2 + b3 + b4 + b6 + b7. b7. b1 + b3 + b5 + b8 + b10. b8. b4 + b7 + b8 + b9 + b10. b9 b10 圖 3.3. HV T = 0 方塊圖. 19.

(28) 3.3.2 解碼的機率演示圖 由上一節的 Tanner Graph 可以知道低密度同位檢查碼的解碼過程是經由 bit. node 及 check node 這兩端互相算出機率再丟給對方,應用到 Message Passing 的 概念,本節將討論這些 Message 機率的算法。. rji =μC j →Bi. μBi →Ni (vi ). q ji =μBi →C j. Pi =μNi →Bi ( vi ). ⎯⎯⎯⎯⎯ → Bi ←⎯⎯⎯⎯ ⎯⎯⎯⎯⎯ → Ni C j ←⎯⎯⎯ ⎯ vi. e ji. LDPC decoder (Internal). Another decoder(External). 圖 3.4 解碼器的架構圖. 在圖 3.4 中所表示,其中的 C j 代表 check node(C)、 Bi 代表 bit node(B), N i 代表 another node(N),這是另外一個 decoder 連接到 LDPC decoder 的 node。. 20.

(29) 3.3.3 Bit node 到 Check node 的機率算法 由圖 3.5 可知,假設 bit node(B) 與 K+1 個 stage(check node)相連,且彼此是 獨立(independent),這些 K+1 個 stage 分別表示成 c0 , c1 , c2 ,..., cK,而且 c0 , c1 , c2 ,..., cK 屬於同一個 alphabet A,根據上面的特性 bit node 的 constraint set 可以寫成下 列的關係式: S B = {(c0 , c1 , c2 ,..., cK ) | c0 = c1 = c2 = ... = cK }. C1. c1. c2. C2. c0. B. C0. ck Ck 圖 3.5 Bit node 的 message-passing. 假設從外部的 check node ( C1 , C2 , C3 ,..., CK ) 進到 bit node (B) 的機率為. μC → B (ci ) for i = 1, 2,3,..., K , 則 把 輸 入 到 bit node (B) 的 所 有 check node i. ( C1 , C2 , C3 ,..., CK ) 機率資訊運算之後可以得到一個輸出機率,以 μ B →C0 (c0 = ξ ) 來 表示 bit node (B) 輸出到 check node ( C0 )的機率,所以整個關係可以寫成下式:. μ B →C (c0 = ξ ) = mc 0. 0. ∑. K. ∏μ. ( c0 , c1 , ,ck )∈S B ~{c0 } l =1. Cl → B. (cl ). (3.7). K. = mc0 ∏ μCl → B (cl = ζ ) l =1. 其中 rc0 是一個正規化常數(normalization factor) K ⎛ ⎞ rc0 = ⎜ ∑∏ μCl → B (cl = ζ ) ⎟ ⎝ ζ ∈A l =1 ⎠. −1. 以上為 bit node (B) 到 check node ( C0 ) 的機率算法,接下來根據(3.7)式子,我們 21.

(30) 可以用另外一種方法來求得機率,此方法為 Log-Likelihood ratio(LLR),. LLR = log. "1"的機率 ,所以(3.7)可以改寫成下式: "0"的機率 LLRB →C0 ( c0 ) = log. μ B →C (c0 = 1) μ B →C (c0 = 0) 0. 0. K. = log. ∏μ. Ci → B. (ci = 1). Ci → B. (ci = 0). i =1 K. ∏μ i =1. K. = ∑ LLRCi → B (ci ) i =1. 如在 3.2 節所提到的,假設低密度同位檢查碼以(N,K)的線性區塊碼來表示, 則 H (同位檢查矩陣)的維度為 M × N ,K = N − M ,所以 bit node 的維度為 1× N , 以 Bi 來 表 示 , i = 1, 2,3,..., N 。 check node 的 維 度 為 1× M , 以 C j 來 表 示 ,. j = 1, 2,3,..., M 。而 bit node ( Bi ) 跟 check node ( C j ) 之間的 edge 以變數 e ji 來表 示,bit node ( Bi ) 跟 another decoder ( N i )間的 edge 以變數 vi 來表示,如圖 3.4 的 架構圖所示。. LDPC decoder 的本質機率(intrinsic probability) 為 another decoder ( N i ) 傳 int 送到 bit node ( Bi ) 的機率資訊,以 PLDPC (vi ) = μ Ni → Bi (vi ) 來表示。Message-passing int 演算法由本質機率(intrinsic probability) PLDPC (vi ) = μ Ni → Bi (vi ) 開始運算的,利用式. 子(3.7)我們可以求得 bit node ( Bi ) 到 check node ( C j ) 的機率,如下列所示:. "0"的機率:μ B →C (e ji = 0) = m ji μ N → B (vi = 0) i. j. i. i. "1"的機率:μ B →C (e ji = 1) = m ji μ N → B (vi = 1) i. j. i. ∏. μC. j ' ∈M ( i )\{ j }. i. ∏. j ∈M ( i )\{ j } '. μC. j'. j'. → Bi. → Bi. (e ji = 0). (e ji = 1). (3.8). (3.9). 其中 M (i ) 表示在 H (同位檢查矩陣)第 i 行(column) 裡面那些是”1”的列(row) 的位置的集合,而 M (i ) \{ j} 表示在 M (i ) 的集合裡把第 j 個元素扣除, m ji 是指一 個正規化的常數。 22.

(31) 3.3.4 Check node 到 Bit node 的機率算法 由圖 4.6 可知,假設 check node(C) 與 K+1 個 stage(bit node)相連,且彼此 是獨立(independent),這些 K+1 個 stage 分別表示成 b0 , b1 , b2 ,..., bK ,而且. b0 , b1 , b2 ,..., bK 屬於同一個 alphabet A,則 check node 到 bit node 的機率資訊公 式推導如下:. B1. b1 b2. B2. b0. C. B0. bK BK 圖 3.6 Bit node 的 message-passing. 在圖 3.6 中,輸入到 check node(C)的 K 個機率資訊中,假設為本質機率. (intrinsic probability),以 bi , i =0,1, 2,..., K 用來表示 bit node 和 check node 相連 接的 ”0” 或 “1” 機率,由 bit node 連接到 check node 的機率稱為本質機率. (intrinsic probability),以 μ Bi →C (bi ) 來表示。. 本質機率"0"的機率:μ B →C (bi = 0) = 1 − pi. (3.10). 本質機率"1"的機率:μ B →C (bi = 1) = pi. (3.11). i. i. 而 從 check node 傳 送 到 bit node 的 機 率 資 訊 稱 為 外 質 機 率 (extrinsic. probability),以 μC → B0 (b0 ) 來表示。 因為從 check node 傳送至 bit node 的機率資訊( μC → B0 (b0 ) )是由 K 個機率 資訊( μ Bi →C (bi ),i = 1, 2,3,..., K )來決定,所以傳送至 bit node 的機率資訊 μC → B0 (b0 ) 是 ”0” 或是 “1” 的機率為這 K 個( μ Bi →C (bi ) , i = 1, 2,3,..., K ) 的 XOR 組成,若. ( μ Bi →C (bi ) , i = 1, 2,3,..., K ) 全部 XOR 起來是 "0” 才是傳送到 check node 的 23.

(32) “0” 的機率。若 XOR 起來是 “1” 的情況,則是傳送到 check node 的 “1” 的 機率,有這下列的關係式。. 外質機率"0"的機率:μC → B (b0 = 0) = P(b1 ⊕ b2 ⊕ b3 0. 外質機率"1"的機率:μC → B (b0 = 1) = P(b1 ⊕ b2 ⊕ b3 0. ⊕ bK = 0) ⊕ bK = 1). (3.12) (3.13). 為了要證明上面這兩個式子(3.12)及(3.13)的成立,我們需要下列的假設與推 導過程,因為我們推導的式子從 bit node 傳送到 check node 的機率資訊有 K 個,我們先假設只有 2 個 stage( B1 和 B2 )時的情況,首先證明只有 2 個 stage( B1 和 B2 )時的式子會成立,再由數學歸納法證明有 K 個 stage 時仍然會成立。. 若只考慮 2 個 stage( B1 和 B2 )時,則從 bit node 傳送至 check node 的機率資 訊( μC → B0 (b0 ) ) 只是由 b1 和 b2 的 XOR( ⊕ ) 來決定,若 b1 ⊕ b2 = 0 則表示是 ”0” 的 機率,若 b1 ⊕ b2 = 1 則表示是 ”1” 的機率,因為要 XOR 起來是 ”0” 則 b1 和 b2 均 要為 ”0” 或均為 “1”,若 XOR 起來是 ”1” 則 b1 = 0, b2 = 1 或 b1 = 1, b2 = 0 ,要如 下列兩個式子所表示:. μC → B (b0 = 0) = P (b1 ⊕ b2 = 0) = p1 p2 + (1 − p1 )(1 − p2 ). (3.14). μC → B (b0 = 1) = P(b1 ⊕ b2 = 1) = p1 (1 − p2 ) + p2 (1 − p1 ). (3.15). 0. 0. 其 中 p1 表 示 第 一 個 stage 傳 送 到 check node 是 ”1” 機 率 資 訊. ( μ B1 →C (b1 = 1) = p1 ),而 p2 表示第二個 stage 傳送到 check node 是“1”機率資訊 ( μ B2 →C (b2 = 1) = p2 )。 1 − p1 代表第一個 stage 傳送到 check node 是 ”0” 機率資 訊, 1 − p2 代表第二個 stage 傳送到 check node 是 ”0” 機率資訊。. 我們針對(3.14)的式子來化簡,首先把(3.14)式子乘以 2 再減去 1,即可化簡 得到下列的式子,假設 2 個 stage( B1 和 B2 )時的式子已經成立了。. μC → B (b0 = 0) = 2 P(b1 ⊕ b2 = 0) − 1 = (1 − 2 p1 )(1 − 2 p2 ) 0. (3.16). 再 來 我 們 要 把 一 開 始 假 設 只 有 2 個 stage( B1 和 B2 ) 推 廣 到 有 K 個. stage( μ Bi →C (bi ),i = 1, 2,3,..., K )的情況,如(3.18)式子所示。首先假設 K − 1 個 stage 成 立 , 如 (3.17) 所 示 , 再 由 數 學 歸 納 法 可 以 知 道 K 個 stage( μ Bi →C (bi ) , 24.

(33) i = 1, 2,3,..., K )的公式也是成立的。. M K −1 = P(b1 ⊕ b2 ⊕ b3 ⊕ M K = P (b1 ⊕ b2 ⊕ b3 ⊕. ⊕ bK −1 = 0). (3.17). ⊕ bK = 0). (3.18). pK = P int (bK = 1). (3.19). 其中式子 (3.19) 表示由第 K 個 stage( BK ) 傳送到 check node 的機率資訊. ( μ BK →C (bK ) = pK = P int (bK ) )。我們由式子(3.16)可以把他推廣到假設 K − 1 個 stage 時會成立,如下列式子所示: K −1. 2M K −1 − 1 = ∏ (1 − 2 pi ). (3.20). i =1. 因為考慮 K 個 stage 時,是由前面總共 K − 1 個 stage 和第 K 個 stage 的機率 資 訊 來 推 導 , 所 以 如 (3.18) 式 子 所 示 , M K 是 由 XOR 起 來 的 機 率 是 ”0”( b1 ⊕ b2 ⊕ b3 ⊕. b1 ⊕ b2 ⊕ b3 ⊕. ⊕ bK = 0 ) 來決定,所以有兩種情況,第一種情形是,. ⊕ bK −1 = 0 且 bK = 0 。 第 二 種 情 形 是 b1 ⊕ b2 ⊕ b3 ⊕. ⊕ bK −1 = 1 且. bK = 1 。所以把這兩種情況寫成一個式子時,可以得到下列的機率資訊: ⇒ M K = (1 − pK ) M K −1 + pK (1 − M K −1 ) = (1 − 2 pK ) M K −1 + pK ⇒ 2 M K − 1 = 2(1 − 2 pK ) M K −1 + 2 pK − 1 = 2M K −1 − 4 pK M K −1 + 2 pK − 1. (3.21). = (1 − 2 pK )(2 M K −1 − 1) K −1. = (1 − 2 pK )∏ (1 − 2 pi ) i =1. K. = ∏ (1 − 2 pi ) i =1. 以上證明由數學歸納法得證,有 K 個 stage 的機率資訊公式 仍然適用,所 以由式子(3.21)可以移項得到下式: K. MK =. 1 + ∏ (1 − 2 pi ) i =1. 2 25.

(34) 所以 ”0” 和 ”1” 的機率資訊分別為: K. "0"的機率:μC → B (b0 = 0) = P(b1 ⊕ b2 ⊕ ⊕ bK = 0) =. 1 + ∏ (1 − 2 pi ) i =1. (3.22). 2. 0. K. "1"的機率:μC → B (b0 = 1) = P(b1 ⊕ b2 ⊕ ⊕ bK = 1) =. 1 − ∏ (1 − 2 pi ) i =1. (3.23). 2. 0. 以上的公式推導為 check node( C ) 到 bit node ( B0 )的機率算法,接下來根據. (3.22) 及 (3.23) 式子可以用另外一種方法來求得機率,此方法為 Log-Likelihood ratio(LLR), LLR = log. ⇒ LLRC → B0 (b0 ) = log. "1"的機率 ,所以可以寫出下列的式子: "0"的機率. μC → B (b0 = 1) μC → B (b0 = 0) 0. 0. K. = log. 1 − ∏ (1 − 2 pi ). (3.24). i =1 K. 1 + ∏ (1 − 2 pi ) i =1. 再來運用一些代數的特性,可以把式子(3.24)推導下去,直到式子(3.24)和 bit. node 傳送到 check node 的機率資訊( μ Bi →C (bi ) )有關係。. 首先我們由前面的介紹已經知道其中 pi 表示第 i 個 stage 傳送到 check node 是”1” 機率資訊 ( μ Bi →C (bi = 1) = pi ),因此第 i 個 stage 傳送到 check node 是”0” 機率資訊 ( μ Bi →C (bi = 0) = 1 − pi ),所以 Log-Likelihood ratio(LLR) 寫成下式: ⇒ LLR( pi ) = log ⇒. pi 1 − pi. pi = e LLR ( pi ) 1 − pi. (3.25). ( (. 1 x −x e −e x 1 sinh( ) ⎛ ⎞ ⇒ 1 − 2 pi = − tanh ⎜ LLR( pi ) ⎟ , ∵ tanh( x) = = 2 cosh( x) 1 e x + e − x ⎝2 ⎠ 2. 26. ) ).

(35) x ⎛ x ⎞ e −1 ∵ y = tanh ⎜ ⎟ = x ⎝ 2 ⎠ e +1 1+ y ⇒ 2 tanh −1 ( y ) = log 1− y. (3.26). 所以我們可以利用式子(3.25)及式子(3.26)代入到式子(3.24)即可以導出下列 公式: K. LLRC → B0 (b0 ) = log. 1 − ∏ (1 − 2 pi ) i =1 K. 1 + ∏ (1 − 2 pi ) i =1. K ⎛ ⎛1 ⎞⎞ K 1 − ( − 1) tanh ⎜ LLR( pi ) ⎟ ⎟ ∏ ⎜ ⎝2 ⎠⎟ i =1 = log ⎜ K ⎛1 ⎞ ⎜ 1 + (−1) K tanh ⎜ LLR( pi ) ⎟ ⎟⎟ ∏ ⎜ ⎝2 ⎠⎠ i =1 ⎝ K ⎛ ⎛1 ⎞⎞ = −2 tanh −1 ⎜ (−1) K ∏ tanh ⎜ LLR ( pi ) ⎟ ⎟ ⎝2 ⎠⎠ i =1 ⎝. (3.27). ⎛ K ⎛1 ⎞⎞ = 2(−1) K +1 tanh −1 ⎜ ∏ tanh ⎜ LLR( pi ) ⎟ ⎟ ⎝2 ⎠⎠ ⎝ i =1 K ⎛ ⎛1 ⎞⎞ = 2(−1) K +1 tanh −1 ⎜ ∏ tanh ⎜ LLRBi →C (bi ) ⎟ ⎟ ⎝2 ⎠⎠ ⎝ i =1. 所以我們由式子(3.22)及式子(3.23)可以知道由 check node 傳送到 bit node 的機率資訊為: K. "0"的機率:μC → B (b0 = 0) = P(b1 ⊕ b2 ⊕ ⊕ bK = 0) =. 1 + ∏ (1 − 2 pi ) i =1. 2. 0. (3.28). K. "1"的機率:μC → B (b0 = 1) = P(b1 ⊕ b2 ⊕ ⊕ bK = 1) = 0. 27. 1 − ∏ (1 − 2 pi ) i =1. 2. (3.29).

(36) 於是我們把這兩個分別表示傳送 “0” 或 ”1” 的公式套用到 LDPC decoder 中,則 check node 傳送到 bit node 的機率資訊為:. 1⎛ 2⎝. ⎞ (1 − 2 μ B ' →C j ( xi' = 1)) ⎟ ⎟ i i ' ∈L ( j )\{i } ⎠. (3.30). 1⎛ 2⎝. ⎞ (1 − 2μ B ' →C j ( xi' = 1)) ⎟ ⎟ i i ' ∈L ( j )\{i} ⎠. (3.31). μC → B (b0 = 0) = ⎜1 + ⎜ j. i. μC → B (b0 = 1) = ⎜1 − ⎜ j. i. ∏. ∏. 其中在式子(3.30)和(3.31)中 L( j ) 表示在 H (同位檢查矩陣)第 j 列(row) 裡面 那些是”1”的行(column)的位置的集合,而 L( j ) \{i} 表示在 L( j ) 的集合裡把第 i 個 元素扣除。. 28.

(37) 3.3.5 LDPC 解碼時的 Update Equation 以上介紹過 LDPC 解碼過程中機率訊息的傳遞,接下來的部份要推導 LDPC 解碼時的流程步驟,首先我們可以把圖 3.7 的方塊圖拆解成兩個部份,分別算出. check node 傳送到 bit node 的機率資訊,及 bit node 傳送到 check node 的機率資 訊。首先定義本質機率(intrinsic probability) μ Ni → Bi 為 another decoder 的 node 傳 送到 bit node 的機率資訊。後置機率(posterior probability) μ Bi →C j 為 bit node 傳送 到 check node 的機率資訊。而 μC j → Bi 為 check node 傳送到 bit node 的機率資訊。 pib = μ Ni → Bi (vi = b). (3.32). q bji = μ Bi →C j (e ji = b). (3.33). rjib = μC j → Bi (e ji = b). (3.34). 其中 b 表示為 ”0” 或者為 ”1”. rji =μC j →Bi. μBi →Ni (vi ). q ji =μBi →C j. Pi =μNi →Bi ( vi ). ⎯⎯⎯⎯⎯ → Bi ←⎯⎯⎯⎯ ⎯⎯⎯⎯⎯ → Ni C j ←⎯⎯⎯ ⎯ vi. e ji. LDPC decoder (Internal). Another decoder(External). 圖 3.7 LDPC decoder 29.

(38) 由圖 3.7 的方塊圖所分解成的兩個部份,分別以圖 3.8 及圖 3.9 來表示,其 中圖 3.8 代表由 bit node 傳送到 check node 的機率資訊,而圖 3.9 代表由 check. node 傳送到 bit node 的機率資訊。. C. j. Bi pi. Ni. q ij. check node. bit node. another node. 圖 3.8 bit node 傳送到 check node 的機率資訊. Bi q ij. C. j. ri j. 圖 3.9 check node 傳送到 bit node 的機率資訊 30.

(39) 我們把式子(3.32)、(3.33)、(3.34) 的代數變換代入 3.3.3 節中所導出的式子(3.8) 和(3.9),即可得到 bit node 傳送到 check node 的機率資訊,如下列兩個式子所 表示:. "0"的機率: μ B →C (e ji = 0) = m ji μ N → B (vi = 0) i. j. i. ⇒ q = m ji i p 0 ji. 0 i. ∏. j ' ∈M ( i )\{ j }. r. i. j. ⇒ q1ji = m ji i pi1. i. ∏. j ' ∈M ( i )\{ j }. μC. j'. → Bi. (e ji = 0) (3.35). 0 j 'i. "1"的機率: μ B →C (e ji = 1) = m ji μ N → B (vi = 1) i. ∏. j ∈M ( i )\{ j } '. i. ∏. μC. j ' ∈M ( i )\{ j }. j'. → Bi. (e ji = 1) (3.36). rj1'i. 接下來如同上面的步驟,我們把式子(3.32)、(3.33)、(3.34) 的代數變換代入. 3.3.4 節中所導出的式子(3.22)和(3.23),即可得到 check node 傳送到 bit node 的 機率資訊,如下列兩個式子所表示: K. "0"的機率: μC → B (b0 = 0) = P(b1 ⊕ b2 ⊕ ⊕ bK = 0) =. 1 + ∏ (1 − 2 pi ) i =1. 2. 0. (3.37). ⎞ 1⎛ ⇒ rji0 = ⎜1 + ∏ δ q ji ⎟ ⎟ 2 ⎜⎝ i'∈L ( j )\{i} ⎠ K. "1"的機率: μC → B (b0 = 1) = P(b1 ⊕ b2 ⊕ ⊕ bK = 1) = 0. 1 − ∏ (1 − 2 pi ) i =1. 2. (3.38). ⎞ 1⎛ ⇒ rji1 = ⎜1 − ∏ δ q ji ⎟ ⎟ 2 ⎜⎝ i'∈L ( j )\{i} ⎠ 上 列 兩 式 中 的 δ q ji 表 示 為 q ji 為 ”0” 的 機 率 減 去 q ji 為 ”1” 的 機 率 ,. δ q = q 0ji − q1ji = 1 − 2q1ji ji. ∵ q 0ji + q1ji = 1. 有了 bit node 傳送到 check node 的機率資訊及 check node 傳送到 bit node 的機率資訊後,因為這兩個機率資訊有著互相相連接的關係(互為另外一個的變 數),所以我們可以藉由這兩個資訊一直更新彼此的機率,如式子(3.39)和(3.40), 用來增加解碼的可靠度,這也是 LDPC decoder 的解碼過程,稍後我們會詳細介 紹。 31.

(40) ⎧q 0ji = m ji i pi0 ∏ rj0'i ⎪ j ' ∈M ( i )\{ j } ⎨ 1 1 1 ⎪q ji = m ji i pi ∏ rj 'i j ' ∈M ( i )\{ j } ⎩. (3.39). ⎧ 0 1⎛ ⎞ ⎪rji = ⎜⎜1 + ∏ δ q ji ⎟⎟ 2 ⎝ i'∈L ( j )\{i} ⎪ ⎠ ⎨ ⎞ ⎪ 1 1⎛ = − r δ 1 ⎜ ⎟ ∏ ji q ⎪ 2 ⎜⎝ i'∈L ( j )\{i} ji ⎟⎠ ⎩. (3.40). 以上所介紹的均是機率(probability)的算法,接下來要推導 Log-Likelihood. ratio(LLR) 的 方 法 , 之 前 我 們 有 定 義 本 質 機 率 pib = μ Ni → Bi (vi = b) 為 another decoder 的 node 傳送到 bit node 的機率資訊。後置機率(posterior probability) q bji = μ Bi →C j (e ji = b) 為 bit node 傳送到 check node 的機率資訊。其中 b 表示為 ”0” 或者為 ”1”。 在 3.3.3 節及 3.3.4 節中,我們有分別導出 bit node 傳送到 check node 的機 率資訊如下列式子所示:. μ B →C (e ji = b) = m ji μ N → B (vi = b) i. j. i. ⇒ q bji = m ji i pib. ∏. j ' ∈M ( i )\{ j }. i. ∏. μC. j ' ∈M ( i )\{ j }. j'. → Bi. (e ji = b). rjb'i. (3.41). 所以此時的 bit node 傳送到 check node 的機率資訊表示成 Log-Likelihood. ratio(LLR)為 LLR (q ji ) = log LLR (q ji ) =. ∑. j ' ∈M ( i )\{ j }. "1"的機率 "0"的機率. LLR (rj 'i ) + LLR ( pi ). (3.42). 而 check node 傳送到 bit node 的機率資訊由式子(3.27)所導出來. ⎛ K ⎛1 ⎞⎞ LLRC → B0 (b0 ) = 2(−1) K +1 tanh −1 ⎜ ∏ tanh ⎜ LLRBi →C (bi ) ⎟ ⎟ ⎝2 ⎠⎠ ⎝ i =1. 32.

(41) 所以此時的 check node 傳送到 bit node 的機率資訊表示成 Log-Likelihood. ratio(LLR)為 LLR (rji ) = log. "1"的機率 "0"的機率. ⎛ ⎞ 1 LLR (rji ) = 2(−1)|L ( j )| tanh −1 ⎜ ∏ tanh( LLR (q ji ' )) ⎟ ⎜ i'∈L ( j )\{i} ⎟ 2 ⎝ ⎠. (3.43). 因為公式(3.43)含有 tanh 及 tanh −1 的函數,所以在硬體電路的實作方面,要 實現這兩個函數的硬體比較複雜,而且 tanh 的函數在公式(3.43)中還是連乘的形 式,更增加硬體的實現的困難度,於是我們以下用一個方法來逼近公式(3.43), 把連乘的運算符號簡化成連加的運算式子,以降低硬體的複雜度,方便電路實現。. 首先我們引進兩個式子,假設 ai 是一個實數時,則總共有 i 個實數相乘可以 寫成如下式(3.44)的表示方法。另外我們定義一個 Ψ ( x) 函數,其方程式如(3.45) 所表示。. ∏a. i. i. ⎛ ⎞ ⎛ ⎞ = ⎜ ∏ sgn(ai ) ⎟ exp ⎜ ∑ log(| ai |) ⎟ ⎝ i ⎠ ⎝ i ⎠. (3.44). x ⎞ 1 + exp(− x) ⎛ Ψ ( x) = − log ⎜ tanh( ) ⎟ = log 2 ⎠ 1 − exp(− x) ⎝. (3.45). 把公式(3.44)、(3.45)代入到公式(3.43)裡面,則可以化簡為如下式所表示: ⎛ ⎞ 1 LLR (rji ) = 2(−1)|L ( j )| tanh −1 ⎜ ∏ tanh( LLR (q ji ' )) ⎟ ⎜ i'∈L ( j )\{i} ⎟ 2 ⎝ ⎠ ⎛⎛ ⎞ ⎛ ⎞⎞ 1 1 ⇒ LLR(rji ) = 2(−1)|L ( j )| tanh −1 ⎜ ⎜ ∏ sgn(tanh( LLR (q ji ' ))) ⎟ exp ⎜ ∑ log(| tanh( LLR (q ji ' ) |) ⎟ ⎟ ⎜ i'∈L ( j )\{i} ⎟⎟ ⎟ ⎜ ⎜ i'∈L ( j )\{i} 2 2 ⎝ ⎠⎠ ⎠ ⎝⎝ ⇒ LLR (rji ) = (−1)|L ( j )| i. ⎛ ⎞ sgn( LLR (q ji' ))iΨ ⎜ ∑ Ψ (| LLR (q ji' ) |) ⎟ ⎜ i'∈L ( j )\{i} ⎟ i ' ∈L ( j )\{i} ⎝ ⎠. ∏. ⎛ ⎞ ⇒ LLR (rji ) = (−1)|L ( j )| i s ji iΨ ⎜ ∑ Ψ (| LLR(q ji' ) |) ⎟ ⎜ i'∈L ( j )\{i} ⎟ ⎝ ⎠ 其中 s ji 表示成 s ji =. ∏. i ' ∈L ( j )\{i }. sgn( LLR (q ji' )). 33. (3.46).

(42) x ⎞ 1 + exp(− x) ⎛ 因為函數 Ψ ( x) = − log ⎜ tanh( ) ⎟ = log 有一個特性,那就是 x 的值 2 ⎠ 1 − exp(− x) ⎝ 越小時,則所對應的 Ψ ( x) 值會很大,如圖 3.10 所呈現的曲線圖,而且 Ψ ( x) 的反 函數是他自己本身, Ψ (Ψ ( x)) = x ,所以藉由 Ψ ( x) 的這些特性,我們可以知道在. ⎛ ⎞ 公式(3.46)中的 Ψ ⎜ ∑ Ψ (| LLR(q ji' ) |) ⎟ 中,因為在 x 的值越小時則 Ψ ( x) 值會很 ⎜ i'∈L ( j )\{i} ⎟ ⎝ ⎠ 大,所以整個 ∑ 起來時,只看最小的 | LLR(q ji' ) | 即可,因為最小的 | LLR(q ji' ) | 會 決 定 出 最 大 的 Ψ (| LLR(q ji' ) |) , 用 來 近 似. ∑. i ' ∈L ( j )\{i}. ∑. i ' ∈L ( j )\{i }. Ψ (| LLR (q ji' ) |) , 因 此. Ψ (| LLR (q ji' ) |) ≈ ' max (| LLR (q ji' ) |) ,所以公式變成由最小的 | LLR(q ji' ) | 來 i ∈L ( j )\{i}. 決定一切。. ⎛ ⎞ Ψ ⎜ ∑ Ψ (| LLR (q ji' ) |) ⎟ ≈ Ψ ⎛⎜ ' max (| LLR(q ji' ) |) ⎞⎟ ≈ ' min (| LLR (q ji' ) |) ⎜ i'∈L ( j )\{i} ⎟ ⎝ i ∈L ( j )\{i} ⎠ i ∈L ( j )\{i} ⎝ ⎠. 因此公式(3.46)可以近似成下式,把原本的複雜的連乘 tanh 函數簡化掉了, 這樣可以以利電路硬體的實現,降低複雜度。. ⎛ ⎞ LLR(rji ) = (−1)|L ( j )| i s ji iΨ ⎜ ∑ Ψ (| LLR(q ji' ) |) ⎟ ⎜ i'∈L ( j )\{i} ⎟ ⎝ ⎠ | L ( j )| ⇒ LLR (rji ) ≈ (−1) i s ji i ' min (| LLR (q ji' ) |) i ∈L ( j )\{i}. 34. (3.47).

(43) Ψ ( x) 8. 6. 4. 2. 1. 2. 3. 4. 5. x 圖 3.10 Ψ ( x ) 的函數圖. 經 過 以 上 的 推 導 出 bit node 傳 送 到 check node 的 機 率 資 訊 表 示 成. Log-Likelihood ratio(LLR)為 LLR (q ji ) =. ∑. j ' ∈M ( i )\{ j }. 傳送到. LLR (rj 'i ) + LLR ( pi ) 。而 check node. bit node 的 機 率 資 訊 表 示 成 Log-Likelihood ratio(LLR) 為. ⎛ ⎞ 1 LLR (rji ) = 2(−1)|L ( j )| tanh −1 ⎜ ∏ tanh( LLR (q ji ' )) ⎟ 。及把 LLR(rji ) 裡的 tanh 函數 ⎜ i'∈L ( j )\{i} ⎟ 2 ⎝ ⎠ 經過簡化,則整個 LDPC decoder 過程變的比較簡單而且容易實現了,下面列出 五個 LDPC 解碼的解碼過程。. 第一步:初始化(Initialize). 首先令一開始的 check node 傳送到 bit node 的 ”0” 或 ”1” 機率資訊 r1 1 1 0.5 LLR(rji ) 是相等的, (rji0 , rji1 )=( , ) , LLR (0) (rji ) = log ji0 = log( ) = 0 。再來接著 2 2 0.5 rji. 計算 another node 傳送到 bit node 的本質機率(intrinsic probability) LLR ( pi ) LLR ( pi ) = LLR. int LDPC. int μ N → B (vi = 1) RLDPC (vi = 1) (vi ) = log int = log i i RLDPC (vi = 0) μ Ni → Bi (vi = 0). 35.

(44) 第 二 步 : 計 算 bit node 傳 送 到. check node 的 機 率 資 訊 (Bit-to-check. messages). bit node 傳送到 check node 的後置機率資訊表示成 Log-Likelihood ratio(LLR) 為 LLR(q ji ),如同公式(3.42)所推導出的一樣,只是這邊加上一個 iteration 的次數 而已。 LLR ( K ) (q ji ) =. ∑. j ' ∈M ( i )\{ j }. LLR ( K −1) (rj 'i ) + LLR ( pi ). (3.48). 此處的 K 表示 LDPC 解碼的時候最大 iteration 的次數, K 從 1 開始增加。. 第 三 步 : 計 算 check node 傳 送 到 bit node 的 機 率 資 訊 (Check -to-bit. messages). 在公式 (3.46) 中,我們推導出 check node 傳送到 bit node 的機率資訊為. LLR (rji ) = (−1)|L ( j )| i. ⎛ ⎞ sgn( LLR (q ji' ))iΨ ⎜ ∑ Ψ (| LLR(q ji' ) |) ⎟ , 經 過 利 用 ⎜ i'∈L ( j )\{i} ⎟ i ' ∈L ( j )\{i} ⎝ ⎠. ∏. x ⎞ 1 + exp(− x) ⎛ 函數的特性,可以把 LLR(rji ) 簡化成用 Ψ ( x) = − log ⎜ tanh( ) ⎟ = log 2 ⎠ 1 − exp(− x) ⎝ | LLR(q ji' ) | 的最小值來近似,如下列式子,此處 K 和第二步裡的 K 一樣表示 LDPC 解碼的時候最大 iteration 的次數, K 從 1 開始增加。. ⎛ ⎞ LLR ( K ) (rji ) = (−1)|L ( j )| × ⎜ ∏ sgn( LLR ( K ) (q ji' )) ⎟ × ' min (| LLR ( K ) (q ji' ) |) ⎜ i'∈L ( j )\{i} ⎟ i ∈L ( j )\{i} ⎝ ⎠. (3.49). 第四步:經過 iteration 後計算後置機率資訊(Compute output). 一 開 始 我 們 由 第 一 步 先 初 始 化 本 質 機 率 (intrinsic probability) LLR ( pi ) 及 LLR (0) (rji ) = log. rji1 r. 0 ji. = log(. 0.5 ) = 0 ,把這兩個機率值代入第二步計算,進而我們可 0.5. 以得到後置機率(posterior probability) LLR ( K ) (q ji ) ,得到後置機率後我們利用硬性 判斷(hard decision)來決定解出來的 bit 是 ”1” 還是 ”0”,若 LLR ( k ) (qi ) > 0 ,則表 36.

(45) 示經過解碼後認為傳送端是傳 ”1”,反之若 LLR ( k ) (qi ) < 0 ,則表示經過解碼後認 為傳送端是傳 ”0”, vˆi( K ) 代表解碼後的碼字 (code word)。. ⎧⎪1 vˆi( K ) = ⎨ ⎪⎩0. if LLR ( K ) (qi ) > 0. (3.50). if LLR ( K ) (qi ) < 0. 第五步:解碼過程一直 iteration,直到解出正確的碼字(Repeat until done). T. 由第四步驟我們經過解碼後得到的碼字,我們要看他有沒有符合 HV = 0 的 關係式,若沒有符合時則代表我們解碼出來的碼字還不是正確的,因此要繼續進 行下一個 iteration,也就是把第三步驟中 check node 傳送到 bit node 的機率資訊. LLR (rji ) = (−1)|L ( j )| i. ⎛ ⎞ sgn( LLR (q ji' ))iΨ ⎜ ∑ Ψ (| LLR(q ji' ) |) ⎟ ,代入到第二步 ⎜ i'∈L ( j )\{i} ⎟ i ' ∈L ( j )\{i} ⎝ ⎠. ∏. 驟中去計算出後置機率 (posterior probability) LLR ( K ) (q ji ) ,然後再把後置機率 LLR ( K ) (q ji ) 代入到第三步驟中,因此我們得到更新過後的 check node 傳送到 bit. node 的機率資訊 LLR ( K ) (rji ),然後經過第四步驟的硬性判斷(hard decision)決定出 T. 解碼過後的碼字 vˆi( K ) ,若條件 HV = 0 不成立的話,則一直重複步驟二、三、四。 但是若一直沒有解碼出正確的碼字時,則也不可能無限制次數的一直 iteration 下 去,所以這邊定義一個 K max ,若解碼的次數 K 每經過一次 iteration 則加 1,變成. K + 1 ,直到達到 K max 時,還沒有解出正確的碼字,則整個整個 LDPC decoder 過 程要停止,而輸出的資訊以最後一次 K max 的 iteration 為準。. 37.

(46) 第四章 4.1 LDPC block length 求得 在歐規的數位影像廣播系統之地面廣播系統(DVB-T System)的架構中有分 成兩組編碼方式,編碼方式包含有外層編碼器(Outer Coder)、外層交錯器(Outer. Interleaver)、內層編碼器(Inner Coder)以及內層交錯器(Inner Interleaver)等技術。 圖 4.1 為 DVB-T 系統發射機的功能方塊圖,由此圖我們可以知道 DVB-T 系統的 編碼方式在整個發射機的位置,資料依序先經過外層編碼器、外層交錯器、內層 編碼器以及最後經過內層交錯器,以下將依次介紹這個系統的編碼方式。. 反之接收機的架構依序為先經過內層反交錯器(Inner De-interleaver)、內層解 碼器 (Inner Decoder) 、外層反交錯器 (Outer De-interleaver) 、外層解碼器 (Outer. Decoder),而解出原本傳送端的資料流。如圖 4.2 所示。. 而本論文所使用的方式為使用 LDPC code 來取代原本的里德所羅門碼及迴 旋碼,及其所對應的交錯器。其傳送端與接收機的架構如圖 4.3 及圖 4.4 所示。. 38.

(47) Programme MUX Transport MUX. Video Coder. 1. Audio Coder. Splitter. Data Coder. 2 n. MPEG-2 Source coding and Multiplexing. To Aerial. MUX Adaptation, Energy Dispersal. Outer Coder. Outer Interleaver. Inner Coder. MUX Adaptation, Energy Dispersal. Outer Coder. Outer Interleaver. Inner Coder. Inner Interleaver. Mapper. Frame Adaptation. OFDM. Guard Interval Insertion. Pilot & TPS Signals. D/A. Terrestrial Channel Adapter. 圖 4.1 DVB-T 系統發射機的功能方塊圖. Front End. A/ D. Symbol Timing & Fractional Frequency Offset Detection. Mode Detector. Integral Frequency Offset Detection. Inner De - interleaving. Frame Synchronization. Inner Decoding (Viterbi Decoding). Guard Interval Removal. Channel Estimation. Outer De-interleaving. FFT. One -Tap Equalizer. Outer Decoding (R-S Decoding). 圖 4.2 DVB-T 系統接收機的功能方塊圖 39. Front End. Data Detection. Demultiplexing and Source Decoding.

(48) 圖 4.3 LDPC 取代 DVB-T 兩層編碼的發射機功能方塊圖. Front End. One-Tap Equalizer. GI Removal. Data Detection. S/P. Inner De-interleaver. . . .. FFT. Inner Decoder. Reed-Solomon code One-Tap Equalizer. Data Detection. . . .. P/S. Outer De-interleaver. Outer Decoder. Convolutional code LDPC Decoder. 圖 4.4 LDPC 取代 DVB-T 兩層編碼的接收機功能方塊圖. 40. Information. Information.

(49) 數位影像廣播之地面廣播系統的外層編碼器(Outer Coder)是使用里德所羅 門短碼(Reed-Solomon Shorten Code,RS(204,188,t=8)),使每個封包由 188 個位元 組經過編碼後變成為 204 個位元組,並且可以更正最長為 8 個位元組的連續錯誤。. 此里德所羅門短碼 RS(204,188,t=8)可以由正規的 RS(255,239,t=8)導出來。首 先在原本的資料位元組之前加入 51 個 “zero” 位元組,這 51 個位元組都設為零, 所以總共有 51+188=239 個資料位元組,再把這 239 個位元組經過正規的. RS(255,239,t=8)編碼器,等到資料流經過編碼程序後,會產生 255 個位元組,再 把前面 51 個 ”Null” 位元組去掉,所以剩下 204 個位元組(255-51=204),就成 為 DVB-T 外層編碼器要求的里德所羅門短碼 RS(204,188,t=8)。. 在里德所羅門碼錯誤保護封包中末端加上 16 個保護位元組(Parity bytes) ,而變成 188+16=204 個位元組,如圖 4.5 所示。. 圖 4.5 里德所羅門碼 RS(204,188,t=8)錯誤保護封包. 在經過外層交錯器後其傳輸封包的結構如圖 4.6 所示,共有 204 個位元組。. 204 bytes. 204 bytes. 圖 4.6 外層編碼之交錯分佈後的資料結構分佈,I=12 bytes. 外 層 交 錯 器 是 一 個 以 位 元 組 為 單 位 的 迴 旋 交 錯 器 (Convolutional. Interleaver),用迴旋交錯器的優點是可以節省記憶體,這個交錯器有 I=12 個分支 結構連接於輸入的資料流,每個分支是一個延遲長度以 M=17 個位元組為單位成 線性比例增加的先輸入先輸出( First-In,First-Out , FIFO )平移暫存器( Shift. Register ), 且 深 度 為 17 × j 個 位 元 組 時 間 ( j 為 交 錯 器 結 構 的 分 支 編 號 , 41.

(50) j = 0,1, 2,… ,11 ), 所 有 暫 存 器 的 深 度 總 和 即 為 延 遲 的 時 間 長 度 ( 17 × 11× 12 / 2 = 1122 個位元組)。交錯器和反交錯器的結構剛好相反,可以使在 反交錯器端還原正確的接收資料流(每個分支的總延遲時間相同)。為了達到訊 號同步的需求,同步位元組一定在編號為” 0 “的分支傳送。如圖 4.7 所示。. 圖 4.7 外層交錯器和反交錯器結構圖. 42.

(51) 在交錯器的結構中,原本在資料流中兩相鄰的位元組經過交錯器後會相隔 17 × 12 + 1 = 205 個位元組。也就是說一個里德所羅門碼 RS(204,188,t=8)錯誤保護. 封包中的每一個位元組經過交錯器後只會分散到隔壁位置的錯誤保護封包而 已。如圖 4.8 所示。. 交錯器的輸入. Xi. Xi−I. Xi+1. Xi−I +1. Xi−I iM+1. 交錯器的輸出. Xi+I −1. Xi+I −1−(I −1)iM iI. Xi−1. 交錯器的輸出:. Xi. Xi+I −1−(I −1)iM iI. Xi−I iM+1. Xi+I. Xi+I iM. Xi+1. 相隔205個位元祖 圖 4.8 交錯器的輸入與輸出關係圖. 以上的介紹為外層編碼器的交錯器,而在 DVB-T 系統中,還有一個內層編 碼器的交錯器,也就是 convolutional code 的交錯器,這部份是用查表的方式來 求得,所以整個 DVB-T 系統中外層交錯器和內層交錯器的總深度(depth)很難去 計算,因此靠模擬的方法來求得總深度為 3768 個 bit,所以 LDPC 的 block length. 1 就設為 3600 個 bit 來模擬,編碼率為 ,iteration 數目為 100 次。 2. 43.

(52) 4.2 模擬結果 模擬參數:. DVB-T 模式(mode). 2K mode. 調變(modulation). QPSK. 載波頻率(carrier frequency). 600 MHz. 頻寬(total bandwidth). 7.61MHz. 次載波個數(number of subcarriers). 2048. 有效符元時間(useful symbol time). TU = 224 μ sec. 護衛間隔(guard interval). 1/4 TU = 56 μ sec. 車速(vehicle speed). 30,60Km/hr. 路徑個數(path number). 2. 表格 4.1 系統的模擬參數. 44.

(53) 10. RS+convolution AWGN channel. 0. Uncoded RS+convolution. 10. BER. 10. 10. 10. 10. 10. -1. -2. -3. -4. -5. -6. 0. 1. 2. 3. 4. 5. 6. SNR(db) 圖 4.9 DVB-T 在 AWGN 通道境下模擬結果. RS+convolution Two Path Fading channel Power 4:1 Dealy=15 Samples V=30km/hr 10. 10. BER. 10. 10. 10. 10. 10. 0. Uncoded RS+convolution RS+convolution interleaver. -1. -2. -3. -4. -5. -6. 0. 5. 10. 15. 20. 25. 30. SNR(db) 圖 4.10 DVB-T 在 fading 通道境下 30 公里車速模擬結果 45.

(54) 10. 10. BER. 10. 10. 10. 10. 10. RS+convolution Two Path Fading channel Power 4:1 Dealy=15 Samples V=60km/hr. 0. Uncoded RS+convolution RS+convolution interleaver. -1. -2. -3. -4. -5. -6. 0. 5. 10. 15. 20. 25. SNR(db) 圖 4.11 DVB-T 在 fading 通道境下 60 公里車速模擬結果. 10. 10. BER. 10. 10. 10. 10. 10. LDPC AWGN channel. 0. Uncoded LDPC. -1. -2. -3. -4. -5. -6. 0. 1. 2. 3. 4. 5. 6. SNR(db) 圖 4.12 LDPC 在 AWGN 通道境下模擬結果 46.

(55) LDPC Two Path Fading channel Power 4:1 Dealy=15 Samples V=30km/hr 10. 10. BER. 10. 10. 10. 10. 10. 0. Uncoded LDPC. -1. -2. -3. -4. -5. -6. 0. 2. 4. 6. 8. 10. SNR(db) 圖 4.13 LDPC 在 fading 通道境下 30 公里車速模擬結果. 10. LDPC Two Path Fading channel Power 4:1 Dealy=15 Samples V=60km/hr. 0. Uncoded LDPC. BER. 10. 10. 10. 10. -1. -2. -3. -4. 0. 2. 4. 6. 8. 10. SNR(db) 圖 4.14 LDPC 在 fading 通道境下 60 公里車速模擬結果 47.

(56) 10. 10. BER. 10. 10. 10. 10. 10. Two Path Fading channel Power 4:1 Dealy=15 Sample. 0. RS+convolution_30 RS+convolution_30_interleaver RS+convolution_60 RS+convolution_60_interleaver LDPC_30 LDPC_60. -1. -2. -3. -4. -5. -6. 0. 5. 10. 15. 20. 25. SNR(db) 圖 4.15 LDPC 與 RS+convolution 在 fading 通道境下模擬結果. 48.

(57) 第五章 結論與未來發展的方向 在第四章的模擬中我們總共模擬兩種車速,分別為 30 公里/小時及 60 公里/ 小時,模擬結果圖 4.15 知道在和 DVB-T 的交錯器相同深度的 LDPC 可以有著較 好的效能,因此 DVB-T 系統的編碼方式可以用 LDPC 來實現。. 因為這個模擬中並沒有針對 LDPC 的 parity matrix( H )找出最佳化的解,模 擬的過程中發現 parity matrix( H )對 performance 的影響很大,因此未來可以針對 如何找出好的 parity matrix( H )來進行研究。. LDPC 的解碼演算法,是平行且疊代的架構,適合硬體的實現。又因為 LDPC 的 parity matrix( H )有著稀疏特性,使得其在編碼的時候不需要交錯器,因為 bit 的資訊會相隔比較遠,有著同樣交錯器的效果。. 49.

(58) 參考文獻 [1]. John L. Fan , Constrained Coding and Soft Iterative Decoding.. [2]. Stephen B. Wicker; Vijay K. Bhargava, Reed-Solomon Codes and Their Applications.. [3]. Stephen B. Wicker, Error Control Systems for Digital Communication and Storage.. [4]. William E. Ryan, “A Turbo Code Tutorial.”. [5]. Simon Haykin, Communication System, 4th ed. John Wiley & Sons, 2001.. [6]. J. G. Proakis, Digital Communications, New York: McGraw-Hill,1989.. [7]. William E. Ryan, “A Turbo Code Tutorial.”. [8]. Therodore S. Rappaport, Wireless Communications Principles and Practice, Prentice Hall PTR, 1996.. [9]. A. J. Viterbi, “Error Bounds for Convolutional Codes and an Asymptotically Optimum Decoding Algorithm,” IEEE Trans. Inform. Theory, vol. IT-13, pp. 260-269, April, 1967.. [10] R. G. Gallager, “Low Density Parity Check Codes”, IEEE Trans. Inform. Theory, IT:8:21-28, Jan. 1962.. [11] T. J. Richardson, R. E. Urbanke, “Efficient encoding of low-density parity-check codes”, IEEE Trans. Inform.Theory, vol. 47, pp. 638-656,Feb. 2001.. [12] D. J. C. MacKay, “Near Shannon limit performance of low density parity check codes,” Electron. Lett., vol. 33, pp. 457–458, Mar. 1997.. [13] Futaki, H.; Ohtsuki, T., “Low-density parity-check (LDPC) coded OFDM systems”, Page(s): 82 -86 vol.1, Vehicular Technology Conference, 2001. VTC 2001 Fall. IEEE VTS 54th , Volume: 1 , 2001. [14] D. Burshtein, G. Miller, “Bounds on the performance of belief propagation decoding”, IEEE Trans. Inform.Theory, vol. 48, pp.112-122, Jan.. 2002. [15] Digital Video Broadcasting System European Standard 50.

(59)

數據

圖 2.1 Linear Feedback Shift Register  架構圖
圖 3.4  解碼器的架構圖
圖 3.5 Bit node  的 message-passing
圖 3.6 Bit node  的 message-passing
+7

參考文獻

相關文件

Graduate Masters/mistresses will be eligible for consideration for promotion to Senior Graduate Master/Mistress provided they have obtained a Post-Graduate

An additional senior teacher post, to be offset by a post in the rank of CM or Assistant Primary School Master/Mistress (APSM) as appropriate, is provided to each primary

An additional senior teacher post, to be offset by a post in the rank of Certificated Master/Mistress or Assistant Primary School Master/ Mistress as appropriate, is provided

An additional senior teacher post, to be offset by a post in the rank of CM or Assistant Primary School Master/Mistress (APSM) as appropriate, is provided to each primary

An additional senior teacher post, to be offset by a post in the rank of CM or Assistant Primary School Master/Mistress (APSM) as appropriate, is provided to each primary

An additional senior teacher post, to be offset by a post in the rank of Certificated Master/Mistress or Assistant Primary School Master/Mistress as appropriate, is provided to

An additional senior teacher post, to be offset by a post in the rank of APSM, is provided to each primary special school/special school with primary section that operates six or

(ii) “The dismissal of any teacher who is employed in the school – (a) to occupy a teacher post in the establishment of staff provided for in the code of aid for primary