硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1237|回复: 4
收起左侧

[信号与系统] 采样得到输出信号数据,如何使用单片机计算数据对应曲线的斜率最大值?

[复制链接]

5

主题

19

回帖

34

积分

新手上路

积分
34
发表于 2022-9-8 17:03:15 | 显示全部楼层 |阅读模式
对信号进行采样,采样率10Hz,得到采样数据,描绘曲线如下图,有一定噪声。 示例曲线.jpg
现在要找到曲线的最大斜率和对应点,用单片机计算,请问各位大佬,这种情况应该用什么方法计算离散数据对应的曲线斜率?

回复

使用道具 举报

0

主题

17

回帖

17

积分

新手上路

积分
17
发表于 2022-9-8 20:47:36 | 显示全部楼层
频谱分析->低通滤波,之后计算每2个点之间的斜率作为瞬时斜率,或者每10个点(数量自行调整)计算一次斜率作为平均斜率,最大值即为所求。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2022-9-9 12:41:04 | 显示全部楼层
这种随机噪声用中值滤波器效果比较好,然后再按照楼上群友的方式求斜率。

image.png
回复

使用道具 举报

5

主题

19

回帖

34

积分

新手上路

积分
34
 楼主| 发表于 2022-9-15 09:26:08 | 显示全部楼层
eric2013 发表于 2022-9-9 12:41
这种随机噪声用中值滤波器效果比较好,然后再按照楼上群友的方式求斜率。

       是我描述的不正确,这个我通过信号采样得到测量电压幅值,由电压计算得到的另外一个量,由于测量电压时存在噪声,且没有完全滤除,计算得到的变量中也存在一定噪声。
       现在需要计算这个变量对应曲线的斜率,直接用fft分析不出噪声的频率,就没法准确得到低通滤波系数。用中值滤波的话,每两个点计算瞬时斜率,每20个点计算平均斜率,求得第一个最大斜率与解析式求导得到的最大值误差较大,10%左右。
       有没有什么别的方法可以提高计算精度,而且这个算法最后要放到CM4的单片机里去
回复

使用道具 举报

0

主题

17

回帖

17

积分

新手上路

积分
17
发表于 2022-9-15 12:42:17 | 显示全部楼层
FFT分析不出来噪声频率,是因为噪声对应的幅值过低吗?不如把你的原始数据存成txt附上,大家来研究一下。
从图中看信号的频率是极低的,而噪声频率很高,我还是认为低通滤波是一个很好的选择;
否则如果要高计算精度的话,你可能需要研究一下曲线拟合或统计信号处理之类的东西了吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 19:07 , Processed in 0.163758 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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