摘要:針對高速高靈敏度數(shù)字信號處理時對于自適應(yīng)濾波器的數(shù)值特性和實時性的要求,在一種自適應(yīng)格型聯(lián)合濾波器的基礎(chǔ)上提出算法改進,采用馳豫超前流水線技術(shù)和時序重構(gòu)技術(shù),在損失較小濾波性能的情況下,在FPGA中實現(xiàn)算法并可以達到較高的工作頻率。
0 引言
在處理微弱信號的時候自適應(yīng)濾波器所處的環(huán)境可能是非平穩(wěn)的,輸入信號的自相關(guān)矩陣和互相關(guān)向量等算法參量將隨時間變化,會對濾波器的收斂跟蹤性能造成較大影響,F(xiàn)代通信系統(tǒng)發(fā)展到3G,4G后,幾十甚至上百兆比特每秒的數(shù)據(jù)傳輸速率對自適應(yīng)處理技術(shù)是個極大的挑戰(zhàn)。如何在這類高速環(huán)境中運用自適應(yīng)算法處理高靈敏度信號并使算法保持較低的復(fù)雜度以利于實現(xiàn),是工程應(yīng)用中必須解決的問題。
由Levinson-Durbin遞推公式得到的自適應(yīng)格型結(jié)構(gòu)以其反射系數(shù)收斂快,對輸入信號自相關(guān)矩陣的特征值擴散相對惰性,是解決此類問題的一個優(yōu)良選擇。GALJP(Gradient Adaptive Lattice Joint Processing)是一種梯度自適應(yīng)格型結(jié)構(gòu)和LMS結(jié)構(gòu)組成的聯(lián)合濾波器,由格型結(jié)構(gòu)對輸入信號進行迅速解耦,用LMS結(jié)構(gòu)進行自適應(yīng)處理?紤]到實時處理的要求,采用高度并行的FPGA進行算法實現(xiàn)是一個很好的選擇。但是由于GALJP的結(jié)構(gòu)相對復(fù)雜,導(dǎo)致其在FPGA中實現(xiàn)的工作頻率不高。本文以自適應(yīng)噪聲對消為模型,采用流水線技術(shù)和時序重構(gòu)技術(shù)對GALJP算法結(jié)構(gòu)進行改進優(yōu)化,提出一種改進型RD-GALJP結(jié)構(gòu)。在算法性能影響不大的情況下,在FPGA中能實現(xiàn)達到167.53MHz采樣吞吐率,適合于高速自適應(yīng)應(yīng)用的場合。
1 梯度自適應(yīng)聯(lián)合濾波算法(GALJP)
格型濾波器具有快速解耦的性質(zhì),利用這個特性,結(jié)合基本LMS算法得到的一種實用的聯(lián)合處理結(jié)構(gòu)GALJP,如圖1所示。這種聯(lián)合濾波器由多級格型預(yù)測器和LMS期望響應(yīng)估計器組合而成,它可以先將信號輸入進行快速Gram-Schmidt正交化,并由后續(xù)的自適應(yīng)期望響應(yīng)估計器的LMS算法對去耦信號進行自適應(yīng)濾波,以改善輸入信號特征值擴散對傳統(tǒng)LMS算法性能的影響。這種結(jié)構(gòu)具有很大的優(yōu)點,如調(diào)節(jié)濾波器的階數(shù)十分方便,增減節(jié)數(shù)不會影響到系統(tǒng)全局的優(yōu)化,改變某一節(jié)不需要對整個系統(tǒng)進行調(diào)節(jié)。
GALJP的基本算法如下:
式中:m=2,3,…,M+1,不同于傳統(tǒng)的單個誤差e調(diào)節(jié)各級濾波器權(quán)向量更新,上面的GALJP算法是把各節(jié)誤差信號em(n)的均方值由單節(jié)計算,采用多級單LMS結(jié)構(gòu),并分別指導(dǎo)各級權(quán)向量更新。
2 改進型RD-GALJP算法
由于GALJP的算法相對復(fù)雜,正常情況下的硬件實現(xiàn)不能達到高速信號處理的要求。在此,結(jié)合馳豫超前流水線技術(shù)和時序重構(gòu)技術(shù)對算法進行優(yōu)化改進,以便在對濾波性能沒有很大影響的情況下能有效地切割關(guān)鍵路徑,提高系統(tǒng)運行頻率。
2.1 馳豫超前流水線優(yōu)化
流水線技術(shù)是構(gòu)造高速運行系統(tǒng)的一種實用技術(shù)。在硬件實現(xiàn)中,通過插入流水寄存器,可以斬斷系統(tǒng)關(guān)鍵路徑的長度,提高系統(tǒng)的運行頻率。單向前饋割集表示能夠斬斷同向信號流,使系統(tǒng)成為完全不相連兩個部分的分割形式。本文對于單向前饋割集路徑插入一級流水寄存器,這里會使輸出增加一個時鐘滯后,但可以在不影響系統(tǒng)算法性能的情況下切割路徑,提高系統(tǒng)頻率。
馳豫技術(shù)也是一種可以構(gòu)造實現(xiàn)流水線的方式,它通過近似的方式改變算法,在系統(tǒng)可以良好穩(wěn)定運行的情況下得到適合流水實現(xiàn)的拓撲結(jié)構(gòu)。對于GALJP算法,考慮到其中有多個環(huán)路迭代計算,無法使用前饋割集插入流水線的方式改進。對此,通過馳豫超前技術(shù),提出的改進部分如下,對于格型預(yù)測器有:
式中:m=2,3,…,M+1,對于格型預(yù)測器,由于反射系數(shù)Km收斂迅速,所以在收斂后由于Km基本不變,故等式(8),式(9)是合理的。穩(wěn)態(tài)性能則基本不變。
考慮收斂時段的式(10),令:
當(dāng)系統(tǒng)處于收斂時段,恰當(dāng)選取較小的β值時,式(15)的遞推也是合理的,對比改變前的式(14),只是更新部分?jǐn)?shù)值變大。這里可以看到,對于反射系數(shù)的馳豫,其算法收斂步長的區(qū)間將變得相對嚴(yán)格。類似的,對于期望響應(yīng)估計器,對bm和Wm的馳豫變換在恰當(dāng)選取稍小的μ的情況下也是合理的,同樣的,會造成步長收斂區(qū)間變得相對狹窄。觀察改進后的拓撲結(jié)構(gòu),對于期望響應(yīng)估計器,改進后的誤差更新和權(quán)系數(shù)更新可以同時流水進行,提高了模塊速度,對于格型預(yù)測器,雖然改進方案沒有使其能夠流水線化,不能實質(zhì)地提高系統(tǒng)頻率,但是提供了馳豫寄存器,為后續(xù)優(yōu)化做了準(zhǔn)備。在這里,馳豫寄存器m1,m2的個數(shù)需要根據(jù)要求仔細選取。
2.2 時序重構(gòu)優(yōu)化
時序重構(gòu)又稱重定時,是一種在保持系統(tǒng)功能不變的前提下,改變系統(tǒng)的延遲數(shù)目和分布的方法。它在同步電路中有許多應(yīng)用,如縮短系統(tǒng)時鐘周期,減少系統(tǒng)寄存器數(shù)目,降低系統(tǒng)的功耗和邏輯綜合的規(guī)模。對于時序不變系統(tǒng),通過時序重構(gòu)技術(shù),可以在不改變算法功能的情況下,有效地切割關(guān)鍵路徑,從而提高系統(tǒng)工作頻率。時序重構(gòu)的映射等式定義為:
式中:Wr(e)表示重構(gòu)映射后的路徑e的延時;W(e)表示重構(gòu)映射前的路徑e的延時;r(V)表示路徑e的前端處理單元V的重構(gòu)參數(shù);r(U)代表路徑e的后端處理單元U的重構(gòu)參數(shù)。通過合理地選取重構(gòu)映射參數(shù),可以得到合法的重構(gòu)映射結(jié)構(gòu)。
環(huán)路邊界的定義為t1/wl,其中tl是環(huán)路l的運算時間;wl是環(huán)路l的延遲數(shù)目;迭代邊界是環(huán)路結(jié)構(gòu)的環(huán)路邊界的最大值,定義為,迭代邊界反映了一個反饋算法環(huán)路部分通過時序重構(gòu)技術(shù)能達到的極限關(guān)鍵路徑的大小。在此認(rèn)為加法器和乘法器都是一個處理時間,考慮期望響應(yīng)估計器模塊的環(huán)路部分,如圖2所示。
根據(jù)定義可以知道,迭代邊界為4/(1+m2),使其迭代邊界最小化,等于1,得到馳豫寄存器的數(shù)目m2=3。采用時序重構(gòu)映射,根據(jù)式(16)得到重構(gòu)后的算法結(jié)構(gòu),重構(gòu)參數(shù)及重構(gòu)結(jié)果如圖3所示。
由于重構(gòu)后每個信號路徑上都沒有負延時情況,根據(jù)時序重構(gòu)原理的性質(zhì),則這個重構(gòu)映射是合理的,重構(gòu)后的算法結(jié)構(gòu)是合理的,穩(wěn)定的?梢钥吹,合理地選取映射規(guī)則對電路進行時序重構(gòu),可以合理地斬斷關(guān)鍵路徑,提高系統(tǒng)運行速度。在這里,重構(gòu)后的關(guān)鍵路徑為一個處理單位。同理,可以對多級格型預(yù)測器模塊進行時序重構(gòu)。同樣的,重構(gòu)后格型預(yù)測器電路的關(guān)鍵路徑也為一個處理單元。這樣,整個改進后的RD-GALJP(Retimed Delay-GALJP)系統(tǒng)結(jié)構(gòu)的關(guān)鍵路徑就縮短為1個處理單元。
3 基于FPGA的算法的實現(xiàn)與仿真
以自適應(yīng)噪聲對消為模型進行仿真驗證,設(shè)格型預(yù)測器的反射系數(shù)收斂因子為0.008,期望響應(yīng)估計器的收斂因子為0.002。在Matlab中對改進前和改進后的算法進行仿真,測試信號為隨機2FSK+高斯白噪聲,SNR=-9dB,得到的收斂曲線如圖4所示。
可以看到,改進后的算法在收斂性能和穩(wěn)態(tài)表現(xiàn)都有些許下降,但是降低的幅度很小,在可接受的范圍內(nèi)。利用DSP-builder進行FPGA算法建模,實現(xiàn)4階16位定點格式的格型濾波結(jié)構(gòu),并在Modelsim中進行RTL級仿真,得到的改進算法濾波效果如圖5所示。
在EP2C70F896C6芯片上進行代碼的綜合,得到的結(jié)果為:改進前系統(tǒng)的最高工作頻率為23.99MHz,改進后系統(tǒng)的最高工作頻率為167.53MHz。顯然,系統(tǒng)頻率在算法結(jié)構(gòu)改進后有很大的提高。最后,利用DDS技術(shù)產(chǎn)生需要的測試信號和噪聲(測試頻率為100MHz),將相應(yīng)的HDL代碼綜合布線后下載到FPGA芯片中,利用Signaltap內(nèi)嵌邏輯分析儀進行板級功能測試,結(jié)果如圖6所示。
實驗結(jié)果表明,該模塊可以很好地運行在100MHz以上,適用于高速自適應(yīng)處理的場合。
4 結(jié)語
FPGA以其高效的硬件特性在信號處理方面有著越來越多的應(yīng)用。本文結(jié)合馳豫超前流水線和時序重構(gòu)技術(shù),提出一種RD-GALJP算法結(jié)構(gòu),并以自適應(yīng)噪聲對消為模型進行算法仿真。算法仿真的結(jié)果表明,改進算法結(jié)構(gòu)相比改進前的算法在濾波性能上只有些許下降,但是卻能夠很好地切割關(guān)鍵路徑,以利于流水實現(xiàn)。最后以4階16位定點格式為背景在FPGA中對算法進行實現(xiàn)和板級功能測試,綜合布線后得到167.53MHz采樣吞吐率的運算性能,比較于改進前的23.99MHz的工作頻率表明,工作頻率的改善顯著。實驗結(jié)果表明,改進算法結(jié)構(gòu)可以很好地應(yīng)用于對輸入自相關(guān)矩陣特征值擴散敏感的高速高靈敏度的自適應(yīng)信號處理場合。
作者:程文帆 戴在平 華僑大學(xué) 來源:電子設(shè)計工程