自適應(yīng)濾波器FPGA的實(shí)現(xiàn)_第1頁
自適應(yīng)濾波器FPGA的實(shí)現(xiàn)_第2頁
自適應(yīng)濾波器FPGA的實(shí)現(xiàn)_第3頁
自適應(yīng)濾波器FPGA的實(shí)現(xiàn)_第4頁
自適應(yīng)濾波器FPGA的實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、綜合資訊 在線閱讀 原文閱讀 在線商城 下載專區(qū) DATASHEET 技術(shù)論壇 商務(wù)頻道嵌入式系統(tǒng)單片機(jī)D S PEDA/PLD接口電路存儲(chǔ)技術(shù)顯示光電電源技術(shù)傳感/控制模擬技術(shù)通信網(wǎng)絡(luò)無線通信電測儀表消費(fèi)電子汽車電子 自適應(yīng)LMS濾波器在FPGA中的實(shí)現(xiàn)發(fā)布日期:2006-07-29作者:楊躍忠 闕沛文 李亮 來源:微計(jì)算機(jī)信息 摘要:本文介紹了自適應(yīng)濾波器的實(shí)現(xiàn)方法,給出了基于LMS算法自適應(yīng)濾波器在FPGA中的實(shí)現(xiàn),簡單介紹了這種實(shí)現(xiàn)方法的各個(gè)功能模塊,主要包括輸入信號的延時(shí)輸出模塊、控制模塊、誤差計(jì)算模塊、權(quán)值計(jì)算和存儲(chǔ)模塊。并通過在ALTERA公司提供的QUARTUSII平臺(tái)上采用V

2、HDL語言編程,利用MATLAB和QUARTUSII相結(jié)合進(jìn)行了硬件仿真,結(jié)果表明了采用FPGA實(shí)現(xiàn)自適應(yīng)濾波器是有效的。 關(guān)鍵詞:自適應(yīng)濾波,F(xiàn)PGA,LMS,VHDL語言 引言對于自適應(yīng)濾波器,IIR和FIR兩種形式都可以考慮,而FIR濾波器是實(shí)際應(yīng)用較廣泛的。FIR濾波器只有可調(diào)的零點(diǎn),因此它沒有IIR因兼有可調(diào)的零點(diǎn)和極點(diǎn)而帶來的不穩(wěn)定問題,另外,LMS計(jì)算量小,比較容易進(jìn)行硬件實(shí)現(xiàn),所以本文所設(shè)計(jì)的自適應(yīng)濾波器是在FIR的基礎(chǔ)上構(gòu)建的LMS自適應(yīng)濾波器。2LMS自適應(yīng)濾波器的算法構(gòu)想可以將基于LMS算法的自適應(yīng)濾波器的算法過程表示成如圖1所示。圖1 LMS算法實(shí)現(xiàn)的原理框圖根據(jù)LMS

