趙旭東,於 輝,劉榮毅
(桂林電子科技大學(xué) 信息與通信學(xué)院,廣西 桂林 541004)
同步是通信系統(tǒng)中一個(gè)重要的實(shí)際問題。通信系統(tǒng)能否有效地、可靠地工作,很大程度上依賴于有無良好的同步系統(tǒng)。在數(shù)字通信中,消息是由一串連續(xù)的信號(hào)碼元傳遞的。這些碼元通常都有相同的持續(xù)時(shí)間。接收端接收這個(gè)碼元序列時(shí),一般均需知道每個(gè)碼元的起止時(shí)刻,從而對(duì)碼元進(jìn)行判決。在接收端產(chǎn)生與接收碼元的重復(fù)頻率和相位一致的定時(shí)脈沖序列的過程稱為碼元同步或位同步、位定時(shí),而稱這個(gè)定時(shí)脈沖序列為碼元同步脈沖或位同步脈沖[1]。
Gardner算法是位同步算法的一種,應(yīng)用廣泛,實(shí)現(xiàn)方法很多,傳統(tǒng)方法是用DSP或Quartus,這里給出一種新的實(shí)現(xiàn)方式,即用System Generator實(shí)現(xiàn)。System Generator for DSP是業(yè)內(nèi)領(lǐng)先的高級(jí)系統(tǒng)級(jí)FPGA開發(fā)工具,借助FPGA設(shè)計(jì)高性能DSP系統(tǒng),其強(qiáng)大的提取功能可利用最先進(jìn)的FPGA來開發(fā)高度并行的系統(tǒng),并和Simulink實(shí)現(xiàn)無縫鏈接,快速建模并自動(dòng)生成代碼。System Generator最大特點(diǎn)是利用Simulink建模和仿真環(huán)境實(shí)現(xiàn)FPGA設(shè)計(jì),而無需了解和使用RTL級(jí)硬件語言,讓DSP設(shè)計(jì)者能夠發(fā)揮基于FPGA的DSP的最大性能和靈活性,并縮短整個(gè)設(shè)計(jì)的周期[2]。
實(shí)現(xiàn)位同步的核心問題是如何提取位同步誤差信息。常用算法有:米勒-穆勒算法、早遲門算法和Gardner算法。這些算法各有各的優(yōu)點(diǎn)和缺點(diǎn),其中,米勒-穆勒算法在計(jì)算位同步誤差所需的采樣點(diǎn)最少,每個(gè)符號(hào)只需1個(gè)采樣點(diǎn),但是載波相位對(duì)其影響較大,所以在位同步之前必須完成載波同步;早遲門算法要求每個(gè)符號(hào)不少于3個(gè)采樣點(diǎn),這樣在高速率數(shù)據(jù)傳輸?shù)臈l件下很難實(shí)現(xiàn);Gardner算法要求每個(gè)符號(hào)至少有2個(gè)采樣點(diǎn),并且在進(jìn)行位同步提取時(shí)對(duì)載波相位不敏感,因而使用廣泛。以下給出Gardner算法原理。
Gardner算法給出的位同步鑒相誤差值u(k)為:
式(1)用 x(k)表示接收機(jī)對(duì)某采樣時(shí)刻碼元的采樣值,由于該采樣時(shí)刻與理想的采樣時(shí)刻有一定的偏差,所以x(k)并不一定是眼圖張開最大時(shí)所對(duì)應(yīng)的采樣值,x(k-1)為前一個(gè)碼元的采樣值,x(k-1/2)為采樣時(shí)刻在x(k)和x(k-1)中間位置對(duì)應(yīng)的采樣值。
通過圖1理解Gardner算法位同步鑒相誤差式(1)。當(dāng)相鄰碼元之間發(fā)生跳變時(shí),且位同步已經(jīng)鎖定,如圖1(a)所示,則有x(k-1/2)=0,所以u(píng)(k)=0;若位同步信號(hào)滯后于理想時(shí)鐘,如圖1(b)所示,則有u(k)>0;若位同步信號(hào)滯后于理想時(shí)鐘,如圖1(c)所示,則有u(k)<0;另外,當(dāng)相鄰碼元之間沒有發(fā)生跳變時(shí),x(k)-x(k-1)=0,則u(k)=0,此時(shí)位同步信號(hào)可能存在超前或滯后,但算法無法進(jìn)行判斷。這一點(diǎn)可以從碼元的特征加以解釋,因?yàn)橹挥性诖a元發(fā)生跳變的時(shí)刻才包含位同步信息,也才有可能加以利用。
圖1 Gardner算法示意圖
綜上可知,Gardner算法可以檢測(cè)出位同步信號(hào)的超前或滯后現(xiàn)象,將其經(jīng)過環(huán)路濾波器濾去高頻分量后,可用于控制模塊,產(chǎn)生位同步信號(hào)及內(nèi)插濾波器的偏移參數(shù)。在本文中運(yùn)用正交的方法來實(shí)現(xiàn)Gardner算法,因此將式(1)轉(zhuǎn)化成以下形式[3]:
式中,I,Q分別表示相互正交的信號(hào)。
根據(jù)式(2)可以得到Gardner算法同步環(huán)路的基本結(jié)構(gòu),如圖2所示。
圖2 Gardner算法同步環(huán)路結(jié)構(gòu)圖
在System Generator的基礎(chǔ)上進(jìn)行建模,而System Generator有一個(gè)和Simulink庫(kù)相同,且功能強(qiáng)大的庫(kù),該包括很多以被引用在Simulink模型的模塊,從而達(dá)到設(shè)計(jì)要求。
同步誤差檢測(cè)模塊的建模主要是在Gardener算法基礎(chǔ)上,根據(jù)式(2),并運(yùn)用System Generator庫(kù)中的模塊而建立的。所建的同步誤差檢測(cè)模塊的模型圖如圖3所示。在此模塊中加了一個(gè)使能輸入端口,此端口和位同步信號(hào)相連,因此該模塊的輸出信號(hào)的速率與位同步信號(hào)的頻率相同。
圖3 同步檢測(cè)模塊模型
環(huán)路濾波器的作用是對(duì)定時(shí)誤差檢測(cè)模塊輸出的定時(shí)誤差進(jìn)行濾波,利用定時(shí)誤差產(chǎn)生數(shù)控振蕩器的步長(zhǎng)更新量,輸出給后面定時(shí)同步控制器模塊使用。環(huán)路濾波器采用有源比例積分濾波器,其傳遞函數(shù)的離散域形式為:
可以得出環(huán)路濾波器的時(shí)域-遞歸方程為:
式中,參數(shù)k1,k2由整個(gè)定時(shí)環(huán)路確定,其值設(shè)定見文獻(xiàn)[4]。
內(nèi)插器的功能是當(dāng)位同步信號(hào)到來時(shí),輸出原信號(hào)的采樣值。如果當(dāng)位同步信號(hào)到來時(shí)正處于數(shù)據(jù)流中2個(gè)數(shù)據(jù)的中間時(shí)刻,事實(shí)上有很大幾率同步信號(hào)位于2個(gè)數(shù)據(jù)中間時(shí)刻,這時(shí)內(nèi)插器就根據(jù)相鄰的多個(gè)采樣值估算出該時(shí)刻的采樣值。該設(shè)計(jì)采用帶參數(shù)的4點(diǎn)分段擬合內(nèi)插的Parab算法,實(shí)現(xiàn)結(jié)構(gòu)是Farrow結(jié)構(gòu)[5]。內(nèi)插濾波器的模型如圖4所示。
控制器模塊是由數(shù)控振蕩器NCO和分?jǐn)?shù)間隔計(jì)數(shù)器組成的,數(shù)控振蕩器NCO的功能是根據(jù)環(huán)路濾波器的輸出來調(diào)節(jié)輸出的位同步信號(hào),分?jǐn)?shù)間隔計(jì)數(shù)器是計(jì)算內(nèi)插濾波器所需的分?jǐn)?shù)間隔,即小數(shù)偏移量。數(shù)控振蕩器是一個(gè)遞減的計(jì)數(shù)器,其差分方程[6]:
式中,η(m)是數(shù)控振蕩器的寄存器變量,w(m)是數(shù)控振蕩器控制字,控制字w(m)是一個(gè)正的小數(shù),該控制數(shù)是根據(jù)環(huán)路濾波器的輸出確定的。
w(m)和環(huán)路濾波器的輸出datain之間關(guān)系:
內(nèi)插濾波器所需的分?jǐn)?shù)間隔為μk:
System Generator庫(kù)中Black Box模塊可以內(nèi)嵌硬件描述語言,比如VHDL和Verilog,嵌入后就能像其他模塊一樣使用。由上述分析可看到控制器模塊功能較復(fù)雜,運(yùn)用System Generator的基本模塊建模實(shí)現(xiàn)控制器模塊較困難,且效率不高,因此根據(jù)控制器模塊原理,運(yùn)用硬件描述語言Verilog編寫程序,然后把該程序內(nèi)嵌進(jìn)Black Box模塊中,最終實(shí)現(xiàn)控制器模塊。
為了驗(yàn)證并實(shí)現(xiàn)該系統(tǒng),現(xiàn)在運(yùn)用小型SDR開發(fā)平臺(tái)SFF SDR DP作為目標(biāo)板,同時(shí)選用π/4-DQPSK作為信源實(shí)現(xiàn)并驗(yàn)證該系統(tǒng)。根據(jù)π/4-DQPSK信號(hào)的調(diào)制原理,運(yùn)用System Generator基本模塊實(shí)現(xiàn)對(duì)二進(jìn)制序列的π/4-DQPSK基帶調(diào)制,產(chǎn)生兩路相互正交π/4-DQPSK基帶信號(hào),此兩路經(jīng)過滾降系數(shù)為0.5的升余弦成型濾波后,并加入均值為0的高斯白噪聲,輸出到Gardner算法的位同步模塊,最終輸出經(jīng)過同步的π/4-DQPSK信號(hào)。
搭建好系統(tǒng)后,在System Generator模塊中compilation type為Hardware Co-Simulation即與硬件協(xié)同仿真,然后點(diǎn)擊Generator產(chǎn)生硬件協(xié)同仿真模塊,將此模塊與未經(jīng)同步的π/4-DQPSK信號(hào)相連,連接好JTAG口,啟動(dòng)硬件協(xié)同仿真。運(yùn)用ChipScop觀測(cè)各點(diǎn)波形,圖5是定時(shí)誤差檢測(cè)模塊輸出的收斂曲線,從圖5中看到經(jīng)約700個(gè)符號(hào)周期后,整個(gè)環(huán)路到達(dá)穩(wěn)定狀態(tài),實(shí)現(xiàn)位同步。而圖6是同步前后π/4-DQPSK信號(hào)的星座圖。從圖6中看出Gardner算法能夠正確恢復(fù)位同步信號(hào)。
圖5 定時(shí)誤差收斂曲線
圖6 同步前后的星座圖
提出了基于System Generator的Gardner算法的建模與實(shí)現(xiàn),在此過程中運(yùn)用System Generator的圖形化設(shè)計(jì)方法,實(shí)現(xiàn)了Gardner算法的建模與仿真,免去HDL的復(fù)雜編程,提高了效率,縮短開發(fā)時(shí)間,同時(shí)也驗(yàn)證Gardner算法的正確性,Gardner算法每個(gè)碼元周期只需2個(gè)采樣點(diǎn)就能提取出位同步信號(hào),這使得Gardner算法得到廣泛應(yīng)用。
[1]黃松.π/4-DQPSK基帶差分技術(shù)研究及數(shù)據(jù)傳輸實(shí)現(xiàn)[D].四川:電子科技大學(xué),2006.
[2]田耘,徐文波.Xilinx FPGA開發(fā)使用教程[M].北京:清華大學(xué)出版社.,2008:11.
[3]Gardner F M.A BPSK/QPSK timing-error detector for sampled receivers[J].Commun.,1986(41): 423-429.
[4]Shayan Y R,Le-Ngoc T.All digital phase-loccked loop:concept,design and applications[J].IEEE Proceedings,1989.
[5]Erup L,Gardner F M,Harris R A.Interpolation in digital modems-Part II:implementation and performance[J].Commun,1993(41):998-1008.
[6]Gardner F M.Interpolation in digital modems-Part I:Fundamentals[J].IEEE Trans.,1993(41):502-508.