硬汉嵌入式论坛

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

[其它] 波形数据是实时性的,有啥算法让波形变的平滑一些呢?

[复制链接]

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
发表于 2022-2-28 13:52:17 | 显示全部楼层 |阅读模式
波形数据是实时性的,有啥算法让波形变的平滑一些呢?增加打点的密度,还是用算法去填充步长的像素点?armfly二代示波器里面是怎么弄的?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2022-2-28 14:11:40 | 显示全部楼层
波形拟合即可。

基于STM32H7的第2版DSP教程发布样条插补章节,波形绘制丝滑顺畅(2021-11-01)
https://www.armbbs.cn/forum.php? ... 9370&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2022-2-28 14:22:44 | 显示全部楼层
eric2013 发表于 2022-2-28 14:11
波形拟合即可。

基于STM32H7的第2版DSP教程发布样条插补章节,波形绘制丝滑顺畅(2021-11-01)

如果波形的数据都知道的话,这个道理我能想来,跑一遍算法就可以,但是实时打点的话,这块有点想不来,因为下一个点是未知的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2022-2-28 14:57:22 | 显示全部楼层
ssssssss 发表于 2022-2-28 14:22
如果波形的数据都知道的话,这个道理我能想来,跑一遍算法就可以,但是实时打点的话,这块有点想不来,因 ...

这个就是实时的,可以用于ADC实时采集波形打印。

回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2022-2-28 18:10:40 | 显示全部楼层
eric2013 发表于 2022-2-28 14:57
这个就是实时的,可以用于ADC实时采集波形打印。

就两个函数 arm_spline_init_f32\\\\\\还有arm_spline_f32,这两个函数,如果是adc实时采集波形数据,放哪个函数参数呢?没找到呢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2022-3-1 09:41:42 | 显示全部楼层
ssssssss 发表于 2022-2-28 18:10
就两个函数 arm_spline_init_f32\\\\\\还有arm_spline_f32,这两个函数,如果是adc实时采集波形数据,放哪 ...

对,就是这两个函数,有对应的例子,可以参考。
回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2022-3-15 09:14:41 | 显示全部楼层
eric2013 发表于 2022-3-1 09:41
对,就是这两个函数,有对应的例子,可以参考。

我看了对应的例子,是V7——235样条插补,波形你和丝滑顺畅,这个demo,里面的代码,功能是,模拟了一个正弦波,原始数据一共是128个数据,拟合后1024个数据,相当于1个点变八个点,算法主要是算出中间的七个点的值,这个是原始数据已经定了,不是实时性的,已知的一段128个点的正弦波,通过rm_spline_init_f32和还有arm_spline_f32,这两个函数,然后计算打印出拟合的波形,并不是实时性的呢??
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2022-3-15 09:38:48 | 显示全部楼层
ssssssss 发表于 2022-3-15 09:14
我看了对应的例子,是V7——235样条插补,波形你和丝滑顺畅,这个demo,里面的代码,功能是,模拟了一个 ...

对“实时”这个词有很多方面的解释,不同的系统对实时的最小时间分辨率是不一样的。你可能有点误解。。。。

就算是AD采样过来的数据,也不一定是“真实值”。 各种平滑,滤波,插值,都是用的测量值和估计值的各种加权平均。
回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2022-3-15 10:01:22 | 显示全部楼层
caicaptain2 发表于 2022-3-15 09:38
对“实时”这个词有很多方面的解释,不同的系统对实时的最小时间分辨率是不一样的。你可能有点误解。。。 ...

你理解错了,我说的意思是,对已知的波形数据进行拟合,和那种来一个点拟合一个点的,这两种不一样,并不是强调那个实时性这三个字
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2022-3-15 10:21:12 | 显示全部楼层
ssssssss 发表于 2022-3-15 09:14
我看了对应的例子,是V7——235样条插补,波形你和丝滑顺畅,这个demo,里面的代码,功能是,模拟了一个 ...

你是想来一个点处理一个点,也没问题,仅对最近的几个点做拟合就行,点太少,拟合的效果一般。
回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2022-3-15 10:48:36 | 显示全部楼层
eric2013 发表于 2022-3-15 10:21
你是想来一个点处理一个点,也没问题,仅对最近的几个点做拟合就行,点太少,拟合的效果一般。

那二代示波器是咋处理的?示波器就是那种来一个点处理一个,如果直接打点,不处理,示波器的波形也不会平滑
回复

使用道具 举报

10

主题

46

回帖

76

积分

初级会员

积分
76
发表于 2022-3-15 11:22:59 | 显示全部楼层
可以试试 卡尔曼滤波算法。

    在很多场景,比如角度传感器。人们往往希望驱动机构到某个位置,即存在提前预测,并以预测的数据作为控制依据。滤波后的这个最优预测并不是用于实际的使用,实际中还是使用主观预测部分为估计,但是当到下一个时间点得到客观测量后,我们可以修正我们的估计,得到最优估计,这个估计是作为参数传递给下一次估计,这样一次次修正,我们的估计会更加精确。简而言之,假如你要提前预测值控制,你可以先用着,这不是最好的值。后面可以滤波更新,迭代下去。
    许多场景下,我们试图预测更长步数,但是预测主要是基于模型,比如温度,我们预测t2=t1,即短时间内,温度变化不大,既然是基于模型,那么预测的准确度就不大。 与三次指数平滑预测相比,三次指数平滑其基于其数据特征(趋势,周期性),其最简单的预测是y=kx+b线性预测。可以预测多步。
回复

使用道具 举报

95

主题

297

回帖

582

积分

金牌会员

123

积分
582
 楼主| 发表于 2022-3-19 07:40:22 | 显示全部楼层
zhoutao318 发表于 2022-3-15 11:22
可以试试 卡尔曼滤波算法。

    在很多场景,比如角度传感器。人们往往希望驱动机构到某个位置,即存在 ...

卡尔曼滤波,资料多吗,容易上手不
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 22:21 , Processed in 0.354974 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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