CFC-60数字滤波算法使用4通道巴特沃斯低通滤波器,是一种在车辆运动测量常见的数字滤波算法,尤其适合在根据高速数据计算动态加速度时使用,在ISO6487、SAEJ211等标准中均使用该算法。以下尝试分析ISO6487:2015中附录A中提供的算法。
一、算法伪代码
ISO6487:2015附录A中伪代码如下:
二、算法解析
初始化一段:
- 输入的采样数据Samples数组都是非对称的,这个算法首先在Samples两端各补一个一样长的数组,组成FilgerTab数组。
- 中间一段就是Samples,前一段的赋值规则是:FilterTable[NumberOfAddPoints - i - 1] = 2 * Samples[0] - Samples[i + 1];后一段的赋值规则是:FilterTab[NumberOfSamples + NumberOfAddPoints + i] = 2 * Samples[NumberOfSamples - 1] - Samples[NumberOfSamples - i - 2]。
之后,计算butterworth滤波算法的系数。这里Wd的计算似乎有点问题,似乎应该是2pi*100*1.25*5/3,但是算法中是2pi*100*1.25。
之后,从前往后对FilterTab进行后向推导。取FilterTab前十个采样数据的平均数为Y的初始值。
之后,从后往前对FilterTab进行前向推导。取FilterTab后十个采样数据的平均数为Y的初始值。
最后,取FilterTab的中段即为滤波后的数据。
三、引用
CFC滤波分析:点击打开链接。
巴特沃斯滤波器:点击打开链接。
ISO-6487:2015标准:点击打开链接。
SAE是Society of Automotive Engineers:美国机动车工程师学会的缩写。