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

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

3天内不再提示

恩智浦讲解如何在低算力MCU平台上优雅的计算均值和方差

恩智浦MCU加油站 来源: 恩智浦MCU加油站 2025-03-06 08:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一维数据的均值和方差计算可以说是几乎是最常用的统计分析方法。这个初中就学过的概念,在嵌入式系统中却有着广泛的实际应用:

传感器故障检测

正常工作的传感器数据波动应在一定范围内

突然的均值漂移或方差剧变,往往意味着传感器故障

温度传感器读数突然剧烈波动,很可能是接触不良

信号质量评估

GPS信号强度的均值和方差可以反映定位质量

方差过大说明信号不稳定,可能处于多路径效应区域

均值过低说明信号较弱,可能在遮挡环境下

机器人控制

舵机位置反馈的方差可以用来检测是否卡死

电机电流的均值可以估计负载大小

轮速反馈的方差可以判断地面情况

电池管理

电压的滑动均值可以平滑瞬时波动

电流的方差可以反映负载的稳定性

温度的异常波动可能预示电池问题

这些场景都需要实时、高效地计算数据流的统计特征。虽然计算公式简单,但在实际工程中,有限的资源限制及实时性要求、数值稳定性和存储效率成为主要挑战。

本文主要探讨如何在有限的计算能力和内存条件下,优雅地实现高效的均值和方差计算。通过优化算法、减少计算复杂度、利用递推公式和定点数运算,文章提供了一系列使用技巧,帮忙开发者在保持精度的同时,显著降低计算开销。这些方法特别适用于物联网设备、嵌入式系统等对资源敏感的领域。

基础知识

1.1 定义

众所周知:均值(mean)反映数据的集中趋势:

4fee5cf4-fa25-11ef-9310-92fbcf53809c.png

方差(variance)反映数据的离散程度:

500220a4-fa25-11ef-9310-92fbcf53809c.png

基于以上两个定义式出发,可以很简单的转换为C code, 浅显易懂:

500eaa22-fa25-11ef-9310-92fbcf53809c.png

使用示例:

501790d8-fa25-11ef-9310-92fbcf53809c.png

但是这种最基础的实现存在几个严重问题:

1)数据存储问题

需要保存全部历史数据

对于高频采样的传感器(如IMU 200Hz),1s就需要存储200个数据点

在嵌入式系统中,内存资源宝贵,这种方式极其浪费

2)计算效率问题

每次计算都需要遍历全部数据,时间复杂度为O(n)

对于实时系统,随着数据量增加,计算延迟会越来越大

不适合需要快速响应的实时控制系统

3)数值稳定性问题

直接累加可能导致数值溢出

对于很大或很小的数据,浮点数精度损失明显

特别是在计算方差时,(Xi-u)的计算可能产生很大的舍入误差

4)实时性问题

无法进行增量计算

新数据到来时需要重新计算所有统计量

不适合流数据处理

在线算法(Online Algorithm)

在线方法也叫做流式方法, 针对批量方法的缺点,在线方法不需要保存历史数据,在线算法中比较经典的是Welford算法。

Welford算法是由B.P. Welford在1962年提出的一种在线计算均值和方差的算法。它的核心思想是:每来一个新数据,就递增地更新均值和方差,而不需要存储所有历史数据。

2.1 Welford算法

这是一种数值稳定的在线算法,特别适合处理数据流。Welford算法的核心是递推公式的推导。设第n个数据到来时:

1) 均值更新

50252c7a-fa25-11ef-9310-92fbcf53809c.png

2)方差更新: 504d1f32-fa25-11ef-9310-92fbcf53809c.png 3) 关键推导步骤: 5055e3ba-fa25-11ef-9310-92fbcf53809c.png2.2 Welford算法实现 2.2.1 核心结构和函数

5063b99a-fa25-11ef-9310-92fbcf53809c.png

506b8d3c-fa25-11ef-9310-92fbcf53809c.png

2.2.2 使用示例

507909ee-fa25-11ef-9310-92fbcf53809c.png

2.2.3 算法步骤解释

1) 每次新数据到来:

计数加1

计算新数据与当前均值的差

更新均值

更新M2(用于方差计算)

2) 方差计算:

直接用M2除以样本数

样本数小于2时返回0

算法对比小结

本文介绍了Welford方差计算方法,它是一种在线、一次遍历的方差计算算法,能在不存储所有样本的情况下,逐步计算所有样本的方差。与传统的方差计算方法相比,Welford方法在降低访存次数的同时,也做到了数值计算的稳定性。因此,Welford方法更适合处理海量数据,也更适合在高性能计算环境中使用。

