XCJQ023 发表于 2022-9-8 17:03:15

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

对信号进行采样,采样率10Hz,得到采样数据,描绘曲线如下图,有一定噪声。
现在要找到曲线的最大斜率和对应点,用单片机计算,请问各位大佬,这种情况应该用什么方法计算离散数据对应的曲线斜率?

ME_Engineer 发表于 2022-9-8 20:47:36

频谱分析->低通滤波,之后计算每2个点之间的斜率作为瞬时斜率,或者每10个点(数量自行调整)计算一次斜率作为平均斜率,最大值即为所求。

eric2013 发表于 2022-9-9 12:41:04

这种随机噪声用中值滤波器效果比较好,然后再按照楼上群友的方式求斜率。

XCJQ023 发表于 2022-9-15 09:26:08

eric2013 发表于 2022-9-9 12:41
这种随机噪声用中值滤波器效果比较好,然后再按照楼上群友的方式求斜率。

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

ME_Engineer 发表于 2022-9-15 12:42:17

FFT分析不出来噪声频率,是因为噪声对应的幅值过低吗?不如把你的原始数据存成txt附上,大家来研究一下。
从图中看信号的频率是极低的,而噪声频率很高,我还是认为低通滤波是一个很好的选择;
否则如果要高计算精度的话,你可能需要研究一下曲线拟合或统计信号处理之类的东西了吧。
页: [1]
查看完整版本: 采样得到输出信号数据,如何使用单片机计算数据对应曲线的斜率最大值?