24小時(shí)聯(lián)系電話(huà):18217114652、13661815404
中文
行業(yè)資訊
數字和模擬濾波器的低成本驗證
數字和模擬濾波器的低成本驗證
在自動(dòng)化硬件在環(huán)測試的低成本解決方案中,我們回顧了使用低成本測試設備來(lái)驗證我們的硬件設計的想法。在本文中,我想重點(diǎn)介紹一個(gè)在驗證方面具有很高進(jìn)入門(mén)檻的特定應用程序:數字信號處理 (DSP),特別是信號過(guò)濾。與其詳述 DSP 主題,不如將其簡(jiǎn)單地定義為“將進(jìn)入電路板的信號數字化,然后對其進(jìn)行處理”。要更深入地了解什么是 DSP 以及它是如何工作的,您可以查閱維基百科或各種教程,例如dspGuru或DSP Guide. 本文的重點(diǎn)是找到一種簡(jiǎn)單但經(jīng)濟高效的方法來(lái)驗證您的數字(或模擬)濾波器。為簡(jiǎn)單起見(jiàn),我使用 Arduino 實(shí)現了我的數字濾波器。代碼存儲庫可以在這里找到。
基線(xiàn)
很常見(jiàn)的是,越接近電子,測試就越原始。這不是針對模擬設計社區的攻擊。對于非基于生產(chǎn)的硬件,期望很少或沒(méi)有測試自動(dòng)化是合理的。如嵌入式系統的測試驅動(dòng)開(kāi)發(fā)中所述在 OnTrack 上,電氣工程師在開(kāi)發(fā)階段自動(dòng)化全套測試以驗證其設計的驅動(dòng)因素并不多。它所需的成本和時(shí)間并不能證明工程師需要轉動(dòng)幾個(gè)旋鈕并稱(chēng)其為良好的幾次是合理的。輸入模擬和數字濾波。設計工程師可以驗證設計完美的基本濾波器一兩次,并移交給設計流程的下一個(gè)階段。當多個(gè)變量進(jìn)入方程式時(shí),例如調諧、范圍驗證和 EMI 測試,自動(dòng)化將大有幫助。大多數高端示波器都帶有某種頻譜分析儀,可以執行快速傅立葉變換 (FFT) 來(lái)確定您的濾波器是否正常工作,但很少有完全自動(dòng)化的。為了那個(gè)原因,
讓我們看一個(gè)簡(jiǎn)單的例子:一個(gè)低通濾波器試圖用特定的噪聲抑制水平濾除 100 Hz 以上的所有頻率。如果我想手動(dòng)測試這個(gè),我將在改變我從函數發(fā)生器中驅動(dòng)的輸入頻率和幅度的同時(shí),將我的輸入與輸出進(jìn)行比較。示例測試設置通常如下所示:
圖 1:測試硬件配置
即使我們堅持使用整數測試每個(gè)頻率也需要很長(cháng)時(shí)間。使用低端泰克示波器,我只測試了 4 個(gè)不同的頻率,但我仍然需要一些時(shí)間來(lái)配置我的示波器、手動(dòng)驅動(dòng)輸入以及捕獲每個(gè)波形的圖像。正如您所看到的,圖像捕獲的分辨率也不是很高。
圖 2:1 Hz 時(shí)的波形捕獲
圖 3:10 Hz 時(shí)的波形捕獲
圖 4:100 Hz 時(shí)的波形捕獲
圖 5:1 kHz 時(shí)的波形捕獲
范圍捕獲并明確表明過(guò)濾器似乎正在工作。您可以看到濾波后的信號(通道 2)在我們接近 100 Hz 時(shí)緩慢衰減,達到我們在達到目標時(shí)“過(guò)濾掉”的要求。示波器附帶的內置 FFT 數學(xué)函數也是如此。這沒(méi)什么好寫(xiě)的,但它確實(shí)為我花費了大約 1,000 美元的示波器完成了工作。
圖 6:使用示波器的數學(xué)函數進(jìn)行 FFT 捕獲
當我們經(jīng)歷這個(gè)過(guò)程時(shí),特別是在第十輪返工之后,我們不得不問(wèn)自己,“我們愿意像這樣手動(dòng)驗證我們的設計多少次?”
驗證交易空間
當涉及到驗證和自動(dòng)化測試時(shí),尤其是對于包括數字信號處理在內的更復雜的設計,我們需要了解在自動(dòng)化方面投入時(shí)間和金錢(qián)的地方。讓我們看一下用于測試濾波器設計的三種不同的可行選項。
圖 7:測試設置的交易空間
正如我們之前看到的,第一個(gè)選項使用示波器和函數發(fā)生器。這些是每個(gè)工程師在學(xué)校學(xué)習如何使用的標準工具。這是手動(dòng)的,乏味的,而且不是很徹底。第二個(gè)選項,捕獲數據并處理它,很好,但前提是您擅長(cháng) MATLAB 或 SciPy。最后一個(gè)選項也不錯,但還需要了解您正在使用的設備(或與該設備相關(guān)的驅動(dòng)程序)。
對于這個(gè)項目,我采取了混合的方法。我首先使用我的Analog Discovery 2 對所有內容進(jìn)行了視覺(jué)驗證,然后轉向使用 Python 的Pytest框架進(jìn)行自動(dòng)驗證。
圖 8:使用 Analog Discovery 2 的示波器 + 頻譜分析儀
一旦我為自己設定了基線(xiàn),我就轉向了自動(dòng)驗證。我的 CI/CD 設置包括兩個(gè)階段:編譯/加載固件和硬件在循環(huán)測試。
在這兩個(gè)腳本之間,總共執行了三個(gè)測試并報告回 Gitlab。這些測試是使用我在計算機(或 Raspberry Pi)上配置的 Gitlab Runner 在硬件目標上運行的。
圖 10:Gitlab 中的測試報告
我的測試目標是確保我的輸入信號在大于 100 Hz 的頻率下被正確衰減,而我的自動(dòng)測試正是這樣做的。
圖 11:信號幅度衰減
我通過(guò)切割波形的邊緣并獲取正弦波的前幾個(gè)最大值和最小值來(lái)實(shí)現幅度檢查器的“窮人版”。請注意,在實(shí)際 DSP 中,需要應用窗口函數,然后對濾波后的信號運行 FFT。對于這個(gè)測試,我只關(guān)心 1V 的輸入幅度對于 100Hz 以上的頻率衰減到 0.2V 或更低。正如您在作業(yè)日志中看到的那樣,該測試正是這樣做的。我們現在可以使用這個(gè)測試套件并在任何地方運行它,而不必每次都手動(dòng)設置我們的設備。