摘 要: 采用了基于Farrow結(jié)構(gòu)的內(nèi)插" title="內(nèi)插">內(nèi)插濾波器,同時使用Garnder的定時誤差計算方法為內(nèi)插濾波器提供插值" title="插值">插值相位,。通過MATLAB仿真,,表明這種內(nèi)插濾波器可以很好地解決定時同步問題,,并在現(xiàn)場可編程芯片F(xiàn)PGA上實現(xiàn)了該算法,,使得數(shù)字解調(diào)的硬件實現(xiàn)具有很好的移植性和靈活性,。
關(guān)鍵詞: 內(nèi)插濾波器(Interpolator) 定時誤差 插值相位 SIMULINK FPGA實現(xiàn)
在數(shù)字接收系統(tǒng)中,,為了正確恢復出發(fā)送端的符號信息,,必須做到定時同步,。傳統(tǒng)的接收機采用同步采樣,利用定時誤差信號調(diào)整接收端采樣時鐘的相位,,使之與符號同步,;而全數(shù)字" title="全數(shù)字">全數(shù)字接收機采用固定的采樣頻率,,一般來說,采樣時鐘和符號時鐘相互獨立,,這種情況下可以用數(shù)字信號處理的方法實現(xiàn)對符號速率的鎖定,。
隨著數(shù)字信號處理器和可編程邏輯芯片速度的提高,利用這些芯片完成定時同步算法" title="定時同步算法">定時同步算法,,為接收機的設計帶來了很大的靈活性,。本文對全數(shù)字接收機中的定時同步算法進行了分析,將內(nèi)插濾波與誤差檢測算法相結(jié)合,,提出了一種簡單有效的算法,,同時利用MATLAB進行了仿真。實驗結(jié)果表明該算法確實具有簡單高效的特點,。最后,,給出了FPGA實現(xiàn)該算法的方法。
1 定時同步算法
根據(jù)F M.Gardner 的結(jié)論[1],,內(nèi)插恢復電路可以從采樣序列中恢復出最佳采樣點的值,。圖1給出了基于內(nèi)插濾波的定時同步結(jié)構(gòu)框圖。
設帶限連續(xù)信號x(t),,符號周期為T,。在滿足Nyquist定理的條件下,以TS為間隔采樣得x(mTS),,通常T/TS為無理數(shù),。經(jīng)內(nèi)插恢復環(huán)路后,輸出y(kTi),,其中Ti=T/K,K為小整數(shù),。對y(kTi)進行K倍抽取,即得到與發(fā)送端符號同步的最佳采樣值序列z(nT),。
內(nèi)插恢復電路包括一個內(nèi)插濾波器和內(nèi)插濾波控制電路,。內(nèi)插濾波器(Interpolator)從采樣序列中恢復出最佳采樣值,是整個定時同步技術(shù)的關(guān)鍵,??刂齐娐钒ǘ〞r誤差檢測電路(TED)、環(huán)路濾波器(LPF)和數(shù)控振蕩器(NCO),,向內(nèi)插濾波器提供插值相位和插值輸出時各個信號的權(quán)值。下面簡單介紹內(nèi)插恢復電路的各個部分,。
1.1內(nèi)插濾波器
設內(nèi)插濾波器沖激響應的連續(xù)形式為hI(t),,采樣信號x(mTS)經(jīng)過內(nèi)插器" title="內(nèi)插器">內(nèi)插器,輸出
其中μk為插值相位,,滿足μk∈[0,1),,mk為插值抽取的位置,,將式(2)改寫成
(4)式即定時同步內(nèi)插的基本公式。
理想內(nèi)插器的沖激響應為si函數(shù),,因此
可以看出,,內(nèi)插器實質(zhì)就是一個時變的濾波器,各級系數(shù)的變化與輸入的μk有關(guān),。理想內(nèi)插器是不可實現(xiàn)的,,但是由于只需恢復出最佳采樣點的信號值而不是完全恢復出原信號x(t),因此可以采用其它線性相位的可實現(xiàn)內(nèi)插器,,去逼近理想內(nèi)插器的頻譜特性,。通常采用基于Lagrange多項式的內(nèi)插方法,即濾波器可以寫成系數(shù)為μk的多項式:
那么,,輸出為
M為多項式的階數(shù),,2N-1為濾波器的階數(shù)?;诙囗検降膬?nèi)插濾波器可用Farrow結(jié)構(gòu)實現(xiàn),如圖2所示,。
這種濾波器實現(xiàn)起來很簡單,使用較低的階數(shù)(N=3,,M=2)就能獲得較好的頻譜性能,。表1給出了Farrow濾波器的各階系數(shù)。
1.2 定時誤差檢測(TED)
根據(jù)Garnder的定時誤差檢測算法[2],一個符號只需要兩個采樣信號就可以得到定時誤差,,并且可以在兩個采樣點之一的位置恢復出最佳采樣信號值,。定時誤差計算的表達式為:
其中n為數(shù)據(jù)符號的標號,ε(n)表示第n個符號的定時誤差,,τ為實際采樣位置距離最佳采樣位置的偏移,,y(tn)為第n個符號最佳采樣值。
定時誤差算法解釋如下:相鄰的兩個符號值y(tn-1),、y(tn)不相同的情況下,,y(tn-1/2+τ)的平均值如果為零,則不存在定時誤差,;如果不為零,,則可以用y(tn-1/2+τ)的數(shù)值代表定時誤差的大小。但是y(tn-1/2+τ)并不能指示誤差調(diào)整的方向,,因此用[y(tn+τ)-y(tn-1+τ)]來表示誤差調(diào)整方向,,二者的乘積即為定時誤差信號。如果y(tn-1),、y(tn)兩個符號值相同,,則[y(tn+τ)-y(tn-1+τ)]為零,使得y(tn-1/2+τ)的值被屏蔽了,,在這種情況下是不能提取誤差信號的,。根據(jù)Garnder算法可以構(gòu)造出定時誤差提取的實現(xiàn)結(jié)構(gòu)如圖3,。
1.3 環(huán)路濾波器(LPF)和數(shù)控振蕩器(NCO)
定時誤差信號通過低通環(huán)路濾波器(LPF)濾波后,控制數(shù)控振蕩器(NCO)工作,。這兩部分的實現(xiàn)結(jié)構(gòu)如圖4,。
LPF采用二階濾波器,包含比例路徑和積分路徑,,這兩條路徑分別可以跟蹤相位誤差和頻率誤差,。通過控制比例增益k1和積分增益k2,可以調(diào)整環(huán)路的帶寬和收斂速度,。NCO是一個相位累加器,,對輸入的相位誤差進行累加,為內(nèi)插濾波器提供插值相位,。
?
2 數(shù)字解調(diào)系統(tǒng)的定時同步仿真
本文對一個全數(shù)字BPSK解調(diào)系統(tǒng)進行了MATLAB仿真,,旨在驗證上述定時同步算法。首先,,利用SIMULINK搭建了整個接收系統(tǒng),,包括AD轉(zhuǎn)換、載波同步,、定時同步,、匹配濾波和判決;其次,,對輸入信號進行了模擬,,模擬的輸入信號為中頻10.7MHz、帶寬1.5MHz的BPSK已調(diào)信號,,符號速率為660kbps,。對此信號帶通采樣,采樣頻率為符號速率的5倍即3.3Mbps,。由于上述定時同步算法要求一個符號有兩個采樣信號,,故載波同步恢復成基帶信號后,調(diào)整采樣速率使之成為符號速率的2倍,,再進行定時同步,、匹配濾波和判決輸出。
圖5給出了定時同步模塊中TED的輸出ε,、LPF的輸出e和NCO的輸出μ的仿真結(jié)果,。可以看到,,大約100個符號后,,μ趨于一穩(wěn)定值,定時環(huán)路鎖定同步。
在這種定時結(jié)構(gòu)下,,對100,000個隨機符號進行數(shù)次仿真,,實現(xiàn)的BPSK接收系統(tǒng)在輸入信噪比Eb/N0=12.5dB情況下,,平均能夠達到10-6的誤碼性能。事實上,,基于內(nèi)插濾波的定時算法不僅適用于BPSK接收系統(tǒng),,只要修改定時誤差的計算式[2],不難將它推廣到nQPSK,、nQAM等其它解調(diào)系統(tǒng),。
3 FPGA實現(xiàn)
3.1 從SIMULINK仿真到FPGA實現(xiàn)
利用SIMULINK搭建BPSK解調(diào)系統(tǒng),主要目的是確定定時同步的結(jié)構(gòu),、仿真定時算法的性能,,同時也為下一步的設計——用現(xiàn)場可編程芯片(FPGA)實現(xiàn)該算法,提供了簡單有效的方法,。由于SIMULINK仿真的電路已經(jīng)做到寄存器級,,各部分的電路主要由乘法器、加/減法器,、鎖存器和移位寄存器等組成,,便于向FPGA的設計輸入方法轉(zhuǎn)換。事實上,,一些公司已經(jīng)開發(fā)出第三方軟件,,如Altera開發(fā)的DSP Builder,可以嵌入在MATLAB軟件中,,直接完成從MATLAB的設計到FPGA實現(xiàn)的轉(zhuǎn)換,,縮短了設計周期。
3.2 FPGA實現(xiàn)結(jié)構(gòu)
圖6給出了FPGA實現(xiàn)整個BPSK中頻數(shù)字解調(diào)系統(tǒng)的結(jié)構(gòu)圖,。其中,,實線框內(nèi)為定時同步相關(guān)電路。
對輸入的時鐘信號(5fsymbol)進行5分頻和2.5分頻,,可以得到符號鐘(fsymbol)和2倍符號鐘(2fsymbol),,提供給各模塊。
由于FPGA只能處理有限精度的數(shù)據(jù),,可以通過SIMULINK定點仿真來選取合適的數(shù)據(jù)位寬和精度,,即保證系統(tǒng)性能,又節(jié)省資源,。在設計中采用了10位帶符號數(shù)作為主要數(shù)據(jù)類型,,對TED、NCO、LPF這些數(shù)據(jù)精度要求高的模塊則采用16位帶符號數(shù),。電路的設計可以盡量簡化,,如內(nèi)插濾波器的級數(shù)為N=3、M=2時,,就可以有較好的內(nèi)插效果,,不需要采用更高階數(shù)的濾波器。利用ISE6.2開發(fā)環(huán)境中的綜合工具XST,,對定時同步的設計進行行為級和RTL級綜合,,得到各部分資源占用情況,如表2,。
乘數(shù)為常數(shù)的乘法,,如Interpolator和LPF中的部分乘法運算,在實現(xiàn)過程中是轉(zhuǎn)化成移位和加減運算的,,大大節(jié)省了硬件資源,。
本文討論了一種基于Farrow結(jié)構(gòu)的內(nèi)插濾波器,其利用Garnder的定時誤差計算方法,,經(jīng)環(huán)路濾波提取誤差信號,,為內(nèi)插濾波器提供插值相位。仿真結(jié)果表明該算法具有良好的性能和較低的復雜度,。同時,,給出了FPGA硬件實現(xiàn),為全數(shù)字解調(diào)算法的實現(xiàn)提供了一種簡單有效的解決方案,。
參考文獻
1 Gardner, F.M. Interpolation in digital modems. I.Fundamentals,Communications, IEEE Transactions on,1993,;41(3):501~507
2 Gardner, F.M., A BPSK/QPSK Timing-Error Detector for Sampled Receivers; Communications, IEEE Transactions on [legacy, pre-1988], 1986;34(5):423~429
3 H. Meyr, M. Moeneclaey, S. A. Fechtel, Digital Communi-cation Receivers- Synchronization, Channel Estimation, and Signal Processing, John Wiley & Sons, 1998
4 Ki Hyuk Park, Dae Kyo Shin, Jun Sung Lee, Sunwoo, M.H., A QPSK/16 QAM receiver chip for LMDS application; ASICs,2000.AP-ASIC 2000.Proceedings of the Second IEEE Asia Pacific Conference on 28-30 Aug.2000:207~210