所有系統(tǒng),包括濾波器,都是因果關(guān)系。這意味著它們不能在激勵(lì)源激勵(lì)之前對(duì)激勵(lì)(不可預(yù)知)做出任何反應(yīng)。那么,又該如何設(shè)計(jì)一款可“預(yù)測”的濾波器呢?好吧,這一切都取決于你對(duì)品質(zhì)的期待有多高以及這一預(yù)測的相關(guān)性。
那么,我們?cè)俅渭榔鹪浅A餍械摹拔寮銘?yīng)該知道的事”這一招式之旗,我們提出五個(gè)核心問題,其答案可以幫助我們繞過這個(gè)“濾波器”陷阱。
濾波器如何延緩信號(hào)?
信息可以通過多種方式加載于信號(hào),它總是需要一段限定的時(shí)間來通過處理系統(tǒng)。你可能很熟悉數(shù)字模塊的傳輸延遲概念。延遲,就是在輸入發(fā)生某些狀態(tài)變化到輸出發(fā)生相應(yīng)狀態(tài)變化這段時(shí)間差。有數(shù)字概念的讀者首先想到的可能是一個(gè)‘1’和‘0’的碼流,以作為不同電壓或電流水平的物理表述。對(duì)于這樣的信號(hào),傳輸延遲沒有害處;但當(dāng)我們考慮到模擬信號(hào)(實(shí)際上,沒有確定的特性對(duì)應(yīng)特定的時(shí)間點(diǎn))時(shí),就不是那么簡單了。
我們經(jīng)常對(duì)信號(hào)和數(shù)據(jù)序列進(jìn)行低通濾波以消除“噪聲”--高頻率變異,我們已確定其沒有任何意義,且它還是我們要觀察的更重要的基本頻點(diǎn)的障礙。雖然濾波過程對(duì)我們的觀察影響巨大,但它絕對(duì)是一個(gè)影響觀察的案例。當(dāng)我們查看響應(yīng)圖形時(shí),傳統(tǒng)濾波方式最明顯的后果是,在輸入信號(hào)的變化和濾波后輸出的相應(yīng)變化之間有明確的時(shí)間延遲。當(dāng)我們看一些例子時(shí),我們將在某一時(shí)刻借助測試信號(hào)清楚地看到這點(diǎn)。
我們?nèi)绾瘟炕@種形式的延遲?
濾波器(或任何其它線性信號(hào)處理模塊)輸入信號(hào)和相應(yīng)輸出之間的這種“滯后”,
與組延遲緊密相關(guān),組延遲相當(dāng)于(或略低于)相位響應(yīng)與派生頻率。為此應(yīng)選用明智的單位;如果你用弧度測量相位,以其每秒弧度的角形式表達(dá)頻率,那么,(弧度)除以(弧度每秒),你就可得到以秒表示的答案?;蛘吣憧梢允褂谩爸芷凇薄?一個(gè)周期,是一個(gè)完整旋環(huán),或360度。相位差以周期表示,除以赫茲(與每秒的周期數(shù)相同)表示的常規(guī)頻率差,也會(huì)給出以秒表述的答案。
我們可能忍不住要問:如果要避免這種滯后,為什么不設(shè)計(jì)一款沒有任何組延遲的濾波器?如果你以前讀過我的專欄,你可能會(huì)認(rèn)識(shí)到這句話中的“危險(xiǎn)成分”。因?yàn)?,你猜?duì)了——它并非這么容易。如果你查找或計(jì)算“標(biāo)準(zhǔn)”的低通濾波器響應(yīng),你會(huì)發(fā)現(xiàn),他們的組延時(shí)是總是正向的,一直降到零頻率。這里,我們需要來點(diǎn)別出心裁。
我們可以消除(或者不僅僅是消除)這種延遲嗎?
如果你想讓延遲在任一頻率都為零,那嚴(yán)格的答案是‘不能‘。但確實(shí)有種技術(shù)可用以開發(fā)補(bǔ)償濾波器,當(dāng)其與原來的濾波器級(jí)聯(lián)時(shí),可以給你零延遲;當(dāng)DC時(shí),甚至是負(fù)的組延遲。正如我們將看到的,這可能非常有用。你不需要進(jìn)行任何試錯(cuò)——現(xiàn)在,可將麻煩扼殺在未發(fā)。
比方說,某種低通傳遞函數(shù)H,它們?cè)贒C時(shí)有整體增益??梢匀菀椎卣撟C:新傳遞函數(shù)H’ = 2-H,在DC時(shí)也是整體增益,且在DC時(shí)的組延遲具有與H相同的
幅值,但卻是負(fù)值。如果你級(jí)聯(lián)H和H‘(即串聯(lián)它們),你會(huì)得到一個(gè)整體傳遞函數(shù),我們稱其為H1,它具有DC整體增益和DC零組延時(shí)。對(duì)于S或Z域的任何線性傳遞函數(shù)來說,H1就等于HH’,即H1 = H(2-H)。無論哪類濾波器,只要H是可實(shí)現(xiàn)的,這也就可以實(shí)現(xiàn)。
這看起來似乎很怪誕。因?yàn)楹瘮?shù)H‘與H的階相同(無論使用模擬或數(shù)字濾波器),你可以看到,將其組合起來會(huì)使濾波器的尺寸加倍,因此實(shí)現(xiàn)其所需的資源也要加倍。也許不太容易想象的是,它可能會(huì)大大降低濾波器的衰減性能。如果H是一個(gè)具有DC整體增益的低通函數(shù),而在所有其它頻率也具有整體增益(或小于整體增益),那么函數(shù)2-H就有一個(gè)會(huì)在1和3之間振蕩的值,也就是說,它可以在響應(yīng)中引入一個(gè)高達(dá)9.5dB的“凸點(diǎn)”。如果該凸點(diǎn)落于整體濾波器的阻帶內(nèi),那么所發(fā)生的一切就只是衰減功能的惡化。如果凸點(diǎn)落在通帶內(nèi),那么該級(jí)聯(lián)的整個(gè)通帶內(nèi)的響應(yīng)會(huì)與單個(gè)H時(shí)的大相徑庭。
這里有個(gè)簡單例子。對(duì)以100kps采樣率數(shù)字方式實(shí)現(xiàn)的H,在10kHz時(shí),以n=2的巴特沃斯濾波器開始。為了設(shè)計(jì)濾波器并獲得圖表,我使用了新版(2012年2月發(fā)布)的PSoC Creator濾波器工具,它為H給出了以下系數(shù),幅度和組延時(shí)曲線在圖1表示。
雙二階濾波器的最終系數(shù):
系數(shù)序列為A0,A1,A2,B1和B2
0.0674552917480469
0.134910583496094
0.0674552917480469
-1.14298057556152
0.412801742553711
圖1:0.01 Fs時(shí),N=2的巴特沃斯濾波器的幅度和組延時(shí)。
補(bǔ)償濾波器H’與H同分母,而分子等于兩個(gè)負(fù)數(shù)(H的分子)。我用快速電子表格進(jìn)行了計(jì)算,并將結(jié)果反饋給PSoC Creator濾波器工具。工具為這兩個(gè)雙二階部分給出了最好的排序和增益;它獲得了4dB增益,以確保凸點(diǎn)響應(yīng)不高于0dB,見圖2:
雙二階濾波器的最終系數(shù):
系數(shù)序列為:A0,A1,A2,B1和B2
0.216065168380737
-0.2706618309021
0.0847635269165039
-1.14298057556152
0.412801742553711
0.372884273529053
0.745768547058105
0.372884273529053
-1.14298057556152
0.412801742553711
圖2:帶補(bǔ)償濾波器的N=2巴特沃斯級(jí)聯(lián);零DC組延遲
在通帶內(nèi),頻率響應(yīng)明顯是非平坦(內(nèi)有凹凸)的,而且已經(jīng)放棄了一些相對(duì)阻帶抑制。如果你熟悉控制系統(tǒng)理論,你馬上會(huì)看到,我們得到的是增加的傳遞函數(shù)零,其組延時(shí)的貢獻(xiàn)準(zhǔn)確取消了原始的濾波器極點(diǎn)(以及新極點(diǎn)也會(huì)出現(xiàn))。但它并非太過糟糕的一個(gè)響應(yīng)——它仍能去掉數(shù)據(jù)序列的高頻率噪聲——如圖3所示,某些神秘?cái)?shù)據(jù)(哇?。?/p>
圖3:某些數(shù)據(jù)(藍(lán)色),巴特沃斯響應(yīng)(粉紅色)和補(bǔ)償(綠色)
我們不必使用相同的函數(shù)H來構(gòu)造補(bǔ)償濾波器。如果兩個(gè)傳遞函數(shù)HA和HB都具有整體單位DC增益和相同的DC組延遲值,則H1 =HA(2-HB)也有整體DC增益和零DC組延遲。
特別是,如果HB是T值的純時(shí)間延遲(相等于HA的DC組延遲),我們可以得到FIR實(shí)現(xiàn)的漂亮簡化。就T恰好等于N個(gè)采樣周期的傳遞函數(shù)來說,我們得到H1 = HA(2-Z^- N),幾乎所有的數(shù)字濾波器結(jié)構(gòu)都能很容易地實(shí)現(xiàn)它,因?yàn)閆圖的
這些負(fù)值直接作用于單位采樣延遲。而2N+1階的對(duì)稱FIR濾波器總能滿足該條件;如果多做點(diǎn)工作,它就可以適應(yīng)不對(duì)稱的情況,其中N不是整數(shù)。
因此,無論我們選擇工作在S域或Z域,我們都可以構(gòu)建零DC組延時(shí)的低通傳遞函數(shù)。但我們沒必要在零組延時(shí)停止;雖然我們可以很容易地使其為負(fù),我們也在此進(jìn)入預(yù)測域。在采樣系統(tǒng)中,有一個(gè)其輸出是輸入信號(hào)在下一個(gè)采樣時(shí)刻可以預(yù)測的濾波器,會(huì)很方便。換句話說,一個(gè)濾波器的DC組延遲是負(fù)一個(gè)采樣周期。在上面提到的FIR的情況,它簡單得幾乎難以置信。我們只須使用2-z^-(N+1),而不是2-z^-N的補(bǔ)償函數(shù)。
現(xiàn)在,如果在有能量進(jìn)入濾波器之前,它就實(shí)際輸出了一些能量,那就破壞了因果律。所以包含信息的任何信號(hào)不可能以負(fù)延遲的形式出現(xiàn)在輸出。但有些信號(hào)不包含任何信息——如果一些觀察家對(duì)其有心理上的期盼,則無論他們?cè)趺聪?/p>
——所以當(dāng)組延遲為負(fù)時(shí),就沒有因果關(guān)系可去違反。
這種濾波器的表現(xiàn)如何?
這些功能有個(gè)有用的屬性。顯然,對(duì)常數(shù)(即DC)輸入,輸出電壓等于輸入,與普通低通濾波器的一樣。但現(xiàn)在當(dāng)輸入以恒定速率變化時(shí),輸出也可以等于輸入。與“標(biāo)準(zhǔn)”低通傳輸函數(shù)不同,在階梯變化激勵(lì)下,濾波器的輸出和輸入信號(hào)間沒有“滯后”。我們?cè)O(shè)計(jì)另外一個(gè)例子,并更加仔細(xì)地檢驗(yàn)其屬性。
這次,我們以FIR為例。我們HA的起始濾波器是一個(gè)對(duì)稱的9階FIR濾波器,(因此有4個(gè)采樣周期的恒定組延遲)。這是為陷波60Hz左右有不小變化的AC線頻而設(shè)計(jì)的。我會(huì)解釋理由,且在以后的Filter Wizard中,明確如何設(shè)計(jì)這樣一款“撥空號(hào)(dial-a-null)”濾波器,但眼下,我們只是看一看。對(duì)于我們的HB,為得到零延遲濾波器,我們使用了4個(gè)采樣周期的簡單延遲。這使2-HB看起來像一個(gè)系數(shù)為(2,0,0,0,-1)的5階FIR濾波器。級(jí)聯(lián)的HAHB做成一款單一FIR濾波器,將兩個(gè)Z平面序列卷積在一起,獲得一個(gè)13階的濾波器。HA和HAHB的幅度和組延時(shí)如圖4所示,這次是用LTspice仿真的。圖中,有相當(dāng)奇怪的頻率和時(shí)間,是因?yàn)檫@個(gè)濾波器是按工作在220個(gè)采樣/每秒設(shè)計(jì)的。再次,我們得到一個(gè)凹凸不平的通帶并失去了一些阻帶響應(yīng)。
現(xiàn)在,我們可以進(jìn)入預(yù)測領(lǐng)域。如果我們把HB‘的延遲設(shè)為5個(gè)采樣周期而不是4個(gè),然后重新計(jì)算該級(jí)聯(lián)(現(xiàn)在是14個(gè)階遞),我們得到的HAHB如圖4(綠色線段)所示。與期望的一樣,現(xiàn)在,你可以看到DC組延遲是負(fù)4.5ms左右。
圖4:FIR例子,正延遲和負(fù)一個(gè)采樣周期的情況
那么這里回報(bào)是什么?好,我們看看時(shí)間域的行為。三個(gè)濾波器的激勵(lì)源都是上升又下降的三角形信號(hào)。激勵(lì)和響應(yīng)如圖5所示。
圖5:無補(bǔ)償和有補(bǔ)償FIR濾波器對(duì)三角波激勵(lì)的響應(yīng)
由最初的低通濾波器HA引起的“滯后”顯而易見。如果你試圖檢測信號(hào)通過某些極限點(diǎn)的哪個(gè)點(diǎn),你會(huì)清楚地體驗(yàn)到在檢測響應(yīng)時(shí)的延遲。HAHB線段顯示我們零DC組延遲濾波器的輸出——它具有零延遲!這突顯了對(duì)于一般低通濾波器來說極為重要的一個(gè)事實(shí):這種濾波器的輸出和輸入之間的斜坡滯后在數(shù)值上等于DC組延遲值。因此,如果我們補(bǔ)償濾波器的設(shè)計(jì),使DC組延遲為零,我們就得以消除滯后。當(dāng)然,代價(jià)總是有的,我們可以看到,在輸入波形斜坡發(fā)生突變后,這種濾波器有些疲于應(yīng)付。
如果你放大HAHB曲線,你會(huì)看到,每個(gè)新采樣都正好在輸入斜坡曲線上。預(yù)測版本HAHB的輸出值移動(dòng)到斜坡將在下一個(gè)采樣周期開始時(shí)該有的那個(gè)值,我猜,會(huì)與我們預(yù)測的一樣。
這種濾波器可在哪里派上用場?
有許多工業(yè)監(jiān)測應(yīng)用,其“正?!毙袨橐馕吨盘?hào)穩(wěn)定(但嘈雜,信號(hào)可以是溫度、壓力、物理結(jié)構(gòu)內(nèi)的應(yīng)力等)。 所謂“異常”行為,是指一些被測的系統(tǒng)參數(shù)變得不可控,并不按規(guī)矩“出牌”。
在反饋路徑需要濾波的控制系統(tǒng),這種零延遲類型的濾波器很有用。消除很低頻率下的組延時(shí),可以顯著增加抑制這些頻率上某些感知行為的控制回路的功效。工程師習(xí)慣于操控系統(tǒng)傳遞函數(shù)的零以強(qiáng)迫實(shí)施所需的回路行為,這正是我們?cè)诖艘愿叻治龅囊馓N(yùn)所做的。我們的傳遞函數(shù)算法生成取消極點(diǎn)DC組延遲特性的零。我已經(jīng)說過,不是嗎!
這種零或負(fù)延遲濾波器通常還用來處理非電子信號(hào)。例如,如果一種金融工具(如股票)的價(jià)格被認(rèn)為呈斜坡線性變化,但該斜坡被短期交易噪聲破壞,零延遲濾波器就可用于有效地提取基本行為。雖然,如圖5所示,當(dāng)三角形改變方向時(shí),你可以從濾波器的行為進(jìn)行推斷,但一段時(shí)間內(nèi),這種濾波器會(huì)給出極不準(zhǔn)確的結(jié)果,直到價(jià)格行為再次按平穩(wěn)的斜坡變化。圖3的神秘?cái)?shù)據(jù),事實(shí)上是個(gè)股票價(jià)值序列。
這些金融工具的交易員實(shí)際上對(duì)其價(jià)格數(shù)據(jù)序列使用了一些相當(dāng)復(fù)雜的濾波流程。我常常被告知,若電子市場股價(jià)暴跌,在金融部門,濾波器向?qū)Э隙〞?huì)有份工作,用來從巨大的價(jià)格數(shù)據(jù)集中梳理出有趣信號(hào)。但讓我們繞過暗礁險(xiǎn)灘,戴上安全的堅(jiān)固工程的護(hù)身符,并重回正軌!
諸如此類的延遲操控可以大有作為的一個(gè)工程應(yīng)用是補(bǔ)償數(shù)字D類放大器的電源電壓變化。對(duì)于給定的分度:間隙因數(shù)由輸出開關(guān)輸出,其放大器的平均輸出電壓與電源電壓成正比——即,它沒有電源抑制。當(dāng)人們似乎不想在消費(fèi)類音頻設(shè)備的電源上下大本錢的時(shí)候,這并非好事。
我們可以測量瞬時(shí)的電源電壓,并將其回饋到開關(guān)控制算法中。但由于濾波器延遲與測量此類放大器的電源電壓相關(guān),并將數(shù)據(jù)回饋至控制系統(tǒng),所以,你最終糾錯(cuò)的并非此時(shí)此地的電源電壓,而是前一段時(shí)間的電源電壓。這種差異限制了我們可以用這種回路實(shí)現(xiàn)電源抑制。如果我們采用有適當(dāng)?shù)腄C負(fù)組延時(shí)的低通濾波器濾除所測量的電源電壓(并不過分強(qiáng)調(diào)出現(xiàn)的高頻噪聲),我們就可以彌補(bǔ)這種效果(至少在相對(duì)的極低頻如此,如AC線頻的諧波頻率)。這種技術(shù)可以對(duì)數(shù)字功率放大器AC線的紋波抑制產(chǎn)生重大影響,在一些商業(yè)數(shù)字放大器設(shè)計(jì)中就采用了該方法。
評(píng)論