MATLAB中findpeaks函数用法

目录

语法

说明

示例


在MATLAB中,findpeaks函数用于查找信号中的峰值(peaks)。以下是findpeaks函数的基本语法、说明以及示例:

语法

cpp 复制代码
[pks,locs] = findpeaks(x)
[pks,locs] = findpeaks(x, 'Name', Value)

说明

参数说明

  • x:输入信号,可以是一个向量或一个矩阵。通常,x 是一个表示某种测量值随时间或位置变化的一维信号。

可选的名称-值参数(Name-Value Pairs)包括:

  • 'MinPeakHeight':指定峰值的最小高度。只有高度超过此阈值的峰值才会被找到。默认值为-inf,表示没有高度阈值。
  • 'MinPeakDistance':指定峰值之间的最小距离。如果两个峰值之间的距离小于此值,只有其中一个峰值会被保留。默认值为1。
  • 'Threshold':指定峰值的阈值。只有高度超过此阈值的峰值才会被找到。默认值为0。
  • 'SortStr':指定返回的峰值是否按高度排序。可以设置为'ascend'(升序,默认值)或'descend'(降序)。
  • 'NPeaks':指定要返回的峰值的最大数量。如果设置为正整数,将返回高度最高的前NPeaks个峰值

输出参数说明

  • pks:找到的峰值的高度,是一个向量。
  • locs:找到的峰值在输入信号中的位置,是一个向量,表示峰值的索引。

示例

cs 复制代码
% 创建一个示例信号
t = linspace(0, 2*pi, 1000);
x = sin(3*t) + 0.5*sin(7*t);

% 使用默认参数查找峰值
[pks, locs] = findpeaks(x);

% 绘制信号和峰值
plot(t, x, t(locs), pks, 'ro');
title('信号和峰值');
xlabel('时间');
ylabel('幅度');
legend('信号', '峰值');

% 自定义参数查找峰值
[pks, locs] = findpeaks(x, 'MinPeakHeight', 0.8, 'MinPeakDistance', 100);

% 绘制信号和自定义参数查找的峰值
figure;
plot(t, x, t(locs), pks, 'ro');
title('信号和自定义参数查找的峰值');
xlabel('时间');
ylabel('幅度');
legend('信号', '峰值');

如图所示:

相关推荐
茗创科技3 小时前
Nature Mental Health | 基于皮层相似性网络分析,揭示神经性厌食症的神经机制
matlab·数据分析·脑网络
code2cat4 小时前
Java进阶篇之AtomicMarkableReference:引用还在,标记已经改变
java·开发语言·cas·并发编程·逻辑删除
CappuccinoRose4 小时前
FormData数据处理
开发语言·前端·javascript·表单数据
Zguigo4 小时前
【CUDA8】第一个CUDA C++ Kernel --vector add
java·开发语言·c++
-Marks-4 小时前
【C++编程】STL容器(二)--- vector底层模拟实现(常用接口实现 | 扩容机制 | 深浅拷贝 | 迭代器失效)
开发语言·c++·vector·内存管理·迭代器失效·vector底层模拟实现
Shadow(⊙o⊙)5 小时前
C++11并发支持库
开发语言·c++
一技安身5 小时前
【java】JDK8 + JDK17 绿色解压共存方案-全程不修改任何系统环境变量
java·开发语言
hudd6685 小时前
JavaEE 初阶 - 多线程(初阶)
java·开发语言·java-ee
I Am a robert girl6 小时前
稀有事件估计的迭代去对齐:从源码视角拆解重要性采样新范式
开发语言·python·机器学习·重要性采样·蒙特卡洛方法·稀有事件估计
golang学习记6 小时前
rust开发,选VS Code还是RustRover?
开发语言·后端·rust