MATLAB是美國MathWorks公司開發(fā)的大型數(shù)學計算應用軟件系統(tǒng),它提供了強大的矩陣處理和繪圖功能,簡單易用,可信度高,靈活性好,因而在世界范圍內被科學工作者、工程師以及大學生和研究生廣泛使用,目前已經(jīng)成為國際市場上科學研究和工程應用方面的主導軟件。掌握MATLAB并借助它解決理論與應用問題已經(jīng)成為每一個從事科學研究和工程技術人員應該具備的技能。
MATLAB是Matrix Laboratory(矩陣實驗室)的縮寫,是當前最流行、功能強大的科技應用軟件和編程語言之一。MATLAB語言有以下特點:
1、功能強大:數(shù)值計算和符號計算,計算和編程可視化,數(shù)字和文字的統(tǒng)一處理,離線和在線計算;
2、界面友好,語言簡明:以復數(shù)矩陣為計算單元,指令表達與數(shù)學表達式相近,是一種演算式語言;
3、開放性強:具有70余個功能強大的工具箱,覆蓋面極廣,可以完成數(shù)字圖像處理、系統(tǒng)仿真、系統(tǒng)辨識、模糊控制、神經(jīng)網(wǎng)絡建模、信號處理、魯棒控制、非線性控制、優(yōu)化理論、統(tǒng)計分析等。
MATLAB成為應用學科計算機輔助分析、設計、仿真、教學必不可少的基礎軟件。工具箱函數(shù)為各個領域的研究和工程應用提供了有力的手段。
MATLAB系統(tǒng)的基本函數(shù)庫具有初等函數(shù)、初等矩陣和矩陣變換、包括性代數(shù)方程組和矩陣特征值問題等數(shù)值線性代數(shù)、多項式運算和求根、數(shù)據(jù)析和傅立葉變換以及某些特殊的矩陣函數(shù)和數(shù)學函數(shù)等眾多內容。
MATLAB還包括一系列被稱作工具箱(TOOLBOX)的專業(yè)求解工具。工具箱實際上是MATLAB針對不同學科、不同專業(yè)所開發(fā)的專用函數(shù)庫,用來求解各個領域的數(shù)值計算問題,包括數(shù)據(jù)采集工具箱、信號處理工具箱、圖像處理工具箱、小波分析工具箱、控制工具箱等。隨著MATLAB的不斷升級,所含工具箱的功能越來越豐富,規(guī)模越來越龐大,因此,應用也越來越廣泛,成為各種專業(yè)科研人員和工程技術人員的得力工具。
一個圖形界面的完成,最終是通過圖形界面的各種控件對象的操作來完成,而這些操作必定是通過Matlab 中函數(shù)代碼的執(zhí)行來完成的。函數(shù)代碼的編制可以通過編寫回調函數(shù)完成,而編寫時當所要求執(zhí)行的指令比較簡單時,可以把該控件的代碼直接寫在“CallBack“屬性中;當所要求執(zhí)行的指令比較長時可以把函數(shù)代碼放在一個自定義的M 文件中,在“CallBack”中直接將其文件名寫上,也可以在主控文件中直接編寫,當操作該控件時系統(tǒng)會自動執(zhí)行“CallBack”中所要求執(zhí)行的內容。
在本設計中,采用的是在主控文件中直接編寫的方法,在GUI 界面單擊當前需要編寫程序的控件,然后右擊將出現(xiàn)一個右鍵菜單,然后選擇Callback 選項,即可直接進入主控M 文件,并且系統(tǒng)會自動生成語句。
目前的MATLAB已經(jīng)成為國際上最為流行的軟件之一,它除了傳統(tǒng)的交互式編程之外,還提供了豐富可靠的矩陣運算、圖形繪制、數(shù)據(jù)處理、圖形處理,方便的windows編程等便利工具,出現(xiàn)了各種以MATLAB為基礎的實用工具箱,廣泛地應用于自動控制、圖像信號處理、生物醫(yī)學工程、語言處理、雷達工程、信號分析、振動理論、時序分析于建模、優(yōu)化設計等領域。
算法實現(xiàn)設計本課題的主要內容是在MATLAB上實現(xiàn)自適應濾波器的設計。課題的具體內容
為利用GUI界面設計出濾波器的選擇界面、參數(shù)的輸入界面、結果分析圖等。其中濾波器的設計將會用兩種算法實現(xiàn)既LMS算法和RLS算法,算法實現(xiàn)的基本設計框圖如圖4所示。
由于本論文要實現(xiàn)兩種不同的算法,通過GUI界面設計能給人一個比較好直觀的效果。同時兩種算法在參數(shù)取值方面會有不同之處,因此在軟件設計中,我通過文本編輯框控件來接收用戶輸入的濾波器設計指標值,這讓我們能更方便的通過調整不同的參數(shù)值觀測實驗結果,從而來保證濾波器的最佳狀態(tài)。此外,Matlab 通過創(chuàng)建應用程序M 文件為GUI控制程序提供一個框架。所有代碼都包含在應用程序M 文件中,即完成了圖形界面的設計后,應用程序設計的主要工作是控件回調函數(shù)的設計。自適應濾波算法的主界面如圖5。
LMS算法的實現(xiàn)
LMS算法實現(xiàn)流程圖如圖6。
在圖中,w(k)為濾波器濾波系數(shù)矢量估值,w(k+1)=w(k)-u,u是一個控制因子,用它來控制收斂速度與穩(wěn)定性,u太大不穩(wěn)定,u太小收斂速度很慢。通常0《u《1/max,max是R中的最大的特征值。(k)是誤差梯度,直接計算(k)=J(w)/w很復雜,一般直接用誤差的平方作為均方誤差E|e(k)2估計值(k)。因為E{(k)}=k表明(k)是無偏估計。
直到計算到達到(e)k預期小的值為止,或(w)k達到穩(wěn)定為止。
根據(jù)u的取值不同LMS算法可分為以下三種類型: