基于DSP的自動(dòng)代碼生成及應(yīng)用
4. 1 ADC 轉(zhuǎn)換及F IR濾波器處理程序設(shè)計(jì)
用Embedded target for T I C2000 工具包設(shè)計(jì)ADC 轉(zhuǎn)換及F IR 濾波。在新建的S imulink文件中,放入C2000 Target Preference中的F2812 eZdsp, 并對(duì)其中參數(shù)進(jìn)行設(shè)置。
實(shí)現(xiàn)A /D 轉(zhuǎn)換的功能模塊是C28x ADC, A /D轉(zhuǎn)換模塊可以選擇模塊A、B 中的任意六個(gè)通道, 這里要注意數(shù)據(jù)格式的轉(zhuǎn)化。
FIR 濾波器設(shè)計(jì)有很多種, 利用M atlab 中的FDATooo l( F ilter DesiignAnalysis Too l)來設(shè)計(jì)是經(jīng)常使用的一種。FDATooo l是通過指定濾波器的性能指標(biāo)來快速設(shè)計(jì)F IR 或者IIR 濾波器, 它是一種圖形設(shè)計(jì)界面, 如圖2所示。
指定FIR濾波器為低通濾波器( Low pass) , 指定采樣頻率為6kH z, 低通頻率為1kH z, 截止頻率為2kHz, 菜單Analysis用來選擇不同的分析顯示方式,如幅度響應(yīng)、相位響應(yīng)、脈沖響應(yīng)、階躍響應(yīng)、濾波系數(shù)等。指定完成設(shè)計(jì)參數(shù)后單擊Overw rite generated filter b lock, 完成濾波器的設(shè)計(jì)。
圖2 數(shù)字濾波器設(shè)置對(duì)話框
4. 2 擴(kuò)展卡爾曼濾波器的設(shè)計(jì)
擴(kuò)展卡爾曼濾波器是通過內(nèi)嵌S 函數(shù)完成的。
在RTW 中一般可以直接應(yīng)用非內(nèi)嵌C MEX S 函數(shù), 但是在實(shí)時(shí)情況下對(duì)時(shí)間要求比較嚴(yán)格, 而非內(nèi)嵌S函數(shù)的S imstruct數(shù)據(jù)結(jié)構(gòu)需要大量的存儲(chǔ)計(jì)算資源, 運(yùn)行時(shí)調(diào)用S函數(shù)需要很大的系統(tǒng)開支, 此時(shí)就需利用TLC 技術(shù)將S 函數(shù)內(nèi)嵌。TLC 是RTW的一個(gè)內(nèi)部組成部分, 利用它可以自定義從S imulink模型生成的C 代碼, 并為S imulink模型圖生成優(yōu)化的內(nèi)嵌程序代碼。通過自定義, 可以將自定義算法和現(xiàn)存的例程結(jié)合起來形成一個(gè)整體式的程序, 提高代碼質(zhì)量, 減少代碼體積。
內(nèi)嵌S函數(shù)的實(shí)現(xiàn)是通過生成一個(gè)TLC 文件mymode.l t lc完成的。當(dāng)TLC 在閱讀mymode.l rtw時(shí), 如果發(fā)現(xiàn)有S函數(shù)block, 并且在TLC 文件的搜索路徑中有相應(yīng)的TLC 文件, 則S函數(shù)被內(nèi)嵌。
評(píng)論