(MATLAB)一维信号峰值检测findpeaks

  • 基本介绍
  • findpeaks函数用法
    • 基本用法
    • 特殊用法
  • 其他

by HPC_ZY

一维信号波峰波谷检测,峰值、峰宽、到达时间计算。MATLAB自带的findpeaks函数能完成这一任务,在这里分享其基本用法与特殊用法。

基本介绍

关于波峰,峰值,峰宽

findpeaks函数用法

基本用法

  1. 无参数,简单输出
x = 0:0.1:2*pi;
y0 = sin(x);% 这里的locs对应y0索引
[pks,locs] = findpeaks(y0);
plot(y0, '.-'),hold on
plot(locs, pks, 'ro'),hold off

  1. 指定x坐标
x = 0:0.1:2*pi;
y0 = sin(x);% 这里的locs对应实际x坐标
[pks, locs] = findpeaks(y0, x);
plot(x, y0, '.-'),hold on
plot(locs, pks, 'ro'),hold off

  1. 绘制结果
    如果不设置输出,就会自动绘制结果
x = 0:0.1:2*pi;
y0 = sin(x);findpeaks(y0, x);

  1. 完整输出+完整绘制
x = 0:0.1:2*pi;
y0 = sin(2*x);% w为半(凸/峰)宽,p为凸高
[pks, locs, w, p] = findpeaks(y0, x);
% 加入如下参数即可绘制所有结果
findpeaks(y0, x, 'Annotate','extents');

特殊用法

为了简便,后续例子不再输出结果,直接绘制。

  1. 最小峰值高度
x = 0:0.1:2*pi;
y0 = sin(2*x)+x/2;MPH = 2;
% 仅搜索高度MPH以上的峰
findpeaks(y0, 'MinPeakHeight', MPH, 'Annotate', 'extents');

  1. 指定最小峰凸高度
x = 0:0.1:2*pi;
y0 = sin(3*x)+((x-pi)/2).^2;MPP = 1;
% 仅搜索高度MPH以上的峰
findpeaks(y0, 'MinPeakProminence', MPP, 'Annotate', 'extents');

  1. 指定相邻最小差
    指的是波峰点需要比左右相邻点高出一定值
x = 0:0.1:2*pi;
y0 = sin(x).^20;TH = 0.05;
% 仅搜索从两侧峰值垂直下降超过MPP的峰
findpeaks(y0, 'Threshold', TH, 'Annotate', 'extents');


可以看出第一个峰的左邻点与峰值差太小

  1. 指定最小半宽
x = 0:0.1:2*pi;
y0 = sin(x.^2);MINW = 5;
% 搜索半宽大于MINW的峰
findpeaks(y0, 'MinPeakWidth', MINW, 'Annotate', 'extents');

  1. 指定最大半宽
x = 0:0.1:2*pi;
y0 = sin(x.^2);MAXW= 5;
% 搜索半宽小于MAXW的峰
findpeaks(y0, 'MaxPeakWidth', MAXW, 'Annotate', 'extents');

其他

  1. 后续还有,可能更新。
  2. 求峰谷只需要对信号取负,计算结果再取负就可以了。

