搜索
bottom↓
回复: 9

再免费请教个数据变化率的算法

[复制链接]

出0入475汤圆

发表于 2024-1-6 11:51:34 | 显示全部楼层 |阅读模式
条件:有一个每秒钟会更新的数据输入,
需求:需要得到一个新的数据,是每分钟的数据变化率,这个每分钟变化率也是最后要求每秒钟都更新输出(可以允许最初的不足一分钟的前面部分不更新输出),

那么如何计算这个每秒钟都更新输出的“分钟变化率”呢?

举个 可能还不一定对的例子,假如有一分钟内的数据输入,每秒钟都是加1输入的,那么最后的分钟变化率就是: 60/分钟;假如每秒钟来的数据都是+1后下次是-1的,那么分钟变化率就是 0 ?

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入98汤圆

发表于 2024-1-6 12:26:24 | 显示全部楼层
如果算力足够,我理解的是过去60秒数据的正态分布拟合的δ值,或者统计里的方差

没有公式的去定义的话,仅凭文字确实容易引起歧义

出0入4汤圆

发表于 2024-1-6 12:29:06 来自手机 | 显示全部楼层
取过去一分钟的60个数做线性拟合,得出曲线的斜率就是一分钟变化率了。线性拟合基于最小二乘法,有现成的算法

出0入0汤圆

发表于 2024-1-6 13:08:31 | 显示全部楼层
求拟合不对吧,拟合后的斜率只能表示数据变化的趋势,不能表示变化率,假设数据是一个周期幅度变化很大的方波,那么斜率是0,没有变化?显然是不对的。变化率用统计学里最基本的方差公式最简单了。

出200入2554汤圆

发表于 2024-1-6 21:57:05 | 显示全部楼层
这涉及一个低通阈值的问题。楼主的需求,大致是个带低通的差商运算器。
在低通环节面前,任何方波都无法完整复现,尤其是大周期(基频低)、期望边缘陡峭(谐波多)。

具体的低通折转点,和采样频率之间取多少合适,这个楼主应该更具体明确下。举例:

a. 有序列 [+1  -1  +1  -1 ...] 期望输出 DC 信号,很显然在 f= fs/2 频点的信号,应该位于低通阻带;
b. 有序列[+1  +1  0  0  -1  -1  0  0  +1  +1 ...] 期望能跟随实时的 0、±1 斜率,那就是要求 f= fs/8 频点位于通带;

类似这样的描述,大致确定这个 LPF 参数

出0入475汤圆

 楼主| 发表于 2024-1-6 22:43:50 来自手机 | 显示全部楼层
t3486784401 发表于 2024-1-6 21:57
这涉及一个低通阈值的问题。楼主的需求,大致是个带低通的差商运算器。
在低通环节面前,任何方波都无法完 ...

(引用自5楼)

谢谢楼上各位!
其实实际使用中是这样的场景:
比如无人机在空中飞行,高度值是不断动态变化的(哪怕高度不变也认为是变着,只是最终变化率是0),其值每秒钟都会更新,那么现在是需求方是要求每秒钟更新输出一个“每分钟的变化率”,实际上就是在爬升/下降/的值换算到每分钟的表述,但是又要求美秒更新。

出200入2554汤圆

发表于 2024-1-6 23:04:03 | 显示全部楼层
1a2b3c 发表于 2024-1-6 22:43
谢谢楼上各位!
其实实际使用中是这样的场景:
比如无人机在空中飞行,高度值是不断动态变化的(哪怕高度 ...
(引用自6楼)

就好比你在 excel 当中给曲线添加 average 走势线。
选择不同长度的样本窗口,走势线是有区别的,窗口越长,走势线约趋于平缓,但对于瞬态的响应也就没了。

这里 excel 的窗口,实际就是低通的截止参数,窗口越大,通带越低。

回到这个应用,你有序列 X=[x0, x1, x2, ....],已知采样间隔 fs= 1Hz.
作一阶差商 V=Xn+1 - Xn= [x1-x0, x2-x1, x3-x2, ....],

实际上 V 序列就是瞬时速度,对 V 取均值滤波(相当于低通),就是 LZ 位置需要的结果。

唯一问题是:滤波窗口多长,才能使得 V 序列既能反应实时速率,又能把高频的抖动平均掉?
同理,类似算法都会是低通滤波的效果,都会像 V 依赖于滤波窗口长度一样,依赖一个通带频率。这是需要 LZ 考虑的。

出0入475汤圆

 楼主| 发表于 2024-1-6 23:11:57 来自手机 | 显示全部楼层
t3486784401 发表于 2024-1-6 23:04
就好比你在 excel 当中给曲线添加 average 走势线。
选择不同长度的样本窗口,走势线是有区别的,窗口越 ...

(引用自7楼)

感谢,
是的,现在还没有看到别人的可以参考,感觉自己挺难决定,
这个是一个实际工程应用,在以往的老式应用中是采用了一些物理机械的手段来完成,那个具有固有的迟滞,响应不迅速,反应慢,所以现在考虑电子模式,但是这里就拿不准了,才来问下大家,

出200入2554汤圆

发表于 2024-1-6 23:33:06 | 显示全部楼层
1a2b3c 发表于 2024-1-6 23:11
感谢,
是的,现在还没有看到别人的可以参考,感觉自己挺难决定,
这个是一个实际工程应用,在以往的老式 ...
(引用自8楼)

那建议采几组实地的数据,先用仿真来确定参数,最后再固化到特定的程序里。

出0入31汤圆

发表于 2024-1-7 08:51:59 | 显示全部楼层
简单粗暴的算法:建立一个60s的时间窗,当前这一秒接收的的数据减去60秒前收到数据,就是变化率。剩下的就是根据实际的应用环境进行一些平滑处理啦。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 05:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表