丁宇,薛開昶,孫偉
(1.中國電子科技集團公司第十四研究所,江蘇 南京 210039;2.國家精密微特電機工程技術研究中心,貴州 貴陽 550008)
?
有源模擬濾波器的MATLAB輔助設計方法
丁宇1,薛開昶2,孫偉1
(1.中國電子科技集團公司第十四研究所,江蘇 南京 210039;2.國家精密微特電機工程技術研究中心,貴州 貴陽 550008)
摘要:在簡要概述傳統(tǒng)有源模擬濾波器設計方法的同時給出利用MATLAB進行有源模擬濾波器設計的方法,通過對有源模擬濾波器兩種設計方法關鍵步驟的比較,給出了MATLAB能有效地簡化有源模擬濾波器設計的結論。結合有源模擬濾波器的特性,給出了零極點分配原則和級聯(lián)原則;同時介紹了如何用MATLAB給出濾波器總體和局部幅/相頻特性,為濾波器調試提供了參考。通過設計實例,驗證了本文提出的設計方案的便捷性、直觀性、可行性。
關鍵詞:模擬;有源;濾波器;MATLAB
0引言
有源模擬濾波器主要具有完成信號調理的功能,在計量測試領域,這種濾波器對于信號檢測起著重要的作用。現(xiàn)階段有源模擬濾波器傳統(tǒng)的人工設計已比較成熟,但這種方式的設計過程復雜,計算量大。EDA(Electronic Design Automation)技術的不斷發(fā)展,顯著降低了模擬濾波器設計的難度和工作量。較為典型的模擬濾波器設計軟件有Nuhertz公司的Filter Solutions,Schematica公司的Filter Wiz Pro,Linear公司的FilterCAD,Microchip公司的FilterLab。這些軟件中Filter Solutions和Filter Wiz Pro功能較為齊全,但價格較為昂貴;FilterCAD和FilterLab是免費軟件,但FilterCAD只能給出基于Linear公司生產器件的濾波器設計,而FilterLab的功能較為單一。
本文給出了一種基于MATLAB的有源模擬濾波器的設計方法,不需要查取濾波器的設計曲線及表格,并可查看所設計濾波器的頻域特性,簡化濾波器階數(shù)、角頻率和品質因數(shù)的計算過程。
1模擬濾波器設計方法
1.1.1傳統(tǒng)方法
首先,計算濾波器的陡度系數(shù)Aslope;然后,對照歸一化低通濾波器衰減特性曲線,找出一條階數(shù)盡可能小但又能使其陡度超過Aslope的曲線,則這條曲線上的數(shù)字即為所設計濾波器需要的最小階數(shù)n[1]。
由于確定濾波器階數(shù)的衰減特性曲線以歸一化的低通濾波器為標準,故陡度系數(shù)的計算過程包含將高通、帶通和帶阻濾波器向低通濾波器轉化的歸算,及將實際頻率向單位頻率的歸算;低通、高通、帶通或帶阻濾波器需要采用不同的陡度計算公式。
1.1.2MATLAB輔助設計方法
在MATLAB軟件下可以調用表1中函數(shù)計算濾波器的最小階數(shù)n和截止角頻率ωn。表1中的ωp和ωs表示通帶和阻帶角頻率,單位為rad/s,Rp和Rs表示通帶和阻帶的紋波或衰減,單位為dB。對于低通、高通、帶通和帶阻濾波器,ωp和ωs的調用形式及約束條件如表2所示[2-5]。
表1 濾波器最小階數(shù)求取函數(shù)
表2 ωp和ωs的調用形式及約束
本文中所說的傳統(tǒng)設計和基于MATLAB的設計中求得的最小階數(shù)n在低通和高通濾波器中為實際濾波器的階數(shù),在帶通和帶阻中為實際濾波器階數(shù)的一半。原因是在低通到帶通或帶阻的變換中一對零極點將變換成兩對零極點。這一點需要特別注意。
1.2.1傳統(tǒng)方法
首先,根據(jù)上一步得到的濾波器階數(shù)n,查找歸一化低通濾波器的極點;然后,將歸一化低通濾波器極點去歸一化,獲取各級濾波器的參數(shù)[6]。去歸一化過程包含低通向實際頻率高通、帶通和帶阻濾波器轉化的歸算,及單位頻率向實際頻率的歸算。當n為偶數(shù)時,設經查表得到歸一化低通極點為-ai±jbi(i=1,2,…,n/2);當n為奇數(shù)時,設經查表得到的歸一化低通極點為-ai±jbi(i=1,2,…,(n-1)/2)和-a0。
對于帶通濾波器,歸一化低通至帶阻轉化時,一對低通復極點-ai±jbi對應兩對帶通復極點,一個低通實極點-a0轉化為一對帶通復極點,去歸一化過程包括以下步驟:①計算帶通濾波器的品質因數(shù)Qbp;②根據(jù)帶通濾波器的品質因數(shù)Qbp,由一對低通復極點-ai±jbi計算兩對帶通復極點所對應的角頻率ωbpi1,ωbpi2和品質因數(shù)Qbpi1,Qbpi2,由一個低通實極點-a0計算一對帶通復極點對應的角頻率ωbp0和品質因數(shù)Qbp0,ωbpi1和Qbpi1對應一節(jié)2階帶通濾波器電路,ωbpi2和Qbpi2對應一節(jié)2階帶通濾波器電路,ωbp0和Qbp0對應一節(jié)2階帶通濾波器電路。
對于帶阻濾波器,歸一化低通至帶阻轉化時,一對低通復極點-ai±jbi對應兩對帶阻復極點和虛零點,一個低通實極點-a0對應一對帶阻復極點和虛零點;設一對低通復極點-ai±jbi對應的兩對復極點角頻率和品質因數(shù)為ωbri1,ωbri2和Qbri1,Qbri2,兩對虛零點角頻率為ωbr∞i1,ωbr∞i2;設一個低通實極點-a0對應的一對復極點角頻率和品質因數(shù)為ωbr0和Qbr0,一對虛零點角頻率為ωbr∞0。則去歸一化過程包括以下步驟:①計算帶阻濾波器的品質因數(shù)Qbr;②根據(jù)帶阻濾波器的品質因數(shù)Qbr,由一對低通復極點-ai±jbi計算所對應的ωbri1,ωbri2,Qbri1,Qbri2,ωbr∞i1和ωbr∞i2,由一個實極點-a0計算對應的ωbr0,Qbr0和ωbr∞0。ωbri1,Qbri1和ωbr∞i1對應一節(jié)2階帶阻濾波器電路;ωbri2,Qbri2和ωbr∞i2對應一節(jié)2階帶阻濾波器電路;ωbr0,Qbr0和ωbr∞0對應一節(jié)2階帶阻濾波器電路。
1.2.2MATLAB輔助設計方法
在MATLAB下可以用表3中的函數(shù)根據(jù)上一步所確定的最小階數(shù)n和截止角頻率ωn計算出傳遞函數(shù)的零極點和分子分母多項式系數(shù)[2-5],分別用于獲取以下兩種形式的傳遞函數(shù):
(1)
(2)
表3中的‘ftype’在低通濾波器設計時用‘low’或省略,高通濾波器設計時用‘high’,帶通濾波器設計時省略,帶阻濾波器設計時用‘stop’。b和a分別為傳遞函數(shù)分子和分母系數(shù);z,p和k分別為零點、極點和增益。
設由表3中函數(shù)求出的零極點為-ai±jbi。當bi=0時為實極點,當ai=0時為虛極點。此時零極點-ai±jbi所對應的1階電路(對應實極點)或2階電路的角頻率ωi和品質因數(shù)Qi為
(3)
(4)
表3 零極點及傳遞函數(shù)求取函數(shù)
由上述比較可以看出,MATLAB在進行模擬濾波器設計時與傳統(tǒng)方法相比具有以下優(yōu)點:①不需要查表。在傳統(tǒng)濾波器設計中,在階數(shù)確定時需要對照響應曲線才能確定階數(shù),然而,對于不同的響應類型(巴特沃茲、切比雪夫等)和不同的通帶紋波,就有不同的曲線,使得濾波器必須在使用濾波器設計手冊的情況下才能進行設計。而采用MATLAB設計時可不用查表。②應用范圍更廣。采用MATLAB能設計一些傳統(tǒng)濾波器設計手冊中通常沒有的響應類型(如反切比雪夫、橢圓等)和紋波值的濾波器。③設計更為簡捷。由上述傳統(tǒng)方法和采用MATLAB進行模擬濾波器設計的過程可以看出,MATLAB可以省去陡度系數(shù)求取、歸一化、去歸一化、零極點變換等一些傳統(tǒng)方法必需的步驟,從而使設計更為簡捷。
2濾波器設計時的幾個關鍵點
在零極點或傳遞函數(shù)系數(shù)求出之后,可以用函數(shù)zplane(z,p)和zplane(b,a)查看濾波器的零極圖。在含有零點的濾波器中,為實現(xiàn)動態(tài)范圍的最大化和通帶內損失最小化,零極點分配原則一般為:按極點對離虛軸的距離由近至遠,依次選擇離這對極點最近的零點與之匹配,直至零極點被完全匹配之后結束。這是由于同一節(jié)濾波器中的極點和零點相距越近,隨著頻率變化,濾波器傳遞函數(shù)中分母項和分子項的增益隨頻率變化的規(guī)律越一致,濾波器傳遞函數(shù)的增益隨頻率變化的規(guī)律越平緩。特別說明:當存在一個實極點時,與之相匹配的是處于原點的一個零點和一個無窮遠處的零點;當零點個數(shù)少于極點個數(shù)時,采用添加無窮遠處零點的方法,使零點和極點個數(shù)相等[7]。
在多級1階或2階節(jié)級聯(lián)時,由于輸入信號中會含有高頻噪聲,第一節(jié)選擇有低通或帶通特性的節(jié)會使第一節(jié)之后的信號中含有的高頻噪聲被顯著削弱,減小對后級濾波器的影響,故第一節(jié)一般優(yōu)先選擇有低通或帶通特性的節(jié);由于濾波器自身會產生頻帶較寬的噪聲,當最后一節(jié)選擇具有低通或帶通特性的節(jié)時可以更好地限制濾波器自身產生的噪聲頻帶,故最后一節(jié)一般優(yōu)先選擇具有低通或帶通特性的節(jié);同時,因為品質因數(shù)高的節(jié)比品質因數(shù)低的節(jié)具有更大的增益變化范圍,故對于同一輸入,當品質因數(shù)低的節(jié)在前面時,濾波器更不容易飽和,也不用對有用頻帶內的信號造成過度的衰減。因此,從前至后依次選擇品質因數(shù)由低至高的節(jié)可以獲得較高的動態(tài)范圍[7]。
濾波器的增益的分配需要考慮各節(jié)濾波器的品質因數(shù),一般應將高的增益分配到品質因數(shù)低的節(jié)上,這樣能使濾波器實現(xiàn)更寬的動態(tài)范圍,也可以通過折衷運放的增益和壓擺率來實現(xiàn)降低濾波器中對運放的性能需求。但是由于定量的確定各級增益與品質因數(shù)的關系較為復雜,故工程上,一般把濾波器所需要的增益平均分到各節(jié)。這種增益分配方式得到的結果一般情況下不是最優(yōu)的,但簡單方便,已被廣泛接受。
可以用函數(shù)ω=logspace(x,y,N)和freqs(b,a,ω)得到濾波器的幅頻和相頻特性。函數(shù)ω=logspace(x,y,N)表示一個以10x為起點,10y為終點,中間有N個對數(shù)等間隔點的向量。函數(shù)freqs(b,a,ω)則根據(jù)傳遞函數(shù)分子多項式系數(shù)b和分母多項式系數(shù)a,在角頻率范圍ω內繪制出濾波器的響應曲線[2-5]。當b和a為整體或局部某一節(jié)或幾節(jié)傳遞函數(shù)的多項式系數(shù)時,則可以查看濾波器整體或局部的響應,為濾波器調試提供參考數(shù)據(jù),從而降低濾波器調試難度。
3實驗測試
假設需要設計一個帶通濾波器,中心頻率f0為1000 Hz,通帶紋波Rp=0.5 dB,-3 dB帶寬為50 Hz,在750 Hz和1250 Hz處衰減至少40 dB。則用MATLAB進行設計的步驟如下:
1)求取最小階數(shù)。通過表3中函數(shù)[b,a] =ellip可得最小階數(shù)n=2,另外ωn=[6126,6440] 。
2)求取零極點。通過函數(shù)[z,p,k] =ellip得到兩對零點和兩對極點分別為:z=±j4674.3,±j8440.6;p=-114.2±j6440.8,-108.6±j6123.7;k=0.01。
由上述零極點和增益分配原則,取第一個2階節(jié)的參數(shù)為:z1=±j4674.3,p1=-108.6±j6123.7,k=0.1。第二個2階節(jié)的參數(shù)為:z2=±j8440.6,p2=-114.2±j6440.8,k=0.1。
再根據(jù)零、極點與角頻率、品質因數(shù)的關系,得第一節(jié)和第二節(jié)的參數(shù)分別為:ω1=6125 rad/s,Q1=28.2,ωr1=4674 rad/s;ω2=6442 rad/s,Q2=28.2,ωr2=8441 rad/s。
3)求幅/相頻特性曲線。根據(jù)函數(shù)zp2tf及freqs可得如圖1所示的整體幅頻特性理論曲線。
4)確定電路參數(shù)。選取圖2所示的電路[1]實現(xiàn)濾波器。第一節(jié)時開關S接在1處,第二節(jié)時開關S接在2處。電容C的取值由式(5)[8]確定,有
1≤100/f0C≤10
(5)
式中:C為電容,μF;f0為中心頻率,Hz。因為f0=1 kHz,故可取C=0.1μF。由
R1=R4=Q/ωC
(6)
R2=R3=R1/Q
(7)
(8)
R6=kR7
(9)
聯(lián)立式(6)~(9)式,可得表4中的各個參數(shù)值。表4中電容單位為μF,電阻單位為kΩ。
表4 濾波器參數(shù)表
實測電路幅頻特性如圖1中實測曲線所示。中心頻率為1022 Hz,-3 dB帶寬為987~1082 Hz,在頻率低于750 Hz和高于1025 Hz范圍內幅度衰減大于40 dB。實測曲線與理論曲線基本相符。
4結束語
通過傳統(tǒng)方法與采用MATLAB輔助設計的方法相比較,證明了采用MATLAB進行模擬濾波器更為簡捷。同時,通過實驗結果驗證了MATLAB設計模擬有源濾波器的方法是可行的,實測曲線與理論曲線相似。采用MATLAB進行模擬濾波器有較好的應用前景。
圖1 濾波器整體幅頻特性圖
圖2 濾波器電路圖
參考文獻
[1] Arthur B Willianms,F(xiàn)red J Taylor.電子濾波器設計[M] .寧彥卿,姚金科,譯.北京:科學出版社,2008.
[2] 趙開才.基于MATLAB的窄帶模擬帶通濾波器的快速設計[J] .自動化技術與應用,2014,33(5):66-69,89.
[3] 林俊,黃煒.基于MATLAB的模擬濾波器設計實現(xiàn)[J] .電腦知識與技術,2008,4(1):163-165.
[4] 肖有平,胡霞.高階橢圓濾波器的設計與仿真[J] .電子測量技術,2007,30(3):147-150.
[5] 史燕,楊小雪.基于Matlab和Multisim的綜合性實驗——橢圓濾波器設計與仿真[J] .北華航天工業(yè)學院學報,2008,18(S1):21-22,25.
[6] Walt Jung.運算放大器應用技術手冊[M] .張樂鋒,張鼎,譯.北京:人民郵電出版社,2009.
[7] 柳澤健,金光磐.有源濾波器的設計[M] .北京郵電學院數(shù)字通信專業(yè).北京:人民郵電出版社,1978.
[8] Dauld E.Johnson,John L.Hilburn.有源濾波器的快速實用設計[M] .潘秋明,譯.北京:人民郵電出版社,1980.
MATLAB-aid Design Method of Active Analog Filters
DING Yu1,XUE Kaichang2,SUN Wei1
(1.The 14th Research Institute,CETC,Nanjing 210039,China;
2.National Engineering Research Center for Small and Special Precision Motors,Guiyang 550008,China)
Abstract:The method of MATLAB-aid design of active analog filters is introduced after a briefly review of the traditional design method.By comparing the two methods on the key steps of active analog filter design,it is clearly showed that MATLAB can simplify the process of designing active analog filters.Based on the features of active analog filters,the rules of zero-pole distribution and cascading order are proposed.Simultaneously,the method of getting filter’s amplitude/phase vs.frequency character by MATLAB is introduced and it can offer a reference for debugging the filters.Through a certain example,the method proposed in this paper is proved to be simple,understandable and feasible.
Key words:analog;active;filter;MATLAB
作者簡介:丁宇(1989-),男,博士,研究方向為分析儀器研制;孫偉(1977-),男,博士,研究方向為數(shù)字圖像處理。
收稿日期:2015-07-13
中圖分類號:TB535.2;TN713
文獻標識碼:A
文章編號:1674-5795(2015)05-0031-04
doi:10.11823/j.issn.1674-5795.2015.05.07