Matlab/Simulink 自动代码生成 基于模型设计学习教程(10)---- IIR滤波器仿真设计及代码实现
双击左边的Speed.mat,然后就可以看到工作区出现一个变量
新建一个仿真模型,模块的配置如下:
运行一下,模型我们就可以看到之前我们保存的数据了
下面我们来设计一个一阶IIR滤波器:
Output(t) = a . Output(t-1) + b . Input(t)
Ouput(t-1) = 0 at t=0
具体模型如下:最关键的参数就是a和b,调整这两个参数得到我们想要的滤波效果
为了是他能够适应不同的数据类型,我们来给他做个简单的乘法:先成1000,经过滤波后再除以1000,也就保留三个小数点;
最后模型如下:
我们来运行一下模型:
我们来看一下,数据的波形已经非常明显的降低了
我们再来单独放大分析经过滤波后的数据:数据经过0.5秒后达到一个平稳值,最后数据的跳动量4左右,可以说滤波的效果是非常好的了
在代码实现上面,我们在上个编码器测速实验的基础上进行:
具体结果我们留在后面跟自适应滤波器一起分析