陳昌孝 何明浩 申正義 王志斌
(空軍雷達(dá)學(xué)院信息對抗系 武漢 430019)
隨著大規(guī)模集成電路設(shè)計技術(shù)和制造工藝的不斷進(jìn)步,現(xiàn)場可編程門陣列(FPGA)目前已經(jīng)進(jìn)入45nm時代,隨著其包含功能的不斷擴(kuò)展,現(xiàn)代的FPGA不僅包含有大量的邏輯和布線資源,而且還包含有許多高性能的專用功能單元,如:PowerPC440處理器、PCIe接口控制器、GMAC控制器、專用DSP處理單元以及高達(dá)6.5G的高速串行傳輸接口等.同時,F(xiàn)PGA所具有的靜態(tài)可重復(fù)編程和動態(tài)系統(tǒng)可重構(gòu)特性,使得硬件的功能可以像軟件一樣通過編程來修改,極大地提高了電子系統(tǒng)設(shè)計的靈活性和通用性,縮短了產(chǎn)品的上市時間并降低了電子系統(tǒng)的開發(fā)成本[1].
自適應(yīng)濾波器的設(shè)計與實現(xiàn)一直是信號處理領(lǐng)域的研究熱點(diǎn)之一,已經(jīng)被廣泛應(yīng)用于通信、語音、圖像處理、生物醫(yī)學(xué)和工業(yè)控制等領(lǐng)域[2].長期以來,自適應(yīng)濾波算法大多基于DSP芯片,利用匯編或高級語言程序代碼來實現(xiàn),這種方式在對實時性要求不高的場合能很好的滿足性能要求,但在實時性要求較高以及電磁環(huán)境較惡劣的場合,這種方式在處理速度和抗干擾性能等方面已無法滿足需要.
本文正是在此基礎(chǔ)上提出一種軟硬件協(xié)同完成LMS自適應(yīng)算法的系統(tǒng)架構(gòu),可以同時滿足系統(tǒng)的靈活性與實時性的要求.
自適應(yīng)濾波的基本原理如圖1所示.

圖1 自適應(yīng)濾波的基本原理
其基本功能為:在部分信號特征未知的條件下,根據(jù)某種最佳準(zhǔn)則,從已知的部分信號特征決定的初始條件出發(fā),按某種自適應(yīng)算法進(jìn)行遞推,在完成一定次數(shù)的遞推之后,以統(tǒng)計逼近的方式收斂于最佳解.當(dāng)輸入信號的統(tǒng)計特性未知,或者輸入信號的統(tǒng)計特性變化時,自適應(yīng)濾波器能夠自動地迭代調(diào)節(jié)自身的濾波器參數(shù),以滿足某種準(zhǔn)則的要求,從而實現(xiàn)最優(yōu)濾波.因此,自適應(yīng)濾波器具有自我調(diào)節(jié)和跟蹤能力,在非平穩(wěn)環(huán)境中,自適應(yīng)濾波可以很好地跟蹤信號的變化.調(diào)節(jié)和跟蹤能力,在非平穩(wěn)環(huán)境中,自適應(yīng)濾波可以很好地跟蹤信號的變化.
濾波器的輸出由式(1)給出

誤差信號為

W的疊代公式為

μ值的取值范圍為:0<μ<1/λmax.μ越大,收斂越快,但容易振蕩;μ值小,收斂慢,但比較平穩(wěn).
本文采用基于FPGA的SOPC(system on a programmable chip)系統(tǒng)作為自適應(yīng)濾波器的硬件實現(xiàn)平臺,并行運(yùn)算代替常規(guī)的DSP程序串行算法,不僅提高了系統(tǒng)的響應(yīng)速度,而且有很強(qiáng)的抗干擾能力.SOPC采用Xilinx公司的一種靈活、高效的SOC 解決方案[3].MicroBlaze CPU[4-10]是一種采用流水線技術(shù)、單指令流的RISC處理器,其大部分指令可以在一個時鐘周期內(nèi)完成.MicroBlaze處理器又是一種軟核CPU,專門針對Xilinx的可編程邏輯器件,以及片上可編程系統(tǒng)的設(shè)計思想做了相應(yīng)優(yōu)化.作為一種可配置的通用RISC處理器,它可以與用戶自定義邏輯結(jié)合構(gòu)成SOC系統(tǒng),并下載到Xilinxd的可編程器件中去,結(jié)合外部閃存,以及大容量存儲器,可構(gòu)成一個功能強(qiáng)大的32位嵌入式處理器系統(tǒng).系統(tǒng)框圖見圖2.

圖2 LMS算法的系統(tǒng)實現(xiàn)方案
1)MicroBlaze子系統(tǒng)的設(shè)計和實現(xiàn).MicroBlaze子系統(tǒng)的設(shè)計相對簡單,只需將x(n)和d(n)存在數(shù)組中,進(jìn)行這樣的操作循環(huán):(1)向FSL總線寫x(n);(2)向FSL總線寫d(n);(3)向FSL總線寫μ(n);(4)從FSL總線讀e(n).
2)LMScore子系統(tǒng)的設(shè)計和實現(xiàn).通過改進(jìn)FSL總線外設(shè)為一個LMS核,完成框圖中所述的任務(wù).LMS外設(shè)核的狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換見圖3.

圖3 LMS核的狀態(tài)轉(zhuǎn)移圖
為了實現(xiàn)所需的自適應(yīng)濾波器的功能,所設(shè)計FSL總線外設(shè)的時序如表1所列.

