滑动平均较传统平均算法的优势


数据处理过程中,不可避免的遇到数据平滑,降低噪声的情况,传统的平均方法,就是“一把捏”,然后求平均,简单而粗暴,对直流信号这样处理当然没有问题,但对交流信号,这样“一把捏”再平均的方法,会使原始的交流信号“失真”,所以必须考虑滑动平均,给定一个宽度的窗口,跟随数据流同步流动平均,这样既有平均降噪效果,又不损失“交流信号”形状!以图说明:

 

 滑动平均的示范代码如下:

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;   //产生平均值

 

点击数: 27   打印  添加到收藏   发布时间: 2020-09-27




上一篇:Verilog的带符号数的移位
下一篇:恒压恒流和恒功率驱动的理解





» 相关内容
  PID程序中DAC输出范围的限定区..
  MCU中断编写注意事项
  数据校验原理及简化实现
  一片顶两片的LDO
  三步实现ModelSim仿真Quartus..
  数字下变频的理解
  匿名IMU版本4.34的下位机协议..
  轻量级数据库SQLite大小的说明
  BUFF的有效性理解
  PHP页面顶端出现空白问题
  高速数据采集的一些关键点
  软硬件通用加密思路-针对PC端..
  隔离变压器的作用
  GSM下Unicode和中文字符转码
  Teamview远程ID和PWD自动回传..