在数字电源中,用到均值滤波。传统的滤均值滤波方法是,
设对16个采样时间的值进行均值滤波,则将16个值相加,然后除16(右移四位)。
对于使用F28035,它的并行乘法、加很棒,且有倒数指令。对于均值滤仍采用传统的方法,显得笨拙且耗时,
本人设想使用这种方法:如对16个采样值滤波
滤波输出 = 上次滤波输出 * 15 / 16 + 本次采样值 /16
当然,这样的结果会有小量的误差。
[ 本帖最后由 dontium 于 2012-4-15 02:04 编辑 ]
引用: 原帖由 fffofo 于 2012-4-15 09:10 发表 节约代码还是节约时间?
如果使用累加再移位,代码长、时间长,但不必每次循环都计算。
采用这个办法,需要每次都计算,需要两个乘一个加指令,共三条,三个周期,如果使用并行计算,需要两个周期。
引用: 原帖由 mcu5i51 于 2012-4-15 09:40 发表 Out = OldOut * 0.9 + In * 0.1
嗯,可以根据所需滤波的时间常数,确实分母的值。