《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于MATLAB與DSP的自適應(yīng)濾波器設(shè)計與實現(xiàn)
基于MATLAB與DSP的自適應(yīng)濾波器設(shè)計與實現(xiàn)
2015年微型機(jī)與應(yīng)用第21期
楊 娜,楊神化,,鄭敏杰
(集美大學(xué) 航海學(xué)院,,福建 廈門 361000)
摘要: 濾波是濾除信號中某些特定頻率的波形的技術(shù),在數(shù)字信號處理中,,主要用于濾除噪聲和干擾信號,。由于噪聲和干擾信號的不確定性,采用固定濾波系數(shù)的數(shù)字濾波器無法達(dá)到最佳的效果,。自適應(yīng)濾波器能夠隨著環(huán)境的改變而改動濾波器自身的參數(shù)和結(jié)構(gòu),,從而能夠隨著噪聲和干擾信號的不斷變化修正濾波器的參數(shù)和結(jié)構(gòu),最終實現(xiàn)較理想的濾波,。本文研究了最小均方差(LMS)算法,,并結(jié)合自適應(yīng)濾波器的結(jié)構(gòu)和原理,設(shè)計出FIR結(jié)構(gòu)自適應(yīng)濾波器,。最后給出MATLAB仿真結(jié)果,,并利用DSP驗證自適應(yīng)濾波器的性能。
Abstract:
Key words :

  摘  要: 濾波是濾除信號中某些特定頻率的波形的技術(shù),,在數(shù)字信號處理中,,主要用于濾除噪聲和干擾信號。由于噪聲和干擾信號的不確定性,,采用固定濾波系數(shù)的數(shù)字濾波器無法達(dá)到最佳的效果,。自適應(yīng)濾波器能夠隨著環(huán)境的改變而改動濾波器自身的參數(shù)和結(jié)構(gòu),從而能夠隨著噪聲和干擾信號的不斷變化修正濾波器的參數(shù)和結(jié)構(gòu),,最終實現(xiàn)較理想的濾波,。本文研究了最小均方差(LMS)算法,并結(jié)合自適應(yīng)濾波器的結(jié)構(gòu)和原理,,設(shè)計出FIR結(jié)構(gòu)自適應(yīng)濾波器,。最后給出MATLAB仿真結(jié)果,并利用DSP驗證自適應(yīng)濾波器的性能,。

  關(guān)鍵詞: 自適應(yīng)濾波器,;MATLAB;LMS算法,;FIR濾波器,;DSP

0 引言

  濾波即濾除信號中的噪聲和干擾信號,提取有用信號的技術(shù),。濾波技術(shù)廣泛應(yīng)用于信號處理和信號分析中,。在信號的獲取和傳輸過程中出現(xiàn)的噪聲,以及信號處理過程中的干擾信號都需要通過濾波技術(shù)濾除,,來保證信號的安全性和可靠性,。例如,,實現(xiàn)雷達(dá)跟蹤功能需要獲取大量的船舶方位數(shù)據(jù),在獲取數(shù)據(jù)的過程中,,會產(chǎn)生大量的隨機(jī)干擾和測量誤差,。因此,為了準(zhǔn)確地獲取船舶瞬時的位置,、加速度和速度等,,需要利用濾波,將誤差和隨機(jī)干擾濾除,,濾波技術(shù)在雷達(dá)跟蹤功能實現(xiàn)中起到非常重要的作用,。濾波器是一種允許特定頻率信號通過的選頻裝置,通過這種裝置獲取有用的信號,,濾除雜波,。從最初的維納濾波到后來的卡爾曼濾波,濾波器的實現(xiàn)有了很大的發(fā)展,,隨著技術(shù)的進(jìn)步和社會的發(fā)展,,需要處理的信號越來越復(fù)雜,要求實現(xiàn)的精度越來越高,,同時對濾波器的要求也越來越高,,其應(yīng)用范圍進(jìn)一步得到拓展。隨著濾波器的應(yīng)用環(huán)境不斷復(fù)雜化,,對非線性的濾波技術(shù)研究得到進(jìn)一步的發(fā)展,。因此,自適應(yīng)濾波器重新得到國內(nèi)外研究者關(guān)注,。自適應(yīng)濾波器具有自我修正和跟蹤的特點,,主要適用于隨機(jī)性噪聲和干擾濾除。本文在自適應(yīng)濾波器的原理和算法的基礎(chǔ)上,,利用MATLAB和DSP軟件仿真環(huán)境設(shè)計實現(xiàn)自適應(yīng)濾波的最優(yōu)濾波,。

