• 沒有找到結果。

3.實驗原理

N/A
N/A
Protected

Academic year: 2022

Share "3.實驗原理"

Copied!
12
0
0

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

全文

(1)

實驗單元 14 LDPC

1.實驗目的

學習如何使用邏輯分析儀。

瞭解 Low Density Parity Check Codes 的設計原理及應用。

熟悉 FPGA 設計程序。

學習如何將 LDPC Decoder 硬體實現在 FPGA 板上。

學習如何在 FPGA 板上測量及測試實驗結果。

2.實驗器材

邏輯分析儀,Xilinx 板,電源供應器,電路線等。

3.實驗原理

LDPC code(Low Density Parity Check code)是由 Gallagher 在 1962 年於其 博士論文所發表,只不過當時由於 VLSI 技術尚未成熟,所以逐漸被人們所遺忘,

但在 90 年代後由於 VLSI 技術的快速發展 LDPC code 又逐漸的被人們所廣為討 論。事實上 LDPC 是就是 block code,只不過它的 parity-check matrix 中的’1’非 常的少,這一點大概也可以由它的名稱中猜想的到。LDPC code 與 turbo code 一 樣均可以使其 Data rate 在 BER≈105這個條件下接近 Shannon bound,而且 LDPC 還有另一個優點就是它的解碼器複雜度要比 turbo code 少的多。

(1) Message Passing Concept:

接下來我們以一個簡單的例子來說明 message passing 這個非常有用的觀 念。假設有一群士兵排成一列,現在我們想要知道所有士兵的數目?我們利用以 下的規則:當你從某一側鄰兵處得知一個數目時,將這個數目加1並且將這個新 的數目告知另一側的鄰兵,以此類推。

從這個規則可以知道當某一個士兵接收到一個數字(假設為 n)時,這個數 字告訴他一個訊息說現在有 n 個士兵在他的左側或右側。

我們以圖解來說明整個演算法的觀念:一開始每個士兵都知道至少有一個士 兵(就是他自己),這個訊息我們稱為 intrinsic information。

(2)

1 1 1 1 1 1

< 圖一 > 圓圈代表士兵及一個 local rule(執行加 1 的動作)

接下來最左邊或最右邊的的士兵將這個 1 的訊息告知鄰兵,而該鄰兵接收到 這個的訊息時將其再加 1 後在告知下一個鄰兵。此時如<圖二>我們會看到(以 左二士兵為例)其左邊會進入一個訊息為 1,右邊會進入一個訊息為 4。這代表 他接受到一個訊息為:在你的左邊有 1 個士兵,另一個訊息為在你的右邊有 4 個士兵。這兩個訊息我們稱之為 extrinsic information。

1 1 1 1 1

1 5

2 4

3 3

4 2

5 1

< 圖二 > extrinsic information flow

接下來每個士兵就會知道到底有多少個士兵在這一整排中。以左二士兵為 例,[所有的士兵是數目]就等於[左邊鄰兵告訴他的數目加上右邊鄰兵告訴他的數 目]在加上[自己]。這句話可以簡寫為

overall information = extrinsic information + intrinsic information。

1 1

1 1 1

1

5 4 3 2 1

6 6 6 6 6 6

< 圖三 > overall information flow

從以上的例子知道,我們可以把一個比較複雜的問題拆解成一些較小的問題

(i.e. local rule),而每個小問題所需要的計算複雜度也相對的小許多,接下來在 經過彼此之間消息的傳遞就能使整個問題解決。LDPC code 的解碼器就是利用這 種 local rule 彼此之間消息互相傳遞的機制來達到解碼且大幅降低系統硬體計算 複雜度。

(2) Tanner Graph:

為了要利用 message passing 的觀念來幫助解碼,我們首先就要將解碼器拆解 成一些 local rule 和訊息傳遞的路徑,這個可以利用 Tanner graph 來達成。我們以 一個簡單的例子來說明 Tanner graph:

(3)

Generator matrix





=

1 0 1 0 0

1 1 0 1 0

0 1 0 0 1 G

