基于TMS320VC5416自適應濾波器實現(xiàn)_第1頁
基于TMS320VC5416自適應濾波器實現(xiàn)_第2頁
基于TMS320VC5416自適應濾波器實現(xiàn)_第3頁
基于TMS320VC5416自適應濾波器實現(xiàn)_第4頁
基于TMS320VC5416自適應濾波器實現(xiàn)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于TMS320VC5416的自適應濾波器的實現(xiàn) 一自適應濾波器 濾波是電子信息處理領域的一種最基本而又極其重要的技術。在有用信號的傳輸過程中,通常會受到噪聲或干擾的污染。利用濾波技術可以從復雜的信號中提取所需要的信號,同時抑制噪聲或干擾信號,以便更有效地利用原始信號。濾波器實際上是一種選頻系統(tǒng),它對某些頻率的信號予以很小的衰減,讓該部分信號順利通過;而對其他不需要的頻率信號則予以很大的衰減,盡可能阻止這些信號通過。在電子系統(tǒng)中濾波器是一種基本的單元電路,使用很多,技術也較為復雜,有時濾波器的優(yōu)劣直接決定產品的性能,所以很多國家非常重視濾波器的理論研究和產品開發(fā)。自適應濾波器屬于現(xiàn)代濾波器范疇

2、,是相對固定濾波器而言的,固定濾波器屬于經典濾波器,它濾波頻率是固定的,F(xiàn)IR和IIR兩種濾波器是具有固定濾波器系數的濾波器,其特性是確定已知的。但在許多應用場合,由于無法預知信號和噪聲的特性,因此就無法使用具有固定濾波器系數的濾波器來對信號實現(xiàn)最優(yōu)濾波。而自適應濾波器濾波的頻率則是自動適應輸入信號而變化的,所以其適用范圍更廣。在沒有任何關于信號和噪聲的先驗知識的條件下,自適應濾波器利用前一時刻已獲得的濾波器參數來自動調節(jié)現(xiàn)時刻的參數,以適應信號和噪聲未知或隨機變化的統(tǒng)計特性,從而實現(xiàn)最優(yōu)濾波。自適應濾波器實質上就是一種能調節(jié)其自身傳輸特性以達到最優(yōu)化的維納濾波器。二自適應濾波器原理 自適應濾

3、波器具有自學習或訓練能力,能夠跟蹤信號和噪聲變化,并且能使得濾波器的動態(tài)特性隨著信號和噪聲的變化而變化,以達到最優(yōu)濾波效果。它的這種特性變化是由自適應算法通過調整濾波器的系數來實現(xiàn)的。其系數(一般稱為權系數)可以根據自適應算法來不斷修改,使得系統(tǒng)中的沖擊響應滿足給定的性能。例如語音信號的ADPCM編碼,采用線性預測自適應就可以實現(xiàn)誤差信號與輸入信號的線性無關,并由此作為依據,不斷調節(jié)濾波器的權系數,最終使得誤差信號趨近于0,使得該濾波器完全適應該輸入信號;同樣,只要輸入信號出現(xiàn)變換,自適應濾波器根據誤差信號的變化再次調整其權系數,從而跟上信號的變化。自適應濾波器一般都由兩部分組成:一是濾波器結

4、構,它為完成期望的處理功能而設計;二是自適應算法,它調節(jié)濾波器系數以改進性能。輸入信號輸出信號y(k)標準信號d(k)誤差信號e(k)參數可調濾波器結構自適應算法 圖1 自適應濾波器結構的一般形式上圖為自適應濾波器結構的一般形式,圖中x(k)為輸入信號,通過參數可調的數字濾波器后產生輸出信號y(k),將輸出信號y(k)與標準信號(或者為期望信號)d(k)進行比較,得到誤差信號e(k)。e(k)和x(k)通過自適應算法對濾波器的參數進行調整,調整的目的使得誤差信號e(k)最小。重復上面過程,濾波器在自己的工作過程中逐漸了解到關于輸入信號和噪聲的統(tǒng)計規(guī)律,并以此為根據自動調整自己的參數,從而達到最

5、佳的濾器效果。一旦輸入信號的統(tǒng)計規(guī)律發(fā)生了變化,濾波器能夠自動跟蹤上輸入信號的變化,自動調整濾波器的參數,最終達到濾波效果,實現(xiàn)自適應過程,就是使用自適應濾波器的系統(tǒng)識別原理圖。自適應濾波器的結構可以采用FIR或IIR結構,由于IIR濾波器存在穩(wěn)定性問題,因此一般采用FIR 濾波器作為自適應濾波器的結構,自適應FIR濾波器結構又可分為三種結構類型:橫向型結構(Transversal Structure)、對稱橫向型結構(Symmetric Transversal Structure)、格型結構(Lattice Structure)。自適應濾波器設計中最常用的是 FIR 橫向型結構。圖2 是橫向

