色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于FPGA的通用位同步器設(shè)計方案

          基于FPGA的通用位同步器設(shè)計方案

          作者: 時間:2017-10-21 來源:網(wǎng)絡(luò) 收藏

            本文主要是先闡述傳統(tǒng)的原理,然后給出改進后的設(shè)計和FPGA實現(xiàn)方法,最后對結(jié)果進行仿真和分析,證明該設(shè)計方案的正確、可行性。

          本文引用地址:http://cafeforensic.com/article/201710/367233.htm

            0 引言

            數(shù)字通信中,位同步性能直接影響接收機的好壞,是通信技術(shù)研究的重點和熱點問題。通信系統(tǒng)中,接收端產(chǎn)生與發(fā)送基帶信號速率相同,相位與最佳判決時刻一致的定時脈沖序列,該過程即稱為位同步。常見的位同步方法包括濾波法和鑒相法。濾波法對接收波形進行變換,使之含有位同步信息,再通過窄帶濾波器濾出,缺點是只適用于窄帶信號。最為常用的位同步方法是鑒相法,包括鎖相法和內(nèi)插法兩種。鎖相法采用傳統(tǒng)鎖相環(huán),需要不斷調(diào)整本地時鐘的頻率和相位,不適合寬速率范圍的基帶碼元同步。而內(nèi)插法則利用數(shù)字信號的內(nèi)插原理,通過計算直接得到最佳判決點的值和相位。

            即是基于內(nèi)插法的原理,通過定時環(huán)路調(diào)整內(nèi)插計算的參數(shù),從而跟蹤和鎖定位同步信號,該算法的優(yōu)點在于不需要改變本地采樣時鐘,可以適應(yīng)較寬速率范圍內(nèi)的基帶信號,因而具有傳統(tǒng)方法不可替代的優(yōu)勢。的實現(xiàn)方法,為算法的應(yīng)用提供了基礎(chǔ)。Farrow結(jié)構(gòu)非常適合實現(xiàn)Gardner算法的核心,即部分,其優(yōu)點是資源占用較少,且濾波器系數(shù)實時計算,便于內(nèi)插參數(shù)調(diào)整。定時誤差檢測,但在定時誤差檢測時需要信號中存在判定信息,并且對載波相位偏差敏感。不足進行了改進,提出了GA-TED(Gardner TIming Error DetecTIon)算法,其優(yōu)點是不需要預(yù)知判定信息,且獨立于載波同步,并且適合FPGA 實現(xiàn)。改進的Gardner 算法,并將其應(yīng)用于M-PSK 系統(tǒng)。提高了Gardner 算法的抗自噪聲能力,即降低了對本地時鐘的要求。

            本文基于FPGA 平臺并采用Gardner 算法設(shè)計,其中,采用Farrow 結(jié)構(gòu),定時誤差檢測采用GA-TED算法。同時對傳統(tǒng)Gardner算法結(jié)構(gòu)進行了改進,使環(huán)路濾波器和NCO的參數(shù)可由外部控制器設(shè)置,以適應(yīng)不同速率的基帶碼元,實現(xiàn)通用的位同步器的設(shè)計方案。此外,本設(shè)計方案還對FPGA 代碼進行了優(yōu)化,節(jié)省了大量硬件資源。最后進行了仿真和分析,給出了仿真結(jié)果,證實了該方案的可行性。

            1 傳統(tǒng)Gardner 算法與改進

            1.1 傳統(tǒng)Gardner算法基本原理

            傳統(tǒng)Gardner算法結(jié)構(gòu)如圖1所示。

            

            在圖1中,輸入的連續(xù)時間信號x(t) 碼元周期為T,頻帶受限。在滿足奈奎斯特定理的條件下,接收端采用獨立時鐘對x(t) 進行采樣。計算出內(nèi)插值y(k),送至定時環(huán)路進行誤差反饋和參數(shù)調(diào)整,并與控制器輸出的位同步脈沖BS一起送往解調(diào)器的抽樣判決器。

            定時環(huán)路包含定時誤差檢測、環(huán)路濾波器和控制器。定時誤差檢測提取插值時刻和最佳判決時刻的誤差;該誤差經(jīng)環(huán)路濾波器濾除高頻噪聲后送給控制器;控制器計算插值時刻(即為位同步信號的2倍頻)和誤差間隔。插值時刻和誤差間隔用于調(diào)整內(nèi)插濾波器的系數(shù),使插值時刻盡可能與最佳判決點同相,最終實現(xiàn)位同步信號的提取。

            1.2 改進的Gardner算法結(jié)構(gòu)

            從上節(jié)可以看出,傳統(tǒng)Gardner算法無法滿足較寬速率范圍基帶信號的位同步要求。為實現(xiàn)該要求,本設(shè)計在FPGA 平臺的基礎(chǔ)上,對算法實現(xiàn)結(jié)構(gòu)進行了改進,改進結(jié)構(gòu)如圖2所示。

            

            圖2中,內(nèi)插濾波器采用Farrow結(jié)構(gòu)的FIR 濾波器實現(xiàn),濾波器系數(shù)實時計算;定時誤差檢測采用獨立于載波且采樣點較少的GA-TED 算法;環(huán)路濾波器、內(nèi)部控制器可由外部控制器設(shè)置參數(shù),基帶碼元速率變化時,相應(yīng)參數(shù)可以隨之變化。因此,本設(shè)計可以滿足位同步器的通用性要求。

            該同步器工作過程如下:外部控制器根據(jù)基帶碼元速率設(shè)置相應(yīng)參數(shù),通過外部控制器接口將控制、地址和數(shù)據(jù)信號分別送往分頻器、環(huán)路濾波器和內(nèi)部控制器。時鐘電路分別提供采樣時鐘和FPGA 時鐘,F(xiàn)PGA工作時鐘在片內(nèi)通過分頻器產(chǎn)生所需頻率的時鐘,供FPGA 各模塊使用。輸入連續(xù)時間信號x(t) 經(jīng)由獨立時鐘控制的ADC 進行采樣,轉(zhuǎn)換為8 位數(shù)字信號送至FPGA 內(nèi),符號化后變?yōu)橛蟹枖?shù)字序列,送入內(nèi)插濾波器模塊。內(nèi)插濾波器根據(jù)輸入信號的采樣值和內(nèi)部控制器給出的參數(shù)μk,在每個插值時刻kTI 計算出最佳判決點的內(nèi)插值y(kTI)。定時誤差檢測計算出誤差μτ (n),輸出至環(huán)路濾波器。環(huán)路濾波器依據(jù)當前的參數(shù)設(shè)定,濾除噪聲并將誤差信息送給內(nèi)部控制器。內(nèi)部控制器以NCO為核心,根據(jù)處理后的誤差信息和設(shè)定的頻率字參數(shù)調(diào)整插值時刻kTi,使之盡可能接近最佳判決時刻,并輸出位同步脈沖BS,同時計算出誤差間隔μk 送給內(nèi)插濾波器,進行內(nèi)插值計算,最終完成定時信息的恢復(fù)。

            2 FPGA設(shè)計

            2.1 整體結(jié)構(gòu)設(shè)計

            根據(jù)圖2的算法結(jié)構(gòu),F(xiàn)PGA設(shè)計采用模塊化方式,整體結(jié)構(gòu)的頂層圖如圖3所示。

            從圖3可以看到,該設(shè)計包含分頻器(DIV_FRE)、符號化(SYM)、內(nèi)插濾波器(INTERPOLATION)、定時誤差檢測(TED)、環(huán)路濾波器(LPF)、內(nèi)部控制器(INTER_CTL)和外部控制器接口的時序電路(EXTER_CTL)共7個模塊。其中,分頻器由片外晶振提供時鐘輸入,分頻后為片內(nèi)其他模塊提供相應(yīng)時鐘。其中碼元時鐘的分頻系數(shù)可由外部控制器通過接口進行設(shè)置。符號化是將A/D采樣產(chǎn)生的無符號數(shù)轉(zhuǎn)換為有符號數(shù),以便后續(xù)模塊進行帶符號的運算。

            外部控制器接口的時序電路將外部控制器送來的控制信號(ALE和RD)、地址信號(P2.0、P2.1)和數(shù)據(jù)信號(P0口)、轉(zhuǎn)換為FPGA 內(nèi)分頻器、環(huán)路濾波器和NCO的使能信號和參數(shù),實現(xiàn)對位同步器各參數(shù)的設(shè)置。

            分頻器、符號化和外部控制器接口模塊實現(xiàn)較為簡單,不再贅述。而內(nèi)插濾波器、定時誤差檢測、環(huán)路濾波器和內(nèi)部控制器的實現(xiàn)較為復(fù)雜,且本設(shè)計通過采用相應(yīng)算法和改進結(jié)構(gòu),實現(xiàn)了位同步器的通用性。本文將詳細闡述這些模塊的設(shè)計。

            

            2.2 模塊詳細設(shè)計

            2.2.1 內(nèi)插濾波器設(shè)計

            內(nèi)插濾波器是完成算法的核心,它根據(jù)內(nèi)插參數(shù)實時計算最佳判決點的內(nèi)插值,即:

            

            式中:mk 為內(nèi)插濾波器基點索引,決定輸入序列中哪些采樣點參與運算,它由插值時刻kTi 確定;μk 為誤差間隔,決定了內(nèi)插濾波器的沖激響應(yīng)系數(shù)[1].kTi 和μk 的信息由內(nèi)部控制器反饋回來。

            本設(shè)計的內(nèi)插濾波器采用基于4 點分段拋物線多項式的Farrow結(jié)構(gòu)實現(xiàn)。將式(1)變換為拉格朗日多項式,即令:

            

            根據(jù)式(2)和(3),內(nèi)插濾波器程序?qū)崿F(xiàn)結(jié)構(gòu)如圖4所示。

            從圖4可以看到,該結(jié)構(gòu)由1個移位器、5個觸發(fā)器、 8個相加器、2個乘法器組成,比直接型FIR節(jié)省10個乘法器、4個相加器的資源。其中,除以2的運算采用數(shù)據(jù)移位實現(xiàn),避免使用除法器。輸入的8位數(shù)據(jù) x,計算后得到10位的內(nèi)插值y 輸出。由于內(nèi)部所有寄存器經(jīng)計算后,均采用最小位數(shù),有效地減少了Logic Elements資源的占用。

            

            2.2.2 定時誤差檢測設(shè)計

            定時誤差檢測程序采用獨立于載波相位偏差的GA-TED算法。該算法每個符號周期只需要兩個插值,每個碼元周期輸出一個誤差信號μτ (n) ,即:

            

            其中,y(n) 表示第n 個碼元選通時刻的內(nèi)插值,前后兩個內(nèi)插值的插值代表誤差方向;y(n - 1 2) 表示第 n 個和第n - 1 個碼元的中間時刻內(nèi)插值,代表誤差大小。

            FPGA實現(xiàn)時,為避免乘法運算,采用y(n) 和y(n - 1)的符號來代替實際值[8],即采用式(5)計算誤差信息:

            

            根據(jù)式(5)進行程序設(shè)計,誤差的正負方向判斷采用case 語句,當y(n) 和y(n - 1) 的符號位分別為“0”和“1”時,y(n - 1 2)的符號位不變;當符號位分別為“1”和“0”時,y(n - 1 2) 的符號位取反;當符號位為“0”“0”或“1”“1”時,令輸出的μτ (n) = 0.TED程序在1 Ti 的時鐘控制下進行運算,最終得到29位誤差數(shù)據(jù),并以1 T 的速率即碼元速率輸出至環(huán)路濾波器電路。

            2.2.3 環(huán)路濾波器設(shè)計

            本文對Gardner算法中的環(huán)路濾波器進行了改進,根據(jù)通用位同步器的要求,采用二階數(shù)字濾波器,并且開放濾波器參數(shù)(C1,C2 ) 和使能(c_en)端口,當碼元速率變化時,通過外部控制器來改變參數(shù),實現(xiàn)濾波器的通用性。濾波器結(jié)構(gòu)如圖5所示。

            

            從圖5可以看到,濾波器的輸出為:

            

            式中:Ko Kd 為環(huán)路增益;ζ 為阻尼系數(shù),取ζ =0.707;T 為采樣時間間隔,即相位調(diào)整間隔;ωn 為無阻尼振蕩頻率。

            為減少資源占用,環(huán)路濾波器中的乘法運算均采用移位方式實現(xiàn),處理后的誤差信息送給內(nèi)部控制器。

            2.2.4 內(nèi)部控制器設(shè)計

            內(nèi)部控制器根據(jù)定時誤差信息,調(diào)整插值頻率1 Ti和誤差間隔μk ,并輸出位同步脈沖BS,它包含NCO(Numerically Controlled Oscillator)和誤差間隔計算兩部分。該程序提供接口(頻率字fw 和使能端fw_en),外部控制器可以通過該接口輸入?yún)?shù)。

            本設(shè)計中NCO 采用與文獻[10]類似的DDS(DirectDigital Synthesis)結(jié)構(gòu),其頻率控制字Fw 可由外部控制器設(shè)置,其結(jié)構(gòu)如圖6所示。

            圖6中,M 為頻率控制字位數(shù),N 為相位累加器和相位寄存器的位數(shù)。這里取M = N = 23,采用遞減型的NCO,歸一化后相位累加器的累加值為:

            

            式中:Fw 為頻率控制字;W (mk ) 為環(huán)路濾波器輸出的誤差信號,二者由環(huán)路濾波器提供,決定了NCO的溢出周期。其中,當:

            

            

            NCO 溢出信號即為提取出的位同步信號的2 倍頻(2BS),經(jīng)2分頻后可以得到位同步脈沖(BS)輸出,2BS同時作為內(nèi)插濾波器和誤差間隔計算的使能信號。

            誤差間隔μk 在NCO 溢出后的下一個Ts 時刻進行計算,環(huán)路鎖定時:

            

            將其截斷為8位數(shù)據(jù)送給內(nèi)插濾波器。

            本設(shè)計同時對代碼進行了優(yōu)化,數(shù)據(jù)有效位的截取、內(nèi)插濾波器的結(jié)構(gòu)優(yōu)化、乘法采用移位計算代替等措施,有效地節(jié)省了硬件資源,優(yōu)化前和優(yōu)化后的資源占用情況對比見表1.

            

            3 仿真和分析

            3.1 Matlab仿真

            本文采用Matlab對算法進行理論仿真,輸入采樣值x(m) 為[-1,1]之間的隨機碼,采樣頻率上限為20 MHz,令碼元速率分別為2 Kb/s,600 Kb/s,10 Mb/s,環(huán)路濾波器、內(nèi)部控制器參數(shù)隨碼元速率變化。取內(nèi)插濾波器的插值輸出y(kTi) 做散射圖分析,驗證對不同速率的基帶信號,內(nèi)插值是否接近最佳判決值,如圖7所示。

            從圖7可以看出,在基帶速率和采樣率滿足奈奎斯特定理的條件下,該仿真輸出的內(nèi)插值均集中在理想值 -1和1周圍,雖然有一定的模糊,且頻率越高,模糊程度越大,但碼元判決閾值在0值點,所以判決值無需嚴格為±1,該圖表明對于較寬速率范圍內(nèi)的基帶信號,輸出的插值均能夠較好地用于碼元判決,即算法正確。

            3.2 FPGA仿真

            在Quartus下對本設(shè)計進行仿真?;鶐盘柌捎肕 序列,由FPGA生成,令基帶碼速率分別為2 Kb/s,600 Kb/s,1 Mb/s,同時分頻器、NCO 及環(huán)路濾波器參數(shù)也做相應(yīng)設(shè)置,仿真結(jié)果如圖8所示。

            

            

            在圖8中,x為基帶碼元序列,y為內(nèi)插值輸出,clk_t為基帶碼元時鐘,clk_bs為提取出的位同步信號。從圖中可以看到,clk_bs經(jīng)過定時環(huán)路調(diào)整,其上升沿逐漸向clk_t的下降沿(即最佳判決點)靠近,且隨著基帶碼元速率的變化,clk_bs也會隨之變化,但其中心頻率與clk_t相同,相位與最佳判決點相差不超過半個碼元周期,可以進行碼元判決,這表明本設(shè)計對2 Kb/s~1 Mb/s內(nèi)的基帶信號,均可實現(xiàn)位同步。

            4 結(jié)語

            本文提出了一種基于FPGA的通用位同步器的設(shè)計方案。該設(shè)計方案中的同步器在傳統(tǒng)Gardner 算法的基礎(chǔ)上進行了改進,其中,內(nèi)插濾波器采用Farrow結(jié)構(gòu),定時誤差檢測采用GA-TED算法,環(huán)路濾波器和內(nèi)部控制器參數(shù)可由外部控制器設(shè)置,因而實現(xiàn)了較寬速率范圍內(nèi)基帶碼元的位同步。仿真結(jié)果表明,該方案占用FPGA資源較少,并且在實際應(yīng)用中具有可靠有效性。



          評論


          技術(shù)專區(qū)

          關(guān)閉