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

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

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

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

圖11. 選擇濾波器規(guī)范
在Frequency specifications(頻率規(guī)范)部分,將Frequency units(頻率單位)改為Hz。
輸入信號(hào)是100Hz正弦信號(hào),每個(gè)周期有256個(gè)采樣點(diǎn)。輸入采樣率通過(guò)100Hz*256采樣點(diǎn)=25600得出。在Input sample rate(輸入采樣率)框中,輸入25600。
為了恢復(fù)輸入信號(hào),濾波器的通帶將以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)用中選擇巴特沃斯濾波器是為了在通帶和阻帶中實(shí)現(xiàn)最平坦的響應(yīng)。
在Filter implementation(濾波器實(shí)現(xiàn))框中,將 Structure(結(jié)構(gòu))改為Direct-form II transposed SOS(直接II型轉(zhuǎn)置SOS)。

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

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

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

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

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

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

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

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

評(píng)論