6、型濾波器的結構示意圖。圖2 橫向型濾波器的結構示意圖其中,X(n)=x(n),x(n-1),x(n-N+1)T為自適應濾波器的輸入矢量;W(n)=w0(n),w1(n),wn-1(n)T為系統(tǒng)的沖激響應;y(n)= x(n)* w(n)為自適應濾波器的輸出矢量;n為時間序列;N為濾波器的階數。由表達式可以看出輸出是兩矢量的內積。三自適應濾波算法自適應濾波器除了包括一個按照某種結構設計的濾波器,還有一套自適應的算法。自適應算法是根據某種判斷來設計的。自適應濾波器的算法主要是以各種判據條件作為推算基礎的。通常有兩種判據條件:最小均方誤差判據和最小二乘法判據。LMS 算法是以最小均方誤差為判據的最典

7、型的算法,因具有計算量小、易于實現(xiàn)、不依賴模型、性能穩(wěn)健等優(yōu)點而最為廣泛應用。最小均方誤差(Least Mean Square,LMS)算法是一種易于實現(xiàn)、性能穩(wěn)健、應用廣泛的算法。所有的濾波器系數調整算法都是設法使y(n)接近d(n),所不同的只是對于這種接近的評價標準不同。LMS 算法的目標是通過調整系數,使輸出誤差序列e(n)=d(n)-y(n)的均方值最小化,并且根據這個判據來修改權系數,該算法因此而得名。誤差序列的均方值又叫“均方誤差”(Mean Square Error,MSE)。誤差均方表示為:對于橫向型結構的濾波器,代入y(n)的表達式并采用迭代算法求最佳權系數,經推導得迭代公

8、式為: 式中,X(n-k)為輸入信號;n和n+1表示前后2個時刻,k=0,1,N-1,N為濾波器的階數;W(k,n)和W(k,n+1)分別是迭代前后的系數值;是一個用于控制自適應速度和穩(wěn)定性的增益常數,也叫收斂因子;e(n)為誤差信號。LMS算法調整權系數時不需要進行平方運算和統(tǒng)計平方運算,實現(xiàn)起來很簡單。下一時刻權矢量w(n+1)等于當前的權矢量w(n)加上一個修正量,該修正量是誤差信號e(n)的加權值,加權系數為2X(n),正比于當前的輸入信號。值得注意的是,對權矢量的估值的所有分量來說,誤差信號e(n)是相同的。在自適應濾波器的實際操作中,必須注意自適應步長的選擇。顯然,上面的LMS算法

9、不需要事先已知信號的統(tǒng)計量,而使用它們的瞬時估計代替。LMS算法獲得的權重只是一個估計值, 但隨著調節(jié)權重,這些估計值逐漸提高, 濾波器也越來越適應信號特性。四自適應濾波器的DSP實現(xiàn)本設計中完成了自適應濾波器的LMS算法的編程與實現(xiàn),通過對未知系統(tǒng)傳遞函數的建模,識別該未知系統(tǒng),并對該系統(tǒng)進行噪聲濾波。程序采用了c和匯編語言混合編程的方式。ad_filter.c程序主要實現(xiàn)數據段的分配、數據格式的轉換并調用匯編程序lms.asm實現(xiàn)關鍵的LMS算法進行自適應濾波。下面是兩個程序的流程圖。開始輸入信號、標準信號數據格式轉換將浮點數轉換為定點數調用lms算法實現(xiàn)自適應濾波結束分配數據和濾波器系數

10、塊圖3 主程序ad_filter.c流程圖開始初始化,獲取參數,開辟自適應濾波系數和輸入樣值的存儲單元,初始化各地址指針讀入樣值點進行濾波計算計算誤差,更新系數存儲濾波輸出并重新計算誤差結束圖4 LMS算法lms.asm實現(xiàn)流程圖五運行結果 1.輸入信號波形圖5 輸入信號波形 2.標準信號波形圖6 標準信號波形 3.誤差信號波形圖7 誤差信號波形 4.輸出信號波形圖8 輸出信號波形由上面的圖可以看出,加入噪聲后的信號發(fā)生了較為明顯的變化。但經過自適應濾波器的濾波,原始信號的趨勢基本被還原出來了。六總結實驗結果表明:自適應濾波器卻能很好地消除疊加在信號上的噪聲,雖然也可以用固定濾波器來實現(xiàn),但設

