• 沒有找到結果。

第二章 馬可夫鏈-蒙地卡羅方法

2.2 權重取樣

這樣的積分方法我們稱之為權重取樣( Importance Sampling )。

2.3 馬可夫鏈

在介紹Metropolis-Hastings演算法與Gibbs sampler之前,先介紹一下馬可夫鏈 的定義及其性質。定義X 代表在時間 t 變數t x的值(state),所有變數x的可能值則 形成一個集合,稱之為值域(state space)。欲描述一個馬可夫鏈( Markov Chain)可 以用其轉移機率(transition probabilities)來加以描述,列式如下 的時候,值s 的機率可以用Chapman-Kolomogrov equation來得到,如下所示: i

1 1 將其寫成矩陣的形式來分析。定義機率轉移矩陣( probability transition matrix ) P

,其第i 列第 j 行的元素P(i, j)代表了由值 i 到值 j 的機率,則

的出現。馬可夫鏈是穩定的充分條件可以寫成細微平衡方程式( detailed balance

2.4 Metropolis-Hastings Algorithm

在計算蒙地卡羅積分的時候,有一個很重要的議題就是「如何由複雜的機率 分佈獲得取樣點」,而這也是馬可夫鍊-蒙地卡羅方法所要解決的最重要的問題。

實際上,在20世紀中葉提出的Metropolis-Hasings algorithm ( Metropolis and Ulam 1949, Metropolis et al. 1953, Hastings 1970),目的就是為了解決這個棘手的問題。

由前人的研究[3]可知,一個馬可夫鏈的平衡機率π*(.)可以由下式表示

定義如下

( ) ( , ) ( , ) min{1, }

( ) ( , ) y p y x x y x p x y α π

= π (2.12) 茲將Metropolis-Hastings演算法整理如下

1.由任意可能的值x(0)出發,滿足p x( (0)) 0> 。

2.j=1:N,由q x( ( )j ,.)產生 y 及由一個均勻分配(Uniform Distribution)產生一個 隨機變數u

3.如果u≤α(x( )j , )y ,則x(j+1)= y 4.若不符合則x(j+1) =x( )j

接下來我們以圖5來說明M-H演算法

Y1

Y2

Y3

X(1)=Y1

X(2)=Y1

X(3)=Y3

u<α

u>α

u<α

X

(0)

圖 5 馬可夫鏈的取樣變化過程

圖5 中Y 代表由1 q X( (0),.)所取樣的取樣點,而拒絕此取樣點的機率為

1 1 0

2.5 The Gibbs Sampler

Gibbs sampler是由Geman在1984年所提出,原意是用來解決影像處理的問

第二步: 令j=1 Direct sampling from f(x)

圖6 取樣點數 500 點的機率分佈圖,其中 =2,α β = ,n=16,sample size=500 4 此外,當所需要取樣的變數超過兩個時,Gibbs sampler 一樣可以使用。假設 隨機變數有[ , ,... ]x x1 2 x ,並令其聯合機率密度函數(Joint Probability Density d Function)為 f x x( , ,... )1 2 xd = f( )x 。則我們將前面兩個變數的 Gibbs sampler 演算 法修改如下:

第一步:隨機產生一個 [x1(0),x2(0),...xd(0)] 第二步: 令 j=1

第三步:對 f x x( |1 2(j1),x3(j1),....x(dj1))做取樣產生x1( )j

f x( |2 x1( )j ,x3(j1),....xd(j1))做取樣產生x2( )j

#

f x( d |x2( )j ,x3( )j ,....xd( )j1)做取樣產生xd( )j 之後迴圈執行到 j= 需要的點數為止。

接下來,我們在此總結Gibbs sampler 的優點如下:

1.不需要複雜的積分。

2.取樣機率分佈 q 可以任意選取。

3.不需要複雜的運算。

Gibbs sampler 的缺點:

1. q 的選擇。

2.起始值的選擇。

3.通常需要一段時間才能收斂。

第三章 軟式輸出維特比解碼理論(SOVA)

為了更增進系統的效能,降低錯誤率,在現代的通訊系統中,都會使用錯誤 更正技術,以對抗雜訊,增加通道的容量,其中最常被採用的手段就是錯誤更正 碼(Forward Error Control Code)。錯誤更正碼即在我們所欲傳送的位元當中,加入 一些預先設計好的多餘資訊,使得在接收端我們可以利用此多餘資訊將信號還原 回來,這個過程我們稱為通道編碼(Channel Coding)。通道編碼的方式可以分為兩 種,一種是區塊碼 (Block Code),另一種則是摺積碼(Convolutional Code)。

在此處我們將專注於討論摺積碼。摺積碼最早由維特比(Andrew J. Viterbi)所提 出,其主要概念是利用維特比理論(Viterbi Algorithm)來達成錯誤更正的目的。維 特比理論[11]是由維特比在1967年所提出,其理論基礎在於利用格狀圖(Trellis Diagram)來搜尋所有可能的路徑並試著找出最有可能的那一條。藉由比較路徑所 代表的輸入位元與接收到信號間的漢明距離(Hamming Distance)或是尤拉距離 (Euclidean Distance),距離最小者,機率最大,也因此可以得出我們所需要的解。

此外,根據此種方法得出來的解為最大概似解(Maximum Likelihood Solution)。

3.1 迴旋碼(Convolutional Code)

在 傳 送 端 我 們 利 用 簡 單 的 移 位 暫 存 器 (Shift Register) 以 及 二 位 元 加 法 器 (Exclusive Or) 來進行摺積碼的編碼,以一個(5 ,7 ) 的編碼器為例: 8 8

Register 1 Register 2

Output 1

Output 2 Input

圖 7 一個(5,7)的迴旋碼編碼器

如上圖所示,每一個位元送入這個編碼器會得到兩個位元的輸出,也因此其編碼 效率(Code Rate)為1/2。其中(5 ,7 ) 代表編碼多項式(Generator Polynomial),當其以8 8 二進位方式(1012,111 解讀時,可以描述哪些位移暫存器會輸出其內存值到二位2) 元加法器進行運算。假設一個輸入的序列為0,1,0,1,1,1,0,0,1,0,1,0,0,0,1 ,則其輸2 出序列可以簡單地得出為00 ,11, 10, 00, 01, 10, 01, 11, 11, 10, 00, 10, 11, 00, 11 。2 底下我們將輸入,輸出的關係列成一張表

輸出

暫存器內存 輸入 = 0: 輸入= 1:

00 00 11

01 11 01

10 01 10

11 10 01

表格 1 迴旋積分碼編碼器輸入輸出關係圖

一般而言,如果原始資料的結尾不是00的話,在編碼時我們會在結尾多加上 兩個位元00,,其用途在於將暫存器的狀態歸零。此種位元我們稱其為尾端位元 (tail bit)。

3.2 維特比理論(Viterbi Algorithm)

迴旋碼(Convolutional Code)的解碼端使用的是維特比理論[11]來進行解碼的 動作,而最常用來說明解碼過程的圖稱之為格狀圖(Trellis Diagram)。茲以上例為 例,我們可以畫出其格狀圖為

00

01

10

11

0/00

1/11

0/11

1/00

0/01

1/10

0/10

1/01 0/00

1/11

0/01

1/10

……

圖 8 (5,7)摺積碼之格狀圖

圖8中四個狀態(State)代表當時的暫存器狀態,而虛線代表輸出為0的路徑(Path),

實線代表輸出為1的分支。再更仔細地來看某一個特定區間的所有分支是如何轉 換其狀態,就可以更清楚的了解維特比演算法,如下圖所示:

00

01

10

11

0/00

1/11

0/11

1/00

0/01

1/10

0/10

1/01

圖 9 格狀圖某一區間放大圖

根據我們對於接收信號的處理,可以將維特比演算法分為硬式維特比演算法 (Hard Decision Viterbi Algorithm)與軟式維特比演算法(Soft Decision Viterbi

Algorithm)。硬式維特比演算法在剛接受到信號時會先做硬式決策(Hard Decision)

,即所收到的信號大於0即判斷成+1,小於0則判斷成-1,之後再算其漢明距離

。相對地,軟式維特比演算法並不會針對所收到的信號做任何處理,所運算的是 其尤拉距離。舉例來說,假設在t=0 ~t= 之間 ,所收到的信號為 ( 0.8, 0.8)1 + − , 對硬式維特比演算法而言,會將其判定為( 1, 1)+ − ,而其與由state 00→state 00這 個分支的路徑距離(Path Metric)可得為 (1 ( 1))− − 2 + − − −(( 1) ( 1))2 = 。同樣的,對2

軟式維特比演算法而言,其距離為 (0.8 ( 1))− − 2+ −( 0.8 ( 1))− − 2 ≅1.811。當有兩 個分支同時到達同一個狀態(State)時,比較兩分支的大小,取其小者並記錄之。

當格狀圖走到底時,我們可以藉由之前的紀錄得到一條距離最小的路徑,此路徑 稱之為存活路徑(Survivor Path)。此外,存活路徑所記錄的最小距離值,我們稱之

為分支距離(Branch Metric)。值得注意的是,分支距離表示的是由起始點到觀察點 的距離和,而路徑距離(Path metric)則表示某兩個觀察點間的距離。

3.3 軟式輸出維特比理論(Soft Output Viterbi Algorithm)

軟式輸出維特比理論(SOVA)是在1989年由Hagenauer[13]所提出,SOVA與前 面所提到的軟式決策維特比演算法(Soft Decision Viterbi Algorithm)的差別在於:

1. 順向與逆向的路徑距離計算。

2. SOVA解碼器之輸出為解碼後位元的後驗機率的LLR值(A Posteriori LLR)。

為了等一下的說明,在這邊要先引入一個數學的觀念—Log Likelihood Ratio(LLR)

之事後機率分佈為 值(Reliablity Value),且只跟信號雜訊比(Signal to Noise Ratio, SNR)有關。又根據貝 式定理,存在p u( | )k y = p y u( | ) ( )k p uk 這樣的關係,帶入式(3.1)可以導出事前機 率與後驗機率的關係為

( | )k ( )k ( | )k

L u y =L u +L y u (3.4)

其中,L u( )k 對應式(3.1),因此項通常為事前已知的機率,故又被稱為事前資訊 (A Prior Information)或是本質資訊(Intrinsic Information);L y u( | )k 為事後機率的比 值,又常被稱作外部資訊(Extrinsic Information) ;p u( | )k y 一般被稱做後驗機率(A Posteriori Probability),因此L u( | )k y 常被稱為後驗資訊(A Posteriori Information)。

接下來,為了簡化,我們定義一個系統,此系統使用一個碼率 (Code Rate) 為1/N的編碼,且每一個端點(node)只有兩條分支會同時抵達,在經過一段時間δ 後,這段時間必須足夠長以便所有可能的存活路徑會合為一條。ν 代表的是暫存 器的個數,同時狀態個數也可以由S = 來求出。如下圖所示 2ν

圖10 SOVA 示意圖[摘錄自 reference 13]

N 為信號雜訊比(Signal to Noise Ratio)。

由這樣的系統我們可以得到,選擇第 m 個路徑的機率為

^

s Accumulated metrice value

δ

1 1

第四章 球狀解碼

一個最簡單的方法就是嘗試Λ 中每個可能的解 X 直到找到滿足上式的最小解為

高;如果選的太小,則球內可能不存在可能解。

接下來我們令Z Q Y 以及= 1* d'2 =d2Q Y ,則式(4.7)可以被改寫成為 *2

圖 12 一個可能的樹狀圖結構 [摘錄自 reference 15]

圖 12 中,左邊的 K 代表我們解到信號的第 K 個維度,而圓圈中的數字代表 的是x 有幾個可能的解(以本圖為例,一個 QPSK 的系統其解之最多可能有四個)。 K

4.2 複數球狀解碼

在 4.1 節中所描述的,為考慮實數系統下之球狀解碼。然而,實數系統僅能 運用在二相位鍵移(Binary Phase Shift Keying)調變上,當我們想進一步提升傳輸速 率時,勢必得使用更複雜的條變,例如四相位鍵移(Quadrature Phase Shift Keying)。

其差別在於式(4.3)中的A 、X 與X 都是複數。有兩種方法可以解決這樣的問題;^ 第一種是將A 、 X 與X 分成實數的部分與虛數的部分,如此這兩個部分都可以^ 被視為獨立的實數系統。我們將式子(4.3)改寫如下

(4.15)

其中

~ ~ ~ ~ ~ ~

arg min( )T ( )

ML = LSLS

X X X A X X

~

相鍵移的星座圖(Constellation),r 為形成此星座圖之半徑,為一個信號(Symbol)c 所代表的符元(bit)數,如下兩圖所示:

圖 13 8PSK 複數信號搜尋半徑[摘錄自 reference 17]

圖 14 16QAM 複數信號搜尋半徑圖[摘錄自 reference 17]

4.3 表列式球狀解碼(List Sphere Decoding)

表列式球狀解碼是前述之球狀解碼的一種變形,當我們採用表列式球狀解碼

時,解碼器會產生一個表,其內容為所有滿足式(4.1)條件的可能解X 。若我們欲 將球狀解碼修正為表列式球狀解碼,我們需要實行兩個步驟:

1. 每找完一個維度不要將半徑更新,即式(4.12)在表列式球狀解碼中並不會被 執行。如此可以避免我們遺漏了某些可能的解。

2. 表所預定的空間大小為 L。若是 L 未滿則將可能解存入;若是已經沒有空間,

則將所儲存的可能解中距離所接收到的信號最遠的那一個解丟棄,並將新的可能 解存入。

圖 15 表列式球狀解碼與傳統球狀解碼之半徑比較圖

[摘錄自 reference 15]

由上圖可以很清楚地解釋表列式球狀解碼與球狀解碼的不同。圖中圓心到 A1 代表的是表列式球狀解碼的半徑,而圓心到 A2 代表的是球狀解碼的半徑。由 圖中可以很明顯地知道,C1 以及 C2 是落在表列式球狀解碼的可能解範圍中,若 是單純的球狀解碼則會將此兩個解排除掉。C3 則是對兩種方式而言都會是可能 解。

第五章 渦輪式解碼器(Turbo Decoder)

5.1 使用馬可夫鏈-蒙地卡羅方法的渦輪式解碼器

在這一章中,我們所要描述一個軟式信號決策(Soft Decision)的系統,並且 說明前幾章所提到的內容如何實做一個軟進-軟出(Soft-in Soft-out)的系統。欲說 明 一 個 這 樣 的 過 程 , 我 們 先 定 義 我 們 所 採 用 的 多 輸 入- 多 輸 出 (Multi-Input Multi-Output)的通道模型。茲列如下:

= +

y Hd n (5.1)

其中,y 代表我們所收到的信號,矩陣大小為Mx1;H 是一個 MxN 的通道矩陣,

其中的每一個元素都是複數高斯分佈(Complex Gaussian)所形成的隨機變數;d為 欲傳送的信號,矩陣大小為 Nx1;n 代表的是一個 Mx1 的複數高斯雜訊。圖 16 可以用來說明整個解碼的過程。

圖 16 渦輪式解碼器示意圖 [摘錄自 reference5]

圖16 中λ1、λ2分別代表軟進-軟出多使用者偵測器(Soft-in Soft-out Multi-user detector)以及軟進-軟出前向式錯誤更正碼解碼器(Soft-in Soft-out Forward Error Correction Decoder)的軟資訊 (Soft Output)輸出,而λ1e、λ2e則代表了相對應的外 部資訊(Extrinsic Information)。傳統上,軟進-軟出多使用者偵測器會先將軟式資訊 (Soft Information)用來做軟式消除(Soft Canceling),例如 V-BLAST 方法,並且在 後面的解碼器使用最小平方誤差(Minimum Mean Square Error,MMSE)或是最大概 似解(Maximum Likelihood solution,ML)解碼器。在此,我們並不會做軟式資訊的消 除,而是將這些資訊送到下一級的軟進-軟出前向式錯誤更正碼解碼器中,利用

相關文件