基于FPGA的通用位同步器設計方案
本文主要是先闡述傳統Gardner算法的原理,然后給出改進(jìn)后的設計和FPGA實(shí)現方法,最后對結果進(jìn)行仿真和分析,證明該設計方案的正確、可行性。
本文引用地址:http://dyxdggzs.com/article/201710/367233.htm0 引言
數字通信中,位同步性能直接影響接收機的好壞,是通信技術(shù)研究的重點(diǎn)和熱點(diǎn)問(wèn)題。通信系統中,接收端產(chǎn)生與發(fā)送基帶信號速率相同,相位與最佳判決時(shí)刻一致的定時(shí)脈沖序列,該過(guò)程即稱(chēng)為位同步。常見(jiàn)的位同步方法包括濾波法和鑒相法。濾波法對接收波形進(jìn)行變換,使之含有位同步信息,再通過(guò)窄帶濾波器濾出,缺點(diǎn)是只適用于窄帶信號。最為常用的位同步方法是鑒相法,包括鎖相法和內插法兩種。鎖相法采用傳統鎖相環(huán),需要不斷調整本地時(shí)鐘的頻率和相位,不適合寬速率范圍的基帶碼元同步。而內插法則利用數字信號的內插原理,通過(guò)計算直接得到最佳判決點(diǎn)的值和相位。
Gardner算法即是基于內插法的原理,通過(guò)定時(shí)環(huán)路調整內插計算的參數,從而跟蹤和鎖定位同步信號,該算法的優(yōu)點(diǎn)在于不需要改變本地采樣時(shí)鐘,可以適應較寬速率范圍內的基帶信號,因而具有傳統方法不可替代的優(yōu)勢。Gardner算法的實(shí)現方法,為算法的應用提供了基礎。Farrow結構非常適合實(shí)現Gardner算法的核心,即內插濾波器部分,其優(yōu)點(diǎn)是資源占用較少,且濾波器系數實(shí)時(shí)計算,便于內插參數調整。定時(shí)誤差檢測,但在定時(shí)誤差檢測時(shí)需要信號中存在判定信息,并且對載波相位偏差敏感。不足進(jìn)行了改進(jìn),提出了GA-TED(Gardner TIming Error DetecTIon)算法,其優(yōu)點(diǎn)是不需要預知判定信息,且獨立于載波同步,并且適合FPGA 實(shí)現。改進(jìn)的Gardner 算法,并將其應用于M-PSK 系統。提高了Gardner 算法的抗自噪聲能力,即降低了對本地時(shí)鐘的要求。
本文基于FPGA 平臺并采用Gardner 算法設計,其中,內插濾波器采用Farrow 結構,定時(shí)誤差檢測采用GA-TED算法。同時(shí)對傳統Gardner算法結構進(jìn)行了改進(jìn),使環(huán)路濾波器和NCO的參數可由外部控制器設置,以適應不同速率的基帶碼元,實(shí)現通用的位同步器的設計方案。此外,本設計方案還對FPGA 代碼進(jìn)行了優(yōu)化,節省了大量硬件資源。最后進(jìn)行了仿真和分析,給出了仿真結果,證實(shí)了該方案的可行性。
1 傳統Gardner 算法與改進(jìn)
1.1 傳統Gardner算法基本原理
傳統Gardner算法結構如圖1所示。
在圖1中,輸入的連續時(shí)間信號x(t) 碼元周期為T(mén),頻帶受限。在滿(mǎn)足奈奎斯特定理的條件下,接收端采用獨立時(shí)鐘對x(t) 進(jìn)行采樣。內插濾波器計算出內插值y(k),送至定時(shí)環(huán)路進(jìn)行誤差反饋和參數調整,并與控制器輸出的位同步脈沖BS一起送往解調器的抽樣判決器。
定時(shí)環(huán)路包含定時(shí)誤差檢測、環(huán)路濾波器和控制器。定時(shí)誤差檢測提取插值時(shí)刻和最佳判決時(shí)刻的誤差;該誤差經(jīng)環(huán)路濾波器濾除高頻噪聲后送給控制器;控制器計算插值時(shí)刻(即為位同步信號的2倍頻)和誤差間隔。插值時(shí)刻和誤差間隔用于調整內插濾波器的系數,使插值時(shí)刻盡可能與最佳判決點(diǎn)同相,最終實(shí)現位同步信號的提取。
1.2 改進(jìn)的Gardner算法結構
從上節可以看出,傳統Gardner算法無(wú)法滿(mǎn)足較寬速率范圍基帶信號的位同步要求。為實(shí)現該要求,本設計在FPGA 平臺的基礎上,對算法實(shí)現結構進(jìn)行了改進(jìn),改進(jìn)結構如圖2所示。
圖2中,內插濾波器采用Farrow結構的FIR 濾波器實(shí)現,濾波器系數實(shí)時(shí)計算;定時(shí)誤差檢測采用獨立于載波且采樣點(diǎn)較少的GA-TED 算法;環(huán)路濾波器、內部控制器可由外部控制器設置參數,基帶碼元速率變化時(shí),相應參數可以隨之變化。因此,本設計可以滿(mǎn)足位同步器的通用性要求。
該同步器工作過(guò)程如下:外部控制器根據基帶碼元速率設置相應參數,通過(guò)外部控制器接口將控制、地址和數據信號分別送往分頻器、環(huán)路濾波器和內部控制器。時(shí)鐘電路分別提供采樣時(shí)鐘和FPGA 時(shí)鐘,FPGA工作時(shí)鐘在片內通過(guò)分頻器產(chǎn)生所需頻率的時(shí)鐘,供FPGA 各模塊使用。輸入連續時(shí)間信號x(t) 經(jīng)由獨立時(shí)鐘控制的ADC 進(jìn)行采樣,轉換為8 位數字信號送至FPGA 內,符號化后變?yōu)橛蟹枖底中蛄?,送入內插濾波器模塊。內插濾波器根據輸入信號的采樣值和內部控制器給出的參數μk,在每個(gè)插值時(shí)刻kTI 計算出最佳判決點(diǎn)的內插值y(kTI)。定時(shí)誤差檢測計算出誤差μτ (n),輸出至環(huán)路濾波器。環(huán)路濾波器依據當前的參數設定,濾除噪聲并將誤差信息送給內部控制器。內部控制器以NCO為核心,根據處理后的誤差信息和設定的頻率字參數調整插值時(shí)刻kTi,使之盡可能接近最佳判決時(shí)刻,并輸出位同步脈沖BS,同時(shí)計算出誤差間隔μk 送給內插濾波器,進(jìn)行內插值計算,最終完成定時(shí)信息的恢復。
2 FPGA設計
2.1 整體結構設計
根據圖2的算法結構,FPGA設計采用模塊化方式,整體結構的頂層圖如圖3所示。
從圖3可以看到,該設計包含分頻器(DIV_FRE)、符號化(SYM)、內插濾波器(INTERPOLATION)、定時(shí)誤差檢測(TED)、環(huán)路濾波器(LPF)、內部控制器(INTER_CTL)和外部控制器接口的時(shí)序電路(EXTER_CTL)共7個(gè)模塊。其中,分頻器由片外晶振提供時(shí)鐘輸入,分頻后為片內其他模塊提供相應時(shí)鐘。其中碼元時(shí)鐘的分頻系數可由外部控制器通過(guò)接口進(jìn)行設置。符號化是將A/D采樣產(chǎn)生的無(wú)符號數轉換為有符號數,以便后續模塊進(jìn)行帶符號的運算。
外部控制器接口的時(shí)序電路將外部控制器送來(lái)的控制信號(ALE和RD)、地址信號(P2.0、P2.1)和數據信號(P0口)、轉換為FPGA 內分頻器、環(huán)路濾波器和NCO的使能信號和參數,實(shí)現對位同步器各參數的設置。
分頻器、符號化和外部控制器接口模塊實(shí)現較為簡(jiǎn)單,不再贅述。而內插濾波器、定時(shí)誤差檢測、環(huán)路濾波器和內部控制器的實(shí)現較為復雜,且本設計通過(guò)采用相應算法和改進(jìn)結構,實(shí)現了位同步器的通用性。本文將詳細闡述這些模塊的設計。
2.2 模塊詳細設計
2.2.1 內插濾波器設計
內插濾波器是完成算法的核心,它根據內插參數實(shí)時(shí)計算最佳判決點(diǎn)的內插值,即:
式中:mk 為內插濾波器基點(diǎn)索引,決定輸入序列中哪些采樣點(diǎn)參與運算,它由插值時(shí)刻kTi 確定;μk 為誤差間隔,決定了內插濾波器的沖激響應系數[1].kTi 和μk 的信息由內部控制器反饋回來(lái)。
本設計的內插濾波器采用基于4 點(diǎn)分段拋物線(xiàn)多項式的Farrow結構實(shí)現。將式(1)變換為拉格朗日多項式,即令:
根據式(2)和(3),內插濾波器程序實(shí)現結構如圖4所示。
從圖4可以看到,該結構由1個(gè)移位器、5個(gè)觸發(fā)器、 8個(gè)相加器、2個(gè)乘法器組成,比直接型FIR節省10個(gè)乘法器、4個(gè)相加器的資源。其中,除以2的運算采用數據移位實(shí)現,避免使用除法器。輸入的8位數據 x,計算后得到10位的內插值y 輸出。由于內部所有寄存器經(jīng)計算后,均采用最小位數,有效地減少了Logic Elements資源的占用。
2.2.2 定時(shí)誤差檢測設計
定時(shí)誤差檢測程序采用獨立于載波相位偏差的GA-TED算法。該算法每個(gè)符號周期只需要兩個(gè)插值,每個(gè)碼元周期輸出一個(gè)誤差信號μτ (n) ,即:
其中,y(n) 表示第n 個(gè)碼元選通時(shí)刻的內插值,前后兩個(gè)內插值的插值代表誤差方向;y(n - 1 2) 表示第 n 個(gè)和第n - 1 個(gè)碼元的中間時(shí)刻內插值,代表誤差大小。
FPGA實(shí)現時(shí),為避免乘法運算,采用y(n) 和y(n - 1)的符號來(lái)代替實(shí)際值[8],即采用式(5)計算誤差信息:
根據式(5)進(jìn)行程序設計,誤差的正負方向判斷采用case 語(yǔ)句,當y(n) 和y(n - 1) 的符號位分別為“0”和“1”時(shí),y(n - 1 2)的符號位不變;當符號位分別為“1”和“0”時(shí),y(n - 1 2) 的符號位取反;當符號位為“0”“0”或“1”“1”時(shí),令輸出的μτ (n) = 0.TED程序在1 Ti 的時(shí)鐘控制下進(jìn)行運算,最終得到29位誤差數據,并以1 T 的速率即碼元速率輸出至環(huán)路濾波器電路。
2.2.3 環(huán)路濾波器設計
本文對Gardner算法中的環(huán)路濾波器進(jìn)行了改進(jìn),根據通用位同步器的要求,采用二階數字濾波器,并且開(kāi)放濾波器參數(C1,C2 ) 和使能(c_en)端口,當碼元速率變化時(shí),通過(guò)外部控制器來(lái)改變參數,實(shí)現濾波器的通用性。濾波器結構如圖5所示。
從圖5可以看到,濾波器的輸出為:
式中:Ko Kd 為環(huán)路增益;ζ 為阻尼系數,取ζ =0.707;T 為采樣時(shí)間間隔,即相位調整間隔;ωn 為無(wú)阻尼振蕩頻率。
為減少資源占用,環(huán)路濾波器中的乘法運算均采用移位方式實(shí)現,處理后的誤差信息送給內部控制器。
2.2.4 內部控制器設計
內部控制器根據定時(shí)誤差信息,調整插值頻率1 Ti和誤差間隔μk ,并輸出位同步脈沖BS,它包含NCO(Numerically Controlled Oscillator)和誤差間隔計算兩部分。該程序提供接口(頻率字fw 和使能端fw_en),外部控制器可以通過(guò)該接口輸入參數。
本設計中NCO 采用與文獻[10]類(lèi)似的DDS(DirectDigital Synthesis)結構,其頻率控制字Fw 可由外部控制器設置,其結構如圖6所示。
圖6中,M 為頻率控制字位數,N 為相位累加器和相位寄存器的位數。這里取M = N = 23,采用遞減型的NCO,歸一化后相位累加器的累加值為:
式中:Fw 為頻率控制字;W (mk ) 為環(huán)路濾波器輸出的誤差信號,二者由環(huán)路濾波器提供,決定了NCO的溢出周期。其中,當:
NCO 溢出信號即為提取出的位同步信號的2 倍頻(2BS),經(jīng)2分頻后可以得到位同步脈沖(BS)輸出,2BS同時(shí)作為內插濾波器和誤差間隔計算的使能信號。
誤差間隔μk 在NCO 溢出后的下一個(gè)Ts 時(shí)刻進(jìn)行計算,環(huán)路鎖定時(shí):
將其截斷為8位數據送給內插濾波器。
本設計同時(shí)對代碼進(jìn)行了優(yōu)化,數據有效位的截取、內插濾波器的結構優(yōu)化、乘法采用移位計算代替等措施,有效地節省了硬件資源,優(yōu)化前和優(yōu)化后的資源占用情況對比見(jiàn)表1.
3 仿真和分析
3.1 Matlab仿真
本文采用Matlab對算法進(jìn)行理論仿真,輸入采樣值x(m) 為[-1,1]之間的隨機碼,采樣頻率上限為20 MHz,令碼元速率分別為2 Kb/s,600 Kb/s,10 Mb/s,環(huán)路濾波器、內部控制器參數隨碼元速率變化。取內插濾波器的插值輸出y(kTi) 做散射圖分析,驗證對不同速率的基帶信號,內插值是否接近最佳判決值,如圖7所示。
從圖7可以看出,在基帶速率和采樣率滿(mǎn)足奈奎斯特定理的條件下,該仿真輸出的內插值均集中在理想值 -1和1周?chē)?,雖然有一定的模糊,且頻率越高,模糊程度越大,但碼元判決閾值在0值點(diǎn),所以判決值無(wú)需嚴格為±1,該圖表明對于較寬速率范圍內的基帶信號,輸出的插值均能夠較好地用于碼元判決,即算法正確。
3.2 FPGA仿真
在Quartus下對本設計進(jìn)行仿真?;鶐盘柌捎肕 序列,由FPGA生成,令基帶碼速率分別為2 Kb/s,600 Kb/s,1 Mb/s,同時(shí)分頻器、NCO 及環(huán)路濾波器參數也做相應設置,仿真結果如圖8所示。
在圖8中,x為基帶碼元序列,y為內插值輸出,clk_t為基帶碼元時(shí)鐘,clk_bs為提取出的位同步信號。從圖中可以看到,clk_bs經(jīng)過(guò)定時(shí)環(huán)路調整,其上升沿逐漸向clk_t的下降沿(即最佳判決點(diǎn))靠近,且隨著(zhù)基帶碼元速率的變化,clk_bs也會(huì )隨之變化,但其中心頻率與clk_t相同,相位與最佳判決點(diǎn)相差不超過(guò)半個(gè)碼元周期,可以進(jìn)行碼元判決,這表明本設計對2 Kb/s~1 Mb/s內的基帶信號,均可實(shí)現位同步。
4 結語(yǔ)
本文提出了一種基于FPGA的通用位同步器的設計方案。該設計方案中的同步器在傳統Gardner 算法的基礎上進(jìn)行了改進(jìn),其中,內插濾波器采用Farrow結構,定時(shí)誤差檢測采用GA-TED算法,環(huán)路濾波器和內部控制器參數可由外部控制器設置,因而實(shí)現了較寬速率范圍內基帶碼元的位同步。仿真結果表明,該方案占用FPGA資源較少,并且在實(shí)際應用中具有可靠有效性。
評論