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