滑动平均值滤波_m点滑动平均滤波器

滑动平均值滤波_m点滑动平均滤波器   关于数据采集的滑动平均值滤波的算法      —王超杰    以ADC为例,采集口的模拟量可能夹杂着不同频段,不同峰值的干扰信号,这些干扰信号和要采集的模拟量互相干扰,那么ADC采集的数据量就会偏移原有的真实结果。那么通过硬件与数字滤波两种手段可大大减少采集误差,提高精度。    一般滤波均通过程序算法滤除,其包括去极值滤波、算术平均值滤波、滑动平均值滤波、加…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

     关于数据采集的滑动平均值滤波的算法
         —王超杰
        以ADC为例,采集口的模拟量可能夹杂着不同频段,不同峰值的干扰信号,这些干扰信号和要采集的模拟量互相干扰,那么ADC采集的数据量就会偏移原有的真实结果。那么通过硬件与数字滤波两种手段可大大减少采集误差,提高精度。
        一般滤波均通过程序算法滤除,其包括去极值滤波、算术平均值滤波、滑动平均值滤波、加权平均滤波等。
        今天重点讲一下滑动平均值滤波。其重要的是将**本次转化的结果与过去的N-1次的值之和一起求平均值 **,将此值作为本次AD的采集结果。

以下为一种滑动滤波小程序:

#define     N    5;

typedef unsigned int uint;

uint    ValueIAddress[N], *Ap, RealAD_Value;  /**AD采集数字量临时存储区 , 中间存储长度指针变量 , AD值**/

/**AD采集函数**/

void AD_Collect(void)

{       

        Ap = ValueIAddress;/**初始化指向数组的首元素**/

        RealAD_Value = AD_Filter(Value);/**此Value为实采数据**/

}

/**滑动滤波**/

uint AD_Filter(Value);

{

    uint Sum , *P;

    *Ap = Value;/**给当前ValueIAddress[N]数组赋值,因为Ap的首地址就是ValueIAddress的首地址**/

     Ap++;/**地址++ ,准备好向数组的下一个元素赋值**/

    if(Ap >= ValueIAddress+N)/**如果数组超N界,回到首数组首元素**/

        Ap = ValueIAddress;

    for(P = ValueIAddress;P < ValueIAddress+N;P++)

    {

         Sum = Sum + *P;/**数组N个元素求和**/

    }

    Sum = Sum/N;

    return Sum;

}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219268.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java栈的实现_java技术栈

    java栈的实现_java技术栈一.数组实现的栈,能存储任意类型的数据。/***java使用数组来实现栈,能存储任意数据**@authorLinging*@date2019/2/10**/importjava.lang.reflect.Array;publicclassArrayStack&amp;lt;T&amp;gt;{ privatefinalstaticintDEFA…

    2025年8月30日
    4
  • vue 双向绑定原理及依赖搜集的过程「建议收藏」

    vue 双向绑定原理及依赖搜集的过程「建议收藏」双向数据绑定机制:官方:vue是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发响应的监听回调。第一步:需要observer的数据对象进行递归遍历,包括子属性对象的属性,都加上setter和getter,这样的话,给这个对象的某个值赋值,就会触发setter,那么就能监听到了数据变化第二步:compile解析模板令,将模板中的变量替换成数据.然后初始化渲染页面视图,并将每个令对

    2022年10月17日
    2
  • APP安全环节缺失,手游运营商怎样应对APP破解困境

    APP安全环节缺失,手游运营商怎样应对APP破解困境

    2021年11月28日
    46
  • 使用use index优化sql查询「建议收藏」

    使用use index优化sql查询

    2022年2月17日
    35
  • IOS开发之——Position和AnchorPoint(92)「建议收藏」

    IOS开发之——Position和AnchorPoint(92)「建议收藏」一概述CAlayer中position和anchorPoint属性说明position和anchorPoint示意图二position和anchorPoint属性说明CALayer中有2个非常重要的属性:position和anchorPoint@propertyCGPointposition用来设置CALayer在父层中的位置以父层的左上角为原点(0,0)@propertyCGPointanchorPoint称为“定位点”,“锚点”决定着CALayer身上的哪个点

    2022年10月8日
    3
  • ListView 排序问题[通俗易懂]

    ListView 排序问题[通俗易懂] 在DataGrid 中有自带的排序,但是在ListeView中却没有这一项,下面就给出我平时用的ListView的排序使用方法,给志同道合的朋友们参考参考:在ColumnClick事件下添加:其中要注意:intsortColumn=-1;其中sortColumn用来记录上次排序的列的索引privatevoidlistView1_ColumnClick(objectse

    2022年10月3日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号