1 自適應(yīng)濾波器原理與結(jié)構(gòu)

  1.1 自適應(yīng)濾波原理

  自適應(yīng)濾波即濾波器的參數(shù)可以自我調(diào)節(jié),可以利用前一時刻的結(jié)果作為當(dāng)前時刻濾波器的參數(shù)改變的依據(jù),,由此可以適應(yīng)具有隨機(jī)噪聲和隨時間變化的干擾信號的應(yīng)用環(huán)境,。就像生物能以各種有效的方式適應(yīng)生存環(huán)境一樣。自適應(yīng)濾波器是一種具有反饋作用的閉環(huán)設(shè)置,,它是一種特殊形式的維納濾波器,可以通過反饋信息調(diào)節(jié)自身參數(shù)達(dá)到最優(yōu)濾波,。自適應(yīng)濾波器沒有復(fù)雜計算,,實時性強(qiáng),不需要已知輸入信號,,也可以對信號進(jìn)行有效濾波,。因此對于無法預(yù)知的信號固定濾波系數(shù)的傳統(tǒng)濾波器無法濾除的雜波和噪聲,,自適應(yīng)濾波器可以簡單快速地輸出理想期望信號。利用數(shù)字濾波器對噪聲和干擾的最佳估計將輸入信號中混有的干擾濾除,,將目標(biāo)信號與噪聲和干擾信號有效地分離,。隨著自適應(yīng)濾波技術(shù)的發(fā)展,其在電信,、雷達(dá),、聲吶、實時控制以及圖像處理等領(lǐng)域都有廣泛應(yīng)用,。

  1.2 自適應(yīng)濾波器的結(jié)構(gòu)

001.jpg

  自適應(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)兩個輸入端,,其中z(n)是包含目標(biāo)信號s(n)和噪聲d(n)的輸入信號,,s(n)和d(n)是不相關(guān)的兩個信號,x(n)是與噪聲d(n)有某種聯(lián)系的z(n)的一種度量信號,。y(n)可以通過數(shù)字信號濾波器得到,,然后可以通過公式e(n)=z(n)-y(n)=s(n)+d(n)-y(n)得到誤差信號e(n)。通過e(n)得到s(n)的最佳估計信號,,而自適應(yīng)濾波器的基本原理就是利用系數(shù)可調(diào)的數(shù)字濾波器將雜波和噪聲從信號中濾除,。

  由圖1自適應(yīng)濾波器結(jié)構(gòu)可知,基于濾波系數(shù)可調(diào)的要求,,對于數(shù)字濾波器的選擇包括有限長沖激響應(yīng)濾波器(FIR)和無限長沖激響應(yīng)濾波器(IIR)兩種數(shù)字濾波器可選擇,。FIR型濾波器優(yōu)勢明顯,它的系統(tǒng)更穩(wěn)定,,可以利用它實現(xiàn)多通帶濾波器,,同時它更容易實現(xiàn)線性相位[2]。IIR濾波器可以用更低的階數(shù)實現(xiàn)與FIR相同的阻帶衰減效果,,但鑒于FIR易實現(xiàn)嚴(yán)格的線性相位,、穩(wěn)定性和任意的幅頻特性等優(yōu)點,另外FIR還有便于用DSP實現(xiàn)的優(yōu)勢,,可以用節(jié)省存儲空間的立即數(shù)乘加完成編程,,因此本文的設(shè)計中自適應(yīng)數(shù)字濾波器部分采用FIR濾波器橫向結(jié)構(gòu)。圖2所示為FIR橫向濾波器結(jié)構(gòu)圖,。

002.jpg

