滑动平均较传统平均算法的优势
数据处理过程中,不可避免的遇到数据平滑,降低噪声的情况,传统的平均方法,就是“一把捏”,然后求平均,简单而粗暴,对直流信号这样处理当然没有问题,但对交流信号,这样“一把捏”再平均的方法,会使原始的交流信号“失真”,所以必须考虑滑动平均,给定一个宽度的窗口,跟随数据流同步流动平均,这样既有平均降噪效果,又不损失“交流信号”形状!以图说明:
滑动平均的示范代码如下:
u8 idat[32] ={0}; s32 tmp=0; ... // 下面完成数组循环赋值 idat[i]=read_adc(); i++; if(i==32) i=0; ... ///// 下面求平均, 可以包装成一个函数,跟随上面的read_adc同步执行 for(j=0;j<32;j++) { tmp+=idat[j]; } tmp = tmp>>5; //产生平均值