3、算法的計(jì)算過程完成的功能,在FPGA設(shè)計(jì)實(shí)現(xiàn)時(shí),可以主要分為FIR濾波器模塊、誤差計(jì)算模塊、權(quán)值更新模塊、權(quán)值存儲(chǔ)模塊和控制模塊。其模塊框圖如圖2所示。LMS自適應(yīng)濾波器的算法中,主要是小數(shù)的加法和乘法運(yùn)算,要把所有小數(shù)化為16進(jìn)制數(shù)。例如,N階FIR濾波器的系數(shù)中,我們規(guī)定最高位是符號位,其次是3為整數(shù)位,最后12位小數(shù)。比如,1.125-1400H,0.75-C00H。運(yùn)算中,所有權(quán)值系數(shù)均按此方法處理。圖2 自適應(yīng)濾波器FPGA實(shí)現(xiàn)模塊框圖 3自適應(yīng)濾波器在FPGA中的具體實(shí)現(xiàn)3.1 N階FIR濾波器模塊的設(shè)計(jì)FIR濾波器是數(shù)字濾波器的一種,它的輸出y(n可以用式(1)表示:差分方程:

4、(1)其中:N是FIR濾波器的抽頭系數(shù);x(i表示第i時(shí)刻的輸入樣本;h(i是FIR濾波器的第i級抽頭系數(shù)。FIR濾波器的單位脈沖響應(yīng)h(n是一個(gè)有限長序列,因此系統(tǒng)函數(shù)為: (2)為了節(jié)約FPGA資源,提高利用率,這里主要介紹采用串行乘加的實(shí)現(xiàn)方法。3.2 主要的模塊組成及其功能主要采用VHDL硬件描述語言在QUARTUS II平臺(tái)上編程實(shí)現(xiàn),程序框圖如圖3所示。FIR濾波器的輸入主要分為權(quán)值系數(shù)輸入和數(shù)據(jù)輸入。Din是A/D轉(zhuǎn)換后的輸出信號,字寬為12位,其中1位符號位,10位精度位,將這個(gè)信號存儲(chǔ)在深度為N的SRAM中作為N階FIR濾波器的輸入;FIR的權(quán)系數(shù)Coeffs.存儲(chǔ)在ROM中

5、,字寬為16位,其中最高1位為符號位。通過使用狀態(tài)機(jī)輸出地址信號控制讀SRAM中的Xn和ROM中的系數(shù)Wn,復(fù)用1216的乘法器和加法器來實(shí)現(xiàn)乘加運(yùn)算。當(dāng)N階乘加運(yùn)算做完后,輸出一個(gè)數(shù)據(jù)輸出有效信號yvalid。Newt信號來自于A/D,表示新一個(gè)數(shù)據(jù)轉(zhuǎn)換好,可以進(jìn)行下一次運(yùn)算。在該設(shè)計(jì)中,F(xiàn)IR濾波器的文件可以采用原理框圖形式設(shè)計(jì),結(jié)構(gòu)簡單明了。而輸入信號的延時(shí)輸出和控制模塊采用VHDL設(shè)計(jì)。乘法器和D觸發(fā)器都直接使用QUARTUS II自帶的庫文件。 輸入信號的延時(shí)輸出模塊實(shí)現(xiàn)功能:完成A/D轉(zhuǎn)換后的數(shù)據(jù)通過不同的觸發(fā)器完成N階延時(shí)。該延時(shí)部分主要采用D觸發(fā)器實(shí)現(xiàn)了8階信號延時(shí)及存儲(chǔ)。在控

6、制信號newt作用下進(jìn)行延時(shí)存儲(chǔ),A/D轉(zhuǎn)換器每采樣一次,延時(shí)器就順延一位。這里,Din是A/D輸出信號。Xn是輸出信號。在地址線sel的控制下輸出一位作為乘法器的輸入。地址信號sel由控制模塊產(chǎn)生。 控制模塊實(shí)現(xiàn)功能:本模塊主要是控制從數(shù)據(jù)輸入模塊(SRAM中)和權(quán)系數(shù)輸入模塊(ROM中)讀入數(shù)據(jù)輸入信號和系數(shù)作為乘法器的輸入,同時(shí)控制累加器,并產(chǎn)生輸出有效信號yvalid。主要采用狀態(tài)機(jī)來設(shè)計(jì)該模塊。本模塊是自適應(yīng)濾波器設(shè)計(jì)的核心部分。該模塊的主要功能有:初始化各模塊;產(chǎn)生控制信號,控制每個(gè)模塊完成特定的功能;協(xié)調(diào)各個(gè)模塊的操作,使系統(tǒng)局部以流水線方式、整體串行方式工作。 誤差計(jì)算模塊實(shí)現(xiàn)

7、功能:該模塊主要是計(jì)算FIR濾波器輸出和期望值之間的誤差。根據(jù)上面FIR濾波器輸出結(jié)果可知,當(dāng)輸出信號yvalid有效時(shí),Dout輸出結(jié)果,這時(shí)可以通過使用一個(gè)在next信號控制下的減法器就可以實(shí)現(xiàn)誤差計(jì)算了。 權(quán)值計(jì)算及存儲(chǔ)模塊在權(quán)值計(jì)算模塊中,為了計(jì)算方便,可以設(shè)u=1/1024即u=04H,這樣只需要對誤差計(jì)算模塊輸出的誤差進(jìn)行移位運(yùn)算即可以實(shí)現(xiàn),從而省掉了使用乘法器,節(jié)約了大量的FPGA資源,并且提高了計(jì)算速度。計(jì)算2ue(kx(k時(shí)可以先將x(k右移11位,再使用乘法器與e(k相乘得出權(quán)值變量。根據(jù)設(shè)計(jì)流程,該模塊的功能框圖如圖4所示。 圖4 權(quán)值計(jì)算及存儲(chǔ)模塊功能框圖權(quán)值系數(shù)存儲(chǔ)在

8、兩個(gè)RAM中,兩個(gè)RAM交替讀寫。當(dāng)RAM1處于讀狀態(tài),輸出當(dāng)前的權(quán)值系數(shù),作為FIR濾波器的輸入,同時(shí)用來更新新的權(quán)值。更新的權(quán)值系數(shù)則存儲(chǔ)在RAM2中。如此交替輪換,完成系數(shù)的更新和存儲(chǔ)功能,這樣就可以解決RAM同時(shí)需要讀取和更新權(quán)值系數(shù)的問題。(注:圖4中的RAM1和RAM2的位置是交替變換使用的)4自適應(yīng)濾波器的仿真驗(yàn)證4.1 仿真實(shí)現(xiàn)自適應(yīng)濾波器模塊的測試要求全面性和有效性。在測試仿真驗(yàn)證時(shí)不僅要驗(yàn)證控制接口的有效性,還要驗(yàn)證算法的有效性。模塊測試的軟件環(huán)境是Quartus II。圖5 自適應(yīng)濾波器模塊測試框圖由于Quartus II軟件自帶的仿真工具對復(fù)雜設(shè)計(jì)的性能做評估時(shí),會(huì)碰到

9、許多困難。由于在仿真時(shí)需要手工設(shè)置輸入節(jié)點(diǎn)值,對于我們設(shè)計(jì)的自適應(yīng)濾波器,輸入的數(shù)據(jù)量大,而且必須經(jīng)過嚴(yán)格計(jì)算得到,很難由手工輸入。在這里我們結(jié)合使用matlab和Quartus II來進(jìn)行仿真測試,系統(tǒng)測試框圖如圖5所示。利用Matlab來產(chǎn)生復(fù)雜的仿真輸入信號,再在Quartus II中進(jìn)行仿真,輸出仿真信號,再利用matlab進(jìn)行信號波形分析。4.2 仿真結(jié)果整個(gè)程序是在Quartus II平臺(tái)上實(shí)現(xiàn)的。設(shè)計(jì)中信號輸入和參考輸入都是12位,輸出是16位。程序設(shè)計(jì)中u固定為1/1024。整個(gè)程序綜合于APEX20K系列的EPF20K300EQC240-1芯片上,使用的資源為:3347個(gè)LE

10、s,占29.1%,3768個(gè)Memory,占2.5%。其時(shí)鐘頻率可達(dá)到23.6MHz。由于在系統(tǒng)設(shè)計(jì)中,F(xiàn)PGA實(shí)現(xiàn)的功能比較多,因此在系統(tǒng)設(shè)計(jì)選型時(shí),留有的余量比較大。但是,在該設(shè)計(jì)中,采用了串行的設(shè)計(jì)方法,并不是直接使用乘法器,兼顧了速度與資源,所以性能上不是最優(yōu)的。對設(shè)計(jì)的自適應(yīng)濾波器進(jìn)行綜合仿真,結(jié)果如圖6所示。圖6 自適應(yīng)濾波器在FPGA中實(shí)現(xiàn)的仿真結(jié)果由于在Quartus II中進(jìn)行仿真時(shí),仿真結(jié)果都是以二進(jìn)制或十六進(jìn)制表示的,不利于觀察自適應(yīng)濾波器的濾波效果。將仿真結(jié)果轉(zhuǎn)換成Table文件輸出,從Table文件中提出數(shù)據(jù),將數(shù)據(jù)導(dǎo)入到matlab中,畫出圖形如圖7所示。圖7 自適

11、應(yīng)濾波器仿真結(jié)果5小結(jié)由圖7中可以看出,在功能上基本實(shí)現(xiàn)了自適應(yīng)濾波器的功能,但是濾波的效果不太好,仍然存在著毛刺。這主要是因?yàn)樵谠撛O(shè)計(jì)中,F(xiàn)IR濾波器的階數(shù)太小,而且在計(jì)算中使用的是定值的u,出現(xiàn)了較大的舍入誤差。不過這種方法的優(yōu)點(diǎn)就是簡單容易實(shí)現(xiàn),而且節(jié)約了很多FPGA的資源。參考文獻(xiàn)1 胡廣書,數(shù)字信號處理,清華大學(xué)出版社,20032 褚振勇,翁木云,F(xiàn)PGA設(shè)計(jì)及應(yīng)用,西安電子科技大學(xué)出版社,20023 趙雅興,F(xiàn)PGA原理、設(shè)計(jì)與應(yīng)用,天津大學(xué)出版社,1994.44 褚振勇,屈丹,門向生,利用FPGA實(shí)現(xiàn)數(shù)字信號處理,電訊技術(shù),2000.1子帶分解的自適應(yīng)濾波器的FPGA實(shí)現(xiàn)2010

12、-06-02 23:00:25 來源:維庫開發(fā)網(wǎng) 關(guān)鍵字: 子帶分解 自適應(yīng)濾波器 FPGA 0 引言自適應(yīng)濾波器已經(jīng)廣泛應(yīng)用于信道均衡、回聲取消、系統(tǒng)識(shí)別、頻譜估計(jì)等各個(gè)方面。基于子帶分解的自適應(yīng)濾波在提高收斂性能的同時(shí)又節(jié)省了一定的計(jì)算量。基于子帶分解的自適應(yīng)濾波是先將輸入信號與參考信號經(jīng)過分解濾波器組進(jìn)行子帶分解、抽取、子帶自適應(yīng)濾波、內(nèi)插、通過合成濾波器組得到輸出信號?;谧訋Х纸獾淖赃m應(yīng)濾波器的優(yōu)點(diǎn):(1由于對信號的抽取,使完成自適應(yīng)濾波所需的計(jì)算量得以減少;(2在子帶進(jìn)行自適應(yīng)濾波使收斂性能有所提高。l 基于子帶分解的自適應(yīng)濾波結(jié)構(gòu)基于子帶分解的自適應(yīng)濾波,其時(shí)域結(jié)構(gòu)如圖1所示。將

13、輸入信號x(n和參考信號d(n分別進(jìn)行子帶分解,抽取,在子帶上進(jìn)行自適應(yīng)濾波,再將子帶上的估計(jì)信號y0(n和y1(n經(jīng)內(nèi)插和合成濾波器組得到最后的合成信號。其中濾波器W00(n和W11(n是兩個(gè)子帶上的自適應(yīng)濾波器,而W01(n和W10(n表示子帶間自適應(yīng)濾波器。這是由于濾波器組均是FIR濾波器,不可能有銳截止的理想特性,只能以長度為代價(jià)來換取近似的特性;這時(shí)在嚴(yán)格采樣下得到的子帶信號必然有混疊,需加入子帶間濾波以消除其影響。這里的子帶自適應(yīng)濾波器采用基于NLMS算法自適應(yīng)濾波器。NLMS算法和LMS算法相比。雖然計(jì)算量稍有增加,但可使得自適應(yīng)濾波器收斂速度大大提高。2 雙通道濾波器組的設(shè)計(jì)本

14、文采用的分析和綜合濾波器之間的關(guān)系如下:H1(z=H0(-z,G1(z=-2H0(-z,G0(z=2H1(-z。由上述表達(dá)式可知設(shè)計(jì)的關(guān)鍵是設(shè)計(jì)H0(z,只要H0(z確定,H1(z,G0(z,G1(z也可確定。本文采用等波紋逼近設(shè)計(jì)法進(jìn)行濾波器設(shè)計(jì)。該方法設(shè)計(jì)的濾波器呈現(xiàn)等波紋頻響特性。等波紋逼近設(shè)計(jì)法設(shè)計(jì)的濾波器具有如下優(yōu)點(diǎn):(1由于誤差均勻分布于整個(gè)頻帶,對固定的階數(shù)N,可以得到最優(yōu)良的濾波特性;(2通帶最平坦,阻帶最小衰減達(dá)到最大。Matlab集成了一套強(qiáng)大的濾波器設(shè)計(jì)工具FDATOOL,可以完成多種濾波器的設(shè)計(jì)、分析和性能*估。本文中FPGA硬件實(shí)現(xiàn)部分用到的4個(gè)FIR濾波器的頻率特性

15、曲線見圖2。3 系統(tǒng)建模與仿真DSP Builder是Altera公司推出的一個(gè)面向DSP開發(fā)的系統(tǒng)級工具,它是作為Matlab的一個(gè)Simulink工具箱(ToolBox出現(xiàn)的。DSP Bui-lder作為Simulink中的一個(gè)工具箱,使得在使用FPGA設(shè)計(jì)DSP系統(tǒng)時(shí)完全可以通過Simulink的圖形化界面進(jìn)行,只需簡單地進(jìn)行DSP Builder工具箱中的模塊調(diào)用即可。圖3中的基于子帶分解的自適應(yīng)濾波器模塊框圖系統(tǒng)由分析濾波器子系統(tǒng)h00,h01,h10,h11,綜合濾波器子系統(tǒng)g00,g01、抽取,插值,加法,減法器,自適應(yīng)濾波器等模塊組成。h00和h10是完全一模一樣的低通濾波器,

16、h01和h11是完全一模一樣的高通濾波器。h00,h01,g00,g01的幅頻特性曲線見圖2。h00對應(yīng)圖2中的h0,h01對應(yīng)圖中的h1,g00對應(yīng)圖中的g0,g01對應(yīng)圖中的g1。Subysteml,Subyst-em2,Subystem3,Subystem4是自適應(yīng)濾波器。Subystem2,Subystem3自適應(yīng)濾波器的階數(shù)是Subysteml,Subystem4階數(shù)的120。期望信號由sine wavel模塊提供,輸入信號由Sine wave2和Random Bitstream疊加在一起的信號組成。系統(tǒng)所需的模塊都是直接調(diào)用DSP builder中的模塊。Subystem2是7階N

17、LMS算法自適應(yīng)濾波器,其框圖見圖4。如果調(diào)高提高收斂速度,則可增加延遲模塊、自適應(yīng)子系統(tǒng)模塊,加法器模塊即可,但需消耗更多的硬件資源。自適應(yīng)濾波器模塊主要由延遲單元,權(quán)值更新子系統(tǒng)、加法器模塊,乘法器模塊組成。它是將抽取過后的信號進(jìn)行自適應(yīng)濾波。FIR濾波器的單位沖激響應(yīng)是有限長的,其z變換為。分析和綜合濾波器系統(tǒng)主要由延遲單元、加法器、加法器模塊組成。分析和綜合濾波器不可能有銳截止的理想特性,必須通過增加階數(shù)來逼近。分析濾波器子系統(tǒng)h00,h01,h10,h11,綜合濾波器子系統(tǒng)g00,g01均采用橫截型結(jié)構(gòu)。權(quán)值更新子系統(tǒng)模塊主要由乘法器、除法器、加法器、延遲單元、總線類型轉(zhuǎn)換等模塊組成

18、。該子系統(tǒng)主要完成濾波器的權(quán)值更新。w(k+1=w(k+xT(kx(ke(kx(k運(yùn)算和wi(kxi(k運(yùn)算。4 仿真Matlab的Simulink環(huán)境具有強(qiáng)大的圖形化仿真驗(yàn)證功能,用DSP Builder模塊設(shè)計(jì)好一個(gè)新的模型后,可以直接在Simulink中進(jìn)行算法級、系統(tǒng)級仿真驗(yàn)證。該設(shè)計(jì)的Simulink仿真如圖6所示,輸出信號含有毛刺,這說明輸出信號與期望信號還有一定的穩(wěn)態(tài)誤差??梢酝ㄟ^增加濾波器的階數(shù),或修改步長控制參數(shù),以達(dá)到更好的效果。運(yùn)行Signal complier可將通過Simulink的模塊文件(mdl轉(zhuǎn)換成通過的硬件描述語言VHDL文件;運(yùn)行Testbench(測試平臺(tái)可將Sine wavel、Sinewavel+noise、Clock轉(zhuǎn)換成針對H

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論