第二章 馬可夫鏈-蒙地卡羅方法
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(j−1),x3(j−1),....x(dj−1))做取樣產生x1( )j
對 f x( |2 x1( )j ,x3(j−1),....xd(j−1))做取樣產生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 =d2− Q 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 = LS− LS−
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)解碼器。在此,我們並不會做軟式資訊的消 除,而是將這些資訊送到下一級的軟進-軟出前向式錯誤更正碼解碼器中,利用