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