摘 要: 濾波是濾除信號(hào)中某些特定頻率的波形的技術(shù),,在數(shù)字信號(hào)處理中,,主要用于濾除噪聲和干擾信號(hào)。由于噪聲和干擾信號(hào)的不確定性,,采用固定濾波系數(shù)的數(shù)字濾波器無(wú)法達(dá)到最佳的效果,。自適應(yīng)濾波器能夠隨著環(huán)境的改變而改動(dòng)濾波器自身的參數(shù)和結(jié)構(gòu),從而能夠隨著噪聲和干擾信號(hào)的不斷變化修正濾波器的參數(shù)和結(jié)構(gòu),,最終實(shí)現(xiàn)較理想的濾波,。本文研究了最小均方差(LMS)算法,并結(jié)合自適應(yīng)濾波器的結(jié)構(gòu)和原理,,設(shè)計(jì)出FIR結(jié)構(gòu)自適應(yīng)濾波器,。最后給出MATLAB仿真結(jié)果,并利用DSP驗(yàn)證自適應(yīng)濾波器的性能,。
關(guān)鍵詞: 自適應(yīng)濾波器;MATLAB,;LMS算法,;FIR濾波器;DSP
0 引言
濾波即濾除信號(hào)中的噪聲和干擾信號(hào),,提取有用信號(hào)的技術(shù),。濾波技術(shù)廣泛應(yīng)用于信號(hào)處理和信號(hào)分析中。在信號(hào)的獲取和傳輸過(guò)程中出現(xiàn)的噪聲,,以及信號(hào)處理過(guò)程中的干擾信號(hào)都需要通過(guò)濾波技術(shù)濾除,,來(lái)保證信號(hào)的安全性和可靠性,。例如,實(shí)現(xiàn)雷達(dá)跟蹤功能需要獲取大量的船舶方位數(shù)據(jù),,在獲取數(shù)據(jù)的過(guò)程中,,會(huì)產(chǎn)生大量的隨機(jī)干擾和測(cè)量誤差。因此,,為了準(zhǔn)確地獲取船舶瞬時(shí)的位置,、加速度和速度等,需要利用濾波,,將誤差和隨機(jī)干擾濾除,,濾波技術(shù)在雷達(dá)跟蹤功能實(shí)現(xiàn)中起到非常重要的作用。濾波器是一種允許特定頻率信號(hào)通過(guò)的選頻裝置,,通過(guò)這種裝置獲取有用的信號(hào),,濾除雜波。從最初的維納濾波到后來(lái)的卡爾曼濾波,,濾波器的實(shí)現(xiàn)有了很大的發(fā)展,,隨著技術(shù)的進(jìn)步和社會(huì)的發(fā)展,需要處理的信號(hào)越來(lái)越復(fù)雜,,要求實(shí)現(xiàn)的精度越來(lái)越高,,同時(shí)對(duì)濾波器的要求也越來(lái)越高,其應(yīng)用范圍進(jìn)一步得到拓展,。隨著濾波器的應(yīng)用環(huán)境不斷復(fù)雜化,,對(duì)非線性的濾波技術(shù)研究得到進(jìn)一步的發(fā)展。因此,,自適應(yīng)濾波器重新得到國(guó)內(nèi)外研究者關(guān)注,。自適應(yīng)濾波器具有自我修正和跟蹤的特點(diǎn),主要適用于隨機(jī)性噪聲和干擾濾除,。本文在自適應(yīng)濾波器的原理和算法的基礎(chǔ)上,,利用MATLAB和DSP軟件仿真環(huán)境設(shè)計(jì)實(shí)現(xiàn)自適應(yīng)濾波的最優(yōu)濾波。
1 自適應(yīng)濾波器原理與結(jié)構(gòu)
1.1 自適應(yīng)濾波原理
自適應(yīng)濾波即濾波器的參數(shù)可以自我調(diào)節(jié),,可以利用前一時(shí)刻的結(jié)果作為當(dāng)前時(shí)刻濾波器的參數(shù)改變的依據(jù),,由此可以適應(yīng)具有隨機(jī)噪聲和隨時(shí)間變化的干擾信號(hào)的應(yīng)用環(huán)境。就像生物能以各種有效的方式適應(yīng)生存環(huán)境一樣,。自適應(yīng)濾波器是一種具有反饋?zhàn)饔玫拈]環(huán)設(shè)置,,它是一種特殊形式的維納濾波器,可以通過(guò)反饋信息調(diào)節(jié)自身參數(shù)達(dá)到最優(yōu)濾波,。自適應(yīng)濾波器沒(méi)有復(fù)雜計(jì)算,,實(shí)時(shí)性強(qiáng),不需要已知輸入信號(hào),也可以對(duì)信號(hào)進(jìn)行有效濾波,。因此對(duì)于無(wú)法預(yù)知的信號(hào)固定濾波系數(shù)的傳統(tǒng)濾波器無(wú)法濾除的雜波和噪聲,,自適應(yīng)濾波器可以簡(jiǎn)單快速地輸出理想期望信號(hào)。利用數(shù)字濾波器對(duì)噪聲和干擾的最佳估計(jì)將輸入信號(hào)中混有的干擾濾除,,將目標(biāo)信號(hào)與噪聲和干擾信號(hào)有效地分離,。隨著自適應(yīng)濾波技術(shù)的發(fā)展,其在電信,、雷達(dá),、聲吶、實(shí)時(shí)控制以及圖像處理等領(lǐng)域都有廣泛應(yīng)用,。
1.2 自適應(yīng)濾波器的結(jié)構(gòu)
自適應(yīng)濾波器主要由數(shù)字濾波器和自適應(yīng)算法兩部分構(gòu)成[1],,其中,數(shù)字濾波器的系數(shù)可以調(diào)節(jié),,而自適應(yīng)算法的作用就是調(diào)節(jié)和修正自適應(yīng)濾波器的系數(shù),。如圖1所示。圖中自適應(yīng)濾波器有x(n)和z(n)兩個(gè)輸入端,,其中z(n)是包含目標(biāo)信號(hào)s(n)和噪聲d(n)的輸入信號(hào),,s(n)和d(n)是不相關(guān)的兩個(gè)信號(hào),x(n)是與噪聲d(n)有某種聯(lián)系的z(n)的一種度量信號(hào),。y(n)可以通過(guò)數(shù)字信號(hào)濾波器得到,,然后可以通過(guò)公式e(n)=z(n)-y(n)=s(n)+d(n)-y(n)得到誤差信號(hào)e(n)。通過(guò)e(n)得到s(n)的最佳估計(jì)信號(hào),,而自適應(yīng)濾波器的基本原理就是利用系數(shù)可調(diào)的數(shù)字濾波器將雜波和噪聲從信號(hào)中濾除,。
由圖1自適應(yīng)濾波器結(jié)構(gòu)可知,基于濾波系數(shù)可調(diào)的要求,,對(duì)于數(shù)字濾波器的選擇包括有限長(zhǎng)沖激響應(yīng)濾波器(FIR)和無(wú)限長(zhǎng)沖激響應(yīng)濾波器(IIR)兩種數(shù)字濾波器可選擇,。FIR型濾波器優(yōu)勢(shì)明顯,它的系統(tǒng)更穩(wěn)定,,可以利用它實(shí)現(xiàn)多通帶濾波器,,同時(shí)它更容易實(shí)現(xiàn)線性相位[2]。IIR濾波器可以用更低的階數(shù)實(shí)現(xiàn)與FIR相同的阻帶衰減效果,,但鑒于FIR易實(shí)現(xiàn)嚴(yán)格的線性相位,、穩(wěn)定性和任意的幅頻特性等優(yōu)點(diǎn),另外FIR還有便于用DSP實(shí)現(xiàn)的優(yōu)勢(shì),,可以用節(jié)省存儲(chǔ)空間的立即數(shù)乘加完成編程,,因此本文的設(shè)計(jì)中自適應(yīng)數(shù)字濾波器部分采用FIR濾波器橫向結(jié)構(gòu)。圖2所示為FIR橫向?yàn)V波器結(jié)構(gòu)圖,。
2 自適應(yīng)濾波算法
2.1 LMS自適應(yīng)濾波算法
Widrow和Hoff提出的最小均方差(LMS)算法在實(shí)踐中被廣泛應(yīng)用,,其具有計(jì)算量小和易于實(shí)現(xiàn)的特點(diǎn)[3]。自適應(yīng)算法通常由三大重要的技術(shù)指標(biāo)來(lái)衡量其優(yōu)劣:時(shí)變系統(tǒng)隨參數(shù)變化導(dǎo)致系統(tǒng)特性變化的檢測(cè)能力,、輸出信號(hào)收斂到期望信號(hào)的速度以及對(duì)系統(tǒng)穩(wěn)定性的調(diào)節(jié)能力,。自適應(yīng)濾波器實(shí)現(xiàn)功能的關(guān)鍵是尋找出均方誤差最小時(shí)濾波器權(quán)系數(shù)Wi的值,整個(gè)過(guò)程中利用ε和各x(n)的值,,再根據(jù)上述的條件,,通過(guò)算法找出Wi的值,實(shí)現(xiàn)自動(dòng)調(diào)節(jié)Wi值的濾波器,。所有的濾波器系數(shù)調(diào)整算法都是設(shè)法使輸出y(n)和目標(biāo)信號(hào)d(n)之差 e(n)的均方值最小化,,并且根據(jù)這個(gè)判據(jù)來(lái)修改權(quán)系數(shù)。均方誤差ε表示為:
其中:R=E[X(n)XT(n)]為N×N的自相關(guān)矩陣,,它是輸入信號(hào)采樣值間的相關(guān)性矩陣,。P=E[d(n)X(n)]為N×1互相關(guān)矢量,代表理想信號(hào)d(n)與輸入矢量的相關(guān)性,。
由式(4)可知,,自適應(yīng)濾波器的權(quán)系數(shù)與濾波器的抽頭系數(shù)相關(guān)聯(lián),可以根據(jù)已知的矩陣R和矢量P以及抽頭系數(shù)的二次函數(shù)方程式求得W的解,。根據(jù)二次函數(shù)曲線具有唯一最小函數(shù)值的性質(zhì),,可以得出濾波器輸出誤差函數(shù)具有最小值即濾波得到最優(yōu)效果,在數(shù)學(xué)上可以利用梯度法求得此最小值,,為了簡(jiǎn)單起見(jiàn),,設(shè)W是一維的,則E[e2(n)]與W的關(guān)系成為一個(gè)拋物線,。如圖3中在W*點(diǎn)獲得最小均方誤差,。根據(jù)遞推關(guān)系式,利用梯度矢量法計(jì)算出拋物曲面的最低點(diǎn),。而自適應(yīng)的過(guò)程就是在梯度矢量的負(fù)方向上逐漸校正濾波器系數(shù),,調(diào)節(jié)加權(quán)系數(shù)W使均方誤差最小,相當(dāng)于沿超拋物形曲面下降到最小值,,獲得最佳濾波或準(zhǔn)最優(yōu)工作狀態(tài),。
實(shí)際上,自適應(yīng)濾波與維納濾波最主要的差別就是自適應(yīng)濾波增加了一個(gè)可以識(shí)別控制濾波器系數(shù)的部分,,可以根據(jù)期望輸出信號(hào)與濾波器實(shí)際輸出信號(hào)的比較,,用誤差函數(shù)值去控制和調(diào)整濾波器系數(shù)直至誤差達(dá)到最小值。也正因如此,,找到一個(gè)能求得加權(quán)系數(shù),,直至W=W*,E[e2(n)]=min的遞推式是LMS算法的核心,。
2.2 RLS自適應(yīng)濾波算法
另外一種區(qū)別于LMS算法的具有較快收斂速度的自適應(yīng)算法即RLS,,但是它存在實(shí)時(shí)性差的缺點(diǎn),限制了其應(yīng)用。RLS自適應(yīng)濾波器的最佳濾波權(quán)系數(shù)需要用輸入信號(hào)自相關(guān)矩陣的逆來(lái)求得[4],。針對(duì)RLS算法計(jì)算復(fù)雜,、實(shí)時(shí)性差但收斂于期望信號(hào)的速度比較快的特性,只要加以改進(jìn)就能使其得到很好的應(yīng)用,,因此人們提出了改進(jìn)的RLS算法,,即變換域自適應(yīng)濾波算法。
2.3 變換域自適應(yīng)濾波算法
對(duì)于某些強(qiáng)相關(guān)的信號(hào)或難以濾除的信號(hào),,利用變換域的思想可以將目標(biāo)信號(hào)輕松地分離出來(lái),,變換域可以輕松解決時(shí)域疑難問(wèn)題,頻域變換,、小波變換都屬于變換域,。1979年Dentino首次將變換域的思想應(yīng)用在自適應(yīng)濾波上,對(duì)變換域自適應(yīng)濾波算法做了全面的總結(jié)和解釋,。變換域自適應(yīng)濾波算法就通過(guò)正交變換把時(shí)域信號(hào)轉(zhuǎn)變?yōu)轭l域或小波域等信號(hào),,用歸一化的能量平方根來(lái)表示變換后的信號(hào),然后結(jié)合自適應(yīng)算法進(jìn)行濾波,。隨著技術(shù)的不斷發(fā)展,,變換域自適應(yīng)濾波算法不斷得到推廣。由于LMS算法是依賴于輸入信號(hào)求其收斂性,,所以針對(duì)強(qiáng)相關(guān)的信號(hào),,LMS自適應(yīng)濾波的效果大大降低[5]?;趯?duì)以上三種自適應(yīng)算法的研究,,本文主要針對(duì)LMS自適應(yīng)算法對(duì)其進(jìn)行MATLAB與DSP設(shè)計(jì)與實(shí)現(xiàn)。
3 自適應(yīng)濾波器的仿真實(shí)現(xiàn)
3.1 FIR濾波算法MATLAB仿真實(shí)現(xiàn)
MATLAB能方便地以書(shū)寫(xiě)計(jì)算公式的思維方式對(duì)所要實(shí)現(xiàn)的功能編程,,具有強(qiáng)大的語(yǔ)言功能,,在數(shù)字信號(hào)處理方面具有很大的優(yōu)勢(shì)。另外,,MATLAB具有很多封裝完整的可供用戶使用的開(kāi)源數(shù)據(jù)和工具箱,,如系統(tǒng)辨識(shí)工具箱、神經(jīng)網(wǎng)絡(luò)工具箱,、信號(hào)處理工具箱,、模糊推理系統(tǒng)工具箱等。圖形,、數(shù)學(xué),、編程還可以通過(guò)Simulink模塊來(lái)實(shí)現(xiàn),可將自己建好的模型打包成塊,,以后便可以直接調(diào)用,,非常方便,。它還提供了與Windows編程相結(jié)合的矩陣運(yùn)算、圖形繪制,、數(shù)據(jù)處理和圖形處理等工具,,在自動(dòng)控制、圖像信號(hào)處理,、雷達(dá)工程、信號(hào)分析,、優(yōu)化設(shè)計(jì)等領(lǐng)域得到了廣泛應(yīng)用[6],。
自適應(yīng)LMS算法可以用MATLAB方便地實(shí)現(xiàn)。自適應(yīng)LMS算法的原理是利用最陡下降法以及時(shí)間n=0的濾波系數(shù)矢量和任意的起始值W(0)通過(guò)迭代公式更新濾波器權(quán)系數(shù)W(n),,其具體方法如下:
?。?)求得誤差信號(hào)e(n):e(n)=d(n)-x(n),其中 d(n)為濾波器期望輸出信號(hào),,x(n)為濾波器輸入信號(hào),。
(2)求濾波器系數(shù),。利用如下遞推公式更新矢量值:
w(n)=w(n-1)+2*e(n)*x(n)
其中為收斂因子,。
(3)從時(shí)間參數(shù)n=0開(kāi)始遞增加1,,求誤差信號(hào),,重復(fù)上述計(jì)算直到求得最小均方誤差實(shí)現(xiàn)最優(yōu)濾波為止。
LMS的核心算法如下:
function[yn,,W,,en]=LMS(xn,dn,,M,,mu,itr)
en=zeros(itr,,1),;
W=zeros(M,itr),;
for k=M:itr
x=xn(k:-1:k-M+1),;
y=W(:,k-1).′*x,;
en(k)=dn(k)-y,;
W(:,k)=W(:,,k-1)+2*mu*en(k)*xn(k),;
end
yn=inf*ones(size(xn)),;
for k=M:length(xn)
x=xn(k:-1:k-M+1);
yn(k)=W(:,,end).′*x,;
end
通過(guò)實(shí)驗(yàn)產(chǎn)生輸入信號(hào)x(n),期望信號(hào)為d(n),,兩者相減得到誤差信號(hào)e(n),,然后通過(guò)調(diào)用LMS算法從寬甸信號(hào)中提取單頻信號(hào),實(shí)驗(yàn)結(jié)果如圖4,、圖5所示,,進(jìn)一步調(diào)整收斂因子,觀察結(jié)果變化發(fā)現(xiàn),,收斂因子越大,,濾波器的抽頭數(shù)越多,期望信號(hào)能以更快的速度收斂到輸出信號(hào),,同時(shí)也存在穩(wěn)態(tài)誤差越大的風(fēng)險(xiǎn),,所以應(yīng)選用合適的收斂因子和濾波器階數(shù),在收斂速度和誤差穩(wěn)態(tài)范圍上得到權(quán)衡,。
3.2 自適應(yīng)濾波器DSP設(shè)計(jì)實(shí)現(xiàn)
通過(guò)MATLAB的仿真實(shí)驗(yàn),,LMS自適應(yīng)濾波器的濾波特性得到驗(yàn)證,接下來(lái)用TMS320C6713設(shè)計(jì)實(shí)現(xiàn)LMS自適應(yīng)濾波器,。本文設(shè)計(jì)實(shí)現(xiàn)的是應(yīng)用LMS算法的FIR型自適應(yīng)濾波器[7],。其自適應(yīng)濾波器的程序流程圖如圖6所示。
由圖6自適應(yīng)濾波器設(shè)計(jì)流程圖可知,,其設(shè)計(jì)過(guò)程主要包括三個(gè)步驟:
第一步:程序初始化
為輸入信號(hào)x(n),、濾波輸出信號(hào)y(n)、誤差信號(hào) e(n)分配存儲(chǔ)區(qū),,同時(shí)為輸入信號(hào)的長(zhǎng)度(num),、濾波器階數(shù)(coeff)設(shè)置初值,本文設(shè)置為num=1 024,,coeff=16,。收斂因子fU=0.000 5。
第二步:調(diào)用信號(hào)輸入子程序產(chǎn)生輸入信號(hào)x(n),,輸出信號(hào)y(n),,誤差信號(hào)e(n)。
其程序如下:
for(i=0,;i<num,;i++)
{
x[i]=256*sin(i*2*PI/34);//初始化輸入信號(hào)
y[i]=z[i]=0,;//初始化輸出信號(hào)誤差信號(hào)
}
第三步:調(diào)用LMS算法
主程序運(yùn)行時(shí)不斷調(diào)用LMS算法子程序,,來(lái)計(jì)算濾波信號(hào)輸出,,檢測(cè)信號(hào)是否完成濾波,如未完成重復(fù)第三步工作[8],。其LMS算法子程序流程圖如圖7,。LMS算法子程序?yàn)閕nt FIRLMS(int*nx,float*nh,,int nError,,int nCoeffNum)。在CCS環(huán)境下用C語(yǔ)言編寫(xiě)程序,,通過(guò)編譯,、鏈接后生成公共目標(biāo)代碼,選擇View/Graph/Time/Frequency,,進(jìn)入Graph Prorerty Dialog對(duì)話框,設(shè)置合適的圖形顯示參數(shù),,在顯示窗口顯示自適應(yīng)濾波器DSP仿真結(jié)果,,如圖8、圖9,、圖10所示,。
LMS核心算法子程序如下:
int FIRLMS(int*nx,float*nh,,int nError,,int nCoeffNum)
{
int i,r,;
float fWork,;
r=0;
for(i=0,;i<nCoeffNum,;i++)
{
fWork=nx[i]*nError*fU;
//h(n+1)=h(n)+2u*e(n)*x(n)
nh[i]+=fWork,;
r+=(nx[i-i]*nh[i]),;
}
r/=128;
return r,;}
通過(guò)觀察輸出波形與輸入波形,,可以看出輸出波形一開(kāi)始與輸入波形相差較大,但通過(guò)自適應(yīng)濾波器不斷調(diào)節(jié)加權(quán)系數(shù)w(n),,使輸出波形逐漸符合輸出要求,。由此也可驗(yàn)證此自適應(yīng)濾波器LMS算法的有效性,其能夠很好地濾除數(shù)字信號(hào)中的噪聲,,較好地還原了數(shù)字信號(hào)的信息,,在數(shù)字信號(hào)處理領(lǐng)域有很好的應(yīng)用價(jià)值,。
4 結(jié)束語(yǔ)
本文對(duì)自適應(yīng)濾波器的原理和結(jié)構(gòu)圖進(jìn)行了分析,利用先進(jìn)的MATLAB仿真技術(shù)進(jìn)行仿真最后進(jìn)行DSP的設(shè)計(jì)實(shí)現(xiàn),。仿真結(jié)果充分表明,,自適應(yīng)濾波器可以根據(jù)噪聲信號(hào)的頻率進(jìn)行跟蹤并以此來(lái)很好地濾除信號(hào)中的噪聲。并且,,在噪聲和信號(hào)特性不斷隨時(shí)間變化的同時(shí),,自適應(yīng)濾波器可以利用自適應(yīng)算法不斷調(diào)整和修正沖激響應(yīng)函數(shù)系數(shù),能很好地適應(yīng)輸入環(huán)境的變化,。這充分突出了自適應(yīng)濾波器的優(yōu)勢(shì),,使其具有更廣泛的應(yīng)用領(lǐng)域和廣闊的發(fā)展前景,例如通信信道的自適應(yīng)均衡,、心電圖的電源干擾消除,、系統(tǒng)模型識(shí)別和雷達(dá)波束形成等領(lǐng)域?;诓煌淖赃m應(yīng)算法以及不同的數(shù)字濾波器結(jié)構(gòu)可構(gòu)成不同結(jié)構(gòu)的自適應(yīng)濾波器,,本文重點(diǎn)研究了基于LMS算法的FIR型自適應(yīng)濾波器。本文還有待于進(jìn)一步研究和改進(jìn),,以提高自適應(yīng)濾波器的精度和收斂速度,。
參考文獻(xiàn)
[1] 貢鎮(zhèn).基于DSP的自適應(yīng)濾波器的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2013(17):62-64.
[2] 李茂清,,王潔,,陳強(qiáng),等.基于MATLAB程序的FIR濾波器設(shè)計(jì)實(shí)現(xiàn)[J].電力學(xué)報(bào),,2008(2):87-90.
[3] 張玲玲,,唐曉英,劉偉峰.一種新的變步長(zhǎng)LMS自適應(yīng)濾波算法性能分析[J].生命科學(xué)儀器,,2005(5):39-41.
[4] 郭華.自適應(yīng)濾波算法及應(yīng)用研究[D].西安:西北師范大學(xué),,2007.
[5] 蔣薇薇,楊萍,,王昱潔.基于變步長(zhǎng)LMS算法的自適應(yīng)濾波器研究[J].儀器儀表學(xué)報(bào),,2010,31(8):478-480.
[6] 劉光普,,高玉春.MATLAB在通信原理教學(xué)中的應(yīng)用[J].數(shù)據(jù)采集與處理,,2012(S1):39-42.
[7] 莫晶.基于自適應(yīng)噪聲抵消系統(tǒng)的不同濾波算法研究[D].昆明:云南師范大學(xué),2014.
[8] 許國(guó)威,,馬勝前,,危淑平.自適應(yīng)濾波RLS算法研究與DSP實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010(10):35-38.