肖美齡,龔曉峰
(四川大學電氣信息學院,四川成都 610065)
數字化可調節的分數延時濾波器(fractional delay filter,FDF)在信號重構,回聲消除,定時同步,任意分數倍采樣率轉換等許多領域都有著廣泛的應用[1-3],因此被人們廣泛研究。但由于理想的FDF脈沖響應無限長,導致在實際系統中實現非常困難。基于farrow結構[4]的多項式插值濾波器很好地解決了這個問題[5]。
近年來,關于FDF的研究也有很多,文獻[6]對farrow結構進行了改進,提出了廣義改進型farrow結構,文獻[7]采用加權最小二乘法與積分計算目標誤差函數、矩陣的行拉直、矩陣的三角分解相結合的方法設計FDF,文獻[8]提出了插值多項式的階數和分段數的選擇策略。文獻[9]采用基于樣條插值的方法來設計分段插值多項式。文獻[10]采用基于最小二乘的方法來設計分段插值多項式。以上方法都是在理想情況下的研究,雖然有效提高了FDF的設計精度,但工程實現上依然比較復雜,文獻[11]結合流水線技術與分布式算法減少了乘法器的使用,但運行時鐘較低,且分數延時不可調節,基于分段二次拋物線插值算法設計的FDF相對于三次插值性能同樣優越且實現更加簡單[12],但基于二次分段拋物線插值濾波器在進行延時估計時存在局部極值問題。本文通過仿真分析選擇合適設計參數解決了發現的極值問題,并使用可編程邏輯器件FPGA來實現了該FDF,可用于實際的無線電設備中。
對許多的實際問題,往往需要用函數y=f(x)來表示來出某種內在的規律,我們只能通過觀測到的部分數值來構造一個能反映函數特性并且便于計算的簡單函數p(x)來近似f(x),這就是插值法[13]。
常見的插值算法有拉格朗日插值、牛頓插值等,由于在計算量、計算復雜度和精度方面的優勢,比較常用的是拉格朗日插值算法[14]。拉格朗日插值多項式:

式(1)中,每個lk(x)為拉格朗日插值基函數,其表達式為

延時在通信系統中是不可避免的,數字延時分為整數延時和分數延時,整數延時容易實現和控制,然而,當期望的延時是分數倍的,就需要通過FDF來實現。
當一個信號延遲了tD,延遲后信號表示為y(t)=x(t-tD)。轉換成離散信號t=kT,T表示采樣間隔,可以表示出

式(3)中,D是一個正實數,并且可以分成一個整數部分和一個小數部分

式(4)中,m是離散信號的整數延時,μ是離散信號的小數延時。當D不是一個整數時,在兩個插值樣點x(k-m)和x(k-m-1)之間,可以用一個帶限插值來逼近y(k)。理想的FDF系數可以表示為

理想的無限長FDF是不可實現的,因此用一種近似的解決方案

式(6)中,

拉格朗日多項式插值濾波器被廣泛用于小數延時估計中。用拉格朗日多項式插值來逼近,N階的拉格朗日插值器系數為

針對4個插值基點,可以設計為二次分段拋物線插值器,多項式系數為

其中α為設計參數。
在醫學信號處理,數字通信,時間延遲估計等過程中會需要實現分數倍采樣率的轉換,采樣率轉換可歸納為一個重采樣的過程:先將采樣信號x(mTs)重建為模擬信號x(t),再對模擬信號重采樣得到所需頻率的采樣信號

式(10)中Ts和Ti分別為輸入和輸出采樣間隔。但Ts/Ti的值一般不是有理數。將這里的模擬濾波器hI(t)用(8)式表示的拉格朗日插值濾波器表示。并定義基本指針mk,分數間隔μk,濾波器指針如下。

則(11)式可改寫為

實時計算μk和mk就可以實現分數倍采樣率的轉換。通過調整數字延時μk,可以改變頻率轉換的比例。
在時延估計算法中,相關法是最經典的時延估計方法,它通過信號的自相關函數滯后的峰值估計信號之間延遲的時間差。這種方法簡單易懂,容易實現[15]。通過相關法來驗證小數延時估計精度,兩接收信號的互相關函數為

式(13)中:x1(t)為源信號,x2(t+τ)為小數倍延遲后信號,由自相關函數的性質可知

即當τ-D=0時,兩個接收信號的相關性最大,選擇τ=D作為延時估計值。則即當相關性函數取得最大值時的τ為估計出的延遲。
為了對幾種插值方法的延時估計精度進行仿真分析。需要產生原始基帶信號和其準確延遲,這里我們巧妙運用抽取原理。為更好地切合實際信號,在MATLAB中隨機生成有效帶寬1 kHz,采樣率1 MHz的離散信號d0。進行100倍的抽取操作,得到信號d1,由抽取理論可知抽取后信號d1實際采樣率為10 kHz,且頻譜不會發生混疊。并通過抽取得到d1信號經過原5個采樣間隔后的100倍抽取信號d2。d1即為d2經過0.05個延時后信號。軟件仿真流程如圖1。

