0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CW32数字电压电流表软件进阶教程-2.电压电流值做均值滤波

CW32生态社区 来源:CW32生态社区 作者:CW32生态社区 2024-05-31 15:57 次阅读

在实验运行7.1章节例程时 [CW32数字电压电流表软件进阶教程-1.电压电流同时显示] ,会发现实时显示更新的数据是当前采集值,并未做数据滤波处理。由于采集到的原始数据有一定的波动,因此在显示更新速度较快时,数字有跳动现象。

因此,在数据处理前,可以增加常见的均值滤波算法。均值滤波原理在实验七中已有讲述。

在7.1实验例程基础上,增加均值滤波的核心代码如下:

void Volt_Cal(void)
{   
  V_Buffer = Mean_Value_Filter(Volt_Buffer,ADC_SAMPLE_SIZE);; //使用均值滤波
  I_Buffer = Mean_Value_Filter(Curr_Buffer,ADC_SAMPLE_SIZE);; //使用均值滤波

  V_Buffer = (V_Buffer * ADC_REF_VALUE > > 12) * (R2 + R1)/R1;
  // 四舍五入
    if(V_Buffer % 10 >= 5)
    {
        V_Buffer = V_Buffer / 10 + 1;
    }
    else
    {
        V_Buffer = V_Buffer / 10;
    }

    I_Buffer=I_Buffer * ADC_REF_VALUE > > 12;
     /**
        mv =I_Buffer * ADC_REF_VALUE > > 12,
        R = 100mr,
        10ma = mv/R/10=mv/0.1/10 = mv
     */  
}

在上述例程中,可以看到使用了均值滤波函数:

Mean_Value_Filter(Volt_Buffer,ADC_SAMPLE_SIZE);; //使用均值滤波

Mean_Value_Filter(Curr_Buffer,ADC_SAMPLE_SIZE);; //使用均值滤波

其中,原始数据为每1MS采集一个数据点,共采集100次,即100MS内的定时数据值。单点数据采集在定时器BTIM1中断函数中完成。

均值滤波函数定义如下:

uint32_t Mean_Value_Filter(uint16_t *value, uint32_t size)     //均值滤波
{
    uint32_t sum = 0;
    uint16_t max = 0;
    uint16_t min = 0xffff;
    int      i;

    for(i = 0; i < size; i++)
    {
        sum += value[i];
        if(value[i] > max)
        {
            max = value[i];
        }
        if(value[i] < min)
        {
            min = value[i];
        }
    }
    sum -= max + min;
    sum  = sum / (size - 2);
    //if(sum >1)sum+=4; 后期校准
    return sum;
}

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据采集
    +关注

    关注

    38

    文章

    5774

    浏览量

    113371
  • 定时器
    +关注

    关注

    23

    文章

    3228

    浏览量

    114253
  • 均值滤波
    +关注

    关注

    0

    文章

    10

    浏览量

    7093
  • CW32
    +关注

    关注

    1

    文章

    174

    浏览量

    540