11、計固定濾波器時需要預先知道信號和噪聲的統(tǒng)計特性,而自適應濾波器則不需要,并且當信號和噪聲的統(tǒng)計特性發(fā)生變化時,自適應濾波器也能自動地調節(jié)其沖激響應特性來適應新的情況。通過對自適應濾波器的學習研究,我對其原理及LMS算法有了更為深刻的理解,理論和實踐能力都有所提高,也認識到了數字信號處理技術的重要性和廣闊前景。附錄:1. ad_filter.c程序#include #include #include tms320.h#include dsplib.h#define NX 128 /數據點數#define NH 12 /濾波器階數#define STEP 278#pragma DATA_SECTI

12、ON(h,.coefs)#pragma DATA_SECTION(dbuffer,.dbuffer)float x1NX=0.9988,0.8653,0.5275,0.0562,-0.5744,-1.2977,-1.7143,-1.5031,-0.8727,-0.0977,0.7884,1.5265,1.6615,1.2359,0.6463,0.0941,-0.3407,-0.4771,-0.3579,-0.2164,-0.0069,0.4059,0.8153,0.8959,0.6896,0.3781,0.1568,0.1206,0.0569,-0.1742,-0.3774,-0.5365,-

13、0.8262,-0.8800,-0.2590,0.6903,1.3395,1.5300,1.4183,1.1028,0.5906,-0.1410,-0.8719,-1.2172,-1.1212,-0.7689,-0.2300,0.4809,1.0284,1.1365,0.8274,0.1238,-0.9435,-1.9115,-2.1646,-1.6390,-0.6517,0.4911,1.4056,1.6633,1.3114,0.7349,0.2193,-0.2173,-0.5744,-0.8145,-0.9202,-0.9819,-0.9101,-0.3513,0.6638,1.4902,

14、1.6561,1.4064,1.0575,0.5659,-0.1650,-0.9552,-1.5450,-1.7267,-1.3245,-0.3835,0.6962,1.3814,1.5357,1.4416,1.2442,0.7062,-0.1408,-0.8417,-1.2149,-1.3453,-1.0604,-0.2593,0.6211,1.0825,1.0489,0.7153,0.2855,-0.1244,-0.4387,-0.6034,-0.7102,-0.9113,-1.1777,-1.2608,-0.8542,0.0149,0.8467,1.1630,0.9059,0.2065,

15、-0.7142,-1.4775,-1.8816,-1.8629,-1.2621,-0.2417,0.5033,0.6136,0.3687,0.0356,-0.2774,-0.3358,-0.1678,-0.2025,-0.6556,-1.1490;/輸入數據,信號與噪聲的疊加float des1NX=1.0000,0.8671,0.5036,0.0063,-0.4927,-0.8607,-0.9999,-0.8733,-0.5144,-0.0188,0.4818,0.8543,0.9997,0.8793,0.5252,0.0314,-0.4707,-0.8477,-0.9993,-0.8852

16、,-0.5358,-0.0440,0.4596,0.8409,0.9987,0.8910,0.5464,0.0565,-0.4484,-0.8341,-0.9980,-0.8966,-0.5569,-0.0691,0.4371,0.8271,0.9972,0.9021,0.5673,0.0816,-0.4258,-0.8200,-0.9961,-0.9075,-0.5776,-0.0941,0.4144,0.8127,0.9950,0.9127,0.5878,0.1066,-0.4029,-0.8053,-0.9936,-0.9178,-0.5979,-0.1191,0.3914,0.7978

17、,0.9921,0.9227,0.6079,0.1316,-0.3798,-0.7902,-0.9905,-0.9274,-0.6179,-0.1440,0.3681,0.7824,0.9887,0.9321,0.6277,0.1564,-0.3564,-0.7745,-0.9867,-0.9365,-0.6374,-0.1688,0.3446,0.7665,0.9846,0.9409,0.6471,0.1812,-0.3328,-0.7584,-0.9823,-0.9451,-0.6566,-0.1935,0.3209,0.7501,0.9799,0.9491,0.6660,0.2059,-

18、0.3090,-0.7417,-0.9773,-0.9530,-0.6753,-0.2181,0.2970,0.7333,0.9745,0.9567,0.6845,0.2304,-0.2850,-0.7247,-0.9716,-0.9603,-0.6937,-0.2426,0.2730,0.7159,0.9686,0.9637,0.7026,0.2548,-0.2608,-0.7071,-0.9654,-0.9670;/標準信號,比較時的原始信號DATA xNX;DATA dbufferNH;DATA hNH;DATA rNX;DATA desNX;DATA *dp=dbuffer;short i;void main()/transform data from float to fixedfltoq15(x1,x,NX);fltoq15(des1,des,NX);/clearfor(i=0;iNH;i+)hi=0;/clear coeff bufferfor(i=0;iNX;i+)ri=0;/clear output bufferfor(i=0;idbuffer x(0)lms*ar_h,*ar_d+0% ;b=b*h(0)*x(1);write output sample;-sthb

溫馨提示

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

評論

0/150

提交評論