Parity-Check matrix



 

=

1 0 1 1 0

0 1 0 1

H 1 Local rule A

Local rule B 1 2 3 4 5

由給定的 parity-check matrix 我們可知道該解碼器可以拆解成兩個 local rules 和五個 variables,如圖四。

variable 5

A B

1 2 3 4

< 圖四 > Tanner graph

其中 local rule A 及 B 稱為 agent node,variables 稱為 variable node,而其間的 連接線就稱為 branch。

(3) Sum Product Algorithm:

當我們成功的將解碼器表示成 Tanner graph(一些 local rules 和 variables 的結 合)後,接下來就要利用 sum product algorithm 來計算我們所需要的 extrinsic information(或 extrinsic probability)及 overall information(或 overall probability)。

Agent node:

假設 transmitter 端為 BPSK modulation 且通道為 AWGN,則當 receiver 端收 到一個訊息 y 時,則我們很容易可以計算出這個 y 為+1或−1的機率。我們以

為例來說明,如圖五:

3 0

2

1mm =

m

我們可以知道在這個 Local rule 下合法的字碼只有四個。

(4)

m1 m2 m3



 

11 10

P

P 

 

21 20

P

P 

 

31 30

P P

< 圖五 >

m 1 m 2 m 3 Probability

0 0 0 P10P20P30 =P

1 0 1 P11P20P31= P

Group withm2 =0 0 1 1 P10P21P31=P

1 1 0 P11P21P30 =P

Group withm2 =1

< 表一 > 合法字碼與機率

此時定義(overall probability with m2 =0)=P10P20P30+P11P20P31 (extrinsic probability with m2 =0)=P10P30 +P11P31

由上列數學式可知(overall probability with )為 sum 具有合法字碼之機率值,而個別合法字碼的機率值為 product 該合法字碼內所有 symbol 的機率,因此稱為 Sum-Product Algorithm。

2 =0

m m2 =0

若以 Likelihood ratio 來表示 overall probability 及 extrinsic probability,則為下列 數學式:

Overall LR

P P

P P m

m

+

= +



 

=

= 0 1

2 2

Extrinsic LR

1 3

1 3 31 11 30 10

30 11 31 10 2

2

1 0

1

Λ Λ +

Λ +

= Λ +

= +



 

=

=

P P P P

P P P P m

m ,其中

10 11 1 30 31

3 ,

P P P

P Λ =

= Λ

其他(with m1m3)依此類推。

Variable node:

我們以 m1 =m2 =m3為例子說明。

m1 m2 m3



 

11 10

P

P 

 

21 20

P

P 

 

31 30

P P

< 圖六 >

(5)

m1 m2 m3

Probability 0 0 0

P10P20P30

one group 1 1 1

P11P21P31

another group

< 表二 >

因為在同一個 variable node 中,該 symbol 不是 0 就是 1,所以進入 variable node 的三個 path 的合法組合為 000 或 111。

定義(extrinsic probability with m2 =0)=P10P30 若以 Likelihood ratio 來表示:

Extrinsic LR 1 3

30 10

31 11 2

2

0

1 =ΛΛ

= ⋅



=

=

P P

P P m

 m

(4) Iterative Decoding:

接下來我們以之前的 parity-check matrix 來解釋 iterative decoding 的工作原 理。(注意:當然這並不是一個 LDPC code,只是為了方便解釋)。

假設現在 receiver 端收到一組字碼 且其相對應的 likelihood ratio 分別為

1 2 3 4 5

c c c c c

1 =2

Λ 4

1

2 =

Λ ,Λ3 =2,Λ4 =2,

4 1

5 =

Λ 。若我們直接就對收到的 likelihood ratio 作判斷,則我們會以為收到的字碼為 10110,但是這是一個不合法的字碼。

A B

1=2

Λ 4

1

2 =

Λ Λ3=2 Λ4 =2

4 1

5 = Λ 4

1 4 1

4 2 1

2

2

< 圖七 > First round:Up 如圖七所示將 likelihood ratio 上傳。

(6)

A B

1 =2

