基于DSP的自动代码生成及应用
4. 1 ADC 转换及F IR滤波器处理程序设计
用Embedded target for T I C2000 工具包设计ADC 转换及F IR 滤波。在新建的S imulink文件中,放入C2000 Target Preference中的F2812 eZdsp, 并对其中参数进行设置。
实现A /D 转换的功能模块是C28x ADC, A /D转换模块可以选择模块A、B 中的任意六个通道, 这里要注意数据格式的转化。
FIR 滤波器设计有很多种, 利用M atlab 中的FDATooo l( F ilter DesiignAnalysis Too l)来设计是经常使用的一种。FDATooo l是通过指定滤波器的性能指标来快速设计F IR 或者IIR 滤波器, 它是一种图形设计界面, 如图2所示。
指定FIR滤波器为低通滤波器( Low pass) , 指定采样频率为6kH z, 低通频率为1kH z, 截止频率为2kHz, 菜单Analysis用来选择不同的分析显示方式,如幅度响应、相位响应、脉冲响应、阶跃响应、滤波系数等。指定完成设计参数后单击Overw rite generated filter b lock, 完成滤波器的设计。
图2 数字滤波器设置对话框
4. 2 扩展卡尔曼滤波器的设计
扩展卡尔曼滤波器是通过内嵌S 函数完成的。
在RTW 中一般可以直接应用非内嵌C MEX S 函数, 但是在实时情况下对时间要求比较严格, 而非内嵌S函数的S imstruct数据结构需要大量的存储计算资源, 运行时调用S函数需要很大的系统开支, 此时就需利用TLC 技术将S 函数内嵌。TLC 是RTW的一个内部组成部分, 利用它可以自定义从S imulink模型生成的C 代码, 并为S imulink模型图生成优化的内嵌程序代码。通过自定义, 可以将自定义算法和现存的例程结合起来形成一个整体式的程序, 提高代码质量, 减少代码体积。
内嵌S函数的实现是通过生成一个TLC 文件mymode.l t lc完成的。当TLC 在阅读mymode.l rtw时, 如果发现有S函数block, 并且在TLC 文件的搜索路径中有相应的TLC 文件, 则S函数被内嵌。
评论