• 沒有找到結果。

碩 士 論 文 中 華 大 學

N/A
N/A
Protected

Academic year: 2022

Share "碩 士 論 文 中 華 大 學"

Copied!
70
0
0

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

全文

(1)

中 華 大 學 碩 士 論 文

題目: 適用於無線區域網路 802.11a 之 Viterbi 解 碼器硬體實現

Hardware Implementation of Viterbi Decoder for WLAN 802.11a

系 所 別 : 電機工程學系碩士班 學號姓名 : M09001025 周 良 昌 指導教授 : 陳 棟 洲 博士

中華民國 九十三 年 一 月

(2)
(3)
(4)
(5)

中文摘要

以無線生活為目標的產品應用,在 21 世紀初成為熱門的商品。

在無線區域網路部份,高傳輸速度的要求,讓 IEEE 802.11a 成為矚目 的標準。本篇論文主要是以 FPGA 晶片來實現一適合於無限區域網路 IEEE 802.11a 系統之軟式決策維特比解碼器,並使用 MATLAB 軟體 針對維特比解碼器在不同位元數之軟式解碼對系統效能之影響。最後 比較分析不同位元數之軟式解碼效能與硬體複雜度,評估增加硬體複 雜度所得到的效能增益,做為實現 IEEE 802.11a 之軟式決策維特比解 碼器之參考。

(6)

ABSTRACT

For the future, the standards of WLAN systems will be focused on the high data throughput. The IEEE 802.11a system can provide several data rates form 6 Mb/s to 54 Mb/s according to different channel quality, and thus it must attract the public notice. The aim of this thesis is to design a soft-decision Viterbi decoder for the IEEE 802.11a system. The decoding performances for different quantization levels of soft-decision Viterbi decoding are simulated and analyzed. Finally, the effect on the hardware complexity of decoder and the decoding performance caused by the number of quantization levels of soft-decision Viterbi decoding is analyzed and discussed.

(7)

誌謝

首 先 感 謝 袁 正 績 與 陳 棟 洲 博 士,兩 位 指 導 教 授 這 兩 年 半 的 指 導 與 教 誨,使 我 完 成 研 究 所 學 業。比 其 他 同 學 多 半 年 的 研 究 所 生 涯,使 我 收 穫 更 多,在 此 特 別 感 謝 陳 老 師 在 令 我 困 惑 的 92 年 7 月 適 時 開 導 我 , 且 讓 我 多 半 年 學 習 機 會 。

此 外,感 謝 王 興 潭 學 長 的 啟 發 與 教 導,在 語 法 結 構 與 選 擇 適 合 工 具 上,給 予 大 力 協 助,還 有 楊 士 慶、莊 逸 民 學 長 和 陳 秀 儒 學 姐 對 我 的 照 顧。感 謝 我 的 研 究 所 戰 友 張 建 緯 同 學,一 起 度 過 這 兩 年 半 的 每 一 個 日 子,還 有 我 大 學 最 好 的 同 學,中 正 大 學 電 機 所 張 志 瑋 提 供 豐 富 資 源。當 然 感 謝 實 驗 室 的 學 弟 們,譯 鋒、英 堂、永 賓、家 銓、繼 中 …等,每 個 實 驗 室 的 成 們,讓 我 在 這 個 大 家 庭 中 成 長 。

最 後,最 重 要 的 感 謝 我 的 父 母 與 兄 姐,由 於 他 們 的 鼓 勵 與 支 持 讓 我 無 後 顧 之 憂 完 成 研 究 所 學 業 。

(8)

目錄

中文摘要……….…I

ABSTRACT……….. II 致謝……….. III 目錄……….. IV 圖目錄……….VII 表目錄……….. XI

第一章 簡介……….. 1

第二章 迴旋碼與 Viterbi 解碼法則……….………... 4

2.1 迴旋碼………. 5

2.2 迴旋碼解碼之維特比解碼法則……….………9

2.3 維特比解碼器架構………...18

2.4 punctured convolutional code………...………25

2.5 IEEE 802.11a 之錯誤更正碼技術………... 26

第三章軟式決策量化位元數之維特比解碼器模擬…….……...29

3.1 MATLAB 模擬環境………...29

3.2 軟式決策之量化位元數之結果……….……….. 33

(9)

第四章 軟式決策維特比解碼器之實現與驗證………... 36

4.1 維特比解碼器之硬體電路架構………. 36

4.1.1 ZIU 與 BMU………40

4.1.2 ACSU 與 PMMU……….………43

4.1.3 SMU……….………46

4.2 軟式決策維特比解碼器驗證………... 50

第五章 結論……… 55

參考文獻……….. 56

(10)

圖目錄

圖 1.1 IEEE 802.11a 系統架構………2

圖 2.1 (n, k, m)迴旋碼編碼………... 5

圖 2.2 (2, 1, 2) 二位元迴旋碼.……… 5

圖 2.3 (2, 1, 2)迴旋碼之(a)狀態圖(b)格子圖………... 8

圖 2.4 (2, 1, 2)迴旋碼柵狀圖……… 8

圖 2.5 在柵狀圖上計算計值找出最可能路徑………...11

圖 2.6 維特比演算法的柵狀圖(t = 0 ~ 7)………...13

圖 2.7 維特比演算法柵狀圖(t = 0 ~ 1)………...13

圖 2.8 維特比演算法柵狀圖(t = 0 ~ 3)………...14

圖 2.9 維特比演算法柵狀生存路徑圖(t = 0 7)………...16

圖 2.10 Q = 2 之二位元對稱通道及 Q = 8 之離散無記憶通道……. 17

圖 2.11 維特比解碼器系統方塊圖…….………..18

圖 2.12 柵狀圖解碼 Register Exchange 之生存路徑………...21

圖 2.13 狀態轉移路徑關係圖……….………..22

圖 2.14 利用回溯找出最可能路徑………...23

圖 2.15 回溯架構的方塊圖………...24

(11)

圖 2.16 間空迴旋碼方塊圖………....………...26

圖 2.17 IEEE 802.11a 迴旋碼編碼器(K = 7)………....26

圖 2.18 碼率為 3/4 之間空碼的運作方法………..……..27

圖 2.19 碼率為 2/3 之間空碼的運作方法……….…28

圖 3.1 維特比解碼器模擬環境圖………...30

圖 3.2 BPSK 的對映……….………...30

圖 3.3 BPSK 之硬式解對映………....31

圖 3.4 BPSK 之二位元軟式解對映………....31

圖 3.5 BPSK 之三位元軟式解對映………....32

圖 3.6 BPSK 之四位元軟式解對映………....32

圖 3.7 碼率為 1/2 之軟式解碼量化位元數模擬(BPSK over AWGN channel)……… .34

圖 3.8 碼率為 2/3 之軟式解碼量化位元數模擬(BPSK over AWGN channel)…...………..34

圖 3.9 碼率為 3/4 之軟式解碼量化位元數模擬(BPSK over AWGN channel)…...………..35

圖 4.1 維特比解碼器之電路符號…….………...37

(12)

圖 4.3 ZIU 作用圖………... 40

圖 4.4 ZIU 電路架構圖………... 41

圖 4.5 軟式決策 BMU 電路架構圖………....42

圖 4.6 軟式決策 BMU 電路方塊合成圖………...…………...42

圖 4.7 ACS cell 與正規化電路方塊圖………... 43

圖 4.8 路徑計值正規化的 ACS cell 電路合成圖………... 44

圖 4.9 利用 Synplify Pro 合成的 ACSU 方塊………....45

圖 4.10 Register Exchange 根據決策位元選擇和紀錄路徑……...46

圖 4.11 單元電路內的記憶和邏輯架構圖………...48

圖 4.12 Trace-Back 3-pointer even 架構下各方塊狀態與時間關係... 49

圖 4.13 3-pointer even 架構的元件和電路方塊連接圖………...49

圖 4.14 軟式解碼維特比解碼器測試環境圖………...51

圖 4.15 軟式解碼維特比解碼器測試環境之時序圖………...51

圖 4.16 執行 SignalTap 的介面………...53

(13)

表目錄

表 2.1 輸入與狀態關係表………...7

表 2.2 通道計量表(a)Q = 2(b)Q = 8……….……….17

表 2.3 狀態轉移之決策位元關係表………. 23

