OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4005|回复: 16

不规则波形计算波峰个数,波形数据在缓冲区

[复制链接]

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
发表于 2020-6-17 13:12:31 | 显示全部楼层 |阅读模式
1金钱
波形数据在缓冲区,不规则波形计算波峰个数,有什么好的算法?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8678
金钱
8678
注册时间
2020-5-11
在线时间
4156 小时
发表于 2020-6-17 13:20:36 | 显示全部楼层
挨个比较呗
当前数据减前一数据为斜率,斜率由正变负就是一个峰。
专治疑难杂症
回复

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
 楼主| 发表于 2020-6-18 13:12:32 | 显示全部楼层
LcwSwust 发表于 2020-6-17 13:20
挨个比较呗
当前数据减前一数据为斜率,斜率由正变负就是一个峰。

这种的呢?局部有下降上升的趋势,但是整体确实上升的
999999.png
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2020-6-18 13:30:51 | 显示全部楼层
ssssssssssss 发表于 2020-6-18 13:12
这种的呢?局部有下降上升的趋势,但是整体确实上升的

先加滤波让波形平滑,然后就可通过斜率变换统计了
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8678
金钱
8678
注册时间
2020-5-11
在线时间
4156 小时
发表于 2020-6-18 13:43:50 | 显示全部楼层
ssssssssssss 发表于 2020-6-18 13:12
这种的呢?局部有下降上升的趋势,但是整体确实上升的

4楼说得对,先做一个数字低通滤波。
专治疑难杂症
回复

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
 楼主| 发表于 2020-6-18 15:33:22 | 显示全部楼层
szczyb1314 发表于 2020-6-18 13:30
先加滤波让波形平滑,然后就可通过斜率变换统计了

有空能否上传一个算法
回复

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
 楼主| 发表于 2020-6-18 15:33:44 | 显示全部楼层
LcwSwust 发表于 2020-6-18 13:43
4楼说得对,先做一个数字低通滤波。

有相关算法参考吗
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2020-6-18 15:40:25 | 显示全部楼层
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8678
金钱
8678
注册时间
2020-5-11
在线时间
4156 小时
发表于 2020-6-18 15:41:08 | 显示全部楼层
本帖最后由 LcwSwust 于 2020-6-18 20:24 编辑

随手写一个,不知有无BUG:
  1. //滤波函数:
  2. //数据在buf,长度为len
  3. void lowpass(char *buf,char len)
  4. {
  5.         char d;
  6.         d=*buf;
  7.         while(len--)
  8.         {
  9.                 d=(d+(*buf))/2;                        
  10.                 //也可写成 d=(d*A+(*buf)*B)/(A+B);        
  11.                 *(buf++)=d;
  12.         }        
  13. }
复制代码


专治疑难杂症
回复

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
 楼主| 发表于 2020-6-18 17:09:19 | 显示全部楼层
LcwSwust 发表于 2020-6-18 15:41
随手写一个,不知有无BUG:

没太看懂啥意思
回复

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8678
金钱
8678
注册时间
2020-5-11
在线时间
4156 小时
发表于 2020-6-18 17:25:04 | 显示全部楼层
专治疑难杂症
回复

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
 楼主| 发表于 2020-6-18 18:25:46 | 显示全部楼层
LcwSwust 发表于 2020-6-18 17:25
https://blog.csdn.net/qq_27334499/article/details/52186336
RC低通滤波

这个软件有没?
999999.png
回复

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8678
金钱
8678
注册时间
2020-5-11
在线时间
4156 小时
发表于 2020-6-18 20:23:30 | 显示全部楼层
专治疑难杂症
回复

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
 楼主| 发表于 2020-6-22 16:46:44 | 显示全部楼层
本帖最后由 ssssssssssss 于 2020-6-22 16:47 编辑
LcwSwust 发表于 2020-6-18 15:41
随手写一个,不知有无BUG:

一阶低通滤波算法
1. 一阶滤波算法的原理
  一阶滤波,又叫一阶惯性滤波,或一阶低通滤波。是使用软件编程实现普通硬件RC低通滤波器的功能。
  一阶低通滤波的算法公式为:
              Y(n)=αX(n) + (1-α)Y(n-1)
  式中:α=滤波系数;X(n)=本次采样值;Y(n-1)=上次滤波输出值;Y(n)=本次滤波输出值。 一阶低通滤波法采用本次采样值与上次滤波输出值进行加权,得到有效滤波值,使得输出对输入有反馈作用。
2. 一阶滤波算法的程序(适用于单个采样)[url=][/url]
#define a   0.01                // 滤波系数a(0-1)
char filter(void)
{  
   baroOffset  = get_ad();   
   baro = a * baroOffset  + (1.0f - a) * baroAlt;  
   baroAlt = baro;    return baro;
}[url=][/url]


3. 一阶滤波算法的不足
  滤波系数越小,滤波结果越平稳,但是灵敏度越低;滤波系数越大,灵敏度越高,但是滤波结果越不稳定。
  一阶滤波无法完美地兼顾灵敏度和平稳度。有时,我们只能寻找一个平衡,在可接受的灵敏度范围内取得尽可能好的平稳度。而在一些场合,我们希望拥有这样一种接近理想状态的滤波算法。即:当数据快速变化时,滤波结果能及时跟进(灵敏度优先);当数据趋于稳定,在一个固定的点上下振荡时,滤波结果能趋于平稳(平稳度优先)。





回复

使用道具 举报

11

主题

2149

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4930
金钱
4930
注册时间
2015-1-10
在线时间
618 小时
发表于 2020-6-22 16:53:03 | 显示全部楼层
我记得ST有math库,好像有低通滤波的函数,就是算得很慢
回复

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8678
金钱
8678
注册时间
2020-5-11
在线时间
4156 小时
发表于 2020-6-22 17:06:03 | 显示全部楼层
ssssssssssss 发表于 2020-6-22 16:46
一阶低通滤波算法
1. 一阶滤波算法的原理   一阶滤波,又叫一阶惯性滤波,或一阶低通滤波。是使用软件 ...

怎样,效果不好吗?
FFT、DCT了解一下。
专治疑难杂症
回复

使用道具 举报

160

主题

967

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2097
金钱
2097
注册时间
2014-3-7
在线时间
491 小时
 楼主| 发表于 2020-6-22 17:15:02 | 显示全部楼层
LcwSwust 发表于 2020-6-22 17:06
怎样,效果不好吗?
FFT、DCT了解一下。

还正在学习呢
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-16 11:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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