事实上,Welford算法启发了 NVIDIA 在2018年提出的Online Softmax算法,该算法降低了Softmax计算的访存次数,提高了计算性能。而Online Softmax则直接启发了FlashAttention,后者已经成为支撑当前最流行的Transformer架构的最核心的计算优化手段。

508233fc-fa25-11ef-9310-92fbcf53809c.png

END

恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。

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

    关注

    147

    文章

    18604

    浏览量

    386913
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3716

    浏览量

    133099
  • 恩智浦
    +关注

    关注

    14

    文章

    6051

    浏览量

    134347

原文标题:如何在低算力MCU平台上优雅的计算均值和方差

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MCU也开始卷了,率先将NPU集成进MCU

    几天前IC Insights发布了2021年MCU销售情况,MCU销售额达到了37.95亿美元,排名第一。其实,
    的头像 发表于 06-18 08:00 4953次阅读

    湘军,让变成生产

    脑极体
    发布于 :2025年11月25日 22:56:58

    i.MX RTxxx系列MCU的特性

      大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MX RTxxx系列MCU的基本特性。  半导体于201
    发表于 11-04 07:08

    MXM 平台在边缘计算领域的应用

    , 继承了该接口的诸多优点,也更适合此类场景应用,为用户提供了一种边缘侧部署的解决方案,同时MXM接口还可以为用户提供其它架构模块搭配方案,如MXM界面的寒武纪
    发表于 05-18 15:52

    2009年MCU产品系列总览

    2009年MCU产品系列总览,又需要的下来看看。
    发表于 12-15 15:05 22次下载

    ARM_MCU开发工具速选

    ARM_MCU开发工具速选,下来看看。
    发表于 12-15 15:01 10次下载

    无线MCU产品及方案介绍

    无线MCU产品及方案介绍
    发表于 10-16 15:42 9次下载
    <b class='flag-5'>恩</b>智<b class='flag-5'>浦</b>无线<b class='flag-5'>MCU</b>产品及方案介绍

    加速布局边缘计算隆重推出EdgeVerse平台

    加速布局边缘计算隆重推出EdgeVerse平台
    的头像 发表于 07-02 14:39 3485次阅读

    使用SCL语言编写函数计算方差和标准差

    方差也称为“平方差”,用来描述集合中变量的离散程度,即变量与平均值的偏离程度。方差越大,表示变量与平均值的偏离程度越大,即越不稳定。标准差是
    的头像 发表于 10-17 09:17 2369次阅读

    何在手机应用的高通平台上使用TAS2560

    何在手机应用的高通平台上使用TAS2560
    发表于 11-01 08:27 0次下载
    如<b class='flag-5'>何在</b>手机应用的高通<b class='flag-5'>平台上</b>使用TAS2560

    西门子SCL语言编程系列-计算方差

    方差,用来描述一组数据中数据的离散程度,即变量与平均值的偏离程度。方差越大,表示变量与平均值的偏离程度越大,即越不稳定。标准差是方差的算术平
    的头像 发表于 02-06 15:13 1644次阅读
    西门子SCL语言编程系列-<b class='flag-5'>计算</b><b class='flag-5'>方差</b>

    ACH拉近您与MCU专家的距离

    这个 ACH 将会汇聚内部 MCU 专家们开发的各种应用笔记配套代码(AN SW),通用代码片段,应用软件包(SW Pack)和综合参考例程(Demo),涵盖
    的头像 发表于 08-17 15:18 1227次阅读
    ACH拉近您与<b class='flag-5'>恩</b>智<b class='flag-5'>浦</b><b class='flag-5'>MCU</b>专家的距离

    在S32微控制器和处理器车辆计算平台上扩展对安全云连接的支持

    半导体已在其S32微控制器(MCU)和处理器车辆计算平台上扩展了对安全云连接的支持。针对车身、区域控制和电气化应用,
    的头像 发表于 10-17 17:22 1885次阅读

    方差矩阵怎么方差矩阵和方差的关系

    的概念。 方差是一种衡量随机变量离其平均值的距离的度量。在给定一组数据时,方差可以帮助我们了解数据的离散程度。方差计算公式如下: Var(
    的头像 发表于 01-30 10:39 6242次阅读

    在杭州召开汽车生态技术峰会,推出全新S32 CoreRide开放平台

    峰会上,正式在中国发布了S32 CoreRide开放平台,该平台融合了成熟的S32
    的头像 发表于 05-30 16:59 2222次阅读