基于Matlab和Visual C++的數(shù)字濾波器設(shè)計(jì)方法
摘要 在信號處理中,濾波的優(yōu)劣直接影響信息的準(zhǔn)確性。模擬濾波雖然快捷但不靈活,數(shù)字濾波效果雖好但復(fù)雜。所以文中提出一種以模擬濾波器為基準(zhǔn),設(shè)計(jì)具有相同功能而且參數(shù)可調(diào)的數(shù)字濾波器的方法。并以二階RC無源低通濾波電路為例對此過程進(jìn)行說明,與模擬濾波電路和傳統(tǒng)的數(shù)字濾波相比,該方法不僅比傳統(tǒng)的數(shù)字濾波算法簡單快捷,而且可有效防止模擬電路中器件的寄生參數(shù)、精度、溫度等的影響,使濾波更加穩(wěn)定。
本文引用地址:http://butianyuan.cn/article/246736.htm隨著信息科技的發(fā)展,信號處理得到了大幅推動,已經(jīng)被廣泛應(yīng)用于雷達(dá)、通信、自動化、航空航天等領(lǐng)域。在信號處理系統(tǒng)中,輸入信號通常含有各種噪聲和干擾。為對信號進(jìn)行準(zhǔn)確的測量和控制,必須削弱或?yàn)V除被測信號中的噪聲和干擾。一般在系統(tǒng)中可選用硬件濾波和軟件濾波。硬件濾波又分為無源濾波和有源濾波,無源濾波是通過RC濾波器或LC濾波器等模擬濾波器進(jìn)行濾波。軟件濾波也稱數(shù)字濾波,是通過一定的算法削弱噪聲的影響。硬件濾波的優(yōu)勢是不需要進(jìn)行復(fù)雜的程序處理,反應(yīng)靈敏。而軟件濾波的優(yōu)勢是不需要硬件的投入,而且可靠穩(wěn)定。
綜合兩者的優(yōu)勢,本文提出了一種以低通二階RC無源濾波電路為基準(zhǔn),用Matlab和Visual C++設(shè)計(jì)一個(gè)具有相同功能數(shù)字濾波器的方法即模擬電路數(shù)字化方法,以濾除信號中的高頻雜波,得到了較為理想的波形。
1 模擬電路數(shù)字化方法
模擬電路數(shù)字化的過程如下,首先從硬件濾波電路出發(fā),計(jì)算電路的傳遞函數(shù)H(s)。由于軟件濾波的信號是離散的數(shù)字信號,所以將H(s)轉(zhuǎn)換成離散域的H(z),通過Matlab編程實(shí)現(xiàn)對信號的濾波。如果濾波效果不理想,則對傳遞函數(shù)中的參數(shù)進(jìn)行調(diào)整,得到具有較理想濾波效果的H(z)。為最終用Visual C++編程實(shí)現(xiàn),需要將H(z)反變換得時(shí)域的h(t),與信號進(jìn)行卷積和運(yùn)算以完成濾波。經(jīng)過以上步驟,完成模擬濾波電路數(shù)字化的過程,并在Matlab和Visual C++平臺上實(shí)現(xiàn)濾波。
2 二階RC無源低通濾波電路
對于模擬電路的分析,通常采用傳遞函數(shù)的分析方法。電子電路往往是由若干個(gè)動態(tài)環(huán)節(jié)連在一起構(gòu)成一個(gè)復(fù)雜電路。對于每個(gè)具體環(huán)節(jié)來說,都有它的輸入量和輸出量,而一定輸入量的變化都會引起輸出量的變化。根據(jù)一個(gè)環(huán)節(jié)中所進(jìn)行的物理過程可以寫出微分方程,它表示了該環(huán)節(jié)輸出量和輸入量的關(guān)系。
例如RLC振蕩回路的微分方程為
輸入量與輸出量都是時(shí)間t的函數(shù),用微分方程直接表示輸入量與輸出量時(shí)間函數(shù)之間的關(guān)系比較復(fù)雜。但利用拉氏變換把時(shí)間函數(shù)變換為s的函數(shù)以后,原函數(shù)對于時(shí)間t的微分積分就簡化為s的乘除法。
在零起始條件下,一個(gè)動態(tài)環(huán)節(jié)的輸出量的拉氏變換用X(s)表示,輸入量的拉氏變換用F(s)表示,把
稱為傳遞函數(shù)。
通常信號在進(jìn)行放大之前,先對該信號進(jìn)行濾波。以低頻信號為例,使用經(jīng)典的二階RC無源濾波電路進(jìn)行濾波,電路如圖1所示。在接下來的部分將以此電路為例對模擬電路數(shù)字化方法進(jìn)行詳細(xì)的分析和講解。
計(jì)算出該電路的傳遞函數(shù)H(s)如式(2)所示。其中,b=R1C1+R1C2+R2C2,a=R1R2C1C2。
3 傳遞函數(shù)離散化
濾波器的濾波效果與R1、R2、C1和C2等參數(shù)相關(guān),如果取值不當(dāng)會造成濾波效果不理想。對于復(fù)雜的傳遞函數(shù),諧振頻率和帶寬不易計(jì)算,所以本文采用控制變量法。
對于多因素的問題,常常采用控制因素的方法,把多因素的問題變成多個(gè)單因素的問題。每一次只改變其中的某一個(gè)因素,而控制其余幾個(gè)因素不變,從而研究被改變的這個(gè)因素對事物的影響,分別加以研究,最后再綜合解決,這種方法叫控制變量法,被廣泛地運(yùn)用在各種科學(xué)研究之中。
得到傳遞函數(shù)后,就可以對信號進(jìn)行濾波。由于待處理的數(shù)據(jù)是數(shù)字信號,若想仿真需將頻域的傳遞函數(shù)轉(zhuǎn)換為x域的傳遞函數(shù),即將模擬濾波器轉(zhuǎn)換為數(shù)字濾波器。模擬濾波器轉(zhuǎn)換為數(shù)字濾波器有兩種方法:脈沖響應(yīng)不變法和雙線性變換法。
脈沖響應(yīng)不變法是一個(gè)穩(wěn)定的設(shè)計(jì),主要用于設(shè)計(jì)某些要求在時(shí)域上能模仿模擬濾波器功能的數(shù)字濾波器。這種變換法的主要特點(diǎn)是頻率坐標(biāo)的變換是線性的,即由于混疊現(xiàn)象,阻帶邊緣的衰減要比模擬濾波器稍差一些,但仍能滿足技術(shù)指標(biāo)的要求。脈沖響應(yīng)不變法要求該模擬濾波器是帶通濾波器或者低通濾波器,但這種方法在阻帶沒有起伏的情況下才有用。
雙線性變換法映射也是一種穩(wěn)定的設(shè)計(jì),不存在混疊現(xiàn)象,對能夠變換的濾波器類型沒有限制。但這種方法也有固有缺陷:模擬頻率和數(shù)字頻率之間是非線性關(guān)系,它使得頻率的標(biāo)度彎曲,不能保持原來的模擬濾波器的相頻特性;數(shù)字的頻率響應(yīng)與模擬的頻率響應(yīng)有明顯的差別。一般情況下,可以通過頻率的預(yù)畸變進(jìn)行校正。但總體來說,雙線性變換法的仿真結(jié)果比脈沖響應(yīng)不變法更加理想。
由于脈沖響應(yīng)不變法從s平面到z平面是多值映射,會在頻域響應(yīng)產(chǎn)生混疊失真。而雙線性變換法可以把整個(gè)s平面變換到整個(gè)z平面上去,且使s的左半平面映射到z平面的單位圓內(nèi),所以設(shè)計(jì)采用雙線性變換法。
雙線性變化法的映射函數(shù)為
調(diào)用Matlab中的Fiher函數(shù)R1和R2調(diào)節(jié)參數(shù)、進(jìn)行仿真,仿真結(jié)果如圖2所示。圖2(a)是未加濾波的波形,圖2(b)、圖2(c)、圖2(d)的電阻依次增大,從圖中可以看到,電阻越大,高頻分量越少。
模擬信號相關(guān)文章:什么是模擬信號
濾波器相關(guān)文章:濾波器原理
濾波器相關(guān)文章:濾波器原理
c++相關(guān)文章:c++教程
低通濾波器相關(guān)文章:低通濾波器原理
電源濾波器相關(guān)文章:電源濾波器原理
數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理
評論