收藏 人收藏

    评论

    相关推荐

    模电怎么判断电压电流反馈器的好坏

    在模拟电子学中,电压电流反馈器(Voltage Current Feedback Amplifier, VCFA)是一种重要的电子元件,广泛应用于信号放大、滤波、稳压等领域。判断电压电流反馈器的好坏
    的头像 发表于 08-22 11:12 310次阅读

    电流表电压表无示数的原因

    引言 电流表电压表是电气工程中不可或缺的测量工具。它们能够测量电路中的电流电压,为电路设计、调试和维护提供重要数据。然而,在实际使用过程中,有时会出现
    的头像 发表于 07-13 10:50 3467次阅读

    基于CW32F003E4P7的数字电压电流表产品方案

    产品实物: 一、产品概述 数字电压电流表,又称为数显电流电压表,是以数字形式显示,能够同时检测电流电压
    的头像 发表于 06-25 11:55 805次阅读
    基于<b class='flag-5'>CW</b>32F003E4P7的<b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b>产品方案

    CW32数字电压电流表软件进阶教程-3.电压电流标定

    标定是通过测量标准器的偏差来补偿仪器系统误差,从而改善仪器或系统准确度、精度的操作。为了提高电压电流表在测量时的测量精度和准确度,需要对电压电流进行标定校准。 常见的标定原理如下:假设一个采样系统
    的头像 发表于 05-31 16:20 579次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件</b><b class='flag-5'>进阶</b>教程-3.<b class='flag-5'>电压电流</b>标定

    CW32数字电压电流表软件进阶教程-1.电压电流同时显示

    基于[CW32数字电压电流表软件教程-实验七:基本数据处理算法(均值滤波)],可以对
    的头像 发表于 05-31 15:50 526次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件</b><b class='flag-5'>进阶</b>教程-1.<b class='flag-5'>电压电流</b>同时显示

    CW32数字电压电流表软件教程-实验七:基本数据处理算法(均值滤波

    有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度g(x,y),即g(x,y)=∑f(x,y)/m,m为该模板中包含当前像素在内的像素总个数。这本是数字图像处理的一种方法,但也可以用在我们
    的头像 发表于 05-31 15:47 305次阅读

    CW32数字电压电流表软件教程-实验五:ADC采样及显示

    数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。 6.1.2.
    的头像 发表于 05-31 15:28 478次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件</b>教程-实验五:ADC采样及显示

    CW32数字电压电流表软件教程-实验四:数码管动态显示

    5.1.数码管动态显示原理 所谓动态扫描显示即轮流向各位数码管送出段码和位码,利用发光管的余辉和人眼视觉暂留作用,使人眼的感觉好像各位数码管同时都在显示。明确了原理,我们要使电压电流表的三个位同时
    的头像 发表于 05-31 15:23 430次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件</b>教程-实验四:数码管动态显示

    CW32数字电压电流表软件教程(七):基本数据处理算法(均值滤波

    均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素
    的头像 发表于 05-28 10:50 377次阅读

    CW32数字电压电流表软件教程(一):LED原理与驱动基础知识详解

    LED 驱动指的是通过稳定的电源为 LED 提供合适的电流电压,使其正常工作点亮。LED 驱动方式主要有恒流和恒压两种。
    的头像 发表于 05-06 15:33 1638次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b><b class='flag-5'>软件</b>教程(一):LED原理与驱动基础知识详解

    CW32数字电压电流表-产品硬件设计要点

    电压跟随器的功能简化外围电路 2、使用了和市面电压电流表的同款接口(XH2.54+CH3.96),方便通用 3、最大40V的表头供电电压,覆盖大部分常用
    的头像 发表于 04-25 15:20 1798次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b>-产品硬件设计要点

    CW32数字电压电流表-产品制作注意事项

    焊接排针再焊接数码管,且需要像上图一样确保排针底部不要凸出PCB,否则会与数码管发生干涉 2、外壳安装 如果您计划使用淘宝或其他渠道购买的公版外壳,在焊接数码管前请先仔细阅读下方内容 注:建议先焊接数码管,再焊接连接器 上图为两种型号的电压电流
    的头像 发表于 04-24 17:29 353次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b>-产品制作注意事项

    CW32数字电压电流表-产品硬件设计流程详解

    对5-99V的电压与0.1-3A的电流进行测量与显示
    的头像 发表于 04-24 14:17 704次阅读
    <b class='flag-5'>CW32</b><b class='flag-5'>数字</b><b class='flag-5'>电压电流表</b>-产品硬件设计流程详解

    基于单片机的电压电流表设计

    电子发烧友网站提供《基于单片机的电压电流表设计.rar》资料免费下载
    发表于 01-12 09:59 14次下载

    基于单片机的电压电流表设计

    电子发烧友网站提供《基于单片机的电压电流表设计.rar》资料免费下载
    发表于 01-02 09:36 29次下载