2 自適應(yīng)濾波算法

  2.1 LMS自適應(yīng)濾波算法

  Widrow和Hoff提出的最小均方差(LMS)算法在實踐中被廣泛應(yīng)用,,其具有計算量小和易于實現(xiàn)的特點[3]。自適應(yīng)算法通常由三大重要的技術(shù)指標(biāo)來衡量其優(yōu)劣:時變系統(tǒng)隨參數(shù)變化導(dǎo)致系統(tǒng)特性變化的檢測能力、輸出信號收斂到期望信號的速度以及對系統(tǒng)穩(wěn)定性的調(diào)節(jié)能力,。自適應(yīng)濾波器實現(xiàn)功能的關(guān)鍵是尋找出均方誤差最小時濾波器權(quán)系數(shù)Wi的值,,整個過程中利用ε和各x(n)的值,再根據(jù)上述的條件,,通過算法找出Wi的值,,實現(xiàn)自動調(diào)節(jié)Wi值的濾波器。所有的濾波器系數(shù)調(diào)整算法都是設(shè)法使輸出y(n)和目標(biāo)信號d(n)之差 e(n)的均方值最小化,,并且根據(jù)這個判據(jù)來修改權(quán)系數(shù),。均方誤差ε表示為:

  DQ}SLAS$IOOT{%$VNR{7}0T.jpg

  其中:R=E[X(n)XT(n)]為N×N的自相關(guān)矩陣,它是輸入信號采樣值間的相關(guān)性矩陣,。P=E[d(n)X(n)]為N×1互相關(guān)矢量,,代表理想信號d(n)與輸入矢量的相關(guān)性。

003.jpg

  由式(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é)上可以利用梯度法求得此最小值,為了簡單起見,,設(shè)W是一維的,,則E[e2(n)]與W的關(guān)系成為一個拋物線。如圖3中在W*點獲得最小均方誤差,。根據(jù)遞推關(guān)系式,,利用梯度矢量法計算出拋物曲面的最低點。而自適應(yīng)的過程就是在梯度矢量的負(fù)方向上逐漸校正濾波器系數(shù),,調(diào)節(jié)加權(quán)系數(shù)W使均方誤差最小,,相當(dāng)于沿超拋物形曲面下降到最小值,獲得最佳濾波或準(zhǔn)最優(yōu)工作狀態(tài),。

  實際上,,自適應(yīng)濾波與維納濾波最主要的差別就是自適應(yīng)濾波增加了一個可以識別控制濾波器系數(shù)的部分,可以根據(jù)期望輸出信號與濾波器實際輸出信號的比較,,用誤差函數(shù)值去控制和調(diào)整濾波器系數(shù)直至誤差達(dá)到最小值,。也正因如此,找到一個能求得加權(quán)系數(shù),,直至W=W*,,E[e2(n)]=min的遞推式是LMS算法的核心。

  2.2 RLS自適應(yīng)濾波算法

  另外一種區(qū)別于LMS算法的具有較快收斂速度的自適應(yīng)算法即RLS,,但是它存在實時性差的缺點,,限制了其應(yīng)用,。RLS自適應(yīng)濾波器的最佳濾波權(quán)系數(shù)需要用輸入信號自相關(guān)矩陣的逆來求得[4],。針對RLS算法計算復(fù)雜,、實時性差但收斂于期望信號的速度比較快的特性,只要加以改進(jìn)就能使其得到很好的應(yīng)用,,因此人們提出了改進(jìn)的RLS算法,,即變換域自適應(yīng)濾波算法。

  2.3 變換域自適應(yīng)濾波算法

  對于某些強(qiáng)相關(guān)的信號或難以濾除的信號,,利用變換域的思想可以將目標(biāo)信號輕松地分離出來,,變換域可以輕松解決時域疑難問題,頻域變換,、小波變換都屬于變換域,。1979年Dentino首次將變換域的思想應(yīng)用在自適應(yīng)濾波上,對變換域自適應(yīng)濾波算法做了全面的總結(jié)和解釋,。變換域自適應(yīng)濾波算法就通過正交變換把時域信號轉(zhuǎn)變?yōu)轭l域或小波域等信號,,用歸一化的能量平方根來表示變換后的信號,然后結(jié)合自適應(yīng)算法進(jìn)行濾波,。隨著技術(shù)的不斷發(fā)展,,變換域自適應(yīng)濾波算法不斷得到推廣。由于LMS算法是依賴于輸入信號求其收斂性,,所以針對強(qiáng)相關(guān)的信號,,LMS自適應(yīng)濾波的效果大大降低[5]?;趯σ陨先N自適應(yīng)算法的研究,,本文主要針對LMS自適應(yīng)算法對其進(jìn)行MATLAB與DSP設(shè)計與實現(xiàn)。

