一.前言
????良好的傳感器數據是實現精確的導航解算與閉環控制的重要基礎,然而,無論采用何種傳感器,都會存在不同特性的噪聲,同時,會隨著應用環境的變化而變化。因此,我們需要通過設計濾波器、針對傳感器特性設計校準算法等方式對傳感器原始測量數據進行“優化”。本篇將針對數字濾波器的設計方法進行闡述,著重針對MATLAB FDA工具箱的使用方法進行說明。
二.MATLAB FDA工具箱的使用教程
首先,在MATLAB命令行窗口輸入“fdatool”指令,隨后即可打開MATLAB自帶的功能強大的濾波器設計工具——“FDATool”。如圖1所示,
????打開后,會顯示如圖2所示的界面。
濾波器類型設置區域選擇使用何種濾波器,常用的如FIR、IIR,濾波器的響應類型又分為低通、高通、帶通、帶阻、陷波等等。
濾波器階次設置區域可以用于設置濾波器的階次,或使用自動計算階次的方式。
濾波器頻率參數設置區域則可以用于設置濾波器的采樣頻率,截止頻率,帶通、帶阻頻率等等。
濾波器幅值參數設置區域則用于設置濾波器增益等。
當前濾波器信息區域顯示了當前設計的濾波器的階次以及穩定性,這里能夠保存設計完成的濾波器。
濾波器相關特性曲線區域可顯示濾波器的幅頻特性、相頻特性以及群時延等參數曲線,具體切換方式如圖3所示。
????點擊“Analysis”按鈕,彈出下拉選項框,其中包括濾波器的幅頻響應、相頻響應、群時延、脈沖響應、階躍響應、零極點圖等等,可謂是一應俱全。通過選擇不同的選項,我們能夠在濾波器相關特性曲線曲線顯示我們需要的特性曲線,以此作為我們設計濾波器時的參考依據。
????在設計完濾波器相關參數后,如圖4所示,點擊“File”—“Export”按鈕,彈出如圖5所示選項框,這里選擇“MAT-File”、“Coefficient”。MATLAB會生成對應的MAT文件,如示例中,采用的IIR濾波器,最終生成的MAT文件中會包含“SOS”與“G”兩個系數矩陣,然后,我們可以調用MATLAB自帶的濾波函數進行IIR濾波器實現,或使用自定義的IIR濾波器進行實現,均可。
????如圖6所示,在MATLAB中調用通過FDA設計的濾波器,這里不再對FFT的使用方式進行贅述,通過調用“sos2tf”函數,將設計的IIR濾波器的系數進行變換,再次調用“filter”函數對待濾波數據進行濾波即可,濾波結束后,針對原始數據與濾波后數據進行時域與頻域對比,如圖7所示。
如圖7所示為濾波前后的時域與頻域數據圖,紅色為原始數據,綠色為濾波后數據。
三.總結
????本篇介紹了MATLAB自帶的FDA工具,該工具能夠根據工程數據,快速設計出滿足不同需求的濾波器,以供工程師使用。這里沒有過多闡述濾波器相關的細節,下篇將著重結合多旋翼無人機的實際應用場景,針對不同的濾波器設計方法以及優劣點進行闡述。