Λ 4

1

2 =

Λ Λ3 =2 Λ4 =2

4 1

5 = Λ

a a a

b a

c

< 圖八 > First round:Down

接下來利用 agent node 計算 extrinsic probability 的方法將其計算出。所以

2 3 14 2 1

14

2 =

⋅ +

= +

a

5 4 2 2 1

2

2 =

⋅ +

= +

b

17 8 14 14 1

14 14

⋅ = +

= +

c 。最後我們可以知道 first

round 的 overall LR 分別為 overall LR(m1) 2 3 1

2

3⋅ = ⇒

=

overall LR(m2) 0 10

3 4 1 2 3 5

4⋅ ⋅ = ⇒

=

overall LR(m3) 0 17 2 16 17

8 ⋅ = ⇒

=

overall LR(m4) 2 3 1 2

3⋅ = ⇒

=

overall LR(m5) 0 8 3 4 1 2

3⋅ = ⇒

=

現就字碼就變成了 10010 為一個合法的字碼。

A

2

B

1=2

Λ 4

1

2 =

Λ Λ3=2 Λ4 =2

4 1

5 = Λ 4 2 1

2

d e

< 圖九 > Second round:Up

但是因為 iterative decoding 不一定在 first round 就會收斂,所以我們進行 second round 以確認是否收斂,如圖九。

8 3 4 1 2 3⋅ =

=

d

5 1 4 1 5 4⋅ =

=

e

(7)

A B

1 =2

Λ 4

1

2 =

Λ Λ3 =2 Λ4 =2

4 1

5 = Λ a

f b f h

g

< 圖十 > Second round:Down

接下來還是利用 agent node 計算 extrinsic probability 的方法將其計算出。所

以 14

19 38 2 1

38

2 =

⋅ +

= +

f

7 3 14 15 1

14 15

⋅ = +

= +

g

15 2 11

1 7

1 2

5 +

h= =

+ ⋅ 。所以 second round 的 overall LR 分別為

overall LR(m1) 1 7 2 19 14

19⋅ = ⇒

overall LR(m2) 0 10

3 4 1 2 3 5

4⋅ ⋅ = ⇒

=

overall LR(m3) 0 7 2 6 7

3⋅ = ⇒

=

overall LR(m4) 1 7 2 19 14

19⋅ = ⇒

=

overall LR(m5) 0 28 11 4 1 7

11⋅ = ⇒

=

與 first round 相同,所以收斂。

(8)

4.實驗步驟

【步驟一】

乘法器與除法器:

仔細檢視實驗原理中利用 sum-product algorithm 來進行 iterative decoding 的 過程中並沒有牽扯到負數運算(對乘法器或除法器而言)及 divide by zero(對除 法器而言),因此所需要的乘法器與除法器就相當簡單。

在此定義我們的數字表示方式為 xxxx_ffffff,其中 x 表示整數部份 f 表示小 數部分,例如 0001_100000 就表示 (1×2 )0 + ×(1 2 )1 =1.5。

根據此數字表示方式實作乘法器與除法器電路,需注意的一點是乘法器與除 法器的輸入輸出均需滿足該數字表示法。

multiplier 10

10 10

Output C

Input A Input B

divider 10

10 10

quotient

dividend divisor 乘法器與除法器電路簡圖

0 0 iteration

1 => quotient=0

temp_divisor 000.0000

011.0000

0 => quotient=1

010.0000

00 dividend => quotient=1 001.0000

001.0000 000.0000

000 => quotient=0

000.0000 000.0000

01.10

2

3 4

11.0000 10.0000

100.0000 > dividend 10.0000 < dividend

1.0000 <

.1000 > dividend

Shift and Subtract operation of divider

乘法器的電路實作較簡單,我們僅列出實作除法器的 Shift and Subtract 運算 流程圖來幫助設計。以上舉 3/2=1.5 來當範例說明(在此例中整數與小數分別有 有 I 及 F 各位元):將 dividend 之前補 I-1 個 0,之後補 F 個 0,而 divisor 之後補 I+F-1 個 0。如上所示將 divisor 逐次往後 shift 一個位元與 dividend 作比較,如果 divisor 大於 dividend,則輸出 0;反之則輸出 1,並將 dividend 減去 divisor 以作 為下一次比較之用。

