劉俊宏+楊晨光+張花普
摘要:在近代通訊系統(tǒng)的發(fā)展過程中,人們越來越優(yōu)先選擇通訊性能好、信息傳遞準(zhǔn)確、傳遞效率高以及通訊工具無其他雜亂信號(hào)干擾的裝置工具。因?yàn)樵S多裝置會(huì)混有雜亂無章的其他信號(hào),所以在信號(hào)處理過程中,數(shù)字濾波發(fā)揮著巨大的作用。除無效信號(hào),大部分信號(hào)的分析處理都是經(jīng)過濾波器濾來實(shí)現(xiàn)的,其中數(shù)字濾波器是最主要的一種信號(hào)處理方式,它是通過數(shù)值運(yùn)算實(shí)現(xiàn)其濾波功能。比如:處理精度很高、運(yùn)行相當(dāng)穩(wěn)定、數(shù)據(jù)處理非常靈活。本設(shè)計(jì),詳細(xì)介紹了不同類型的數(shù)字濾波技術(shù)和MATLAB語言環(huán)境下的編程技術(shù),研究了各種濾波技術(shù)的現(xiàn)狀和應(yīng)用前景。具體介紹了數(shù)字濾波器:確定技術(shù)指標(biāo)-逼近-性能分析-MATLAB仿真的設(shè)計(jì)方法,設(shè)計(jì)了FIR數(shù)字濾波器分析了他們的基本原理和設(shè)計(jì)方法,并在MATLAB軟件中進(jìn)行模擬仿真實(shí)驗(yàn)。
關(guān)鍵詞:數(shù)字濾波器;FIR;MATLAB;窗函數(shù)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)33-0200-03
數(shù)字濾波器是以數(shù)字信號(hào)為輸入與輸出方式,以一定的傳輸特性來傳遞信號(hào)的處理裝置。它工作的基本原理是利用離散信號(hào)系統(tǒng)的特點(diǎn)改變輸入信號(hào)序列的頻率響應(yīng)或者波形,阻止干擾信號(hào)的輸出,從而輸出所需要的信號(hào)。數(shù)字濾波器根據(jù)網(wǎng)絡(luò)特性的結(jié)構(gòu)特點(diǎn)可以分為有限長脈沖響應(yīng)數(shù)字濾波器[FIR]和無限長脈沖響應(yīng)數(shù)字濾波器[IIR]。[IIR]濾波器由在濾波過程中占的空間小,處理效率很高、處理精確,并且保留下一部分模擬濾波器的特點(diǎn),因此實(shí)際應(yīng)用中還是非常普遍的。對于[FIR]數(shù)字濾波器來說,它在濾波過程是以非遞歸的方式實(shí)現(xiàn),濾波的過程和方式也不易改變,而且它在滿足幅頻響應(yīng)特性的同時(shí)能夠獲得非常準(zhǔn)確的頻率特性,這種濾波器有利于對不同類型濾波器的頻率特性進(jìn)行數(shù)據(jù)分析與總結(jié)。在設(shè)計(jì)[FIR]型濾波器中,選用漢寧窗函數(shù)法設(shè)計(jì)帶通濾波器,選用通帶下線截止頻率和上線截止頻率分別為0.35和0.65,通過MATLAB仿真可以看出來,通帶頻率之外的其他頻率信號(hào)削減幅度相當(dāng)?shù)拇?,最后使得在帶通之外的信?hào)在濾波的過程中過濾不在范圍之內(nèi)的信號(hào),達(dá)到了選頻濾波的目的。在高精度的信號(hào)分析與處理的過程中,比如傳遞數(shù)據(jù)、處理圖像、音頻信號(hào)的數(shù)字應(yīng)用等領(lǐng)應(yīng)用非常的廣泛。
從真正的仿真結(jié)果可以看出來,MATLAB是一個(gè)運(yùn)用起來非常簡便、易于學(xué)習(xí)、運(yùn)行速度快且便于操作的一種處理信號(hào)傳輸系統(tǒng)的軟件,這個(gè)信息發(fā)展飛速的時(shí)代,數(shù)字濾波技術(shù)實(shí)用性很強(qiáng),所以會(huì)應(yīng)用在更多的領(lǐng)域,這是一個(gè)應(yīng)用前景非常好的項(xiàng)目。
數(shù)字濾波器應(yīng)用十分普遍,最主要應(yīng)用在以下五個(gè)方面:
其一,可用于語音處理。在語音處理領(lǐng)域可以分為五個(gè)內(nèi)容:A,用于分離多種語音信號(hào);B,用于不同音色的辨別;C,用于共同聲音合成;D,用于增強(qiáng)語音;E,用于語音編碼等方面。
其二,可用于圖像處理。數(shù)字濾波技術(shù)不但可以去干擾去噪音、恢復(fù)靜止圖像的完整、壓縮圖像數(shù)據(jù),還能夠識(shí)別圖像并對X射線進(jìn)行層析。與此同時(shí),數(shù)字濾波器技術(shù)在雷達(dá)的檢測、聲納的傳遞、超聲波的傳輸與應(yīng)用和紅外信號(hào)的檢測和應(yīng)用方面也有相當(dāng)重要應(yīng)用。
其三,可用于電視。數(shù)字濾波技術(shù)及與之有關(guān)的技術(shù),可以用于網(wǎng)絡(luò)電視信號(hào)的發(fā)送和接受,是視頻壓縮技術(shù)和音頻壓縮技術(shù)的重要基礎(chǔ),目前應(yīng)用領(lǐng)域非常廣泛。
其四,可用于通信與生物醫(yī)學(xué)信號(hào)?,F(xiàn)代生活中,對于數(shù)字濾波技術(shù)的不斷研究與數(shù)字濾波技術(shù)的快速發(fā)展,在現(xiàn)代通信技術(shù)領(lǐng)域內(nèi),數(shù)字濾波器在通信領(lǐng)域和生物醫(yī)學(xué)信號(hào)處理應(yīng)用的也相當(dāng)廣泛。通信領(lǐng)域有:多路復(fù)用,自適應(yīng)信道均衡,數(shù)據(jù)壓縮,信源編碼和信道編碼的調(diào)制等都相當(dāng)多的領(lǐng)域采用了數(shù)字濾波技術(shù);醫(yī)學(xué)應(yīng)用有:病人的身體檢查,胎兒的自適應(yīng)檢查,心電圖的檢測與分析中,這些應(yīng)用都非常重要。
其五,可用于雷達(dá)以及聲納。雷達(dá)和聲納都離不開數(shù)字濾波器及其技術(shù),并且在軍事與民生方面也發(fā)揮著重要的作用。
它的應(yīng)用領(lǐng)域范圍遠(yuǎn)遠(yuǎn)超過本文們的想象,比如軍事上的目標(biāo)導(dǎo)航、制導(dǎo)和戰(zhàn)場的情況偵查;電力系統(tǒng)上的能源分布的情況規(guī)劃和作為智能機(jī)器人系統(tǒng)自動(dòng)檢測;環(huán)境保護(hù)中可以作為智能系統(tǒng)對空氣中的污染物和顆粒進(jìn)行檢測、自動(dòng)監(jiān)測各種環(huán)境的噪聲干擾并進(jìn)行報(bào)警處理;經(jīng)濟(jì)市場上可以根據(jù)往年的數(shù)據(jù)資料對股票走向進(jìn)行預(yù)測、分析等??傊?,數(shù)字濾波器應(yīng)用的領(lǐng)域大大地超過一般人所能想象的范圍。
1 數(shù)字濾波器的設(shè)計(jì)步驟
數(shù)字濾波器是以數(shù)字信號(hào)為輸入和輸出的信號(hào)處理裝置系統(tǒng),此信號(hào)系統(tǒng)具有一定的數(shù)據(jù)傳輸特性。濾波器可按照其沖擊響應(yīng)的時(shí)域特征分為無限長沖擊響應(yīng)([IIR])數(shù)字濾波器和有限長沖擊響應(yīng)([FIR])數(shù)字濾波器。在這兩種數(shù)字濾波器在設(shè)計(jì)時(shí)可分為四個(gè)步驟:確定技術(shù)指標(biāo)-逼近-性能分析-MATLAB的仿真四步。
1) 確定技術(shù)指標(biāo)
在此次設(shè)計(jì)中根據(jù)實(shí)驗(yàn)所選擇的濾波器的具體參數(shù)來決定數(shù)字濾波器的不同指標(biāo),從而根據(jù)頻率響應(yīng)給出頻域的幅度和線性相位響應(yīng)關(guān)系。幅度的指標(biāo)分為幅度絕對指標(biāo)和幅度相位指標(biāo)兩種,一般實(shí)驗(yàn)中幅度指標(biāo)是最好的也是最受歡迎。線性相位通常在系統(tǒng)的通頻帶中進(jìn)行實(shí)驗(yàn)所需要的響應(yīng),運(yùn)用線性相位響應(yīng)這個(gè)指標(biāo)對濾波器進(jìn)行基于MATLAB的設(shè)計(jì)有以下三個(gè)優(yōu)點(diǎn),首先算法采用的是及時(shí)數(shù)算法,沒有其他的附屬算法;其次,這個(gè)算法除了有固定數(shù)量的延遲之外,沒有其他延遲失真的情況;最后,關(guān)于數(shù)量級(jí)的計(jì)算,計(jì)算量只需要計(jì)算長度為N的濾波器的一半。因此技術(shù)指標(biāo)的確實(shí)是非常重要的。
2) 逼近
技術(shù)指標(biāo)的選擇好并確定了指標(biāo)數(shù)值之后,在沒有任何干擾情況下編寫在MATLAB語言下的程序,在此基礎(chǔ)下的對數(shù)字濾波器基本模型并進(jìn)行MATLAB程序的編寫從而進(jìn)行模型的仿真與調(diào)試;然后根據(jù)具體情況與所給定的數(shù)值分析設(shè)計(jì)出數(shù)字濾波器的基本模型;最后讓調(diào)試結(jié)果使其慢慢接近設(shè)定的理想指標(biāo)數(shù)據(jù)。
3) 性能分析
由上述描述可得到一個(gè)差分活系統(tǒng)函數(shù)活脈沖響應(yīng)濾波器,由此可得頻率特性和相位特性的具體變化過程,用來檢驗(yàn)設(shè)計(jì)結(jié)果的精準(zhǔn)性。
4) MATLAB的仿真
利用MATLAB軟件的Simulink系統(tǒng)進(jìn)行仿真,通過濾波器仿真顯示來觀察最終結(jié)果并進(jìn)行仿真結(jié)果分析,從而優(yōu)化數(shù)據(jù)得到最好設(shè)計(jì)方案。利用MATLAB軟件設(shè)計(jì)的[FIR]數(shù)字濾波器,簡單的程序編寫不但可以節(jié)省許多編程時(shí)間,提高了編寫程序的效率,而且能夠依照不同的條件不斷改變參數(shù),從而觀察不同數(shù)值下的濾波情況并且顯示出來,直觀的看到不同的地方,使得濾波器達(dá)到最優(yōu)效果。
2 [FIR]數(shù)字濾波器的步驟及設(shè)計(jì)方法
2.1 [FIR]數(shù)字濾波器的設(shè)計(jì)步驟
此實(shí)驗(yàn)選用漢寧窗函數(shù)的方法來設(shè)計(jì)FIR數(shù)字濾波器并在MATLAB軟件上進(jìn)行仿真。漢寧窗函數(shù)的設(shè)計(jì)步驟如下:
1)確定參數(shù)的關(guān)系
(1)根據(jù)已知的頻率參數(shù),來確定最理想情況下的濾波器的頻率響應(yīng)[HdejΩ];
(2)根據(jù)已知數(shù)值來確定該濾波器的單位取樣響應(yīng)為[hdn],其表達(dá)式為:
2)選擇窗函數(shù)[wn]和窗長度[N]
根據(jù)設(shè)計(jì)的指標(biāo)要求對濾波器的幅度和過渡帶寬情況,首先確定阻帶的衰減范圍,再在這個(gè)范圍內(nèi)選擇主瓣最窄的窗函數(shù)與窗長度[N],最后計(jì)算濾波器的單位取樣響應(yīng)[hn],表達(dá)式關(guān)系為:
3)檢驗(yàn)函數(shù)關(guān)系是否正確,并對結(jié)果進(jìn)行分析探索
[hn]的頻率響應(yīng)[Hejω]與[Hdejω]是否滿足:
若所得數(shù)據(jù)滿足上述關(guān)系,則說明參數(shù)比較合適,根據(jù)[hn]畫出結(jié)構(gòu)圖;若不滿足,再對第2、3步進(jìn)行循環(huán)計(jì)算,不斷探索。
2.2 [FIR]數(shù)字濾波器的設(shè)計(jì)方法
[FIR]數(shù)字濾波器的設(shè)計(jì)問題本質(zhì)是找到題目中要求的脈沖響應(yīng)常熟和序列的轉(zhuǎn)移問題;[FIR]數(shù)字濾波器設(shè)計(jì)的方法可以分為以下幾種:利用采樣所得的具體頻率來設(shè)計(jì)、利用示波器將窗函數(shù)顯示出來的方法進(jìn)行設(shè)計(jì)和等波紋最佳值逼近的設(shè)計(jì)方法等;將[FIR]濾波器的基本結(jié)構(gòu)可形象描述為一個(gè)分節(jié)的延時(shí)線,使每一個(gè)的輸出值進(jìn)行加權(quán)并累加,將所得結(jié)果通過濾波器輸出[1]。[FIR]數(shù)字濾波器的設(shè)計(jì)選用窗函數(shù)法,窗函數(shù)法的設(shè)計(jì)方法是通過一種用設(shè)置的寬度函數(shù)截取無限長脈沖響應(yīng)序列從而獲取有限長脈沖響應(yīng)序列波形的過程。當(dāng)用一個(gè)有限長波形序列[hn]來代替理想情況下沒有任何干擾的時(shí)候?yàn)V波器的單位取樣響應(yīng)[hdn]時(shí),必定產(chǎn)生一些誤差,這種誤差被稱為吉布斯效應(yīng)。這也可稱為截?cái)嘈?yīng):因?yàn)檫@是將所需的單位脈沖[hdn]直接截下來,這會(huì)造成通帶和阻帶內(nèi)有波動(dòng)進(jìn)而對其造成一定干擾[2]。
窗函數(shù)法又叫傅里葉級(jí)數(shù)法,隨著傅里葉級(jí)數(shù)的項(xiàng)數(shù)越多,所得到的結(jié)果誤差就會(huì)越小。但也不是項(xiàng)數(shù)越多就越好,隨著項(xiàng)數(shù)的不斷增加,就會(huì)使得所需要的成本和儲(chǔ)存體積變大,所以本文在滿足題目要求條件的基礎(chǔ)上盡量減少有限長單位脈沖響應(yīng)序列[hn]的長度。在現(xiàn)實(shí)的實(shí)驗(yàn)或者實(shí)踐里,如果需要得到單位濾波,我們先對參數(shù)進(jìn)行設(shè)置,用[N]表示濾波器階數(shù),[Wn]為窗函數(shù)表達(dá)式,根據(jù)濾波器性能與技術(shù)指標(biāo)所設(shè)定的參數(shù)按照具體數(shù)值進(jìn)行單位取樣。該設(shè)計(jì)的主要思路是利用頻率響應(yīng)的特點(diǎn)來確定有限長單位脈沖響應(yīng)[hn]的系數(shù)向量,將沒有干擾情況下的脈沖響應(yīng)[hdn]與窗函數(shù)[wdn]相乘得到有限長脈沖響應(yīng)序列[hn]的方法,即[hn=hdn.Wn]。
選用窗函數(shù)法設(shè)計(jì)的條件是:第一,通帶要窄;第二,盡量減小阻帶內(nèi)的波動(dòng)范圍來抑制阻帶內(nèi)衰減幅度作用;在進(jìn)行實(shí)際操作時(shí),窗函數(shù)可分為:矩形窗、三角形窗、漢寧窗、布萊克曼窗和凱塞窗五種[3]。圖1是以上幾種窗函數(shù)的參數(shù)值,如下:
3 [FIR]數(shù)字濾波器的MATLAB設(shè)計(jì)實(shí)例
利用MATLAB設(shè)計(jì)窗函數(shù)的主程序框圖可以表示如下圖2:
在用窗函數(shù)法設(shè)計(jì)[FIR]數(shù)字濾波器的方法有很多種,經(jīng)過考慮選擇漢寧窗為例,首先根據(jù)具體情況設(shè)置各個(gè)參數(shù)值:低端通帶截止頻率設(shè)為[w1p=0.35π],低端阻帶截止頻率設(shè)為[ω=0.2π],高端阻帶截止頻率設(shè)為[whs=0.8π],高端通帶截止頻率設(shè)為[whp=0.65π],通帶最大衰減設(shè)為[Rp=1dB],阻帶最小衰減設(shè)為[Rs=40dB],通過MATLAB編寫程序,可得該漢寧窗的幅頻特性曲線如圖3:
4 數(shù)字濾波器的仿真結(jié)果分析
上述的設(shè)計(jì)過程敘述了有限長單位沖激響應(yīng)數(shù)字濾波器([FIR]數(shù)字濾波器)的原理,利用窗函數(shù)的設(shè)計(jì)方法對[FIR]數(shù)字濾波器進(jìn)行了具體的設(shè)計(jì)與研究。利用窗函數(shù)設(shè)計(jì)[FIR]型數(shù)字濾波器時(shí),本文選用漢寧窗進(jìn)行設(shè)計(jì)與MATLAB的仿真設(shè),漢寧窗的上線截止頻率和下線截止頻率分別為0.65[π]和0.35[π],但是因?yàn)橥◣ьl率外的信號(hào)幅度衰減很大,因此濾波器能夠?qū)ν◣?nèi)的波形進(jìn)行濾除,從而達(dá)到過濾通帶之外波形的效果。利用MATLAB語言,根據(jù)不同情況改變參數(shù)來設(shè)計(jì)[FIR]數(shù)字濾波器,這種方法不但簡單方便,最主要的是節(jié)省時(shí)間,便于觀察和記錄,還可以隨時(shí)改變不同的參數(shù),從而更直觀的去研究各個(gè)濾波器的顯示結(jié)果。因?yàn)閭鹘y(tǒng)數(shù)字濾波器的設(shè)計(jì)方法非常復(fù)雜,運(yùn)算所得數(shù)據(jù)龐大,結(jié)果表現(xiàn)的也不直觀,所以此次設(shè)計(jì)選擇利用MATLAB語言設(shè)計(jì)一個(gè)更為優(yōu)化的設(shè)計(jì)方案,對傳統(tǒng)的數(shù)字濾波器進(jìn)行改良,利用它強(qiáng)大的科學(xué)計(jì)算系統(tǒng)和圖形顯示的特點(diǎn)來去掉傳統(tǒng)數(shù)字濾波器的缺點(diǎn),實(shí)現(xiàn)對數(shù)據(jù)計(jì)算量的簡化、提高了精度、使結(jié)果更直觀表現(xiàn)出來等優(yōu)點(diǎn)。
參考文獻(xiàn):
[1] 郭中華,董涌,房衛(wèi)東,等.基于MATLAB的FIR數(shù)字濾波器設(shè)計(jì)與仿真[J].寧夏大學(xué)物理電氣信息學(xué)院學(xué)報(bào),2004,3.
[2] 黎民紅.利用MATLAB和窗函數(shù)法設(shè)計(jì)FIR數(shù)字濾波器[J].華南大學(xué)學(xué)報(bào),2007,9.
[3] 徐歡,胡津津,袁媛.基于 MATLAB的FIR數(shù)字濾波器的窗函數(shù)法設(shè)計(jì)與仿真[J].通化師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2013,4.