圖1 小數延時估計流程圖
將d2以0.001個采樣間隔為步進從-1至1進行延遲計算,求出的每組延遲結果與d1求相關性函數值得到一條相關性曲線。3種不同的插值分別得到3條相關性曲線。如圖2所示。

圖2 延時估計精度對比(α=0.5)
分析圖2,線性插值極值點在0點處,而α取值為0.5時的分段二次拋物線插值存在兩個極值點,均無法有效估計出分數倍延遲,三次插值極值點在-0.046出現,即估計出當前延時為0.046個采樣間隔,相比于實際0.05個采樣間隔的延時,延時估計效果很好。
在使用硬件實現插值濾波器時,二次分段拋物線插值濾波器(α=0.5)相比于三次拉格朗日插值實現過程上更為簡單,主要取決于其特殊的濾波器系數使得數據運算規模和乘法器都減少,但是由于二次分段拋物線插值(α=0.5)存在的局部極值問題。如何選取其中的設計參數α來達到逼近于三次插值的性能而又不增加計算復雜度是目前需要解決的問題。
用二次插值去逼近三次插值有很多方法,決定于逼近準則。用拉格朗日三次插值多項式表示出4個插值樣點中最中間的值為

拉格朗日二次插值基函數用點(xk,yk),(xk+0.5,yk+0.5),(xk+1,yk+1)可以表示為

將式(15)、(16)帶入式(17)可以得到

最后我們得到了新的二次分段拋物線插值器系數

以與圖2相同的方法驗證分段二次拋物線插值當α=0.25時的延時估計精度。

圖3 延時估計精度對比(α=0.25)
分析圖3可以得出二次分段拋物線插值(α=0.25)不存在局部極值問題,極值點出現在-0.045處,即估計出延時為0.045個采樣間隔,與三次插值估計出的0.046非常接近。
本文的FDF硬件組成劃分為2個子模塊:變速率參數計算模塊和小數延時模塊。圖4就是本文的FPGA硬件設計整體框圖。對于圖4中的小數倍延遲子模塊,本文在基于分段二次插值farrow結構的基礎上加入了并行設計的思想進行了改進,減小了輸出延時,如圖5所示。并進行了計算復雜度的對比如表1所示。
對于變速率參數計算模塊,每個插值點的插值基點與小數間隔都不相同,需要實時計算。為了保證輸出精度,小數間隔的中間計算過程采用定點整形運算。
將式(11)中mk和μk改進為遞推公式如下,簡化計算[16]。

式(20)、(21)中,fs和fi分別為輸入和輸出采樣率,在(20)式兩邊同時乘以fi可得

計算μk的值可以變為計算μkfi的值,中間計算全都采用整形運算,只需在最后進行浮點除法運算求得μk。為了保證運算精度,μk用32位浮點數表示,輸入數據量化為32位整形數,在進行乘法運算前通過整形轉浮點IP核轉化為32位浮點數。

圖4 FPGA硬件設計整體框圖

圖5 改進的FDF實現結構(α=0.25)

表1 不同插值器的計算復雜度
最后,本文對基于farrow結構的分段二次插值濾波器(α=0.25)進行了Verilog HDL編程實現了FDF(抽取和內插),并在Altera的FPGA板(EP4CGX150CF23I7)上下載成功,quartusⅡ上單路信號仿真波形如下

圖6 FDF模塊仿真和仿真局部放大圖

圖7 仿真數據對比
本文采用與MATLAB平臺技術并行的方式,在MATLAB平臺上也對FDF進行了軟件建模,將硬件模塊輸出結果與軟件模型輸出結果及原始信號對比。如圖6所示,時鐘信號為102.4 MHz,輸入數據數率為滿時鐘速率,輸出數據數率為100 MHz,輸出數據有效由data_out_en信號指示。圖7為根據數據有效指示導出的數據,由于是進行抽取仿真,在同一采樣點下,輸出信號相比原始信號呈現延遲狀態,可以看出模塊輸出與軟件模型輸出幾乎完全一致,誤差是由定點運算的量化誤差造成。
本文對基于farrow結構的分段二次插值的延時估計效果進行研究,發現分段二次插值在進行延時估計時存在局部的極值問題,針對該問題進行了分析對比從而提出了一種解決方案,并基于該方案實現了該FDF,實驗證明采用本文結構來實現FDF具有消耗硬件資源少,運算精度高,可進行信號的實時處理等優點。
[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]周晶,王敬時.分數延時FIR濾波器設計及仿真[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]陳光輝,曾以成.分數延遲FIR濾波器設計及FPGA 實現[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]李慶揚,王能超,易大義.數值分析[M].武漢:華中科技大學出版社,2006.
[14]陶偉,劉發林,王昊禹,等.一種非迭代的基于插值濾波器的小數延時估計算法[C]//全國微波毫米波會議論,合肥,中國電子學會,2015:683-686.
[15]行鴻彥,唐娟.時延估計方法的分析[J].聲學技術,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的時間同步精度的設計與實現[J].西安工程大學學報,2014,28(1):89-93.
[18]彭喆,付盛坤.基于FPGA的內嵌濾波算法的高速PCI采集卡設計[J].工業儀表與自動化裝置,2017(3):74-77.