
常規的RC低通濾波器大家都很熟,也就是那個“一刀切”的時間常數。但有時候,現場應用場景就是喜歡搞事情,提的需求讓人直撓頭:能不能搞個“看人下菜碟”的濾波器?信號往上漲的時候,你慢點走,我要穩;信號往下掉的時候,你快點跑,我要快。這種“上升慢、下降快”的非對稱需求,其實在很多地方都是剛需。
最典型的例子就是咱們去熟食柜臺買肉。切兩片醬牛肉往秤上一扔,這時候你希望顯示屏上的數字穩穩當當,別因為手抖或者肉的震動亂跳,所以得濾波,時間常數得大一點。但是,等稱完結賬,肉一拿走,你肯定希望讀數“唰”地一下歸零,好讓下一位顧客接著稱。要是這時候數字還慢吞吞地往下掉,那排隊的人得多著急?這就是咱們今天要解決的核心痛點:如何用最簡單的硬件,實現這種“智能”的非對稱濾波特性。
咱們也不整那些復雜的MCU算法,今天要聊的是一個純硬件的“野路子”。最開始為了實現這個功能,我琢磨了一個帶有運算放大器的方案。核心思路就是利用微分電路來檢測信號的變化趨勢。輸入信號進來,先經過R3和C1組成的低通網絡。關鍵在于后面,我用R1和C2做了一個微分環節,把這個微分信號送給晶體管開關Q1(型號選的是經典的2N2907A)。


當信號處于上升沿時,三極管乖乖關著,電容C1慢慢充電,時間常數很大,濾波效果杠杠的;一旦信號開始下降,微分電路立馬感應到,驅動Q1導通,這就相當于給電容C1接了個捷徑,通過電阻R4迅速放電。這樣一來,下降沿的時間常數就被強行“壓縮”了。為了防止干擾,當時還加了一顆LM324N做隔離,確保穩態時Q1徹底關斷。

紅色軌跡為輸入信號,藍色軌跡為C1處的輸出

紅色軌跡為輸出,藍色軌跡顯示了微分動作
但是,作為有追求的攻城獅,哪怕只用一顆運放,也是要省成本的。能不能把運放也干掉?答案是可以的,依據就是肖克利二極管方程。 咱們都知道硅材料的三極管有個導通閾值,假設正向偏壓電流相當低只為最大負載電流的1%,那導通電壓大概0.6V左右。
在穩態下,只要我們把偏置電壓卡在這個閾值以下,三極管就不導通。在這個“極簡版”設計中,我把R1縮減到了500Ω。這么一來,穩態時三極管發射極和基極之間的電壓差只有0.238V,遠低于0.6V的導通門檻,相當于開關斷開。但當信號劇烈變化時,這個微妙的偏置狀態就能被打破,利用三極管本身的非線性特性,實現對微分信號的響應。

實測下來,效果竟然出奇的好,上升沿平滑穩定,下降沿干脆利落。


當然,這種方法也不是萬能藥。如果你的輸入信號只有幾毫伏的微小變化,那這點電壓波動根本推不動這個“被動響應”的開關機制,這招就不靈了。好在咱們日常遇到的信號幅度都足夠大,這點限制基本可以忽略。設計電路就是這樣,參數是死的,應用是活的,大家完全可以根據自己項目的具體頻率需求,去縮放調整RC的數值。
【今日討論】
各位老鐵,除了生鮮秤,你們還在哪些“奇葩”場景下用過這種不對稱濾波的神操作?或者被哪種濾波需求折磨得想砸鍵盤?評論區里來聊聊。
