有什么比较简单的算法能检测波峰的

2019-12-12 18:09发布

如图,一组数据,SPI读取的一组数组,实际需要计算出第一个波峰对应的数组下标就可以
微信截图_20190409162752.png (271.32 KB, 下载次数: 0) 下载附件 2019-4-9 16:29 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
24条回答
xyhh4
1楼-- · 2019-12-12 19:45
设置1个变量,初始为最小值0,然后搜寻整个数组
lgg88
2楼-- · 2019-12-12 19:52
 精彩回答 2  元偷偷看……
wongT
3楼-- · 2019-12-13 00:19
lgg88 发表于 2019-4-9 16:42
不就是求最大值吗

不行,这样求出是第二个峰。
这是刚刚拷出来的数据,有可能三个峰,但是要的是第一个峰
huhandong
4楼-- · 2019-12-13 01:14
如果很光滑的话,找比左、右好几个点都大的点,如果不光滑的话,滤一下波再求就行了
lsx007
5楼-- · 2019-12-13 05:02
    PointTmp = CFFTin[0];
    if (CFFTin[0] > CFFTin[1]){
        CFFTin[0] = 0.0;
    }
    for(i = 1; i < Len - 1; i++){
        PointMax = Max(PointTmp, CFFTin[i + 1]);
        PointTmp = CFFTin[i];
        if (CFFTin[i] <= PointMax){
            CFFTin[i] = 0.0;
        }
    }
不为0的点都是峰值点, 通过门限挑出需要的峰值点
菜包
6楼-- · 2019-12-13 09:25
根据你的信号频率,加窗求最大值就行了吧

一周热门 更多>