表 2.4 狀態轉移之消息位元關係表………... 23

表 3.1 BPSK 不同碼率之量化位元數對硬式解碼之碼增益……... 35

表 4.1 維特比解碼電路輸入/輸出訊號功能描述……….... 38

表 4.2 維特比解碼器時脈速度與訊號對應表……….. 39

表 4.3 不同量化位元數與 SMU 架構之面積與速度………...53

表 4.4 Register Exchange 架構與 Trace-Back 之架構之優缺點比較..54

表 5.1 3-bit 與 4-bit 軟式決策維特比解碼器之效能比較表………….55

(14)

第一章 簡 介

在目前的生活中,人們在享受便利性的同時,也漸漸朝擺脫空間 的束縛為重要方向,因此無線化產品的應用正不斷產生,周遭生活產 品的無線化已成一個趨勢。在通訊方面,無線技術在未來的通訊科技 將會扮演重要的角色。而無線區域網路在許多環境中提供了使用者的 便利性,尤其以不方便架設網路線的公眾場所,無線區域網路提供了 可行的網路解決方案。

IEEE 在無線區域網路提出了幾種無線網路標準,在眾多標準中,

IEEE 802.11a[1] 採 用 正 交 分 頻 多 工 (Orthogonal Frequency Division Multiplexing, OFDM)調變技術,使用 5GHz 頻帶,提供最快高達 54Mbps 的資料傳輸率,正是目前無線區域網路眾多標準中矚目的焦點。

正交分頻多工為一多載波調變技術,利用將信號切割成多個區 間,用不同頻率的子載波傳送資料。多載波調變增加子載波符碼間的 傳輸間隔時間,降低了子載波符碼間干擾(ISI),OFDM 技術實現高速 和降低干擾兩方面的要求,近來已經被採用於數位音訊廣播(DAB)系 統、數位無線傳輸以及歐洲標準的數位視訊廣播(DVB)系統中,它可 以有效地解決通訊傳輸中的頻率干擾及多重路徑衰弱等問題[2]。

(15)

Sc ra mbl er P unc tu re co n vol ut io na l co d e

Int erl ea vi ng + Ma ppi ng IFFT Gu ar d int er v al a ddi tio n De map p in g + De nt er le av in g FF T GI r em o ve Des cra mbl er P unc tu re v ite rb i de code r

圖1.1 IEEE 802.11a系統架構圖

sy mbol wa v e sh appi ng

I/ Q Mo d. I/ Q De t. AF C Cl oc k Rec o ve ry

(16)

無線區域網路 IEEE 802.11a 之系統如圖 1.1 所示,其中在錯誤更 正碼部分,使用碼率(code rate)為 1/2、2/3、3/4 之間空迴旋碼 (punctured convolutional code)。利用生成序列(generator sequences)為 g

0

= 133

8

g 1

= 171

8

之(2, 1, 6)迴旋碼編碼器為母碼,並配合間空碼(puncture code) 產生碼率 1/2、2/3、3/4 之迴旋碼。接收端則使用維特比解碼器來解碼,

以提高系統之效能。有鑑於生活無線化的趨勢,我們以 IEEE 802.11a 架構做發展方向,提供一個實現 IEEE 802.11a 維特比解碼器的可靠方 法。本篇論文架構共分成五章,第二章將介紹迴旋碼與 Viterbi 解碼法 則,第三章則是利用 MATLAB 軟體模擬軟式解碼位元數對系統效能 (performance)之影響,第四章利用 FPGA 實現維特比解碼器與硬體驗 證,第五章則是結論。

(17)

第二章 迴旋碼與 Viterbi 解碼法則

為了克服通道雜訊對傳送訊號的干擾,確保傳送資料的正確性,

因此數位資料的傳送通常需加入錯誤更正碼技術以提高系統之效能。

常 見 的 錯 誤 更 正 碼 可 區 分 兩 大 類 : 區 塊 碼 (block code) 和 迴 旋 碼 (convolutional code)。區塊碼是根據目前的資料區塊做編碼,編碼輸出 不受前編碼輸入消息區塊影響,也就是不具有記憶性。另一種稱為迴 旋碼,和區塊碼不同的是,編碼輸出跟目前輸入與之前輸入消息區塊 相關,編碼的過程具有記憶性。在實際應用上,迴旋碼除了提供較好 的效能外,實現上也比區塊碼更為容易[3]。

無線區域網路 IEEE 802.11a 系統中的錯誤更正碼技術是採用間空 迴旋碼(punctured convolutional code),是以一迴旋碼為基礎,採用間空 的方法除去某些特定位元,達到高碼率。本章主要介紹間空迴旋碼與 維特比解碼器的演算法及架構。

2.1 迴旋碼

迴旋碼與區塊碼最大不同在於迴旋碼輸出具有記憶性。

n 個碼字輸

出由前面

m 個 k 位元消息區塊與目前 k 位元消息區塊決定,如圖 2.1

所示。而編碼輸出總共受

m 1 個輸入影響,即限制長度(constraint

length)K = m 1。

(18)

圖 2.1 (n, k, m)迴旋編碼器

迴旋碼編碼輸出v

i

為輸入u

i

與前輸入u

i-1

、u

i-2

、…、u

i-m

有關,之間的 關係可表示成下列關係式

v i (j)

1

0

) ( )

k ( r

j r

r g

u

, j = 0, 1, …, n-1 (2-1)

(2-1) 式 中 , g

r (j)

表 示 輸 出

v (j)

的 產 生 關 係 , 稱 為 生 成 數 列 (generator sequence), 表示離散迴旋運算,這也是迴旋碼名稱的由來。

圖2.2 (2, 1, 2) 迴旋編碼器

Convolutional

Encoder

..

u i = (u i (0) , …, u i (k-1) )

. ..

..

v i = (v i (0) , …, v i (n-1) ) u i (0) .

u i (k-1)

v i (0)

v i (n-1)

D1

v (1)

u D2 v

v (0)

1

0

) (

, 0

) k (

r

j l r m

l

r l

i g

u

(19)

以圖 2.2 之(2, 1, 2)迴旋編碼器為例,其中編碼器包含 2 個位移暫存 器,(v

(0)

, v

(1)

)是由目前位元輸入與前二個位元輸入在 GF(2)場中運算來 決定。輸出

v (0)

、v

(1)

可表示成(2-2)、(2-3)式

v i (0)

= u

i

u

i-1

u

i-2

(2-2) v

i (1)

= u

i

u

i-2

(2-3) 或以生成數列表示成(2-4)、(2-5)式

v (0)

= u g

(0)

(2-4)

v (1)

= u g

(1)

(2-5) 其中生成序列為

g (0)

= (1 1 1)和 g

(1)

= (1 0 1)。若輸入訊號 u = (00101) 其輸出序列分別為

v (0)

= (00101) (111) = (0011011)

v (1)

= (00101) (101) = (0010001)

經過多工器後其碼字為

v = (v

0 (0) v 0 (1) , v 1 (0) v 1 (1) , v 2 (0) v 2 (1) ,…)

= (00, 00, 11, 10, 00, 10, 11)

編碼器的狀態可以根據圖 2-2 中編碼器 2 個移位暫存器(D1, D2) 來表示。當輸入為

u i

時,狀態可表示成 (u

i-1

, u

i-2

),輸入為 u

i+1

時,

狀態可表示成(u

i

, u

i-1

),因此了解以上狀態關係之後,我們以(2, 1, 2) 迴旋碼為例,可以將輸入與輸出和狀態間的關係整理成表 2.1。

(20)

表 2.1 輸入與狀態關係

目前狀態 輸入 下一狀態 輸出

S

0

(00) 0 S

0

(00) 00

S

0

(00) 1 S

1

(10) 11

S

1

(10) 0 S

2

(01) 10

S

1

(10) 1 S

3

(11) 01

S

2

(01) 0 S

0

(00) 11

S

2

(01) 1 S

1

(10) 00

S

3

(11) 0 S

2

(01) 01

S

3

(11) 1 S

3

(11) 10

表 2.1 中的輸出與目前狀態是由輸入和前一個狀態所決定。(2, 1, 2) 迴旋碼之暫存器內容值可能有 2

2

= 4 種,如果我們將四個可能狀態表 示為 S

0

= (0, 0)、S

1

= (1, 0)、S

2

= (0, 1)、S

3

= (1, 1),根據四個狀態和輸 入/輸出的關係,我們可以構成如圖 2.3(a)之狀態圖和圖 2.3(b)之格子 圖,在狀態分支上標示的是輸入/輸出。狀態圖中分別有兩個分支離開 跟進入每個狀態。若輸入消息區塊的時間不同,輸入/輸出與狀態的關 係可進一步描述成圖 2.4 的柵狀圖,柵狀圖描述從起始點到輸入消息 區塊的時間所有可能路徑。

(21)

(a) (b) 圖 2.3 (2, 1, 2)迴旋碼之(a)狀態圖(b)格子圖

圖 2.4 (2, 1, 2)迴旋碼之柵狀圖 S

0

(00)

S

1

(10)

S

2

(01)

S

3

(11)

1/10 0/00

1/11

0/10

1/01 0/01 1/00 0/11

S

0

(00)

S

1

(10)

S

2

(01)

S

3

(11)

現在狀態 下一狀態

(22)

2.2 迴旋碼解碼之維特比解碼法則

迴旋碼根據暫存器內容值,可與柵狀圖呈一對應關係,因此輸入 消息序列經過編碼的結果,在柵狀圖上可得到對應的路徑和碼字(code word)。在接收時由接收向量也可利用柵狀圖找出可能傳送的碼字。若 (n, k, m)迴旋碼輸入的消息序列 u = (u

0

, u

1,

…, u

l-1

),共有 l 個 k 位元的消 息區塊,對應碼字

v = (v 0

,

v 1

, .…,

v l+m-1

),在離散無記憶通道(Discrete Memoryless Channel,DMC)中,最大相似解碼法(Maximum Likelihood Decoding, MLD)就是去找一碼字 v 使其對數相似函數(log-likelihood function)log P(r | v)為最大[3-5],

log P(r | v) = log

1 0

)

