什么是巴特沃斯濾波器
巴特沃斯濾波器是電子濾波器的一種。巴特沃斯濾波器的特點(diǎn)是通頻帶的頻率響應(yīng)曲線最平滑。這種濾波器最先由英國(guó)工程師斯替芬·巴特沃斯(StephenButterworth)在1930年發(fā)表在英國(guó)《無(wú)線電工程》期刊的一篇論文中提出的。巴特沃斯濾波器的振幅對(duì)角頻率單調(diào)下降,并且也是唯一的無(wú)論階數(shù),振幅對(duì)角頻率曲線都保持同樣的形狀的濾波器。巴特沃斯濾波器的特點(diǎn)是通頻帶內(nèi)的頻率響應(yīng)曲線最大限度平坦,沒(méi)有起伏,而在阻頻帶則逐漸下降為零。二階巴特沃斯濾波器的衰減率為每倍頻12分貝、三階巴特沃斯濾波器的衰減率為每倍頻18分貝、如此類推。
巴特沃斯濾波器特性
巴特沃斯濾波器的特點(diǎn)是通頻帶內(nèi)的頻率響應(yīng)曲線最大限度平坦,沒(méi)有起伏,而在阻頻帶則逐漸下降為零。在振幅的對(duì)數(shù)對(duì)角頻率的波特圖上,從某一邊界角頻率開(kāi)始,振幅隨著角頻率的增加而逐步減少,趨向負(fù)無(wú)窮大。
一階巴特沃斯濾波器的衰減率為每倍頻6分貝,每十倍頻20分貝。二階巴特沃斯濾波器的衰減率為每倍頻12分貝、三階巴特沃斯濾波器的衰減率為每倍頻18分貝、如此類推。巴特沃斯濾波器的振幅對(duì)角頻。單調(diào)下降,并且也是唯一的無(wú)論階數(shù),振幅對(duì)角頻率曲線都保持同樣的形狀的濾波器。只不過(guò)濾波器階數(shù)越高,在阻頻帶振幅衰減速度越快。其他濾波器高階的振幅對(duì)角頻率圖和低級(jí)數(shù)的振幅對(duì)角頻率有不同的形狀。
巴特沃斯濾波器原理
巴特沃斯型濾波器在現(xiàn)代設(shè)計(jì)方法設(shè)計(jì)的濾波器中,是最為有名的濾波器,由于它設(shè)計(jì)簡(jiǎn)單,性能方面又沒(méi)有明顯的缺點(diǎn),又因它對(duì)構(gòu)成濾波器的元件Q值較低,因而易于制作且達(dá)到設(shè)計(jì)性能,因而得到了廣泛應(yīng)用。其中,巴特沃斯濾波器的特點(diǎn)是通頻帶的頻率響應(yīng)曲線最平滑。
濾波器的截止頻率的變換是通過(guò)先求出待設(shè)計(jì)濾波器的截止頻率與基準(zhǔn)濾波器的截止頻率的比值M,再用這個(gè)M去除濾波器中的所有元件值來(lái)實(shí)現(xiàn)的,其計(jì)算公式如下:M=待設(shè)計(jì)濾波器的截止頻率/基準(zhǔn)濾波器的截止頻率。
濾波器的特征阻抗的變換是通過(guò)先求出待設(shè)計(jì)濾波器的特征阻抗與基準(zhǔn)濾波器的特征阻抗的比值K,再用這個(gè)K去乘基準(zhǔn)濾波器中的所有電感元件值和用這個(gè)K去除基準(zhǔn)濾波器中的所有電容元件值來(lái)實(shí)現(xiàn)的。
巴特沃斯濾波器與其它濾波器比較
下圖是巴特沃斯濾波器(左上)和同階第一類切比雪夫?yàn)V波器(右上)、第二類切比雪夫?yàn)V波器(左下)、橢圓函數(shù)濾波器(右下)的頻率響應(yīng)圖。
特沃斯濾波器優(yōu)點(diǎn)
巴特沃斯濾波器的特點(diǎn)是通頻帶內(nèi)的頻率響應(yīng)曲線最大限度平坦,沒(méi)有起伏,而在阻頻帶則逐漸下降為零。在振幅的對(duì)數(shù)對(duì)角頻率的波得圖上,從某一邊界角頻率開(kāi)始,振幅隨著角頻率的增加而逐漸減少,趨向負(fù)無(wú)窮大。
一階巴特沃斯濾波器的衰減率為每倍頻6分貝,每十倍頻20分貝。二階巴特沃斯濾波器的衰減率為每倍頻12分貝,三階巴特沃斯濾波器的衰減率為每倍頻18分貝,如此類推。巴特沃斯濾波器的振幅對(duì)角頻率單調(diào)下降,并且也是唯一的無(wú)論階數(shù)、振幅對(duì)角頻率曲線都保持同樣的形狀的濾波器。只不過(guò)濾波器階數(shù)越高,在阻頻帶振幅衰減速度越快。其他濾波器高階的振幅對(duì)角頻率圖和低級(jí)數(shù)的振幅對(duì)角頻率有不同的形狀。
巴特沃斯濾波器是濾波器的一種設(shè)計(jì)分類,類同于切比雪夫?yàn)V波器,它有高通,低通,帶通,高通,帶阻等多種濾波器。它在通頻帶內(nèi)外都有平穩(wěn)的幅頻特性,但有較長(zhǎng)的過(guò)渡帶,在過(guò)渡帶上很容易造成失真,我在調(diào)用MATLAB里的巴特沃斯濾波器做仿真時(shí),信號(hào)總會(huì)在第一個(gè)周期略微有些失真,但往后的幅頻特性就非常的好。
巴特沃斯濾波器主要參數(shù)介紹
?。?)[N,wc]=buttord(wp,ws,RP,As,’s’)
該格式用于計(jì)算巴特沃斯模擬濾波器的階數(shù)N和3db截止頻率wc。Wp、ws和wc是實(shí)際模擬角頻率(rad\s)。Rp和As為通帶最大衰減和最小衰減。
?。?)[Z,P,k]=buttap(N)
該格式用于計(jì)算N階巴特沃斯歸一化模擬低通原型濾波器系統(tǒng)函數(shù)的零、極點(diǎn)和增益因子,返回長(zhǎng)度為N的列向量Z和P,分別給出N個(gè)零點(diǎn)和極點(diǎn)的位置,K表示濾波器增益。
?。?)Y=filter(b,a,x)
式中b表示系統(tǒng)傳遞函數(shù)的分子多項(xiàng)式的系數(shù)矩陣;a表示系統(tǒng)傳遞函數(shù)的分母多項(xiàng)式的系數(shù)矩陣;x表示輸入序列;filter表示輸出序列。IIR函數(shù)實(shí)現(xiàn)的直接形式。
(4)[b,a]=butter(N,wc,‘ftype’)
計(jì)算N階巴特沃斯數(shù)字濾波器系統(tǒng)函數(shù)分子、分母多項(xiàng)式的系數(shù)向量b、a。
說(shuō)明:調(diào)用參數(shù)N和wc分別為巴特沃斯數(shù)字濾波器的階數(shù)和3dB截止頻率的歸一化值,一般是調(diào)用buttord格式(1)計(jì)算N和wc。系數(shù)b、a是按照z-1的升冪排列。
?。?)[B,A]=butter(N,Ωc,‘ftype’,‘s’)
計(jì)算巴特沃斯模擬濾波器系統(tǒng)函數(shù)的分子、分母多項(xiàng)式系數(shù)向量。
說(shuō)明:調(diào)用參數(shù)N和Ωc分別為巴特沃斯模擬濾波器的階數(shù)和3dB截止頻率(實(shí)際角頻率),可調(diào)用buttord(2)格式計(jì)算N和Ωc。系數(shù)B、A按s的正降冪排列。
tfype為濾波器的類型:
◇ftype=high時(shí),高通;Ωc只有1個(gè)值。
◇ftype=stop時(shí),帶阻;Ωc=[Ωcl,Ωcu],分別為帶阻濾波器的通帶3dB下截止頻率和上截止頻率。
◇ftype缺省時(shí):若Ωc只有1個(gè)值,則默認(rèn)為低通;若Ωc有2個(gè)值,則默認(rèn)為帶通;其通帶頻率區(qū)間Ωcl《Ω《Ωcu。
(6)[H,w]=freqz(b,a,N)
b和a分別為離散系統(tǒng)的系統(tǒng)函數(shù)分子、分母多項(xiàng)式的系數(shù)向量,返回量H則包含了離散系統(tǒng)頻響在0~pi范圍內(nèi)N個(gè)頻率等分點(diǎn)的值(其中N為正整數(shù)),w則包含了范圍內(nèi)N個(gè)頻率等分點(diǎn)。調(diào)用默認(rèn)的N時(shí),其值是512??梢韵日{(diào)用freqz()函數(shù)計(jì)算系統(tǒng)的頻率響應(yīng),然后利用abs()和angle()函數(shù)及plot()函數(shù),繪制出系統(tǒng)的頻響曲線。
?。?)lp2lp函數(shù)
?。踒t,at]=lp2lp(b,a,w0)
該函數(shù)用于實(shí)現(xiàn)由低通模擬原型濾波器至低通濾波器的頻率變換,可以用傳遞函數(shù)和狀態(tài)空間進(jìn)行轉(zhuǎn)換,但無(wú)論哪種形式,其輸入必須是模擬濾波器原型。
?。?)[bz,az]=impinvar(b,a,fs)
把具有[b,a]模擬濾波器傳遞函數(shù)模型轉(zhuǎn)換為采樣頻率為fs的數(shù)字濾波器的傳遞函數(shù)模型[bz,az],如果在函數(shù)中沒(méi)有確定頻率fs時(shí),函數(shù)默認(rèn)為1Hz.
低通巴特沃斯數(shù)字濾波器的實(shí)例
一、Matlab計(jì)算濾波器系數(shù)
Matlab計(jì)算巴特沃斯低通濾波器系數(shù)過(guò)程如下:
?、俑鶕?jù)給定的通帶截止頻率、通帶截止增益、阻帶截止頻率、阻帶截止增益,利用buttord函數(shù)計(jì)算巴特沃斯濾波器所需的最小階數(shù)和截止頻率。(由于要求中已給出截止頻率,故這步省去)
?。▓D是網(wǎng)上扒拉的,指標(biāo)與本設(shè)計(jì)不符)
?、诟鶕?jù)上述計(jì)算得到的階數(shù),利用buttap函數(shù)計(jì)算出巴特沃斯濾波器原型。
?、劾胠p2lp函數(shù),將原型濾波器轉(zhuǎn)換成目標(biāo)截止頻率的濾波器。
?、芾妹}沖響應(yīng)不變法(impinvar函數(shù))或是雙線性變換法(bilinear函數(shù))將模擬濾波器轉(zhuǎn)換為數(shù)字濾波器。數(shù)字濾波器形式為z域有理函數(shù),分子分母系數(shù)即為濾波器系數(shù)。
我這里選用的是脈沖響應(yīng)不變法,因?yàn)橛?jì)算得到的濾波器比較簡(jiǎn)單,運(yùn)算速度比較快。
?。◤淖蟮接遥簽V波器原型、模擬濾波器、數(shù)字濾波器)
設(shè)計(jì)過(guò)程matlab源碼如下:
Fs=15;%采樣頻率
Nn=12800;
N=2;%階數(shù)
Wc=1*2*pi;%截止頻率
[z,p,k]=buttap(N);%計(jì)算巴特沃斯濾波器原型
?。跙ap,Aap]=zp2tf(z,p,k);%轉(zhuǎn)換成多項(xiàng)式模式
?。踒,a]=lp2lp(Bap,Aap,Wc);%根據(jù)截止頻率計(jì)算模擬巴特沃斯濾波器系數(shù)
[bz,az]=impinvar(b,a,F(xiàn)s);%用脈沖響應(yīng)不變法離散化
figure(1)
?。跦,W]=freqz(bz,az,Nn,F(xiàn)s);%繪制頻率特性曲線
subplot(2,1,1)
plot(W,20*log10(abs(H)));
gridon;
subplot(2,1,2)
plot(W,180/pi*unwrap(angle(H)));
gridon;
二、Matlab計(jì)算驗(yàn)證
先在Matlab中驗(yàn)證濾波函數(shù)。先編寫(xiě)帶噪聲的輸入函數(shù),然后經(jīng)過(guò)濾波器函數(shù)后,觀察濾波效果。其中濾波器函數(shù)寫(xiě)法為:
Filter函數(shù)為Matlab自帶函數(shù),其算法為:
其中,a即為z域傳遞函數(shù)的分母系數(shù),b為分子系數(shù)。例如本應(yīng)用中:
則算法為az(1)*y(k)=bz(1)*x(k)+bz(2)*x(k-1)–az(2)*y(k-1)–az(3)*y(k-2)
Matlab中得到的結(jié)果如下(信號(hào)頻率0.1Hz,噪聲頻率6Hz):
三、C語(yǔ)言函數(shù)編寫(xiě)與驗(yàn)證
將上述算法翻譯成C語(yǔ)言,寫(xiě)入單片機(jī)中。利用信號(hào)源輸出各種波形,單片機(jī)AD采樣進(jìn)去之后,對(duì)采樣點(diǎn)進(jìn)行濾波處理,將原始數(shù)據(jù)和濾波后的數(shù)據(jù)發(fā)送到上位機(jī)進(jìn)行繪圖,得到圖像對(duì)比如下:
C函數(shù)源碼如下:
constfloatbz[2]={0,0.128580115806658};//分子
constfloataz[3]={1,-1.42252474659021,0.553007125840971};//分母
floatData_Output[DATA_LENTH];//輸出數(shù)據(jù)
float*but_filter(unsignedintlen,float*x)//len為輸入數(shù)據(jù)數(shù)組長(zhǎng)度,x為輸入數(shù)據(jù)數(shù)組指針
{
unsignedinti=2;
staticfloatinit[2]={0,0};//初值,一開(kāi)始設(shè)為0
if(len《2)//如果長(zhǎng)度小于2,直接返回
returnData_Output;
Data_Output[0]=init[0];//賦初值
Data_Output[1]=init[1];
for(i=2;i《len;i++)
{
Data_Output[i]=bz[0]*x[i]+bz[1]*x[i-1]-az[1]*Data_Output[i-1]-az[2]*Data_Output[i-2];
/*算法為a1*y(k)=b1*x(k)+b2*x(k-1)-a(2)*y(k-1)-a(3)*y(k-2)*/
/*由于a1=1,故不做除法*/
}
init[0]=Data_Output[len-2];//考慮到會(huì)被連續(xù)調(diào)用,此次的終值作為下次的初值
init[1]=Data_Output[len-1];
returnData_Output;
}
評(píng)論
查看更多