第三章 SHDSL 接收器時脈復原之設計與 G994.1 之資料解碼(Data Decoder)
3.1 時脈復原之分類
在設計之前先來了解接收器如何做時脈復原,其通常由兩個部份組成,一是調整 時脈取樣時間部分,另一是偵測時脈誤差資訊部分,根據調整時脈取樣時間的修正方 式可分為三種:
1 類比方式
類比式接收器的方式是直接控制輸入訊號的取樣時間,其時脈將實際與傳送端達 成同步化,每當間隔一取樣時間便調整修正一次,因此接收器的處理速度要與輸入訊 號的符號率(Symbol rate)同步運行,由於是在連續性時間處理輸入的訊號,當在高速 傳輸時相對其接收器便須做更快的運算。
圖 3.1 類比式時脈復原圖
2 混合(類比/數位)方式
此種方式為上面的改良,相異之處在於接收器不在連續性時間處理輸入的訊號,
而是以數位的方法在連續性信號中將所需要的資訊取樣出來並只針對取樣點做運算,
藉由獲得時脈資訊實際去修正接收器的時脈,由於前端部分仍保有以類比信號去控制
時脈震盪頻率,因此稱為混合方式。
圖 3.2 混合式時脈復原圖
3 數位方式
不做時脈取樣時間的調整,接收器只依照一顆石英震盪器其震盪頻率保持固定 值,並且不一定與傳送端的時脈相同,其同步的方式憑著非同步的取樣點作處理計算 出時脈資訊,因為接收器的時脈始終保持在偏移的狀態下,實際上並沒有在做時脈調 整動作,而是間接由演算法的設計計算出正確的取樣值,而雖然是全數位化但此種方 式所產生的另一個問題是在此偏移時脈作取樣時,由於整個傳輸通道的頻率響應,頻 寬不足將影響時脈資訊的獲得,此部分我們將於如何產生光譜線作說明。
圖 3.3 數位式時脈復原圖
而依照取樣時脈誤差值的估算方式可分為兩類:
1. 無資訊輔助 NDA(Non-Data Aided)
在做時脈誤差偵測時刪去信號中有關資料相依的部份直接去估算時脈誤差,誤差 值的估算將與信號的組成方式無關,因此不需考慮相位誤差的問題,此法適用在 M-QAM 和 M-PSK 調變信號。
mTs i
kT
N M MT Ti= s, ∈
m M
k= /
圖 3.4 無資訊輔助方式
2. 資訊輔助 DA(Data Aided)
或稱做直接決策 DD(Decision Directed)接收端將取樣過後所得值經過決策判斷傳 輸的符號為何,用此判斷出來的結果去測試估算下一次取樣誤差,此法應用在當通道 等化器已補償相位誤差後,可增加決策判斷的正確率,此時再去估算取樣誤差。
mTs i
3.2 產生光譜線之時脈同步器(Spectral Line Generating Clock
Synchronizer)
線時脈回復法(Spectral-Line Timing Recovery)。若是期望值
r
(t)在鮑率產生一光譜線,我們可直接通過帶通濾波器把信號取出得頻率,否則我們只能得到在頻率為 0 光譜線,無法偵測出時脈資訊,當在T 取樣時間
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 -80
-60 -40 -20 0 20 40 60 80 100 120
Normalized Frequency (×π rad/sample)
Magnitude (dB)
Magnitude Response (dB)
Spectrual Line
圖 3.6(a) 產生光譜線(
α =
0.2)0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
-100 -80 -60 -40 -20 0 20 40 60 80 100
Normalized Frequency (×π rad/sample)
Magnitude (dB)
Magnitude Response (dB)
Spectrual Line
圖 3.6(b) 產生光譜線(
α =
1)3.3 SHDSL 時脈復原所提之架構
底下為針對 SHDSL 初始化時脈復原所提之架構圖,包含前置濾波器、時脈誤差 偵測器、鎖相迴路、G994.1 資料解譯和數位化重新取樣器,其各個區塊的功能將於各 小節提出說明。
Z
-1L↓
Z
-1Z
-1Conj
Im{•}
Loop Filter Gain
圖 3.7 SHDSL 時脈復原方塊圖
3.3.1 前置濾波器(Prefilter)
左圖可以等效成右圖,其傳輸方程式:
Normalized Frequency (×π rad/sample)
Magnitude (dB)
Magnitude Response (dB)
圖 3.8(a-1) 前置濾波器頻率響應(L=8)
3.3.2 時脈誤差偵測器(Timing Error Detector)
圖 3.8(b) 時脈誤差偵測器 (⋅)
f Bandpass Filter
Sinusoidal
上頁圖為接收端估算時脈誤差之架構圖,
r
(n)為調變信號s
(t)經由固定的取樣時間n Sinusoidal Rom table:
Sinusoidal Rom table所存的是正確的取樣時間T 時
w
(n)所應得到的值,包括同調 值與正交值(coherent value and quadrant value)兩個部份。
Rom table
) (
)
( n = K ⋅ e
j(4πfn(Ts+T)+ϕ)+ e
j(4πfn(Ts−T)+ϕ)q
(16)n 平均動差 (Moving average) 濾波器:
從上式
q
(n)可以看出,此時信號會有一接近低頻的訊號與近似二倍頻的訊號產 生,為了改善此一部分除了我們將原本帶通濾波器移至Rom Table再作,此時為 窄頻帶通濾波器,另外再加上設計一濾波器來消除抑制二倍頻的部份,當q
(n)經 過Moving average濾波器,才不會造成高頻部份產生震盪的現象。此濾波器之設 計為一單一極點方式實現,其參數設定將於第五章提出。然後再經過正規化 (normalize)使得m
(n
)=
1⋅ e
∠m(n)單位長度為一單位,
m ( n ) = e j ( 4 π fn ( T
s− T ) + ϕ )
(17)這 裡 我 們 將 假 設 當 取 樣 頻 率 誤 差 很 小 時
∠ m
(n) 為 極 小 值 , 此 時 取 )( ) ( )]
1 ( ) (
Im[
m n m
*n − ≈ ∠ m n = e n
,
e ( n ) ≈ 4 π f ⋅ ∆ T
,∆ T = T
s− T
(18) 以此來調整取樣時間誤差。3.3.3 鎖相迴路(Phase Lock Loop)
此區塊的作用在減緩時脈誤差值的收斂速度及到達穩態時其收斂區間的大 小,迴路濾波器的參數設計將於第五章介紹,不同迴路濾波器參數設定將影響整個收斂 的趨勢。增益(Gain)主要是調整還原整個時脈誤差偵測迴路所造成的總增益。
3.3.4 數位化重新取樣器之設計
3.3.4.1 重新取樣器之控制迴路(Timing Loop)
Interpolator
Interpolation
Filter hi Decimator
Timing Processor
( ) t
x
T
s( mT
s)
x y [ ( m
k+ u
k) T
s]
u
km
kT
s( ) kT
iy
圖 3.8(c):數位化重新取樣器
假設經過 channel 後輸出信號為
x
(t),T 為接收端固定時脈,
sx
(mT
s)是在固定的 取樣頻率1/T
s對x
(t)取樣,y
(kT
i)是將x
(mT
s)經過數位化重新取樣器轉變成為新的取 樣信號,將原本取樣頻率1/T
s轉變成1/T
i以期達到時脈恢復作用。假設 T 是傳送端真實的時脈,即接收端所要與之同步化的時脈,通常
T 不完全是T
s 值的整數倍,T / T
s為不可整除之無理數。同理T 是根據取樣信號經時脈誤差偵測裝置
i 演算而來,其目的在與時脈 T 同步化,{kT 必須要對映至接收端
i} {mT ,所以
s}T 與
sT 之
i 間的關係式
y
(kT
i)= Interp
[x
(mT
s)]= y
[(m
k+ u
k)T
s] (19)
i s
k
kT T
m =
int / …整數部份k s i
k
kT T m
u =
/−
…小數部份3.3.4.2 交織插補方式(Interpolation Method)
到近似值,理論上越精確則使用 interpolation filer 的階數就要越高。當重新取樣時,
t = kT
i,T 將與傳送端以時脈 T 的輸出信號同步化,如前述所提
iInterpolation filter 若是有限脈衝響應
I 、
1I 為固定的整數值,將 Interpolation filter 以
2 多項式的方式在數位離散時間表示在計算第 k 個取樣值時,N 代表 Interpolation filter 的階數, d
m(i)表示 Interpolation filter 裡的係數,以 Lagrange interpolator 為例,各多項式之係數:u
下圖為 3-階 Lagrange Interpolation filter 架構,用 Farrow Structure 的方式實現。
圖 3.8(c-1) Lagrange Interpolation filter 架構圖
接著說明在做重新取樣時,如何計算決定
m 、
ku 值,
k理 論 上 當
T 固 定 時 , 即 是 時 間 間 隔 相 同 , 我 們 所 要 重 新 選 取 的 取 樣 點
i1 0 ≤ d ≤ N −
圖 3.9 G994.1 資料解碼功能圖
由於
A 是以鮑率
n 1/T
經過 cosine 以頻率 f 調變傳送出去,為了簡化起見假設取樣所 得的信號:
r ( n ) = A
n⋅ cos( 2 π fnT
i+ ϕ
i)
(26))]
4 cos(
1 [ 2 / 1 )]
2 [cos(
)
( = π + ϕ
2= ⋅ + π + ϕ
⇒ w n fnT
i ifnT
i (27)由上式我們只要比對 rom table 中 cosine table 或 sine table 其中一組即可,在此以 cosine table 說明:
cos ine : c ( n ) = cos( 4 π fnT )
(28) 以圖形舉例說明之0 5 10 15 20 25 30
0 5 10 15 20 25 30
0 10 20 30 40 50 60 -1
-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
c(n) w(n) r(n)
圖 3.10(c) Cosine 表、平方器輸出與取樣輸出三者曲線圖
最後 18+25=43 即是我們所該取樣的相位誤差點。
實際在模擬時並不需要每取樣一次便計算所有的值,那將會增加運算量,只須每 一次取樣時將 rom table 做 cyclic sift 一位做運算,或是每間隔一段取樣時間總結平均,
視使用者的需求而定。
第四章 定點運算之實現
4.1.1 插補端之實現(Interpolation Output Implementation)
y
[n]是由x
[n]經過數位化方式重新取樣得來,本次模擬方式x
[n]量化成 14-bits 來表 示輸入信號,所以經過運算後y
[n]保持以 14-bits 來實現。d
[n]由一簡易的低通濾波器] (overflow),但實際由於輸入的信號為 DPSK 調變為弦波輸入,我們將會有一收斂區 間。所以
y
[n]以 QT(14,13)
Pr
efilter → d
[n]以 QT(14,13)。4.1.2 平方器之實現(Squarer Output Implementation)
因為輸入信號
d
[n]為小於 1 的小數,經過平方器後為了維持原 14-bits 的量化,所舉例來說,假設十進制 150010等於二進制 000101110111002換算成十進制數字等 於 2−4
+
2−6+
2−7+
2−8+
2−10+
2−11+
2−12=
0.09155273437510 , 經 過 平 方 器 原 本 (0.09155273437510)2 = 0.0083819031753910變成225000010=10001001010101000100002,因為了保持 14-bits 位準以及小數點的位置往左 位移 14 個,所以結果變成 13710=000000100010012,此數實際換算成十進制小數數字 等於2−7
+
2−11+
2−14=
0.0083618164062510,最後結果變如下圖所示。由於最大值不超 過 20010,雖然在作演算時以 14-bits 表示之以方便說明,但其理論上只需用到 8-bits 以上輸出在作運算,一般 Truncate 是低階位元,但此時 Truncate 並不是低階位元而是 除去高階的位元組。由上述所舉的例子,值域在
±
2000的數值經過平方器後其最大值不超過 200,由 於量化區間減少將會造成後來時脈迴路難有精確的解析度可供偵測,所以藉由前一級 輸出的放大,增加可偵測時脈迴路之誤差值。以同樣的量化區間來表示
sq
[n]信號,輸入值變大 2 倍經過平方器後輸出值自然就 變大成為 4 倍數。接下來將以
sq
[n]為我們的輸入信號提供給下一級作時脈迴路測試,為了能看出調 整時脈迴路增益所影響的趨勢,首先要做的模擬是保持各個信號的完整性,用最多的 位元表示各輸出信號模擬整個時脈迴路。接著以此為對照組接續調整各端的增益,亦 即降低量化區間以期能用較少的位元來實現,探討最後收歛所得出時脈誤差值e
[n]的 範圍。4.1.3 弦波乘法端之實現(Sinusoidal Multiplier Output Implementation)
同理如前一小節所用的推演方式實現,要注意的是 Rom Table 用的是 15-bits 與
]
]
比較。
一單位,使信號值整個還原成原始的比例,將最大值為’1’最小值為’-1’,在此時我們
少的位元實現,雖然我們是將各端分開來實現,但實際必須考慮整個時脈迴路傳輸方
0 2 4 6
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 x 105 -1
-0.5 0 0.5
1x 105
Iteration
QT(18,17)
mi[n]
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
x 105 -1
-0.5 0 0.5
1x 105
Iteration
QT(18,17)
mq[n]
圖 4.9b-2
m
i[n
],m
q[n
],K
1/10、0.0078K 、
2 0 K .2 30 0.5 1 1.5 2 2.5 3 3.5 4 4.5
x 105 -1000
-500 0 500
Iteration
QT(18,17)
me[n]
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
x 105 -15000
-10000 -5000 0 5000
Iteration
QT(16,15)
e[n]
圖 4.9b-3
m
e[n
],e
[n
],K
1/10、0.0078K 、
2 0 K .2 3圖 4.9c-1 至 4.9c-3 同樣保持
I
[n
],Q
[n
]砍去 1-bits,將K 降低 10 倍所得之結果,
10 0.5 1 1.5 2 2.5 3 3.5 4 4.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 x 105 -5000
0 5000
Iteration
QT(15,14)
mq[n]
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
x 105 -5000
0 5000
Iteration
QT(15,14)
mi[n]
圖 4.9d-2
m
i[n
],m
q[n
],K
1/100、0.0078K
2/4、0.2K
3/100 0.5 1 1.5 2 2.5 3 3.5 4 4.5
x 105 -4000
-2000 0 2000
Iteration
QT(17,16)
me[n]
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
x 105 -6000
-4000 -2000 0 2000
Iteration
QT(16,15)
e[n]
圖 4.9d-3
m
e[n
],e
[n
],K
1/100、0.0078K
2/4、0.2K
3/10圖 4.9e-1 至 4.9e-3 為
I
[n
],Q
[n
]增加 1-bit,將K 降為三倍、
2K 降低十倍,減少 1-bit
30 0.5 1 1.5 2 2.5 3 3.5 4 4.5 x 105 -4000
-2000 0 2000
Iteration
QT(17,16)
me[n]
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
x 105 -3000
-2000 -1000 0
Iteration
QT(16,15)
e[n]
圖 4.9e-3
m
e[n
],e
[n
],K
1/100、0.0078K
2/3、0.2K
3/10第五章 模擬結果與檢討
此章在說明同步化初始時脈於接收端補償相消的結果,在沒有做通道等化器和消
除回響的情況下,以及模擬環境在較差的通道和較低訊雜比,將前一章定點實現方式 來做時脈復原測試模擬,最後能在可允許的誤差範圍內鎖住傳輸端的震盪頻率且將調 變的資料解譯出來。
5.1 通道模型與模擬參數(Channel Model and Simulation Parameter)
5.1.1 通道模型
下圖是用來模擬測試 SHDSL 信號傳輸的通道,不同的通道模型會影響時脈恢復 的時間以及收斂震盪區間,從頻率響應可知由於橋接式(bridge tap)的效應所造成的衰 減幅度大,藉此通道當最壞的情況下來做時脈恢復模擬測試,以期能達到一定的精確 度。
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-200 -180 -160 -140 -120 -100 -80 -60 -40 -20 0
Normalized Frequency (×π rad/sample)
Magnitude (dB)
Magnitude Response (dB) - Channel Model
5.1.2 帶通濾波器(Moving Average Filter)
5.1.4 迴路濾波器(Loop Filter)
從頻率響應圖可看出此濾波器與之前平均動差濾波器的有類似相同的作用,所不 同的是此濾波器主要在減少信號的跳動(jitter),會造成跳動的原因有訊號雜訊的干擾 或是定點運算的量化誤差,由於這樣的跳動不斷的在迴路裡發生,所以需要一個迴路 濾波器降低系統本身產生的雜訊。此濾波器的傳輸方程式如下
( )
3 111 9 . 0 1
−
−
−
⋅ −
= z
K z z
H
,K
3∈
常數當輸入信號有跳動時,經過此濾波的動作輸出值較不易隨跳動的產生而起伏擺動。
0 20 40 60 80 100 120 140
0 10 20 30 40 50 60 70
Output Input
圖 5.3 迴路濾波器作用圖
5.2 結果與檢討
本 節 的 結 果 主 要 在 探 討 其 收 斂 的 速 度 和 區 間 , 由 第 三 章 演 算 法 得 知
( ) n f T
e ≈
4π ⋅ ∆
,要得到 T∆
首先要乘以1/4π f
的常數,再者因整個系統傳輸的增益表 現,所以e
(n)最後要乘上1/K
,藉由調整 K 值以得出我們所要的時脈誤差值。在同樣的情況下當 K 值越小, T