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