
3. 濾波器設計方法
3.3 使用MATLAB提取系數
3.3.1 使用filterBuilder進行設計
以下步驟詳細說明了如何使用MATLAB的DSP系統工具箱中的filterBuilder工具,設計與IIRFA模塊(具有以100Hz為中心的通帶)兼容的帶通濾波器的過程。
打開MATLAB。在Command Window(命令窗口)中鍵入命令filterbuilder,然后按Enter。

圖8. 運行filterbuilder命令
將彈出Response Selection(響應選擇)窗口,提示您選擇一個濾波器響應。選擇Bandpass(帶通),然后按OK(確定)。

圖9. 選擇濾波器響應
FilterBuilde的Bandpass Design(帶通設計)窗口將打開并顯示主窗格。在Bandpass Design(帶通設計)窗口中,可以設置濾波器的其余所需規范。
濾波器輸出變量自動命名為Hbp,并將在該示例的其余部分中使用。

圖10. filterBuilder帶通設計的默認值
在Filter specifications(濾波器規范)部分,單擊下箭頭以顯示Impulse response(脈沖響應),并選擇IIR。將Order mode(階模式)設置為Minimum(最小)。

圖11. 選擇濾波器規范
在Frequency specifications(頻率規范)部分,將Frequency units(頻率單位)改為Hz。
輸入信號是100Hz正弦信號,每個周期有256個采樣點。輸入采樣率通過100Hz*256采樣點=25600得出。在Input sample rate(輸入采樣率)框中,輸入25600。
為了恢復輸入信號,濾波器的通帶將以100Hz為中心值。設置以下值:
? Stopband frequency 1(阻帶頻率1)設置為70
? Passband frequency 1(通帶頻率1)設置為90
? Passband frequency 2(通帶頻率2)設置為110
? Stopband frequency 2(阻帶頻率2)設置為130

圖12. 設置頻率規范
將Magnitude specifications(幅值規范)Algorithm(算法)部分保留為默認設置。在此應用中選擇巴特沃斯濾波器是為了在通帶和阻帶中實現最平坦的響應。
在Filter implementation(濾波器實現)框中,將 Structure(結構)改為Direct-form II transposed SOS(直接II型轉置SOS)。

圖13. 設置濾波器實現
下一步,單擊Data Types(數據類型)選項卡以切換到Data Types(數據類型)窗格。將Arithmetic(算術)改為Single precision(單精度)。

圖14. 設置算術數據類型
要在創建濾波器對象前查看濾波器響應,可單擊窗口右上角的View Filter Response(查看濾波器響應)按鈕。如果提示是否在可視化前應用更改,選擇Yes(是)。

圖15. 濾波器頻率幅值響應
顯示的頻率范圍從0Hz到奈奎斯特頻率 (12800Hz),因此很難用此視圖查看100Hz通帶。要放大,可單擊頂部欄中的Zoom(縮放)按鈕
,并圍繞通帶區域繪制一個窗口。

圖3. 10濾波器頻率幅值響應的縮放視圖
檢查完頻率幅值響應后,關閉“濾波器可視化工具”。
接下來,單擊OK(確定)以生成濾波器變量,工作區中將填入名為“Hbp”的df2sos MATLAB對象。

圖16. 工作區存放df2tsos對象
Df2tsos對象中的sosMatrix存放濾波器中各個二階部分的系數。
在Command Window(命令窗口)中鍵入filtord (Hbp.sosMatrix) 并按Enter查看Hbp濾波器的階。

圖17. 運行 filtord() 命令
該濾波器的階數為16,因此需要8個級聯雙二階或IIRFA級來實現。
右鍵單擊工作區中的濾波器對象,選擇Save as(另存為),將對象在包含此示例項目的MATLAB腳本的本地目錄中另存為Hbp.mat。

圖18. 將Hbp另存為.mat文件
3.3.2 導出濾波系數
本節介紹如何使用隨附的MATLAB腳本extract_coefficients.m從df2tsos濾波器對象的sosMatrix中提取系數,以創建一個包含以C代碼格式化為iir_filter_coeffs_t結構的系數的.txt文件。所有Matlab腳本均可從應用項目隨附的r11an0594/iir_filter_accelerator/tools文件夾中找到。
雙擊extract_coefficients.m腳本將其用MATLAB打開。
按Run(運行)。C代碼在位于當前目錄中一個名為IIRFAcoeff.txt的新文件中生成。

圖19. 運行MATLAB腳本
3.3.3 其他濾波器設計工具
GNU Octave是一款免費的DSP數值軟件工具,可代替MATLAB使用。但是,本文檔不提供使用該軟件進行濾波器設計的詳細步驟。想要使用該軟件的用戶應確定類似于前文第3.3.1節中的步驟。
GNU Octave可從以下網址下載:
https://www.gnu.org/software/octave/download
信號包(含IIR濾波器設計):
https://octave.sourceforge.io/signal/
下一章:運行示例項目
-
mcu
+關注
關注
147文章
18924瀏覽量
398004 -
瑞薩
+關注
關注
37文章
22481瀏覽量
90852
發布評論請先 登錄
交流單相濾波器與三相濾波器的核心區別解析
村田通信設備濾波器:選型與應用指南
低成本6通道高清/標清視頻濾波器ADA4420 - 6的全面解析
村田通信設備濾波器選型指南
村田通信設備濾波器選型指南
通信設備濾波器選型指南:Murata多層LC濾波器詳解
Renesas MCK - RA6T2電機控制評估套件:設計與應用全解析
探索RA6T2微控制器:高性能與多功能的完美融合
1905A-6帶通濾波器
信號處理:指數移動平均 (EMA) 濾波器
有源濾波器與無源濾波器的區別
GNSS 低噪聲放大器前端模塊,集成前濾波器和后濾波器 skyworksinc
Sky5? 低電流 GNSS LNA 前端模塊,集成前置濾波器和后置濾波器 skyworksinc
RA6T2 IIR濾波器加速器應用指南 [6] 濾波器設計方法(下)
評論