陳昌孝 何明浩 申正義 王志斌
(空軍雷達(dá)學(xué)院信息對(duì)抗系 武漢 430019)
隨著大規(guī)模集成電路設(shè)計(jì)技術(shù)和制造工藝的不斷進(jìn)步,現(xiàn)場(chǎng)可編程門陣列(FPGA)目前已經(jīng)進(jìn)入45nm時(shí)代,隨著其包含功能的不斷擴(kuò)展,現(xiàn)代的FPGA不僅包含有大量的邏輯和布線資源,而且還包含有許多高性能的專用功能單元,如:PowerPC440處理器、PCIe接口控制器、GMAC控制器、專用DSP處理單元以及高達(dá)6.5G的高速串行傳輸接口等.同時(shí),F(xiàn)PGA所具有的靜態(tài)可重復(fù)編程和動(dòng)態(tài)系統(tǒng)可重構(gòu)特性,使得硬件的功能可以像軟件一樣通過(guò)編程來(lái)修改,極大地提高了電子系統(tǒng)設(shè)計(jì)的靈活性和通用性,縮短了產(chǎn)品的上市時(shí)間并降低了電子系統(tǒng)的開(kāi)發(fā)成本[1].
自適應(yīng)濾波器的設(shè)計(jì)與實(shí)現(xiàn)一直是信號(hào)處理領(lǐng)域的研究熱點(diǎn)之一,已經(jīng)被廣泛應(yīng)用于通信、語(yǔ)音、圖像處理、生物醫(yī)學(xué)和工業(yè)控制等領(lǐng)域[2].長(zhǎng)期以來(lái),自適應(yīng)濾波算法大多基于DSP芯片,利用匯編或高級(jí)語(yǔ)言程序代碼來(lái)實(shí)現(xiàn),這種方式在對(duì)實(shí)時(shí)性要求不高的場(chǎng)合能很好的滿足性能要求,但在實(shí)時(shí)性要求較高以及電磁環(huán)境較惡劣的場(chǎng)合,這種方式在處理速度和抗干擾性能等方面已無(wú)法滿足需要.
本文正是在此基礎(chǔ)上提出一種軟硬件協(xié)同完成LMS自適應(yīng)算法的系統(tǒng)架構(gòu),可以同時(shí)滿足系統(tǒng)的靈活性與實(shí)時(shí)性的要求.
自適應(yīng)濾波的基本原理如圖1所示.
圖1 自適應(yīng)濾波的基本原理
其基本功能為:在部分信號(hào)特征未知的條件下,根據(jù)某種最佳準(zhǔn)則,從已知的部分信號(hào)特征決定的初始條件出發(fā),按某種自適應(yīng)算法進(jìn)行遞推,在完成一定次數(shù)的遞推之后,以統(tǒng)計(jì)逼近的方式收斂于最佳解.當(dāng)輸入信號(hào)的統(tǒng)計(jì)特性未知,或者輸入信號(hào)的統(tǒng)計(jì)特性變化時(shí),自適應(yīng)濾波器能夠自動(dòng)地迭代調(diào)節(jié)自身的濾波器參數(shù),以滿足某種準(zhǔn)則的要求,從而實(shí)現(xiàn)最優(yōu)濾波.因此,自適應(yīng)濾波器具有自我調(diào)節(jié)和跟蹤能力,在非平穩(wěn)環(huán)境中,自適應(yīng)濾波可以很好地跟蹤信號(hào)的變化.調(diào)節(jié)和跟蹤能力,在非平穩(wěn)環(huán)境中,自適應(yīng)濾波可以很好地跟蹤信號(hào)的變化.
濾波器的輸出由式(1)給出
誤差信號(hào)為
W的疊代公式為
μ值的取值范圍為:0<μ<1/λmax.μ越大,收斂越快,但容易振蕩;μ值小,收斂慢,但比較平穩(wěn).
本文采用基于FPGA的SOPC(system on a programmable chip)系統(tǒng)作為自適應(yīng)濾波器的硬件實(shí)現(xiàn)平臺(tái),并行運(yùn)算代替常規(guī)的DSP程序串行算法,不僅提高了系統(tǒng)的響應(yīng)速度,而且有很強(qiáng)的抗干擾能力.SOPC采用Xilinx公司的一種靈活、高效的SOC 解決方案[3].MicroBlaze CPU[4-10]是一種采用流水線技術(shù)、單指令流的RISC處理器,其大部分指令可以在一個(gè)時(shí)鐘周期內(nèi)完成.MicroBlaze處理器又是一種軟核CPU,專門針對(duì)Xilinx的可編程邏輯器件,以及片上可編程系統(tǒng)的設(shè)計(jì)思想做了相應(yīng)優(yōu)化.作為一種可配置的通用RISC處理器,它可以與用戶自定義邏輯結(jié)合構(gòu)成SOC系統(tǒng),并下載到Xilinxd的可編程器件中去,結(jié)合外部閃存,以及大容量存儲(chǔ)器,可構(gòu)成一個(gè)功能強(qiáng)大的32位嵌入式處理器系統(tǒng).系統(tǒng)框圖見(jiàn)圖2.
圖2 LMS算法的系統(tǒng)實(shí)現(xiàn)方案
1)MicroBlaze子系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn).MicroBlaze子系統(tǒng)的設(shè)計(jì)相對(duì)簡(jiǎn)單,只需將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è)計(jì)和實(shí)現(xiàn).通過(guò)改進(jìn)FSL總線外設(shè)為一個(gè)LMS核,完成框圖中所述的任務(wù).LMS外設(shè)核的狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換見(jiàn)圖3.
圖3 LMS核的狀態(tài)轉(zhuǎn)移圖
為了實(shí)現(xiàn)所需的自適應(yīng)濾波器的功能,所設(shè)計(jì)FSL總線外設(shè)的時(shí)序如表1所列.
表1 FSL總線外設(shè)的時(shí)序設(shè)計(jì)
假設(shè)使用21個(gè)輸入x(n)和期望值d(n).
測(cè)試數(shù)據(jù)1:
第二組測(cè)試數(shù)據(jù):
使用matlab程序畫出圖形(e(n)使用指數(shù)坐標(biāo)),得到結(jié)果見(jiàn)圖4.
可見(jiàn),在期望輸出為恒定值,輸入為恒定值,初始誤差較大的前提下,e(n)基本上是指數(shù)趨勢(shì)收斂的.
圖4 測(cè)試1、測(cè)試2中誤差的變化(指數(shù)縱坐標(biāo))
由于設(shè)計(jì)試驗(yàn)平臺(tái)的硬件限制,在Spartan開(kāi)發(fā)板 上只實(shí)現(xiàn)了1階(b0,b12個(gè)抽頭系數(shù))濾波器.那么這樣的設(shè)計(jì)有沒(méi)有可能在硬件資源更強(qiáng)大的系統(tǒng)中實(shí)現(xiàn)呢?為此,對(duì)擴(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.這樣的初始值是一個(gè)滿足線形相位特性的低通濾波器.得到的仿真波形見(jiàn)圖5.
圖5 8階系統(tǒng)的行為仿真波形
畫出誤差的變化趨勢(shì)如圖6所示(由于e(n)出現(xiàn)了負(fù)數(shù),不再使用指數(shù)坐標(biāo)).
圖6 8階系統(tǒng)誤差變化
可見(jiàn),誤差較快的收斂到4和-5之間循環(huán).所有的抽頭系數(shù)都能夠自適應(yīng)的更新.可見(jiàn),這個(gè)設(shè)計(jì)具有擴(kuò)展的潛力,但是需要優(yōu)化時(shí)序設(shè)計(jì)和資源使用.
在實(shí)際設(shè)計(jì)中,由于設(shè)計(jì)本身存在的問(wèn)題以及Spartan3硬件資源的限制,采用了如下的折衷方案.
1)全部計(jì)算使用整數(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庫(kù).
4)在進(jìn)行μ(n)歸一化時(shí),傳到總線上的數(shù)據(jù)不使用帶有小數(shù)的μ(n)=μ0/|x(n)|2,而是在MicroBlaze端根據(jù)x(n)的值進(jìn)行估計(jì),將乘法轉(zhuǎn)換為一個(gè)移位操作 .在MicroBlaze端,可以假設(shè)所有輸入x(n)均為自然數(shù),進(jìn)行這樣的估計(jì):
由于設(shè)計(jì)存在的時(shí)序問(wèn)題和乘法器的綜合占用了較多的系統(tǒng)資源,雖然在行為仿真中可以實(shí)現(xiàn)較高階數(shù)的濾波,在實(shí)際的硬件中只實(shí)現(xiàn)了2個(gè)抽頭的1階濾波.
自適應(yīng)濾波器的硬件實(shí)現(xiàn)一直是數(shù)字濾波器研究的熱點(diǎn),本文采用基于FPGA的SOPC系統(tǒng)作為自適應(yīng)濾波器的硬件實(shí)現(xiàn)平臺(tái),實(shí)現(xiàn)了LMS算法的自適應(yīng)濾波陷波器,實(shí)驗(yàn)結(jié)果表明,該平臺(tái)達(dá)到了自適應(yīng)濾波算法所要求的準(zhǔn)確性和實(shí)時(shí)性,并且與單獨(dú)采用數(shù)字信號(hào)處理實(shí)現(xiàn)的系統(tǒng)相比,具有更快的執(zhí)行速度、抗干擾能力和配置的靈活性,與采用分立芯片的DSP+FPGA方案相比,集成度更高,開(kāi)發(fā)調(diào)試更加快速,成本相對(duì)低,是自適應(yīng)濾波器硬件實(shí)現(xiàn)方式的發(fā)展趨勢(shì)之一.
[1]Haykin S.Adaptive filter theory[M].fourth ed.Beijing:Publishing House of Electronics Industry,2003.
[2]任愛(ài)鋒,初秀琴.基于FPGA的嵌入式系統(tǒng)設(shè)計(jì)[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ù)字信號(hào)處理[M].北京:電子工業(yè)出版社,2010.