表1 FSL總線外設(shè)的時序設(shè)計
假設(shè)使用21個輸入x(n)和期望值d(n).
測試數(shù)據(jù)1:

第二組測試數(shù)據(jù):

使用matlab程序畫出圖形(e(n)使用指數(shù)坐標(biāo)),得到結(jié)果見圖4.
可見,在期望輸出為恒定值,輸入為恒定值,初始誤差較大的前提下,e(n)基本上是指數(shù)趨勢收斂的.

圖4 測試1、測試2中誤差的變化(指數(shù)縱坐標(biāo))
由于設(shè)計試驗平臺的硬件限制,在Spartan開發(fā)板 上只實現(xiàn)了1階(b0,b12個抽頭系數(shù))濾波器.那么這樣的設(shè)計有沒有可能在硬件資源更強(qiáng)大的系統(tǒng)中實現(xiàn)呢?為此,對擴(kuò)展到8階的系統(tǒng)進(jìn)行ISE環(huán)境中的行為仿真:設(shè)輸入為x(n)=1,1,1,1,1,…;期望輸出為d(n)=5 000,5 000,5 000,5 000,5 000,…抽頭系數(shù)初始值為:b0=7;b1=17;b2=32;b3=46;b4=52;b5=46;b6=32;b7=17;b8=7.這樣的初始值是一個滿足線形相位特性的低通濾波器.得到的仿真波形見圖5.

圖5 8階系統(tǒng)的行為仿真波形
畫出誤差的變化趨勢如圖6所示(由于e(n)出現(xiàn)了負(fù)數(shù),不再使用指數(shù)坐標(biāo)).

圖6 8階系統(tǒng)誤差變化
可見,誤差較快的收斂到4和-5之間循環(huán).所有的抽頭系數(shù)都能夠自適應(yīng)的更新.可見,這個設(shè)計具有擴(kuò)展的潛力,但是需要優(yōu)化時序設(shè)計和資源使用.
在實際設(shè)計中,由于設(shè)計本身存在的問題以及Spartan3硬件資源的限制,采用了如下的折衷方案.
1)全部計算使用整數(shù)(包括自然數(shù),負(fù)數(shù),零),排除使用小數(shù).
2)LMS核的主要操作數(shù)據(jù)b0,b1,…,y(n),d(n),e(n)均使用integer數(shù)據(jù)類型.
3)在verilog描述中直接使用*作為乘法運(yùn)算符,不使用IP庫.
4)在進(jìn)行μ(n)歸一化時,傳到總線上的數(shù)據(jù)不使用帶有小數(shù)的μ(n)=μ0/|x(n)|2,而是在MicroBlaze端根據(jù)x(n)的值進(jìn)行估計,將乘法轉(zhuǎn)換為一個移位操作 .在MicroBlaze端,可以假設(shè)所有輸入x(n)均為自然數(shù),進(jìn)行這樣的估計:


由于設(shè)計存在的時序問題和乘法器的綜合占用了較多的系統(tǒng)資源,雖然在行為仿真中可以實現(xiàn)較高階數(shù)的濾波,在實際的硬件中只實現(xiàn)了2個抽頭的1階濾波.
自適應(yīng)濾波器的硬件實現(xiàn)一直是數(shù)字濾波器研究的熱點(diǎn),本文采用基于FPGA的SOPC系統(tǒng)作為自適應(yīng)濾波器的硬件實現(xiàn)平臺,實現(xiàn)了LMS算法的自適應(yīng)濾波陷波器,實驗結(jié)果表明,該平臺達(dá)到了自適應(yīng)濾波算法所要求的準(zhǔn)確性和實時性,并且與單獨(dú)采用數(shù)字信號處理實現(xiàn)的系統(tǒng)相比,具有更快的執(zhí)行速度、抗干擾能力和配置的靈活性,與采用分立芯片的DSP+FPGA方案相比,集成度更高,開發(fā)調(diào)試更加快速,成本相對低,是自適應(yīng)濾波器硬件實現(xiàn)方式的發(fā)展趨勢之一.
[1]Haykin S.Adaptive filter theory[M].fourth ed.Beijing:Publishing House of Electronics Industry,2003.
[2]任愛鋒,初秀琴.基于FPGA的嵌入式系統(tǒng)設(shè)計[M].西安:西安電子科技大學(xué)出版社,2004.
[3]Chang Choo.An embedded adaptive filtering system on FPGA[DB/OL].Prasannalakshmi Padmanabhan,Susmita Mutsuddy Department of Electrical Engineering,San Jose State University.http://www.engr.sjsu.edu/choo/gspx06chooetal.pdf.
[4]Spartan-3starter kit board user guide[Z].Xilinx,Inc.UG130(v1.1),May 2005.
[5]Embedded system tools reference manual[Z].Xilinx,Inc.UG111(v3.0),Aug2008.
[6]MicroBlaze processor reference guide[Z].Xilinx,Inc.UG081(v4.0),Aug 2008.
[7]Platform studio user guide[Z].Xilinx,Inc.UG113,Aug 2008.
[8]Rosinger H P.Connecting customized IP to the microBlaze soft processor using the fast simplex link(FSL)channel[Z].XAPP529,May 2004.
[9]Fast simplex Link(FSL)bus(v2.00a)[Z].Xilinx,Inc.DS449,Aug 2008.
[10]皇甫堪.現(xiàn)代數(shù)字信號處理[M].北京:電子工業(yè)出版社,2010.