張立萍
(赤峰學院 物理與電子信息工程系,內蒙古 赤峰 024000)
標準串行LMS自適應濾波器的MATLAB實現(xiàn)
張立萍
(赤峰學院 物理與電子信息工程系,內蒙古 赤峰 024000)
自適應濾波器有多種硬件實現(xiàn)方法.本文以隨機干擾噪聲信號作為研究對象,在Matlab環(huán)境中調用Simu1ink中的IP模塊,對4階串行自適應濾波器進行了系統(tǒng)建模和仿真,最終實現(xiàn)了所設計的自適應濾波器.
自適應濾波器;LMS算法;SLMS;MATLAB
對于自適應濾波器,有IIR和FIR兩種實現(xiàn)形式,但FIR濾波器比IIR濾波器應用更廣泛.因為FIR濾波器只有可調的零點而沒有極點,所以它比IIR濾波器要穩(wěn)定,此外,LMS算法的計算量小,對應的硬件實現(xiàn)電路較為簡單,因此本文所設計的自適應濾波器是基于FIR形式的標準串行LMS自適應濾波器.
LMS算法遞推公式為:W(k+1)=W(k)+mX(k)e(k),其中誤差信號e(k)為e(k)=d(k)-y(k)=d(k)-WT(k)X(k),其信號流圖如圖1所示.我們將基于LMS算法的自適應濾波器的算法過程重新整理如下,.
(1)將輸入信號X(k)與權值W(k)的各個分量對應相乘,然后進行累加得到實際輸出信號y(k);
(2)將期望輸出信號d(k)與實際輸出信號y(k)相減得到誤差信號e(k);
(3)將誤差信號e(k)與步長參數(shù)μ相乘得到一個中間結果M;
(4)再將中間結果M與輸入信號X(k)相乘又得到另一個中間結果N;
圖1 LMS算法實現(xiàn)的信號流圖
(5)實際上中間結果N是一個向量,它與原來權值的每一個對應的分量進行相加得到新的權值向量.
(6)新的權值向量再與新的輸入向量進行(1)到(5)步驟的操作,如此循環(huán)往復,從而實現(xiàn)自適應濾波.
在圖1中,濾波模塊與系數(shù)更新模塊式彼此分開的.上面的虛線框是標準FIR濾波器,可由延時單元、加法器與乘法器組成;下面的虛線框是系數(shù)更新模塊,用減法器產生誤差信號,由加法器、延遲模塊與乘法器實現(xiàn)誤差更新.
由于采樣是按串行方式處理的,而不是按流水線或并行方式來處理的.因此該結構被稱為串行LMS(SLMS).只有在一個采樣輸入被完全處理之后,新的輸入采樣才能被接受.由于加法器鏈的進位遲延,這樣的結構會影響系統(tǒng)可能達到的最高運行速度.
從LMS算法的信號流圖中可以看出,LMS自適應濾波器可由延遲器、乘法器、加法器和系數(shù)更新子模塊組成.基于此點,可以在Matlab/Simu1ink平臺上,調其中的I P模塊進行系統(tǒng)建模,得到了4階標準串行自適應濾波器(SLMS)的系統(tǒng)框圖,見圖2.
在圖2中,所有的模塊都是直接調用Simu1ink中的IP模塊,其中正弦波和白噪聲的疊加作為輸入信號x(k),正弦波作為期望信號d(k).標準串行LMS濾波器主要由以下三部分組成:
(1)FIR濾波模塊(FIRFilter):模塊圖如圖3
圖2 4階標準串行LMS自適應濾波器系統(tǒng)
所示,它是一個四階的濾波器,濾波器的輸出為y(k).其中延遲模塊、加法模塊、乘法模塊式直接調用Simu1ink中的IP模塊.根據(jù)濾波器的輸出公式y(tǒng)(k)=x(k)w0+x(k-1)w1+x(k-2)w2+x(k-3)w3,即x(k)乘以濾波器的第一個濾波參數(shù)w0,x(k)的第一個延時x(k-1)乘以濾波器的第二個濾波參數(shù)w1,x(k)的第二個延時x(k-2)乘以濾波器的第三個濾波參數(shù)w2x(k)的第三個延時x(k-3)乘以濾波器的第四個濾波參數(shù)w 3,然后相加就得到濾波器的輸出y(k),對應的就是模型中的乘法器(Mult0-Mult3)和加法器模塊(Add0-Add2).
圖3 FIR模塊
(2)權重更新模塊(weight):模塊圖如圖4所示,根據(jù)自適應濾波器參數(shù)的調整公式W(k+1)=W(k)+me(k)X(k)可知,這是一個反饋系統(tǒng),即k+1時刻的參數(shù)w(k+l)是由k時刻的參數(shù)w(k)的經過計算得到的.這是一個迭代公式,對應的模型是帶有反饋的乘法器(Mult0-Mult3)和加法器模塊(Add0-Add2).誤差信號e(k)與迭代步長μ相乘,為節(jié)省硬件資源,取m=1/1024,就可以將乘法運算轉化為向右移位10位,對應的是模型中的移位模塊shift,然后將μe(k)反饋給乘法器模塊(Mult0-Mult3),作為乘法器的一個輸入,再與對應的X(k)相乘,實現(xiàn)權系數(shù)的更新.
圖4 權重更新模塊
(3)誤差計算模塊:誤差計算模塊比較簡單,對應的是模型中的減法運算模塊(Sub3),完成e(k)=d (k)-y(k)的計算,得到誤差信號e(k).
圖中還有一些數(shù)據(jù)類型轉換模塊,如Gatewayin和Gatewayout模塊,主要用來進行定點數(shù)和浮點數(shù)之間的轉換.
圖5是經過模擬仿真后得到的4階SLMS自適應濾波器的Simulink仿真結果圖.第一行信號是參考信號d(k),第二行信號是輸入信號x(k),第三行信號是濾波器的輸出信號y(k),第四行信號是輸出誤差信號e(k).
圖5 4階SLMS自適應濾波器Simulink仿真波形圖
從圖中可以看出,誤差信號e(k)和x(k)中疊加的隨機噪聲成分很接近,這與理論分析相同,濾波后的輸出信號為單一的正弦波,可見自適應濾波器的輸出還是比較理想的.
〔1〕施陽,李俊.MATLAB語言工作箱——TOOLBOX使用指南[M].西安:西北工業(yè)大學出版社,1999.
〔2〕黃智偉,王彥,陳瓊,等.FPGA系統(tǒng)設計與實踐[M].北京:電子工業(yè)出版社,2005.
〔3〕王誠,薛小剛,鐘信潮.Xilinx ISE使用詳解[M].北京:人民郵電出版社,2005.
〔4〕尚勇,吳順.一種新的FIR濾波器脈動實現(xiàn)結構[J].電子學報,2000(1):57-59.
〔5〕李虎虎,羅豐.基于算法的高階FIR濾波器優(yōu)化設計[J].雷達科學與技術,2006(6):377-381.
〔6〕劉雄飛,高金定,齊海兵.LMS自適應濾波器FPGA實現(xiàn)的新方法[J].壓電與聲光,2007,29(1):87-89.
TP273.2
A
1673-260 X(2013)10-0012-02