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

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

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

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

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

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

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

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

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

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

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

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

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

圖19. 運行MATLAB腳本
3.3.3 其他濾波器設(shè)計工具
GNU Octave是一款免費的DSP數(shù)值軟件工具,可代替MATLAB使用。但是,本文檔不提供使用該軟件進(jìn)行濾波器設(shè)計的詳細(xì)步驟。想要使用該軟件的用戶應(yīng)確定類似于前文第3.3.1節(jié)中的步驟。
GNU Octave可從以下網(wǎng)址下載:
https://www.gnu.org/software/octave/download
信號包(含IIR濾波器設(shè)計):
https://octave.sourceforge.io/signal/
下一章:運行示例項目
-
mcu
+關(guān)注
關(guān)注
146文章
17961瀏覽量
366297 -
瑞薩
+關(guān)注
關(guān)注
36文章
22380瀏覽量
88016
原文標(biāo)題:RA6T2 IIR濾波器加速器應(yīng)用指南 [6] 濾波器設(shè)計方法(下)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
有源濾波器與無源濾波器的區(qū)別
帶通濾波器的設(shè)計步驟與優(yōu)化方法
模擬低通濾波器的設(shè)計方法有哪些
模擬濾波器到數(shù)字濾波器的轉(zhuǎn)換步驟
經(jīng)典濾波器的設(shè)計說明

評論