李紫薇
摘 要:隨著MATLAB的出現(xiàn)和不斷的完善,尤其是信號分析工具箱的推出,使得越來越多的人意識到用MATLAB處理電信工程中出現(xiàn)的問題是一種簡單又快捷的選擇。由于MATLAB具有的快速精準(zhǔn)的計算及系統(tǒng)操作簡捷的特點,其已然成為數(shù)字信號處理(Digital Signal Processing)應(yīng)用中分析和解決問題的主要仿真工具。數(shù)字濾波在數(shù)字信號處理中占有很重要的地位。數(shù)字濾波包括FIR和IIR兩種濾波器。本文將通過簡述MATLAB的基本概念、組成及在數(shù)字信號處理中的應(yīng)用來了解FIR IIR濾波器的工作原理。
關(guān)鍵詞:數(shù)字圖像處理 MATLAB FIR IIR
1 MATLAB基本概念
MATLAB是美國Mathworks公司開發(fā)的大型數(shù)學(xué)計算軟件,它提供了強(qiáng)大的矩陣處理和繪圖功能,是一個高精度的科學(xué)計算語言,將計算、可視化和編程結(jié)合在一個使用環(huán)境中,它的典型使用包括:數(shù)學(xué)與計算、運算法則、建模、仿真、數(shù)據(jù)分析,研究與可視化、工程圖形、應(yīng)用程序開發(fā)等。MATLAB應(yīng)用領(lǐng)域包括信號和圖像處理、通信、控制系統(tǒng)設(shè)計、測試與測量、財務(wù)建模和分析、計算生物學(xué)等。MATLAB是一個交互式的開放系統(tǒng),它的基本數(shù)據(jù)單元是矩陣.其最重要的特性是擁有解決特定應(yīng)用問題的程序組,即TOOLBOX,如信號處理工具箱、神經(jīng)網(wǎng)絡(luò)工具箱、通信工具箱、數(shù)據(jù)采集工具箱等許多專用工具箱。MATLAB軟件有MATLAB和Simulink兩大部分組成,是一個高級計算語言,也是一種交互式環(huán)境,在該環(huán)境下可實現(xiàn)線性和非線性靜態(tài)、動態(tài)系統(tǒng)的建立與模擬仿真等操作。其中Simulink是一個用于對動態(tài)系統(tǒng)進(jìn)行多領(lǐng)域建模和模擬設(shè)計的平臺,它提供了一個交互式圖形環(huán)境,以及一個自定義模塊庫,并可對特定應(yīng)用加以擴(kuò)展,可用于控制系統(tǒng)設(shè)計、信號處理和通信及圖像理等眾多領(lǐng)域。
2 MATLAB軟件的系統(tǒng)組成
(1)MATLAB開發(fā)環(huán)境:即軟件的操作界面,在該界面下我們可以使用大量MATLAB自帶函數(shù)和各種工具,功能齊全,應(yīng)用廣泛。
(2)MATLAB語言:MATLAB編程語言是一種面向?qū)ο笳Z言,語言中的數(shù)據(jù)結(jié)構(gòu)、控制語句及輸入輸出界面都十分高級。
(3)MATLAB數(shù)學(xué)函數(shù)庫:MATLAB數(shù)學(xué)函數(shù)庫包含了許多數(shù)值計算算法函數(shù),簡單的有三角函數(shù)、復(fù)數(shù)計算及級數(shù)展開等,復(fù)雜的有快速傅里葉變換、矩陣運算、多維微積分等。
(4)MATLAB應(yīng)用程序界面:是一個強(qiáng)大的程序庫,通過這個界面我們可以在其他與MATLAB語言交互的語言環(huán)境中(如c語言和Fortran語言)調(diào)用MATLAB的子程序及子過程,通過編寫可交互語句來生成可獨立執(zhí)行的EXE文件。
(5)MATLAB圖像生成:這個功能提供使用者將多種數(shù)據(jù)用圖像表示出來,生成的圖像的各種參數(shù)都可以由使用者自定義。
3 FIR
FIR濾波器具有很多優(yōu)點,可在幅度特性隨意設(shè)計的同時,保證輸出數(shù)字信號的相頻特性有精確、嚴(yán)格的線性,濾波穩(wěn)定,不會出現(xiàn)遞歸型結(jié)構(gòu)等不穩(wěn)定現(xiàn)象,可采用快速傅里葉變換計算,運算效率較高。
FIR濾波器有幾個特點:(1)系統(tǒng)的單位沖擊響應(yīng)h(n)在有限個n值處不為零。
(2)系統(tǒng)函數(shù)H(Z)在|Z|>0處收斂,在|Z|>0處只有零點,即有限Z平面只有零點,而全部極點都在Z=0處(因果系統(tǒng))
(3)結(jié)構(gòu)上主要是非遞歸結(jié)構(gòu),沒有輸出到輸入的反饋,但有些結(jié)構(gòu)中也包含有反饋的遞歸部分
FIR濾波器的實現(xiàn)方法有窗函數(shù)法、頻率抽樣法、最優(yōu)等波紋法和濾波器函數(shù)直接法,數(shù)字FIR濾波器的工作原理是模擬信號首先進(jìn)過A/D轉(zhuǎn)換器間被轉(zhuǎn)換為數(shù)字信號,進(jìn)入濾波器進(jìn)行處理后,形成一長串?dāng)?shù)據(jù)序列,如果有需要再將該數(shù)據(jù)序列輸入到外接D/A轉(zhuǎn)換器,變成模擬信號使用。
3.2 窗函數(shù)設(shè)計線性FIR濾波器
設(shè)計思路:(1)按照指標(biāo)給出理想濾波器的 φ(w)
(2)由Ha(e^jw)求出hd(n)
(3)加窗函數(shù)W(n)對其截斷h(n)=hd(n)w(n)
窗函數(shù)特點:(1)長度至于濾波器的過渡帶寬度有關(guān),與濾波器阻帶最小衰減無關(guān)
(2)窗函數(shù)的形狀與濾波器的過渡帶寬度和阻帶最小衰減都有關(guān)系
3.3 MATLAB與FIR
由于FIR濾波器具有線性相位特性、穩(wěn)定性好、在硬件上可高效實現(xiàn)和瞬態(tài)效應(yīng)持續(xù)時間有限的優(yōu)點,所以用MATLAB操作更簡單。下面是用MATLAB對一個音樂信號進(jìn)行窗函數(shù)濾波所得到的時域和頻譜圖,這里我們只用了矩形窗和布萊克曼窗進(jìn)行濾波,比較兩種窗函數(shù)的頻譜圖可發(fā)現(xiàn),布萊克曼窗的濾波效果更好一點,原因是布萊克的最小阻帶衰減在相同階數(shù)的情況下比矩形窗的最小阻帶衰減大,所以濾波更徹底,恢復(fù)的信號也比矩形窗要好。想提高矩形窗的濾波效果可通過增加階數(shù)的方法但這會增加許多工作量與運算,所以要均衡考慮選擇不同的窗函數(shù)去實現(xiàn)濾波。
4 IIR
4.1 IIR濾波器特點包括
(1)系統(tǒng)的單位沖激響應(yīng)是無限長的
(2)系統(tǒng)函數(shù)在有限Z平面上有極點存在
(3)結(jié)構(gòu)上存在著輸出到輸入的反饋,也就是結(jié)構(gòu)上是遞歸性的
IIR濾波器幅頻特性很好,但輸出信號相位不是嚴(yán)格的線性,通常只是用懷疑對洗好相位要求不好的場合,比如人類的語音通話和其他音頻處理過程。
4.2 IIR濾波器的設(shè)計
步驟:找出符合模擬指標(biāo)的模擬濾波器,然后把s平面映射到Z平面。映射要求是s左半平面映射到Z平面單位圓內(nèi),s平面的虛軸映射到Z平面單位圓上。
IIR濾波器用模擬轉(zhuǎn)換法設(shè)計,其中轉(zhuǎn)換法包括脈沖響應(yīng)不變法和雙線性變換法。其中沖擊響應(yīng)不變法的優(yōu)點是沒有畸變,數(shù)字時域特征可以很好的模仿模擬時域特性。缺點是有混疊,雙線性則是沒有混疊但有畸變,所以雙線性變換中要對指標(biāo)點進(jìn)行預(yù)畸。雙線性變換是將s代替
,H(s)作為一個連續(xù)時間系統(tǒng),具有兩種極點模式,單極點與多極點,但總能表示成若干個單極點的級聯(lián)。脈沖響應(yīng)不變法則是先對H(s)做周期延拓,然后再經(jīng)過Z=e的映射關(guān)系映射到Z平面上,脈沖響應(yīng)不變法的一個重要特性就是頻率坐標(biāo)的變換是線性的,即w=ΩT,w與Ω是線性關(guān)系,以此通過變換后濾波器的頻響可不失真的反映原響應(yīng)與頻率的關(guān)系。
4.3 MATLAB與IIR
常見的經(jīng)典法設(shè)計的IIR濾波器包括巴特沃斯濾波器、切爾雪夫I型濾波器、切爾雪夫II型濾波器和橢圓濾波器。下圖是用MATLAB對一個音樂信號通過巴特沃斯濾波器得到的時域與頻域圖,巴特沃斯濾波器可用于低通、高通、帶阻、帶通濾波器和模擬濾波器。巴特沃斯濾波器的特點是階數(shù)(N)越大濾波性能越好。
總結(jié):與其他軟件相比,MATLAB操作簡單、快捷且有嚴(yán)格的線性計算系統(tǒng),可以減少編程時間,提高編程效率。隨著MATLAB的不斷更新與發(fā)展,人們利用它進(jìn)行一系列計算、仿真等工作會越來越多。數(shù)字信號處理與MATLAB的結(jié)合使得人們更能清楚地了解到模擬信號與數(shù)字信號的區(qū)別,能夠幫助人們更好的工作。
參考文獻(xiàn):
[1]程佩青 數(shù)字信號處理教程(M)清華大學(xué)出版社 2007
[2]朱雷平,MATLAB在數(shù)字信號處理中的應(yīng)用【J】,科學(xué)信息(學(xué)術(shù)版)2007(5)