(MATLAB)一维信号峰值检测findpeaks相关推荐

  1. 一维信号峰值检测Matlab实现

    参考论文:https://pdfs.semanticscholar.org/56f1/49e51aa9fb9b0b46412b864839f34701d421.pdf 先使用3点运动均值滤波器处理一维 ...

  2. 【信号】用matlab实现一维信号的高斯滤波

    1.从正态分布说起 高斯滤波使用的是高斯函数,即我们熟悉的正态分布的概率密度函数: f(x)=1σ2πexp(−(x−μ)22σ2)f(x)=\frac{1}{\sigma \sqrt{2\pi}} ...

  3. 利用matlab实现DMD动态模态分解(在一维信号或二维流场矢量中的应用)

    利用matlab实现DMD动态模态分解(在一维信号或二维流场矢量中的应用) 0 前言 0.1 特征根的计算与含义 1 DMD的基本思路 2 一维DMD算法 3 二维DMD算法 4 总结 (2020年9 ...

  4. 利用matlab实现POD分解(在一维信号或二维流场矢量中的应用)

    利用matlab实现POD分解(在一维信号或二维流场矢量中的应用) 0 前言 0.1 matlab中特征值计算 0.2 matlab中SVD分解计算 0.3 信号的正交性 1 一维信号POD分解 1. ...

  5. 【Matlab系列】一维信号/数字图像小波阈值去噪(软阈值,硬阈值,固定阈值)【含Matlab源码】

    Date: 2022.4.23 文章目录 前言 0.代码获取方式 1.部分matlab代码 2.一维信号小波阈值去噪效果图 3.数字图像小波阈值去噪效果图 3.1.添加高斯噪声 3.2.添加随机噪声 ...

  6. 《MATLAB语音信号分析与合成(第二版)》:第3章 语音信号在其他变换域中的分析技术和特性

    <MATLAB语音信号分析与合成(第二版)>:第3章 语音信号在其他变换域中的分析技术和特性 前言 1. 数据与函数路径设置 2. MATLAB仿真一:信号倒谱图.声道冲激响频谱.声门激励 ...

  7. 一维信号小波阈值去噪 c语言,一维信号小波阈值去噪

    描述 1.小波阈值处理基本理论 所谓阈值去噪简而言之就是对信号进行分解,然后对分解后的系数进行阈值处理,最后重构得到去噪信号.该算法其主要理论依据是:小波变换具有很强的去数据相关性,它能够使信号的能量 ...

  8. C语言实现一维信号小波阙值去噪

    实现小波阙值去噪分三个步骤: 1.将源信号分解成系数: 2.根据分解的系数获取阙值: 3.根据阙值对系数进行过滤: 4.将过滤的系数还原成信号,最终的结果就是将源信号过滤后的结果. 我实现的代码主要是 ...

  9. 一维信号小波阈值去噪

    转载:http://blog.csdn.net/ebowtang/article/details/40481393 一,小波阈值去噪基本理论       本博文根据小波的分解与重构原理,实现了基于硬阈 ...

最新文章

  1. 万字长文总结机器学习的模型评估与调参 | 附代码下载
  2. linux 在某个core上的中断 affinity c语言函数,Linux中断处理体系结构
  3. Acwing799. 最长连续不重复子序列[C++题解]:双指针算法O(n)
  4. python_atp框架
  5. wav音量和分贝转换关系_电吉他音箱瓦数与音量大小之间的关系
  6. Python3中的可变与不可变类型
  7. LeetCode 351. 安卓系统手势解锁(回溯)
  8. linux运行不了.sh文件,linux下不能执行/bin/sh脚本的原因:command not found
  9. SpringBoot------集成PageHelper分页功能
  10. 链家网页爬虫_R爬虫小白入门:Rvest爬链家网+分析(一)
  11. NBU官方Doc網址https://www.veritas.com/support/en_US/article.DOC5332
  12. MODIS数据火点提取方法
  13. 空号筛选接口的应用场景
  14. 【Ubuntu破解UltraEdit】破解UltraEdit
  15. cad的文字嵌入线条_CAD字体如何转变为线条
  16. ShadowGun: Optimizing for Mobile Sample Level
  17. 安装ubuntu教程
  18. Tableau官方文档翻译(一):Measures和Dimensions的区别
  19. Laravel学习记录--数据填充
  20. 著名的NP问题:TSP问题(Traveling Salesman Problem)

热门文章

  1. 模糊的正确和精确的错误
  2. iPhone 5 屏幕尺寸变长指南
  3. 计算机类 ei,sciei收录的计算机类期刊(37页)-原创力文档
  4. FreeModbus添加主机功能
  5. 颜值在线的Mac播放器推荐-IINA
  6. Python:while循环嵌套方式求1000以内的质数
  7. Linux 如何设置密码复杂度?
  8. ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
  9. 从技术角度探索安卓群控实现的基本思路
  10. !外贸邮件处理经验谈