3 自適應(yīng)濾波器的仿真實現(xiàn)

  3.1 FIR濾波算法MATLAB仿真實現(xiàn)

  MATLAB能方便地以書寫計算公式的思維方式對所要實現(xiàn)的功能編程,,具有強(qiáng)大的語言功能,,在數(shù)字信號處理方面具有很大的優(yōu)勢。另外,,MATLAB具有很多封裝完整的可供用戶使用的開源數(shù)據(jù)和工具箱,,如系統(tǒng)辨識工具箱、神經(jīng)網(wǎng)絡(luò)工具箱,、信號處理工具箱,、模糊推理系統(tǒng)工具箱等。圖形,、數(shù)學(xué),、編程還可以通過Simulink模塊來實現(xiàn),可將自己建好的模型打包成塊,,以后便可以直接調(diào)用,,非常方便,。它還提供了與Windows編程相結(jié)合的矩陣運(yùn)算、圖形繪制,、數(shù)據(jù)處理和圖形處理等工具,,在自動控制、圖像信號處理,、雷達(dá)工程,、信號分析、優(yōu)化設(shè)計等領(lǐng)域得到了廣泛應(yīng)用[6],。

  自適應(yīng)LMS算法可以用MATLAB方便地實現(xiàn),。自適應(yīng)LMS算法的原理是利用最陡下降法以及時間n=0的濾波系數(shù)矢量和任意的起始值W(0)通過迭代公式更新濾波器權(quán)系數(shù)W(n),其具體方法如下:

 ?。?)求得誤差信號e(n):e(n)=d(n)-x(n),,其中  d(n)為濾波器期望輸出信號,x(n)為濾波器輸入信號,。

 ?。?)求濾波器系數(shù)。利用如下遞推公式更新矢量值:

  w(n)=w(n-1)+2*e(n)*x(n)

  其中N$P}(UUHWEU1)`2QPB@SB]5.jpg為收斂因子,。

 ?。?)從時間參數(shù)n=0開始遞增加1,求誤差信號,,重復(fù)上述計算直到求得最小均方誤差實現(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

  通過實驗產(chǎn)生輸入信號x(n),,期望信號為d(n),兩者相減得到誤差信號e(n),,然后通過調(diào)用LMS算法從寬甸信號中提取單頻信號,,實驗結(jié)果如圖4,、圖5所示,,進(jìn)一步調(diào)整收斂因子,觀察結(jié)果變化發(fā)現(xiàn),,收斂因子越大,,濾波器的抽頭數(shù)越多,期望信號能以更快的速度收斂到輸出信號,,同時也存在穩(wěn)態(tài)誤差越大的風(fēng)險,,所以應(yīng)選用合適的收斂因子和濾波器階數(shù),在收斂速度和誤差穩(wěn)態(tài)范圍上得到權(quán)衡,。

  3.2 自適應(yīng)濾波器DSP設(shè)計實現(xiàn)

  通過MATLAB的仿真實驗,,LMS自適應(yīng)濾波器的濾波特性得到驗證,接下來用TMS320C6713設(shè)計實現(xiàn)LMS自適應(yīng)濾波器,。本文設(shè)計實現(xiàn)的是應(yīng)用LMS算法的FIR型自適應(yīng)濾波器[7],。其自適應(yīng)濾波器的程序流程圖如圖6所示。

006.jpg

  由圖6自適應(yīng)濾波器設(shè)計流程圖可知,,其設(shè)計過程主要包括三個步驟:

  第一步:程序初始化

  為輸入信號x(n),、濾波輸出信號y(n)、誤差信號  e(n)分配存儲區(qū),,同時為輸入信號的長度(num),、濾波器階數(shù)(coeff)設(shè)置初值,本文設(shè)置為num=1 024,,coeff=16,。收斂因子fU=0.000 5。

  第二步:調(diào)用信號輸入子程序產(chǎn)生輸入信號x(n),,輸出信號y(n),,誤差信號e(n)。

  其程序如下:

  for(i=0,;i<num,;i++)

  {

  x[i]=256*sin(i*2*PI/34);//初始化輸入信號

  y[i]=z[i]=0,;//初始化輸出信號誤差信號

  }

  第三步:調(diào)用LMS算法

007.jpg

  主程序運(yùn)行時不斷調(diào)用LMS算法子程序,,來計算濾波信號輸出,,檢測信號是否完成濾波,如未完成重復(fù)第三步工作[8],。其LMS算法子程序流程圖如圖7,。LMS算法子程序為int FIRLMS(int*nx,float*nh,,int nError,,int nCoeffNum)。在CCS環(huán)境下用C語言編寫程序,,通過編譯,、鏈接后生成公共目標(biāo)代碼,選擇View/Graph/Time/Frequency,,進(jìn)入Graph Prorerty Dialog對話框,,設(shè)置合適的圖形顯示參數(shù),在顯示窗口顯示自適應(yīng)濾波器DSP仿真結(jié)果,,如圖8,、圖9、圖10所示,。

008.jpg

  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;}

  通過觀察輸出波形與輸入波形,,可以看出輸出波形一開始與輸入波形相差較大,,但通過自適應(yīng)濾波器不斷調(diào)節(jié)加權(quán)系數(shù)w(n),使輸出波形逐漸符合輸出要求,。由此也可驗證此自適應(yīng)濾波器LMS算法的有效性,,其能夠很好地濾除數(shù)字信號中的噪聲,較好地還原了數(shù)字信號的信息,,在數(shù)字信號處理領(lǐng)域有很好的應(yīng)用價值,。

4 結(jié)束語

  本文對自適應(yīng)濾波器的原理和結(jié)構(gòu)圖進(jìn)行了分析,,利用先進(jìn)的MATLAB仿真技術(shù)進(jìn)行仿真最后進(jìn)行DSP的設(shè)計實現(xiàn)。仿真結(jié)果充分表明,,自適應(yīng)濾波器可以根據(jù)噪聲信號的頻率進(jìn)行跟蹤并以此來很好地濾除信號中的噪聲,。并且,在噪聲和信號特性不斷隨時間變化的同時,,自適應(yīng)濾波器可以利用自適應(yīng)算法不斷調(diào)整和修正沖激響應(yīng)函數(shù)系數(shù),,能很好地適應(yīng)輸入環(huán)境的變化。這充分突出了自適應(yīng)濾波器的優(yōu)勢,,使其具有更廣泛的應(yīng)用領(lǐng)域和廣闊的發(fā)展前景,,例如通信信道的自適應(yīng)均衡、心電圖的電源干擾消除,、系統(tǒng)模型識別和雷達(dá)波束形成等領(lǐng)域,。基于不同的自適應(yīng)算法以及不同的數(shù)字濾波器結(jié)構(gòu)可構(gòu)成不同結(jié)構(gòu)的自適應(yīng)濾波器,,本文重點研究了基于LMS算法的FIR型自適應(yīng)濾波器。本文還有待于進(jìn)一步研究和改進(jìn),,以提高自適應(yīng)濾波器的精度和收斂速度,。

參考文獻(xiàn)

  [1] 貢鎮(zhèn).基于DSP的自適應(yīng)濾波器的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2013(17):62-64.

  [2] 李茂清,,王潔,,陳強(qiáng),等.基于MATLAB程序的FIR濾波器設(shè)計實現(xiàn)[J].電力學(xué)報,,2008(2):87-90.

  [3] 張玲玲,,唐曉英,劉偉峰.一種新的變步長LMS自適應(yīng)濾波算法性能分析[J].生命科學(xué)儀器,,2005(5):39-41.

  [4] 郭華.自適應(yīng)濾波算法及應(yīng)用研究[D].西安:西北師范大學(xué),,2007.

  [5] 蔣薇薇,楊萍,,王昱潔.基于變步長LMS算法的自適應(yīng)濾波器研究[J].儀器儀表學(xué)報,,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] 許國威,,馬勝前,,危淑平.自適應(yīng)濾波RLS算法研究與DSP實現(xiàn)[J].計算機(jī)技術(shù)與發(fā)展,2010(10):35-38.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。