肖美齡,龔曉峰
(四川大學(xué)電氣信息學(xué)院,四川成都 610065)
數(shù)字化可調(diào)節(jié)的分?jǐn)?shù)延時濾波器(fractional delay filter,F(xiàn)DF)在信號重構(gòu),回聲消除,定時同步,任意分?jǐn)?shù)倍采樣率轉(zhuǎn)換等許多領(lǐng)域都有著廣泛的應(yīng)用[1-3],因此被人們廣泛研究。但由于理想的FDF脈沖響應(yīng)無限長,導(dǎo)致在實際系統(tǒng)中實現(xiàn)非常困難?;趂arrow結(jié)構(gòu)[4]的多項式插值濾波器很好地解決了這個問題[5]。
近年來,關(guān)于FDF的研究也有很多,文獻(xiàn)[6]對farrow結(jié)構(gòu)進(jìn)行了改進(jìn),提出了廣義改進(jìn)型farrow結(jié)構(gòu),文獻(xiàn)[7]采用加權(quán)最小二乘法與積分計算目標(biāo)誤差函數(shù)、矩陣的行拉直、矩陣的三角分解相結(jié)合的方法設(shè)計FDF,文獻(xiàn)[8]提出了插值多項式的階數(shù)和分段數(shù)的選擇策略。文獻(xiàn)[9]采用基于樣條插值的方法來設(shè)計分段插值多項式。文獻(xiàn)[10]采用基于最小二乘的方法來設(shè)計分段插值多項式。以上方法都是在理想情況下的研究,雖然有效提高了FDF的設(shè)計精度,但工程實現(xiàn)上依然比較復(fù)雜,文獻(xiàn)[11]結(jié)合流水線技術(shù)與分布式算法減少了乘法器的使用,但運(yùn)行時鐘較低,且分?jǐn)?shù)延時不可調(diào)節(jié),基于分段二次拋物線插值算法設(shè)計的FDF相對于三次插值性能同樣優(yōu)越且實現(xiàn)更加簡單[12],但基于二次分段拋物線插值濾波器在進(jìn)行延時估計時存在局部極值問題。本文通過仿真分析選擇合適設(shè)計參數(shù)解決了發(fā)現(xiàn)的極值問題,并使用可編程邏輯器件FPGA來實現(xiàn)了該FDF,可用于實際的無線電設(shè)備中。
對許多的實際問題,往往需要用函數(shù)y=f(x)來表示來出某種內(nèi)在的規(guī)律,我們只能通過觀測到的部分?jǐn)?shù)值來構(gòu)造一個能反映函數(shù)特性并且便于計算的簡單函數(shù)p(x)來近似f(x),這就是插值法[13]。
常見的插值算法有拉格朗日插值、牛頓插值等,由于在計算量、計算復(fù)雜度和精度方面的優(yōu)勢,比較常用的是拉格朗日插值算法[14]。拉格朗日插值多項式:
式(1)中,每個lk(x)為拉格朗日插值基函數(shù),其表達(dá)式為
延時在通信系統(tǒng)中是不可避免的,數(shù)字延時分為整數(shù)延時和分?jǐn)?shù)延時,整數(shù)延時容易實現(xiàn)和控制,然而,當(dāng)期望的延時是分?jǐn)?shù)倍的,就需要通過FDF來實現(xiàn)。
當(dāng)一個信號延遲了tD,延遲后信號表示為y(t)=x(t-tD)。轉(zhuǎn)換成離散信號t=kT,T表示采樣間隔,可以表示出
式(3)中,D是一個正實數(shù),并且可以分成一個整數(shù)部分和一個小數(shù)部分
式(4)中,m是離散信號的整數(shù)延時,μ是離散信號的小數(shù)延時。當(dāng)D不是一個整數(shù)時,在兩個插值樣點x(k-m)和x(k-m-1)之間,可以用一個帶限插值來逼近y(k)。理想的FDF系數(shù)可以表示為
理想的無限長FDF是不可實現(xiàn)的,因此用一種近似的解決方案
式(6)中,
拉格朗日多項式插值濾波器被廣泛用于小數(shù)延時估計中。用拉格朗日多項式插值來逼近,N階的拉格朗日插值器系數(shù)為
針對4個插值基點,可以設(shè)計為二次分段拋物線插值器,多項式系數(shù)為
其中α為設(shè)計參數(shù)。
在醫(yī)學(xué)信號處理,數(shù)字通信,時間延遲估計等過程中會需要實現(xiàn)分?jǐn)?shù)倍采樣率的轉(zhuǎn)換,采樣率轉(zhuǎn)換可歸納為一個重采樣的過程:先將采樣信號x(mTs)重建為模擬信號x(t),再對模擬信號重采樣得到所需頻率的采樣信號
式(10)中Ts和Ti分別為輸入和輸出采樣間隔。但Ts/Ti的值一般不是有理數(shù)。將這里的模擬濾波器hI(t)用(8)式表示的拉格朗日插值濾波器表示。并定義基本指針mk,分?jǐn)?shù)間隔μk,濾波器指針如下。
則(11)式可改寫為
實時計算μk和mk就可以實現(xiàn)分?jǐn)?shù)倍采樣率的轉(zhuǎn)換。通過調(diào)整數(shù)字延時μk,可以改變頻率轉(zhuǎn)換的比例。
在時延估計算法中,相關(guān)法是最經(jīng)典的時延估計方法,它通過信號的自相關(guān)函數(shù)滯后的峰值估計信號之間延遲的時間差。這種方法簡單易懂,容易實現(xiàn)[15]。通過相關(guān)法來驗證小數(shù)延時估計精度,兩接收信號的互相關(guān)函數(shù)為
式(13)中:x1(t)為源信號,x2(t+τ)為小數(shù)倍延遲后信號,由自相關(guān)函數(shù)的性質(zhì)可知
即當(dāng)τ-D=0時,兩個接收信號的相關(guān)性最大,選擇τ=D作為延時估計值。則即當(dāng)相關(guān)性函數(shù)取得最大值時的τ為估計出的延遲。
為了對幾種插值方法的延時估計精度進(jìn)行仿真分析。需要產(chǎn)生原始基帶信號和其準(zhǔn)確延遲,這里我們巧妙運(yùn)用抽取原理。為更好地切合實際信號,在MATLAB中隨機(jī)生成有效帶寬1 kHz,采樣率1 MHz的離散信號d0。進(jìn)行100倍的抽取操作,得到信號d1,由抽取理論可知抽取后信號d1實際采樣率為10 kHz,且頻譜不會發(fā)生混疊。并通過抽取得到d1信號經(jīng)過原5個采樣間隔后的100倍抽取信號d2。d1即為d2經(jīng)過0.05個延時后信號。軟件仿真流程如圖1。
圖1 小數(shù)延時估計流程圖
將d2以0.001個采樣間隔為步進(jìn)從-1至1進(jìn)行延遲計算,求出的每組延遲結(jié)果與d1求相關(guān)性函數(shù)值得到一條相關(guān)性曲線。3種不同的插值分別得到3條相關(guān)性曲線。如圖2所示。
圖2 延時估計精度對比(α=0.5)
分析圖2,線性插值極值點在0點處,而α取值為0.5時的分段二次拋物線插值存在兩個極值點,均無法有效估計出分?jǐn)?shù)倍延遲,三次插值極值點在-0.046出現(xiàn),即估計出當(dāng)前延時為0.046個采樣間隔,相比于實際0.05個采樣間隔的延時,延時估計效果很好。
在使用硬件實現(xiàn)插值濾波器時,二次分段拋物線插值濾波器(α=0.5)相比于三次拉格朗日插值實現(xiàn)過程上更為簡單,主要取決于其特殊的濾波器系數(shù)使得數(shù)據(jù)運(yùn)算規(guī)模和乘法器都減少,但是由于二次分段拋物線插值(α=0.5)存在的局部極值問題。如何選取其中的設(shè)計參數(shù)α來達(dá)到逼近于三次插值的性能而又不增加計算復(fù)雜度是目前需要解決的問題。
用二次插值去逼近三次插值有很多方法,決定于逼近準(zhǔn)則。用拉格朗日三次插值多項式表示出4個插值樣點中最中間的值為
拉格朗日二次插值基函數(shù)用點(xk,yk),(xk+0.5,yk+0.5),(xk+1,yk+1)可以表示為
將式(15)、(16)帶入式(17)可以得到
最后我們得到了新的二次分段拋物線插值器系數(shù)
以與圖2相同的方法驗證分段二次拋物線插值當(dāng)α=0.25時的延時估計精度。
圖3 延時估計精度對比(α=0.25)
分析圖3可以得出二次分段拋物線插值(α=0.25)不存在局部極值問題,極值點出現(xiàn)在-0.045處,即估計出延時為0.045個采樣間隔,與三次插值估計出的0.046非常接近。
本文的FDF硬件組成劃分為2個子模塊:變速率參數(shù)計算模塊和小數(shù)延時模塊。圖4就是本文的FPGA硬件設(shè)計整體框圖。對于圖4中的小數(shù)倍延遲子模塊,本文在基于分段二次插值farrow結(jié)構(gòu)的基礎(chǔ)上加入了并行設(shè)計的思想進(jìn)行了改進(jìn),減小了輸出延時,如圖5所示。并進(jìn)行了計算復(fù)雜度的對比如表1所示。
對于變速率參數(shù)計算模塊,每個插值點的插值基點與小數(shù)間隔都不相同,需要實時計算。為了保證輸出精度,小數(shù)間隔的中間計算過程采用定點整形運(yùn)算。
將式(11)中mk和μk改進(jìn)為遞推公式如下,簡化計算[16]。
式(20)、(21)中,fs和fi分別為輸入和輸出采樣率,在(20)式兩邊同時乘以fi可得
計算μk的值可以變?yōu)橛嬎悝蘫fi的值,中間計算全都采用整形運(yùn)算,只需在最后進(jìn)行浮點除法運(yùn)算求得μk。為了保證運(yùn)算精度,μk用32位浮點數(shù)表示,輸入數(shù)據(jù)量化為32位整形數(shù),在進(jìn)行乘法運(yùn)算前通過整形轉(zhuǎn)浮點IP核轉(zhuǎn)化為32位浮點數(shù)。
圖4 FPGA硬件設(shè)計整體框圖
圖5 改進(jìn)的FDF實現(xiàn)結(jié)構(gòu)(α=0.25)
表1 不同插值器的計算復(fù)雜度
最后,本文對基于farrow結(jié)構(gòu)的分段二次插值濾波器(α=0.25)進(jìn)行了Verilog HDL編程實現(xiàn)了FDF(抽取和內(nèi)插),并在Altera的FPGA板(EP4CGX150CF23I7)上下載成功,quartusⅡ上單路信號仿真波形如下
圖6 FDF模塊仿真和仿真局部放大圖
圖7 仿真數(shù)據(jù)對比
本文采用與MATLAB平臺技術(shù)并行的方式,在MATLAB平臺上也對FDF進(jìn)行了軟件建模,將硬件模塊輸出結(jié)果與軟件模型輸出結(jié)果及原始信號對比。如圖6所示,時鐘信號為102.4 MHz,輸入數(shù)據(jù)數(shù)率為滿時鐘速率,輸出數(shù)據(jù)數(shù)率為100 MHz,輸出數(shù)據(jù)有效由data_out_en信號指示。圖7為根據(jù)數(shù)據(jù)有效指示導(dǎo)出的數(shù)據(jù),由于是進(jìn)行抽取仿真,在同一采樣點下,輸出信號相比原始信號呈現(xiàn)延遲狀態(tài),可以看出模塊輸出與軟件模型輸出幾乎完全一致,誤差是由定點運(yùn)算的量化誤差造成。
本文對基于farrow結(jié)構(gòu)的分段二次插值的延時估計效果進(jìn)行研究,發(fā)現(xiàn)分段二次插值在進(jìn)行延時估計時存在局部的極值問題,針對該問題進(jìn)行了分析對比從而提出了一種解決方案,并基于該方案實現(xiàn)了該FDF,實驗證明采用本文結(jié)構(gòu)來實現(xiàn)FDF具有消耗硬件資源少,運(yùn)算精度高,可進(jìn)行信號的實時處理等優(yōu)點。
[1]Vesma J,Saram?ki T.Design and properties of polynomial based fractional delay filters[C]//IEEE International Symposium on Circuits and Systems,2000(1):104-107.
[2]Abbas M,Gustafsson O,Johansson H.On the fixed-point implementation of fractional-delay filters based on the farrow structure[J].Circuits&Systems I Regular Papers IEEE Transactions on,2013,60(4):926-937.
[3]Eghbali A,Johansson H,Saram?ki T.A method for the design of Farrow-structure based variable fractional-delay FIR filters[J].Signal Processing,2013,93(5):1341–1348.
[4]Farrow C W.A continuously variable digital delay element[J].IEEE InternationalSymposium on Circuits and Systems,1988,3:2641-2645.
[5]Erup L,Gardner F M,Harris R A.Interpolation in digital modems- part II:implementation and performance[C]//IEEE Transactions on Communications,1993,41(6):998-1008.
[6]Hunter M T,MikhaelW B.A novel farrow structure with reduced complexity[J]. IEEE International Midwest Symposium on Circuits and Systems,2009(10):581-585.
[7]周晶,王敬時.分?jǐn)?shù)延時FIR濾波器設(shè)計及仿真[J].信息化研究,2013(4):24-27.
[8]Babic D,Vukotic S.Estimation of the number of polynomial segments and the polynomial order of prolonged Farrow structure[C]//Telecommunications Forum Telfor.Belgrade,2014:461-464.
[9]Blu T,Thevenaz P,Unser M.Complete parameterization of piecewise polynomial interpolation kernels[J].IEEE Transactions on Image Processing,2003,12(11):1297-1309.
[10]Pulikkoonattu R,Subramanian H K,Laxman S.Least square based piecewise parabolic interpolation for timing synchronization[C]//Radio and Wireless Symposium.IEEE Xplore,2008:155-158.
[11]陳光輝,曾以成.分?jǐn)?shù)延遲FIR濾波器設(shè)計及FPGA 實現(xiàn)[J].微計算機(jī)信息,2010,26(20):172-174.
[12]Eltawil A M,Daneshrad B.Piecewise parabolic interpolation for direct digital frequency synthesis[C]//IEEE Custom Integrated Circuits Conference,2002,21(5):401-404.
[13]李慶揚(yáng),王能超,易大義.數(shù)值分析[M].武漢:華中科技大學(xué)出版社,2006.
[14]陶偉,劉發(fā)林,王昊禹,等.一種非迭代的基于插值濾波器的小數(shù)延時估計算法[C]//全國微波毫米波會議論,合肥,中國電子學(xué)會,2015:683-686.
[15]行鴻彥,唐娟.時延估計方法的分析[J].聲學(xué)技術(shù),2008,27(1):110-114.
[16]Gardner F M.Interpolation in digital modemspart I:fundamentals[C]//IEEE Transactions on Communications,1993,41(3):501-507.
[17]宋鵬,田樂.基于FPGA的時間同步精度的設(shè)計與實現(xiàn)[J].西安工程大學(xué)學(xué)報,2014,28(1):89-93.
[18]彭喆,付盛坤.基于FPGA的內(nèi)嵌濾波算法的高速PCI采集卡設(shè)計[J].工業(yè)儀表與自動化裝置,2017(3):74-77.