| (

m l

i P r i v i

=

1 0

)

| ( log

m l

i P r i v i

1 0

1 0

) ( )

(

| ))

( log (

m l

i n j

i j

i j v

r

p

(2-6)

(2-6)式中 P(r

i | v i

)代表離散無記憶通道轉態機率。(2-6)式可以轉成(2-7) 式以位元計值(bit metric)表示離散無記憶通道轉態機率。

M ( r i ( j ) | v i ( j ) )

= a [log P(

r i ( j ) | v i ( j )

) + b] (2-7)

(23)

在(2-7)式中適當選擇 a 和 b 之值可讓位元計值為正整數,讓數位邏輯 電路計算更容易執行,而路徑計值(path metric)為路徑上所有位元計值 的總和為(2-8)所示,

M(r | v) =

1

0 1 0

) ( )

( | ) )

( (

m l

i n

j

i j

i j v

r

M

(2-8)

(2-7)式中,如果 a 為正實數且 b 為實數時,當路徑碼字 v 將 log P(r | v) 最大化時,同時也將

M(r | v)最大化。如果 a 為負實數,路徑碼字 v 最

大化 log P(r | v)時,則會將 M(r | v)最小化。將路徑計值以最小化表示 之優點為,數位邏輯電路可以較少的電路位元數表示離散無記憶通道 轉態機率。因此要找出最大相似路徑就相當等於從柵狀圖中找出一條 路徑中之碼字與收到序列有最小路徑計值之路徑。

所謂維特比法則 (Viterbi algorithm),即是在迴旋碼柵狀圖上找出 一條有最小計值(最小漢明距離)路徑的相似解碼法則。如圖 2.5 所示,

在接收一序列

r 時,從柵狀圖中將可能的的每一條路徑中之碼字拿來

與接收序列

r 比較並計算其計值。在經過一串輸入序列後,我們可在

迴旋碼柵狀圖上找出一條有最小計值(最小漢明距離)的路徑,路徑上 的碼值,即為與傳送端碼字最近似的碼字[6-8]。

(24)

圖 2.5 在柵狀圖上計算計值找出最可能路徑

假設v = (v

0

, v

1

, v

2

, …)為在二位元對稱通道(BSC)中傳送的碼字,r = (r

0

, r

1

, r

2

, …)為接收到的序列,在描述Viterbi演算法之前,我們必須定 義在使用之計值名詞與計值計算式:

1.分支計值(branch metric):

d j -1, j

(S

m j-1

, S

m j

) = || r

j-1

– v

j-1

||,其中 m

j-1

, m

j

N (2-9)

d j -1, j

(S

m j-1

, S

m j

)表示,從時間 t = j 1 之狀態 S

m j-1

,到時間

t = j 之狀

態 S

j

的分支計值,其中|| r

j-1

– v

j-1

||表示 r

j-1

v j-1

之漢明權值。

2.路徑計值(path metric):

M

j

(S

m j

) P

j-1

(S

m j-1

) d

j -1, j

(S

m j-1

, S

m j

) (2-10)

M j

(S

m j

)表示狀態 S

m j

在時間

t = j 之路徑計值,為時間 t = j 1 之狀態

S

m j-1

的路徑計值與分支計值

d j -1, j

(S

m j-1

, S

m j

)之和。

11 10 00 01 10

r = S 0 (00)

S 1 (10)

S 2 (01)

S 3 (11)

0 2

0

3

3

0

2

2

0

3

3

3

3

2

0

3

3

2

0

(25)

3.存活路徑計值(survivor path metric):

P j

(S

m j

) =

) (

min

j

j Sm

Q

M

j

(S

m j

) (2-11)

Q j

(S

m j

)的定義為在時間t = 0起始狀態為S

0

,在時間t = j時進入狀態S

m j

之所有路徑。

維特比解碼法則可分成下列三個步驟[3-4]:

步驟一:從時間點 t = 0開始,計算進入每一狀態之單一路徑的路 徑計值,並記錄每一狀態之存活路徑和存活計值。

步驟二:t =

t

1,對於每一狀態,將所有進入此狀態的路徑,

分別計算其路徑計值。在每一狀態中,將含有最小路徑計 值的路徑和存活計值記錄起來,並將其餘的路徑刪除。

步驟三:如果t < l m則重覆步驟二;否則停止。其中l為訊息序列 的長度,m為編碼器之暫存器長度。在最後,含有最小的 存活計值的路徑即可當作解碼之路徑。

我們利用 (2, 1, 2)的迴旋編碼為例說明維特比演算法的步驟。若訊 息序列

u (00101),經過編碼器之後,得到輸出序列 v (00,00,11,

10,00,10,11)。而 v 序列在經過通道傳輸的過程中受到雜訊的干擾,

(26)

11,10,10,10,11),經由圖 2.6 的維特比演算法,可求得解碼之結 果

u (00101)。

圖2.6 維特比演算法的柵狀圖(t = 0 ~ 7)

圖2.7 維特比演算法柵狀圖(t = 0 ~ 1)

(27)

(1) 如圖2.7所示,在t = 0時,從狀態S

0

開始,其存活計值為0。

利用(2-7)(2-8)與(2-10)式,我們可算出分支計值M

1

(S

0

) d

0,1

(S

0

,S

0

) || r

0

v 0

|| || 00 00|| = 0與M

1

(S

1

) = d

0,1

(S

0

,S

1

) || r

0

v

0

|| || 00 11|| = 2。

因為在t = 1時,每一狀態只有一條路徑進入,所以S

0

存活計值 P

1

(S

0

)

M 1

(S

0

) = 0、S

1

存活計值P

1

(S

1

) M

1

(S

1

) = 2。

圖2.8 維特比演算法柵狀圖(t = 0 ~ 3)

(2) 重覆(1),如圖2.8所示,在t = 3時,均有2條路徑進入每一狀態,

我們選擇路徑計量值較小的為存活計值,此一路徑稱為存活路徑,同 時把另一較大的路徑刪除掉。若兩路徑計量值相同時,則任取一條路 徑為存活路徑。S 、S 、S 、S 之存活計量值分別為3、1、2、2。

(28)

S

0

、S

1

、S

2

、S

3

,4個狀態點在t = 3時的選擇路徑如下:

S

0

:

M 3

(S

0

) P

2

(S

0

) d

2,3

(S

0

, S

0

) 1 + 2 = 3

M 3

(S

2

) P

2

(S

2

) d

2,3

(S

2

, S

0

) 4 + 0 = 4

P 3

(S

0

) min{ M

3

(S

0

), M

3

(S

2

)} = min{3, 4} 3

S

1

:

M 3

(S

0

) P

2

(S

0

) d

2,3

(S

0

, S

1

) = 1 + 0 = 1

M 3

(S

2

) P

2

(S

2

) d

2,3

(S

2

, S

1

) = 4 + 2 = 6

P 3

(S

1

) min{ M

3

(S

0

), M

3

(S

2

)} min{1, 6} = 1

S

2

:

M 3

(S

1

) P

2

(S

1

) d

2,3

(S

1

, S

2

) 1 + 1 = 2

M 3

(S

3

) P

2

(S

3

) d

2,3

(S

3

, S

2

) 2 + 1 = 3

P 3

(S

2

) min{ M

3

(S

1

), M

3

(S

3

)} min{2, 3} 2

S3:

M 3

(S

1

) P

2

(S

1

) d

2,3

(S

1

, S

3

) 1 + 1 = 2

M 3

(S

3

) P

2

(S

3

) d

2,3

(S

3

, S

3

) 2 + 1 = 3

P 3

(S

3

) min{ M

3

(S

1

), M

3

(S

3

)} min{2, 3} 2

(3) 重覆(2),經過時間t = 4 ~ 7。最後,我們可由存活路徑(圖2.9中線 條較粗者),得到解碼之結果為u (00101)。

(29)

圖 2.9 維特比演算法柵狀生存路徑圖(t = 0 ~ 7)

硬式和軟式解碼

圖2.10 為2階量化(Q = 2)之二位元對稱通道及8階量化(Q = 8)離 散無記憶通道,若兩個通道皆是均勻的量化(左方的0或1到達右方值 的機率皆相同),則此兩通道的通道計量表(Metric tables for the channel) 如表2.2所示。從表2.2中可以發現,以2階量化為例,0經過通道後可能 之值為0或1。而8階量化時,0經過通道後之值卻有8種可能的組合,為 000, 001, 010, 011, 100, 101, 110, 111。所以對於一碼率為1/2,8階量化 之柵狀圖上的計值雖比2階量化之格狀圖上的計值大,但是由於8階量

(30)

碼的精確度會比2階量化來的準確。與硬式解碼比較,軟式解碼的計算 電路需要較高的硬體複雜度,但是效能較佳,在AWGN通道環境中,

軟式解碼比硬式解碼效能好大約2至3dB[2-4]。

圖2.10 Q = 2之二位元對稱通道及Q = 8之離散無記憶通道

表2.2 通道計量表 r

v

0 1

0 0 1

1 1 0

(a) 2階量化(Q = 2)

r

v

000 001 010 011 100 101 110 111 0 0 1 2 3 4 5 6 7 1 7 6 5 4 3 2 1 0

(b) 8 階量化(Q = 8)

0

1

111 110 101 100 011 010 001 000

0

1

0

1

(31)

2.3 維特比解碼器架構

在了解軟式與硬式解碼之差異後,本小節開始介紹維特比解碼器 之架構。依據維特比解碼法則,維特比解碼器之架構可區分成下面四 個部分[10-11]:

1. Branch Metric Unit (BMU)

2. Add-Compare-Select Unit (ACSU) 3. Path Metric memory Unit (PMMU) 4. Survivor Memory Unit (SMU)

圖 2.11 維特比解碼器系統方塊圖

以下個小節將對構成維特比解碼法則圖 2.11 的四個方塊,加以分 析及對應:

(32)

2.3.1 BMU

BMU 在每個時間點,計算接收訊號與分支路徑的計值(branch metric),然後輸出每個分支計值傳送給 ACSU。

2.3.2 ACSU 和 PMMU

ACSU 主要是加法和路徑選擇的運算,輸入狀態點的分支計值 (branch metric),分別跟上一個時間點對應的存活路徑計值(survivor path metric)相加,經過比較大小後,選擇新的存活路徑計值和輸出路 徑決策位元(decision bit)。而根據不同面積與速度需求又可分成以下三 個架構:

1. 全平行架構(full parallel architecture )

在柵狀圖中每個狀態點使用一個 ACS cell,三個架構中速度 最快,整體 ACSU 速度瓶頸在於邏輯閘的延遲,但缺點是因為 使用多個 ACS cell 和內部連接線,需較大電路面積。

2. 串列架構 (series architecture)

全部狀態使用一個 ACS cell,每個狀態輪流使用一個 ACS cell 完成 add-compare 與 select 計算,所需時間為 2

m

個週期,為 全平行結構時間的 2

m

倍,需電路面積最小但是速度最慢。

(33)

3. 面積效率架構(area-efficient architecture)

2

m

個狀態使用 P 個 ACS cell ( P < 2

m

),需要額外的狀態劃分 跟列表,電路面積跟速度皆次佳,但控制電路較複雜。

PMMU:

PMMU 在維特比解碼法則主要是輸出與記憶每個狀態點之路徑 計值達成路徑計值的更新(update path metric)。

2.3.3 SMU

SMU 主要是儲存 2

m

狀態上之最佳路徑之消息序列(information sequence),SMU 之複雜度受儲存之決策位元長度影響。維特比解碼法 則之柵狀圖長度是無限的,但是在硬體實現上儲存長度是不可能無限 的,所以需將柵狀圖長度加以截斷,但又不能影響太多的解碼性能。

根據 Forney 提出研究結果,截斷長度(truncated length)L = 5.8m 時,因 截斷儲存長度而產生的錯誤率是可忽略[7-8]。SMU 方塊在到達截斷長 度時,則輸出最有可能碼字。常見的 SMU 架構有二種:Register Exchange (RE)和 Trace-Back (TB)。[9-11]

Register Exchange 是解碼觀念最簡單且最直接的存活路徑更新方

(34)

個長度為

L 的暫存器,暫存器內儲存到達這個狀態點之最佳路徑的消

息序列(information sequence)。如圖 2.12 之(2, 1, 2)迴旋碼為例。當 2

m

個 ACS cell 決策位元產生時,決策位元用來選擇存活路徑的來源暫存 器,然後將目前路徑值加在存活路徑最後面,因此暫存器儲存了經過 路徑之消息序列。從圖 2.12 可知,當 truncated length L 足夠長,所有 生存路徑最舊的消息位元(information bit)是相同的[2-4]。因此,解碼器 可任意選擇一個狀態點的最舊的消息位元當作解碼輸出。

2.12 柵狀圖解碼 Register Exchange 之生存路徑

相較於 Register Exchange 是根據決策位元儲存每一個狀態點之存 活路徑位元,回溯(Trace-Back)則是儲存每一狀態點之決策位元,再依 據決策位元回溯找出每一狀態點上之存活路徑的消息序列。回溯主要 是根據迴旋碼編碼器在前後時間之狀態轉移的路徑關係,以(2, 1, 2)迴 旋碼為例,圖 2.13 為在時間點 t 每一進入狀態點 S

i, t

皆有 2 個路徑,分 別是從時間點

t 1 的 S i, t-1

之分支路徑,而在表 2.3 中上分支路徑位元

(35)

值為”0”,下分支路徑位元值為”1”,而”-” 代表無此路徑。

假設

y t

(m

t

)代表狀態 S

i, t-1

和 S

i, t

轉移的決策值,m

t-1

(a

t-1

, b

t-1

) 和

m t

(a

t

, b

t

)為 S

i, t-1

和 S

i, t

的狀態向量,且

y t

(m

t

) y(S

i, t-1

, S

i, t

)。當 狀態轉移時

m t

(a

t

, b

t

) (u

t-1

, a

t-1

),b

t-1

被暫存器移出狀態外,因此要

沿著生存路徑做回溯找出上一個時間點的狀態。需要儲存

b t-1

,而

y t

(m

t

) b

t-1

從狀態圖可知 a

i-1

= b

i

b i-1

= y

i

(m

i

),當狀態 m

t

= (a

t

, b

t

) 我們可 知,

f

(a

t

, b

t

, y

t

(m

t

)) = (a

t-1

, b

t-1

) = (b

t

, y

t

(m

t

)) ,因此只要儲存每個單位 時間的狀態路徑,然後到達長度截斷長度

L 時,如圖 2.14 再從目前路

徑往前追溯最小計值(最小漢明距離)的狀態點,反覆的把上一個時間 點的狀態找出來至起始點,根據表 2.4 狀態跟訊息位元的關係可以把 最有可能的輸入位元解碼出來。

圖 2.13 狀態轉移路徑關係圖

00

10 01 11

00 10 01 11 time stage t S 0, t-1

S 1, t-1 S 2, t-1 S 3, t-1

S 0, t S 1, t S 2, t S 3, t

S i, t-1 S i, t

time stage t-1

(36)

表 2.3 狀態轉移之決策位元關係表

圖 2.14 利用回溯找出最可能路徑

表 2.4 狀態轉移之消息位元關係表

11 10

r = 00 01 10 10 11

t = 0 1 2 3 4 5 6 7

0

2 1

1

4

2

3

1

2

2

3

3

1

2 2

2

3

2

3

3

2

2 2

3

3

3

S 0 (00)

S 1 (10) S 2 (01)

S 3 (11)

0 00

10 01 11

a t-1 b t-1

- 1 -

a t b t 00 10 01 11

0 - 1 -

- 0 - 1

- 0 - 1

a t b t S i, t

S 0, t S 1, t S 2, t S 3, t

information bit

00 10 01 11

0

1

0

1

(37)

圖 2.15 回溯架構的方塊圖

回溯的架構主要可分成:write(WR)、trace-back(TB)和 decode(DC) 三個部份。

1.WR :

WR 主要是將 ACSU 產生的決策位元,寫入到符合的儲存區塊位 置,作為回溯時所需讀取決策位元的來源。

2. TB:

TB 主要是讀取對應目前的狀態點的儲存方塊所儲存的決策位 元,作為目前狀態追溯回到上一個狀態的指標,利用目前狀態與狀態 指標的關係,不斷追溯找出新的狀態,如圖 2.15 在 Survivor Path Merge 區塊中做追溯,我們可以追溯出最佳路徑。跟 Register Exchange 一樣,

需要夠長的截斷長度

L,所有回溯路徑才會聚合在一起。

Write Block Decode

Block

Write Decision

Vector

Read region Write Region Trace-back

Survivor Path Merge Block

(38)

1. DC:

經由 trace-back 方塊,已經回溯出所有路徑的聚合狀態點,如圖 2.15 ,decode 方塊繼承 trace-back 方塊追溯得到的聚合狀態點,繼續 地追溯找出聚合的路徑,而尋找聚合路徑下一個狀態點時,根據狀態 間的關係,便得到解碼位元輸出。

2.4 間空迴旋碼

在許多頻寬限制的應用中,高碼率(high-rate)或較低冗長位元 (low-redundancy)的迴旋碼編碼器常被使用,但高碼率的解碼器實現不 易,以一個參數(n, k, m)迴旋碼編碼器為例,可能的狀態有 2

km

個,而 解碼器的複雜度隨著

k × m 成指數的增加,因此編碼器參數 k × m 決定

了解碼器的複雜度。

間空迴旋碼的概念是在不改變迴旋碼編碼器參數前提下,提高傳 輸碼率。如圖 2.16,間空迴旋碼以碼率比較低的迴旋碼為母碼(mother code),根據間空碼選用的樣本(puncture pattern),將迴旋碼編碼器產生 的特定位元刪除,以這樣的方法可減少位元傳送,有效達到高碼率。

實行間空迴旋碼的好處是我們可以使用較易實現的解碼器,對高碼率 傳送的資料解碼。我們只需在接收資料時,根據間空碼的樣本,在間 空碼去除的位元補 0,將高碼率還原成母碼的低碼率,便可使用低碼 率的解碼器解碼。

(39)

圖 2.16 間空迴旋碼方塊圖

2.5 IEEE 802.11a 之錯誤更正碼技術

Output Data A

Output Data B

Input Data Tb Tb Tb Tb Tb Tb

圖 2.17 IEEE 802.11a 迴旋碼編碼器(K = 7)

圖 2.17 為 IEEE 802.11a 中的迴旋編碼器,暫存器個為 6,暫存器 內容值有 2

6

64 種可能,生成序列為 g

0

133

8

g 1

171

8

,而 Output Data A,Output Data B 為編碼器輸出。

根據 IEEE 802.11a,碼率可分成 1/2、2/3 和 3/4 三種碼率,使用何 種碼率需根據通道預估(channel estimation)決定。圖 2.18 與圖 2.19 為碼

(40)

利用高碼率傳送資料,利用此方法可減少傳送的冗長位元數目、維持 資料可靠度和增加資料傳送率;當通道干擾較大時,利用低碼率傳送 資料,雖然傳送較多冗長位元,但是在解碼時,能在通道狀況不佳條 件下降低解碼位元錯誤率。

以 IEEE 802.11a 實行的間空碼編碼器而言,碼率 2/3 與 3/4 的資 料,可先由碼率 1/2 的母碼編碼後,經過間空碼衍生得到,因此在接 收端解碼時,只需將碼率 2/3 或 3/4 的資料回復成 1/2 之母碼碼率,便 可使用 IEEE 802.11a 建議的維特比解碼器對三種碼率的資料解碼。

punctured coding(r = 3/4) Source Data

X

0

X

1

X

2

X

3

X

4

X

5

X

6

X

7

X

8

Encoded Data Stolen bit A

0

A

1

A

2

A

3

A

4

A

5

A

6

A

7

A

8

B

0

B

1

B

2

B

3

B

4

B

5

B

6

B

7

B

8

Bit Stolen Data

A

0

B

0

A

1

B

2

A

3

B

3

A

4

B

5

A

6

B

6

A

7

B

8

圖 2.18 碼率為 3 / 4 之間空碼的運作方法

(41)

punctured coding(r = 2/3) Source Data

X

0

X

1

X

2

X

3

X

4

X

5

Encoded Data Stolen bit A

0

A

1

A

2

A

3

A

4

A

5

B

0

B

1

B

2

B

3

B

4

B

5

Bit Stolen Data

A

0

B

0

A

1

A

2

B

2

A

3

A

4

B

4

A

5

圖 2.19 碼率為 2 / 3 之間空碼的運作方法

(42)

第三章 軟式決策量化位元數之維特比解碼器模擬 本章將利用 MATLAB 軟體對 IEEE 802.11a 維特比解碼器之軟式解 碼進行位元數對系統效能的影響。在加入硬體條件限制下,配合第四 章軟式決策量化位元數之維特比解碼器,分析維特比解碼器之效能,

做為實現維特比解碼器的參考。

3.1 MATLAB 模擬環境

由第二章可知,維特比解碼器截短長度

τ min

˜ 5.8 m 時,因為截短 而產生的錯誤,是可以忽略不計的,其中

m 為編碼暫存器長度。本篇

論文所使用之截短長度為 6m = 36,做為硬體實現的截短長度的參數 [12]。圖 3.1 為模擬環境架構圖,模擬環境是根據 IEEE 802.11a 撰寫 M-file,構成維特比解碼器模擬環境的所有方塊。編碼器的訊號源是利 用 MATLAB 軟體中的 rand 與 round 指令構成隨機數列產生器(random number generator)。BPSK 對映方塊則是根據圖 3.2 輸入與輸出的關係,

將編碼後的訊號做對映後輸出到通道方塊。因為模擬是針對維特比解 碼器的參數進行模擬,所以通道是考量 AWGN 通道,做為簡化的通道 模型來進行模擬與分析。解對映方塊的運作是將接收到的訊號量化成 軟式解碼之維特比解碼器所需之位元計值,圖 3.3 至圖 3.6 分別為一至 四位元量化的解對映輸入與輸出關係圖。量化的位元數越多,表示量 化後與接收之訊號誤差會越小,但是相對的硬體複雜度將會越大,因 此量化位元數的決定需考慮硬體複雜度和系統的效能。

(43)

圖 3.1 維特比解碼器模擬環境圖

圖 3.2 BPSK 的對映

Encoder BPSK

Mapping

Viterbi Decoder AWGN

Channel

XOR Bit error rate Channel

Model

BPSK Demapping Random

Number

Generator

(44)

圖 3.3 BPSK 之硬式解對映

圖 3.4 BPSK 之二位元軟式解對映

Input value Output value

10

01 1 2

-2 -1

00

11

(45)

圖 3.5 BPSK 之三位元軟式解對映

Input value Output value

100

0.5 1

-1 -0.5 101

-1.5

-2 1.5 2

000

001

010

011

110

111

(46)

3.2 軟式決策之量化位元數之結果

量化的位元數除了影響系統效能外,也關係硬體的複雜度,因此 利用圖 3.1 的模擬環境,模擬量化位元數對維特比解碼器效能的影響。

如前一章所介紹,資料回到維特比解碼器需恢復成母碼碼率的資料型 態,因此針對 BPSK 調變,碼率為 1/2 與 3/4 進行模擬與效能分析。

圖 3.7 至圖 3.9 分別是 BPSK 調變下,碼率為 1/2、2/3 與 3/4 在 AWGN 通道之軟式解碼量化位元數模擬的系統效能圖,Q_bit = 1 為硬 式解碼,Q_bit = 2、3、4 分為 2、3、4 位元而 Q_bit = inf 是沒有經過 量化的系統效能曲線。表 3.1 為圖 3.7、圖 3.8 和圖 3.9 中 2、3、4 及 無限位元之軟式解碼在 BER = 10

-3

對硬式解碼之碼增益(coding gain)。

綜合以上結果,3 與 4 位元皆可得到不錯之系統效能。在硬體實現方 面 4 位元比 3 位元的硬體複雜,是否增加硬體複雜度換取較佳的解碼 器效能,在第四章內容將會分析實現後的硬體複雜度和效能做評估與 比較。

(47)

圖 3.7 碼率為 1/2 之軟式解碼量化位元數模擬(BPSK over AWGN channel)

(48)

圖 3.9 碼率為 3/4 之軟式解碼量化位元數模擬(BPSK over AWGN channel)

表 3.1 BPSK 不同碼率之量化位元數對硬式解碼之碼增益(dB) Q-bit

code rate

3-bit 4-bit unquantized

r = 1/2 1.7 1.85 1.85

r = 2/3 1 1.2 1.3

r = 3/4 0.5 1.0 1.1

(49)

第四章 軟式決策維特比解碼器之實現與驗證

本章主要是實現與驗證符合 IEEE 802.11a 之維特比解碼器。我們使 用 VHDL 硬體描述語言完成維特比解碼器之電路設計,在邏輯偵錯 後,利用 Synplify Pro 軟體合成維特比解碼器與測設電路。以 Altera 公司的 Quartus Ⅱ軟體對合成後之電路進行模擬與驗證,最後用 Altera 公司 APEX 系列 EP20K1500EBC652-1X 可程式化邏輯陣列(FPGA)晶 片之發展板完成硬體實現。

4.1 維特比解碼器之硬體電路架構

圖 4.1 與圖 4.2 分別為維特比解碼器之電路符號與內部架構圖。其 中,輸入訊號 en 為維特比解碼器的致能訊號,clk 為 12 MHz 之時脈 訊號,輸入訊號 data0 ~ data5,為子載波調變符元(subcarrier symbol) 信號,l 為子載波調變符元之量化位元數。控制訊號 mod_type 選擇系 統之載波調變模式,mod_type = ”00” 、”01” 、”10” 與”11”,分別表 示子載波調變為 BPSK、QPSK、16-QAM 與 64-QAM。系統將提供 1/2 、 2/3 及 3/4 三種碼率,分別是由控制訊號 code_rate = ”01”、”10”與”11”

來選擇。時脈訊號 clk1 為解碼輸出之觸發時脈,依據系統之資料傳輸 速率提供 6、9、12、18、24、36、48 和 54 MHz 之時脈。表 4.1 為維 特比解碼電路輸入/輸出訊號功能描述,表 4.2 則是維特比解碼器時脈 速度與訊號對應表。根據第三章的模擬結果,3 與 4 位元之軟式維特

(50)

載波調變符元信號位元數之選擇。依據調變模式的不同,子載波調變 符元之訊號個數也不同。當 mod_type = ”00”、”01”、”10”與”11”時,

表示子載波調變分別為 BPSK、QPSK、16-QAM 與 64-QAM,因此分 別只使用 data0、data0 ~ data1、data0 ~ data3 與 data0 ~ data5,請參閱 表 4.2。

圖 4.1 維特比解碼器之電路符號

圖 4.2 維特比解碼器電路方塊連接

Viterbi

Decoder en

clk clk1

data5 data4 data3 data2 data1 data0 mod_type code_rate

out

l

2

l

l

l

l

l

2

(51)

表 4.1 維特比解碼電路輸入/輸出訊號功能描述

訊號名稱 輸入/輸出 功能描述

en 輸入

解碼器致能訊號:

當 en ’1’時,解碼器致能。

clk 輸入

系統時脈:

維特比解碼器從輸入端讀入資料之時 脈。系統時脈固定 12 MHz。

clk1 輸入

系統時脈 1:

解碼器解碼位元輸出時脈,共有 8 種系 統時脈,請參考表 4.2。

mod_type

輸入

調變型態訊號:

調變訊號有 4 種模式:

00 BPSK、01 = QPSK、10 = 16-QAM、

11 = 64-QAM。

code_rate 輸入

碼率訊號:

碼率訊號有 3 種模式:

01 = 1/2、10 = 2/3、11 = 3/4。

data5 (MSB)

~

data0 (LSB)

輸入

解碼輸入訊號:

根據不同的調變型態和碼率訊號,輸入 訊號有效值,請參考表 3.2。

out 輸出 解碼器輸出。

(52)

表 4.2 維特比解碼器時脈速度與訊號對應表

資料速率 訊號名稱

Data Rate(Mbps) 有效輸入

clk (MHz)

clk1 (MHz)

mod_type code rate

6 data0 12 6 00 (BPSK) 01 (1/2)

9 data0 12 9 00 (BPSK) 11 (3/4)

12 data0、data1 12 12 01 (QPSK) 01 (1/2)

18 data0、data1 12 18 01 (QPSK) 11 (3/4)

24

data0、data1、

data2、data3

12 24 10 (16-QAM) 01 (1/2)

36

data0、data1、

data2、data3

12 36 10 (16-QAM) 11 (3/4)

48

data0、data1、

data2、data3、

data4、data5

12 48 11 (64-QAM) 10 (2/3)

54

data0、data1、

data2、data3、

data4、data5

12 54 11 (64-QAM) 11 (3/4)

(53)

4.1.1 ZIU 與 BMU

在編碼器的部分,採用間空碼並根據碼率將編碼序列去除特定位 元,以達到更高的碼率。在解碼器部分,圖 4.3 為 Zero Input Unit(ZIU) 作用圖,主要是去除間空碼對編碼序列產生的作用,將資料回復碼率 為 1/2 的母碼碼率。電路是根據碼率在適當位置補 0 位元,將資料恢 復成母碼的碼率後,傳送給 BMU 方塊,並且產生適當信號讓 BMU 電 路對補插 0 位元不予計算。圖 4.4,ZIU 電路需要兩塊記憶方塊,當一 塊記憶方塊讀取時,另一塊記憶方塊則擔任寫入的工作。

圖 4.3 ZIU 作用圖

(54)

圖 4.4 ZIU 電路架構圖

在解碼器架構上,本篇論文是實現軟式解碼(soft-decision)維特比 解碼器,而軟式跟硬式解碼主要差別是在 BMU 電路部份。在訊號接 收時,以

l = 3 為例,量化電路將接收到之訊號量化成 000 ~ 111, 8

個量化位階 (Q = 8), 如圖 2.10,因此圖 4.5 中 BMU 方塊之輸入 Data A 及 Data B 的位元寬度為 3 位元。BMU 電路主要是計算分支路徑與 接收信號之距離差值,從 ZIU 輸出位元 Data A 、Data B 分別先計算 跟”000”和”111”的距離,再依據 4 種可能分支路徑組成 4 種分支計值分 別為 bm00、bm10、bm01 和 bm11。圖 4.7 為利用電路合成軟體 Synplify Pro 將 BMU 電路合成的 RTL(Register Transistor Level) view,主要是由 4 個加法器和多工器所構成。4 個加法器計算 4 種不同的分支計值,如 果 Data A 或 Data B 其中一個有補差 0 位元,分支計值則不通過加法 器,改由多工器之符合條件的路徑通過。

(55)

圖 4.5 軟式決策 BMU 電路架構圖

圖 4.6 軟式決策 BMU 電路方塊合成圖

(56)

4.1.2 ACSU 與 PMMU

在 ACSU 方塊部分主要是由 ACS cell 構成,ACS cell 主要的運算 可分成三個部分,如圖 4.7,ACS cell 分別計算進入每一狀態點的兩個 分支計值與其對應的前一時間之存活路徑計值相加,然後比較兩個路 徑計值大小,最後選擇計值比較小的分支成為生存路徑計值(survivor path metric),並輸出決策位元(decision bit)給 SMU 方塊。

圖 4.7 ACS cell 與正規化電路方塊圖

電路對於維特比解碼器路徑計值的大小只能以有限位元表示,當 計值溢位時,電路無法正確表示路徑計值的大小,會影響 ACS cell 的 大小判斷,因此適當的正規化路徑計值是必要的。圖 4.7 中,路徑計 值的正規化,我們採用所有 ACS cell 同步正規化,當所有 ACS cell 方 塊路徑計值大於 64 時,我們將全部路徑計值減 64,在電路實現時將 計值以二進位的位元表示法的第 7 個位元之’1’改變成’0’,便可實現將 全部計值減 64。

(57)

圖 4.8 路徑計值正規化的 ACS cell 電路合成圖

圖 4.8 為利用 Synplify Pro 合成的 ACS cell 電路,由 2 個加法器、

計值大小判斷與正規化電路構成,輸出決策位元與生存路徑計值。當 正規化訊號致能時,正規化電路對生存路徑計值正規化。正規化訊號 不致能時,生存路徑計值則直接輸出。因為正規化訊號是對前一個時 間點所有 ACS cell 存活路徑計值大小的判斷而產生,所以路徑計值的 正規化是在 ACS cell 完成存活路徑計值判斷之後,再完成正規化,以

l 3 為例,需 8 個位元表示路徑計值大小,避免正規化前生存路徑計

值溢位[13-15]。

對於 IEEE 802.11a 高達 54 Mbps 的位元速度,在實行 ACSU 方塊 部分,本篇論文採用第二章介紹過的全平行架構,如圖 4.9 中 64 個平 行的 ACS cell,每個 ACS cell 對應到柵狀圖上的狀態點,以期望符合

(58)

圖 4.9 利用 Synplify Pro 合成的 ACSU 方塊

Path Metric Memory Unit(PMMU)電路方塊主要功能是輸出前一個 時間之狀態點的路徑計值給ACS cell和儲存ACS cell計算後的路徑計 值供下一個時間之ACS cell運算使用。在PMMU方塊的實現,我們利用 64 × 1的記憶電路,輸出前一個時間點的路徑計值和儲存目前的路徑計 值,便可達成更新和儲存路徑計值的功能。

(59)

4.1.3 SMU

SMU 電路方塊主要是儲存 ACSU 所決定的最佳生存路徑並解碼,

如第二章我們所介紹的架構,本小節將介紹 Register Exchange 和 Trace-Back 詳細的實行電路[16-19]。

針對 Register Exchange 架構,我們採用 6 倍編碼器記憶體個數之 截短長度,即

L = 36,所以 Register Exchange 電路架構是由 64 個長度

為 36 位元之暫存器所構成,每一個長度為 36 位元之暫存器儲存到達 柵狀圖上每一個狀態點之消息序列,圖 4.10 中 j = 0, ..., 63,N 2

m

圖 4.10 Register Exchange 根據決策位元選擇和紀錄路徑

(60)

在實現 Trace-Back 電路架構時,我們採用 3-pointer even algorithm 架構,主要優點是讀取跟寫入資料只需要一個相同的時脈信號,且控 制 電 路 較 其 他 架 構 簡 單 , 但 是 缺 點 是 我 們 需 要 較 多 的 單 元 電 路 [16-19]。單元電路可分成記憶體部分和邏輯部分,由寬度 64,長度 18 的記憶體方塊和邏輯閘所組成,如圖 4.11 所示。記憶體部分主要是儲 存從 ACSU 方塊傳遞過來的決策位元值。而邏輯部分主要是運算追溯 (trace-back)的電路,是由暫存器和多工器之所組成。多工器的輸出是 由暫存器內容值控制,而暫存器和多工器輸出構成新的暫存器之內容 值,控制下一個時間點的多工器輸出。在 3-pointer even algorithm 架構 中我們需要 6 個單元電路,每個單元電路在時間區段不同所擔任的角 色也不同,如圖 4.12 中分別有 4 種狀態,如同我們第二章所提過的寫 入(write)、追溯(trace-back)和解碼(decode),還有等待(ideal)。單元電路 在等待狀態時,不做任何資料的改變。在寫入狀態時,記憶體部分儲 存從 ACSU 運算完的結果。在追溯狀態,則利用邏輯部分不斷地做追 溯動作更新暫存器內容值,並在特定時間點輸出追溯結果給別的單元 電路。在解碼狀態時除了不斷地追溯外,邏輯部分的多工器將同時輸 出解碼位元。經過 108 個時脈週期時,由第一個單元電路開始輸出第 一筆解碼資料,經過 18 個時脈週期後,第一個單元電路完成輸出 18 筆解碼位元,由第二個單元電路輸出解碼位元,如此依序,以 18 × 6 =

(61)

108,以 108 個時脈週期為一個週期。

圖 4.13 所示為實現 3-pointer even algorithm 的電路架構圖,因為以 3-pointer even algorithm 為架構之 Trace-Back 電路,解碼順序是先由單 元電路之後往前輸出解碼位元,跟編碼器輸入的資料順序不同,因此 我們需要一個先進後出電路(First In Last Out,FILO),改變解碼位元輸 出順序,如此 6 個單元電路,控制電路,輸出多工器,和先進後出暫 存器構成以 3-pointer even algorithm 架構的 Trace-Back 方塊電路。

圖 4.11 單元電路內的記憶和邏輯架構圖

(62)

圖 4.12 Trace-Back 3-pointer even 架構下各方塊狀態與時間關係

圖 4.13 3-pointer even 架構的元件和電路方塊連接圖

(63)

4.2 軟式決策維特比解碼器硬體實現驗證

完成維特比解碼器架構後,我們建立如圖 4.14 之測試環境對軟式 決策之維特比解碼器進行測試與驗證。維特比解碼器之測試環境,包 含了鎖相迴路、隨機數列產生器、編碼器、軟式位元轉換、訊號延遲、

訊號比較和錯誤計數器等電路。鎖相迴路(PLL)由 Altera 公司的 Quaturs

Ⅱ軟體之 Mega Function 產生,提供整個測試環境和維特比解碼器所需 的時脈。隨機數列產生器(random sequence generator),是利用 8 階 8 進位表示法為[435], [551], [747], [453], [545], [537], [703], [543]之 m 數 列產生多項式,產生隨機數列給編碼器。編碼器為第二章所介紹過符 合 IEEE 802.11a 規範的間空迴旋碼編碼器。編碼完的數列經過位元轉 換,以三位元量化軟式解碼為例,當輸入位元為 1 時,軟式位元轉換 電路(soft bit conversion)將位元轉換成”111”三個位元。當輸入位元為 0 時,則轉換成”000”,轉換後的位元成為軟式解碼維特比解碼器的輸 入。訊號比較是使用一個互斥及閘,比較延遲後的編碼器輸入與維特 比解碼器輸出訊號的差異,當有訊號相異時,錯誤位元計數器加 1,

所以由累加的錯誤位元計數器便可知位元錯誤的個數。

(64)

圖 4.14 軟式解碼維特比解碼器測試環境圖

圖 4.15 軟式解碼維特比解碼器測試環境之時序圖

(65)

測試環境完成後,利用 QuartusⅡ軟體模擬軟式解碼維特比解碼器 測試環境,在 Altera 公司 APEX 系列 EP20K1500EBC652-1X 可程式化 邏輯陣列(FPGA)晶片之時序與訊號結果,圖 4.15 為測試環境之時序 圖。

測試環境模擬完成後,下載到使用 EP20K1500EBC652-1X 晶片之 發展板,驗證軟式解碼維特比解碼器的功能。利用 Altera APEX 系列 所提供的 SignalTap 功能,以即時(real time)方式直接將 IC 內部或 IC 接腳值直接經由 MasterBlaster Communication Cable 或 ByteBlasterMV Download Cable 讀取到電腦的 QuartusⅡ軟體中,如圖 4.16 所示。優點 是不需要設計 IC 週邊電路與使用其他儀器來做驗證,即可立即驗證 IC 功能,缺點是在 FPGA 中需要一塊 ELA(Embedded Logic Analyzer)電 路,暫時存放想要觀察點的資料,也就是說使用 SignalTap 功能會佔用 Altera 一些 LE 與 ESB 資源。當所要觀察的 Channel(想要觀察的接腳 或內部節點)越多其所使用的 LE 越多。表 4.3 為不同量化位元數與不 同 SMU 架構對軟式解碼維特比解碼器之面積與速度驗證後的結果。在 表 4.3 中的面積是不包含繞線所占的面積,只考慮晶片中使用的 Logic Element(LE)與 Embedded System Block(ESB)轉換成邏輯閘數目(gate count)的結果[20]。以 SMU 中的 Register Exchange 架構而言,繞線會 使用相當大的晶片面積,但使用 Altera Quartus Ⅱ軟體無法評估繞線所 占晶片的面積。表 4.4 為 Register Exchange 架構與 Trace-Back 架構之 優缺點比較[16-19]。

(66)

圖 4.16 執行 SignalTap 的介面

表 4.3 不同量化位元數與 SMU 架構之面積與速度 Estimated

Bit and architecture

Area (gate count)

Speed (MHz)

3-bit soft decoder with register exchange 49488 38.83

4-bit soft decoder with register exchange 57564 38.6 3-bit soft decoder with trace-back 68228 38.6 4-bit soft decoder with trace-back 72056 38.3

(67)

表 4.4 Register Exchange 架構與 Trace-Back 架構之優缺點比較

架構 特點

Register Exchange 架構 Trace-Back 架構

優點

不需要回溯

控制電路比較簡單

最小的輸出訊號延遲週期

內部連線比較簡單 低功率消耗

比較小的面積

缺點

較大的繞線面積 功率消耗較大

需要回溯

控制電路比較複雜

比較長的輸出訊號延遲週期

(68)

第五章 結論

本論文完成軟式決策維特比解碼器在 FPGA 上的實現,並以 MATLAB 軟體建構一模擬環境,針對量化位元數對系統效能進行分 析。結果顯示 3 與 4 位元之軟式決策維特比解碼器皆可得到不錯之系 統效能。在解碼器的實現,考量硬體複雜度及功率消耗等因素,建議 以 Trace-Back 架構來實現適用於 WLAN 802.11a 之軟式決策維特比解 碼器。在硬體實現結果顯示,4 位元比 3 位元之軟式解碼,在硬體上 大多約 5% 之邏輯閘數,但效能提升了約 0.15dB,因此考量硬體複雜 度之條件下,本論文建議 IEEE 802.11a 之維特比解碼器使用量化位元 數為 4 位元之軟式決策維特比解碼器。

表 5.1 3-bit 與 4-bit 軟式決策維特比解碼器之效能比較表 效能

解碼器之量化位元數

對硬式解碼之碼增益 (dB)

面積 (gate count) 3-bit soft-decision Viterbi decoder 1.7 68228

4-bit soft-decision Viterbi decoder 1.85 72056

(69)

參 考 文 獻

[1] IEEE 802.11a,

IEEE standard for wireless LAN medium access control (MAC) and physical layer (PHY) specifications, supplement to standard 802.11 part II:

wireless LAN, New York, 1999.

[2] Richard van Nee and Ramjee Prasad, OFDM for wireless multimedia

communications, Boston: Artech House, 2000.

[3] Stephen B. Wicker,

Error control systems for digital communication and storage,

New Jersey: Prentice Hall, 1995.

[4] Irving S. Reed and Xuemin Chen, Error-control coding for data networks, Boston : Kluwer Academic Publishers, 1999.

[5] J. K. Omura, ”On the Viterbi decoding algorithm,” IEEE Transactions on

Information Theory, IT-115, pp. 177-179, Jan. 1969.

[6] A. J. Viterbi, “Convolutional codes and their performance in communication systems,” IEEE Transactions Communications, vol. COM-19, pp. 751-772, Oct.

1971.

[7] G. D. Forney, “Convolutional Codes II : Maximum likelihood decoding,” Inf.

Control, 25, pp. 222-226, July 1974.

[8] G. D. Forney, ”The Vitervi algorithm,” Proc. IEEE, vol. 61, pp. 268-278, Mar.

1973.

[9] F. Pollara and O. Collins, “Memory management in traceback Viterbi decoders,”

TAD Progress Report 42-99, Jet propulsion laboratory, Pasadena, California, Nov.

1989.

[10] R. Cypher and C.B. Shung, “Generalized trace back techniques for survivor

memory management in the Viterbi algorithm,” Global Telecommunications

Conference, pp. 1378-1322, Dec. 1990.

[11] G. Feygin and P.G. Gulak, “Architectural tradeoffs for survivor sequence memory

management in Viterbi decoders,”

IEEE Transactions on Communications, vol. 41.

March 1993.

[12] 陳秀如,“寬頻無線區域網路基頻傳收機之系統模擬與效能分析,"

中華大學

碩士論文

,July 2003.

[13] Byonghyo Shim, Sungmin Cho and Jung Chul Suh, “An improved VLSI

(70)

10 Conference, vol. 1, pp. 259-262, Sept. 1999.

[14] A. P. Hekstra, “An alternative to metric rescaling in Viterbi decoders,” IEEE

Transactions on Communications, vol. 37, pp. 1220-1222, Nov. 1989.

[15] C. B. Shung, P. H. Siegel, G. Ungerboeck, and H. K. Thapar, “VLSI architectures

for metric normalization in the Viterbi algorithm,” IEEE International Conference

on SUPERCOMM/ICC '90, pp. 1723-1728, 1990.

[16] H. -L. LOU, “Implementing the Viterbi algorithm,” IEEE Signal Processing

Magazine,

vol. 12,pp. 42-52, Sept. 1995.

[17] M. H. Chan, “IC design of an adaptive Viterbi decoder,” IEEE Transactions on

Consumer Electronics, vol. 42, pp. 52-61, Feb. 1996.

[18] C. M. Rader, “Memory management in a Viterbi decoder,” IEEE Transactions on

Communications, vol. 29, pp. 1399-1401, Sept. 1981.

[19] T.K Truong et al. “A VLSI design for a trace-back Viterbi decoder,” IEEE

Transactions on Communications, vol. 40, pp. 616-624, Mar. 1992.

[20] Altera Corporation, “AN 110: gate counting methodology for APEX 20K

devices,” Application note 110, ver. 1.01, Sep. 1999.

參考文獻

Outline

相關文件

在網路通訊產品中的 RJ-45 filter bank,因應未來市場也將面臨輕薄 短小化的需求,以配置在同樣體積之高速 RJ-45 連接器內。本論文在進行 RJ-45 filter

無線感測網路是個人區域網路中的一種應用,其中最常採用 Zigbee 無線通訊協 定做為主要架構。而 Zigbee 以 IEEE802.15.4 標準規範做為運用基礎,在下一小節將 會針對 IEEE

接下來我們將討論切換的機制,因為在我們假設的網路環境下,所以 sink 是保持在接收資料的狀態。網路中所有的感測點都將資料往 sink 端傳送,但是

MH 由 Foreign Agent 1 的管理範圍移到 Foreign Agent 2 的管理範圍,移動主機經由收 到 Foreign Agent 2 的伺服器廣播(Agent Advertisement;圖 2.2-2 STEP 1

高容 MLCC 主要是應用於筆記型電腦、手機、個人數位助理 器、無線網路等產品中,在這些終端產品市場的高速成長帶動 下,高容

渾沌動力學在過去半世紀已被學者廣為研究,但對分數階渾沌系 統及其應用之研究卻相當少。本篇論文主要研究分數階 Chen-Lee 電

IEEE 1451 智慧型感測器,代表了下一代感測器技術的發展方向,網路 化智慧感測器介面標準 IEEE 1451 的提出,將可解決由網路進行監控的能 力。相信,隨著

[22] Guillermo Gonzalez, Microwave Transistor Amplifier Analysis and Design: Chapter 4, Noise, Broadband, And High-Power Design Methods, New Jersey, Prentice Hall Inc,