必須確定所實作出的乘法器與除法器在其可表示的數字精確度內完全正 確,才能進行步驟二。因此在 LDPC 實驗的第一個星期所需要做的工作就是驗證

(9)

所設計出的乘法器及除法器是否有正確動作?任選幾組輸入值完成下表。

乘法器

Input A Input B Output C

除法器

Dividend Divisor Quotient

附註:利用電源供應器產生出 3.3 伏特的電壓作為 logic one,ground 為 logic zero,

乘法器與除法器得輸入值即可由此提供。另外輸出接到邏輯分析儀中讀取用以完 成上表。

(10)

【步驟二】Iterative Decoder

Reg Reg Reg Reg Reg Reg

multiplier multiplier

multiplier multiplier multiplier multiplier multiplier

Local rule A Local rule B

decision decision decision decision decision

preprocess Digital error

Data source Iterative decoder circuit

步驟二中直接實現實驗原理中所提供的 Generator matrix 與 Parity check matrix 之 iterative decoder 架構,其架構圖如上。其中 preprocess 電路包含了 encoder,digital noise channel,及 received codeword to LR 等電路。其中 received codeword to LR 電路簡而言之就是指以下的對應方式。

0 1 0000.010000 4

1 2 0010.000000

 ⇒ =



 ⇒ =

將 message 與 digital noise 分別設定為 100 及 00100,此即對應Λ1 =2,

4 1

2 =

Λ ,Λ3 =2,Λ4 =2,

4 1

5 =

Λ 。接著由邏輯分析儀上觀察是否如實驗原理

般可以成功將錯誤解回,並將邏輯分析儀上所得之圖附於報告中。

(11)

附註:將實驗一所給予的 rst_gen.v 檔應用到 LDPC 的電路中,用來通知邏輯分 析儀何時該抓取資料。

【邏輯分析儀圖表】

(12)

5.問題與討論

(1) 所實作出的除法器與乘法器電路其 gate count 有幾個?是否有其他方式可以 把電路簡化?(Hint:例如將 LR 變成 LLR,那電路架構會便如何?)

6.參考資料

1. 清華大學通訊工程研究所 COM5125 數位通訊課程 Lecture 20:LDPC Coding and Graphs,網址:http://ws.ee.nthu.edu.tw/~jtchen/。

2. Constrained Coding and Soft Iterative Decoding,John L. Fan,Stanford University and Iospan Wireless。

3. Communication System 4th ed,Haykin。

4. Factor Graphs and the Sum-Product Algorithm,IEEE Transactions on Information theory,VOL. 47,NO.2,February,2001。

參考文獻

相關文件

鄭肇 楨 (1983) 在 《遊戲與學習》 中 云:「以前的人常說:『勤有功, 戲無益。』 其實 這句話最少後半句是錯的。」 事實上, 關於玩 耍 (play) 與遊戲 (game) 的理論在不斷發 展 中。 從英國

課堂上操作過的實驗務必要詳知實驗 操作原理及過程,及實驗後的統整與 結論。.

特別是認識論的研究密切相關的 (這就是所 謂的“發生認識論”), 從而, 心理學的研究就 為其哲學主張提供了重要的論據, 反之, 認識 論的分析則又事實上決定了他在心理學研究 中所採取的基本

課堂上操作過的實驗務必要詳知實 驗操作原理及過程,到實驗後的統整 與結論。.

課堂上操作過的實驗務必要詳知實驗 操作原理及過程,到實驗後的統整與結 論。.

但是企業的發展如果不靠不斷累積已經擁有的知識,發展新的觀念、新的商品、新的技術,實

教育技術 2 是關於學習資源和學習過程的設計、開發、使用、管理和評價的理論和實踐。遠端

事實上,就算不是經濟不景,由於現代化下都市生活的發展,經濟和社會情況轉變,對