matlab峰值检测

news2024/11/16 21:56:37

峰值检测的意义

在信号处理中,我们常常需要寻找信号的峰值,对于全局最大值,寻找起来比较容易,而对于局部峰值的寻找就需要考虑更多的条件,例如峰值的绝对幅度以及相邻峰值之间之间的间距;,我如何在信号中找到峰值?我如何测量峰值之间的距离?如何测量受趋势影响的信号峰值的振幅?我如何在含噪信号中找到峰值?我如何找到局部最小值?

matlab峰值检测程序

matlab中可以采用峰值检测函数findpeaks来查找峰的位置和数值。例如我们想要寻找如下信号的峰值,
在这里插入图片描述

图1 输入信号
通过肉眼可以观察到,以上信号中一共有13个峰值。各个峰值的绝对值存在一定的差异。 我们采用findpeaks函数,可以输出如下结果
% 假设信号已经存储在变量signal中
% 使用findpeaks函数检测峰值
[pks, locs] = findpeaks(signal);
% 打印出检测到的峰值和对应的位置
disp('峰值:');
disp(pks);
disp('位置:');
disp(locs);
figure; 
plot(signal,'linewidth',1);axis tight;
hold on;
stem(locs,pks); %采用茎叶图绘制峰值
legend('orgin signal','peak');

在这里插入图片描述

图2 输入信号和峰值
图中红色圆圈标记的即峰值,可以看到峰值很多,这是因为它把很多局部的小的峰值也检测了出来。

设置最小阈值进行峰值检测

由于存在很多局部的小的峰值被错误的检测了出来,我们可以设置一个阈值来进行检测,参数"MinPeakHeight"可以设置最小检测峰值阈值,这里将阈值设置为1:

% 假设信号已经存储在变量signal中
[pks, locs] = findpeaks(signal,'MinPeakHeight',0.5);%设置阈值
% 打印出检测到的峰值和对应的位置
disp('峰值:');
disp(pks);
disp('位置:');
disp(locs);
figure; 
plot(signal,'linewidth',1);axis tight;
hold on;
stem(locs,pks); %采用茎叶图绘制峰值
legend('orgin signal','peak');

在这里插入图片描述

图3 设置阈值后的峰值检测
设置阈值后,提取到的峰值相对比较准确,但是在第3条竖线和第4条竖线上出现了两个峰值,如下图所示

在这里插入图片描述

图4 检测到的相近峰值

剔除相近峰值

信号的峰值似乎以固定间隔出现。然而,有些峰彼此非常接近。MinPeakDistance属性可用于滤除这些峰。此示例只考虑相隔6个采样点以上的峰值。

[pks, locs] = findpeaks(signal,'MinPeakHeight',0.5,...
     'MinPeakDistance',6);
% 打印出检测到的峰值和对应的位置
disp('峰值:');
disp(pks);
disp('位置:');
disp(locs);
figure; 
plot(signal,'linewidth',1);axis tight;
hold on;
stem(locs,pks); %采用茎叶图绘制峰值
legend('orgin signal','peak');

在这里插入图片描述

图5 设置阈值并剔除相近峰值

此时,检测的结果更为准确。

计算峰值间距

findpeaks函数的返回值:pks,locs分别保存了峰值的幅度和位置,峰值间距指的是相邻的两两峰值之间的间距,程序中打印出来的信息如下:

峰值:
  1 至 8 列
    1.3098   10.9858   10.9861    1.9470    5.8270    6.1719    3.1137    8.3133
  9 至 12 列
    8.3147    3.1122    6.1660    5.8235

位置:
  1 至 7 列
           3         301         601         901        1201        1501        1802
  8 至 12 列
        2101        2401        2702        3001        3301

我们采用差分函数对峰值的位置进行处理:

peakInterval = diff(locs);

由于峰值数为12,所以差分后就是11个数:

peakInterval =
   298   300   300   300   300   301   299   300   301   299   300

然后对间距求均值:

AverageDistance_Peaks = mean(diff(locs)) %对间距求均值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2066734.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

笔记小结:《利用python进行数据分析》之matplotlib入门

matplotlib入门,这一篇就够了! matplotlib API入门 matplotlib的通常引入约定是: In [11]: import matplotlib.pyplot as plt 在Jupyter中运行%matplotlib notebook(或在IPython中运行%matplotlib),就可…

代码随想录算法训练营第二十二天| 回溯算法理论基础 77. 组合 216.组合总和III 17.电话号码的字母组合

目录 一、回溯算法理论基础二、LeetCode 77. 组合思路C代码 二、LeetCode 216.组合总和III思路C代码 二、LeetCode 17.电话号码的字母组合思路C代码 总结 一、回溯算法理论基础 回溯法:回溯法是一种将问题遍历的结构抽象为树形结构,在解空间树种采取深度…

vxe-selectvxe-date-picker下拉框被遮问题

解决之法&#xff1a; html: // vxe-select组件 &#xff0c;要加transfer <vxe-select:placeholder"$t(button.selects)"v-model"item.ruleParamId":options"item.options?.map(val > ({label: val.paramName, value: val.id}))"chang…

【操作系统 / 系统编程】2025 秋招超详细复习指南 - 基于 Linux 环境的全面复习 - 持续更新(目前1.7w字)

操作系统 / 系统编程复习目录 一、进程概念1. 冯诺依曼1.1 外设1.2 IO1.3 数据流1.4 存储分级 && IO效率 2. OS2.1 作用&#xff1a;管理2.2 管理&#xff1a;先描述&#xff0c;再组织2.3 内存管理、进程管理、文件系统、驱动管理 3. 进程3.1 什么是进程3.2 为什么要有…

数学建模2024国赛时间及事项安排

2024年的全国大学生数学建模竞赛即将拉开帷幕。考虑到许多同学可能是首次参与此类赛事&#xff0c;尚不清楚如何进行有效的时间安排&#xff0c;博主在此整理了以往参赛的经验和时间管理策略&#xff0c;希望能为大家提供一些有益的参考&#xff0c;更从容地应对国赛。 本届全国…

定制开发AI智能名片商城小程序:重塑品牌曝光的创新推手

摘要&#xff1a;随着移动互联网技术的飞速发展&#xff0c;小程序作为一种轻量级应用形态&#xff0c;正逐步成为企业品牌传播与商业变现的重要渠道。本文将探讨在品牌定位中&#xff0c;如何将“定制开发AI智能名片商城小程序”作为品牌曝光的核心推手&#xff0c;通过强化品…

pikachu-Cross-Site Scripting通过攻略

反射型xss(get) 第一步&#xff1a;进入先将maxlength中的20修改大一些&#xff0c;以便我们可以输入更多的字符 第二步&#xff1a;输入<script>alert(1)</script>成功爆破 反射型xss(post) 第一步&#xff1a;点击提示得到用户名和密码登录 第二步&#xff1…

轻松备份和共享照片的Circled.me

什么是 Circled.me &#xff1f; Circled.me 旨在帮助人们在自己的服务器上轻松备份和共享照片、视频、相册。注重性能、低占用空间以及易于实施和使用。支持托管社区所需的一切&#xff0c;能够进行交流和交换照片、想法等&#xff0c;实现通过群聊等方式与您的圈子分享。 软件…

电脑资料被删除怎么办?这些方法帮你轻松找回!

在日常工作和生活中&#xff0c;电脑资料的安全存储至关重要。然而&#xff0c;有时我们可能会因为误操作或其他原因不小心删除了重要资料。这时&#xff0c;我们该如何应对呢&#xff1f;本文将为你提供几种有效的恢复方法&#xff0c;帮你轻松找回被删除的电脑资料。 一、撤…

MySQL如何判断一个字段里面是否包含汉字

SQL查询中&#xff0c;length() 和 char_length() 都是用来获取字符串长度的函数 在单字节字符集下&#xff08;如ASCII&#xff09;&#xff1a;每个字符通常占用1个字节&#xff0c;因此length()和char_length()在这类字符集中给出的结果是一样 在多字节字符集下&#xff0…

湖北省各市各地两化融合贯标、3A级认定申报奖补补助、申报条件材料、流程指南

盘点湖北省各市各地两化融合贯标、3A级认定申报奖补补助、申报条件材料、流程等内容&#xff0c;武汉市、黄石市、十堰市、宜昌市、襄阳市、鄂州市、荆门市、孝感市、荆州市、黄冈市、咸宁市、随州市,恩施土家族苗族自治州、仙桃市、潜江市、天门市、神农架林区有需要具体了解的…

OPPO手机短信删除了怎么恢复?三大解决办法助你找回

在快节奏的生活中&#xff0c;手机短信作为我们日常沟通的重要工具之一&#xff0c;往往承载着许多重要的信息&#xff0c;如验证码、银行通知、会议安排等。然而&#xff0c;不小心误删短信的情况时有发生&#xff0c;特别是对于OPPO手机用户而言&#xff0c;短信一旦删除&…

谷粒商城实战笔记-240~243-商城业务-购物车-页面环境搭建

文章目录 一&#xff0c;页面调整1&#xff0c;详情页增加“加入购物车”按钮 二&#xff0c;添加购物车后台实现详细步骤异步处理的优点 三&#xff0c;解决加购重复提交问题 这部分的主要内容&#xff1a; 从product模块的详情页点击加入购物车&#xff0c;发送请求到cart购物…

Kubernetes服务发布基础

一、Service 1.service基本介绍 service为一组提供服务的pod提供抽象的稳定的网络访问地址&#xff0c;主要用于网络服务&#xff0c;通过service定义&#xff0c;为客户端提供访问地址和负载均衡&#xff0c;屏蔽endport的变化。 在 kubernetes 中,pod 的IP 地址是动态变…

大数据面试-Zookeeper

你对Zookeeper的选举机制了解吗&#xff1f;为什么zk节点个数推荐奇数台&#xff1f;zk第一次启动的选举的细节了解吗&#xff1f; ‌ZooKeeper的选举机制‌是基于Paxos算法的一种分布式选举算法&#xff0c;用于在ZooKeeper集群中选择一个节点作为Leader&#xff0c;负责处理…

做外贸如何判断国外采购商公司规模

判断客户公司的规模&#xff0c;对于业务员来说很重要&#xff0c;这样在谈价格以及其他条款的时候才能掌握主动。一般要怎么去判断客户公司的规模呢?我们都是做实事的&#xff0c;实际经验很重要&#xff0c;做过和没做过的看多了就知道。最基本的信息是公司的注册时间及相关…

【python】Python中通过WHL文件离线安装需要的包最全面讲解

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【oracle】工具访问oracle提示-IO 错误: Got minus one from a read call

问题描述&#xff1a; 使用工具访问数据库时&#xff0c;提示IO 错误: Got minus one from a read call&#xff0c;在服务器上检查数据库正常&#xff0c;监听正常&#xff0c;连接数合理&#xff0c;防火墙没限制。最后定位sqlnet.ora配置限制了客户端访问。 解决&#xf…

四川财谷通信息技术有限公司解锁抖音小店新机遇

在数字经济蓬勃发展的今天&#xff0c;电商平台已成为推动商业创新、促进消费升级的重要力量。其中&#xff0c;抖音小店凭借其庞大的用户基础、精准的算法推荐以及高度活跃的社区氛围&#xff0c;迅速崛起为众多商家青睐的创业与营销新阵地。四川财谷通信息技术有限公司&#…

Groovy DSL从入门到项目实战(一)

Groovy是一门很灵活的Java扩展语言&#xff0c;支持弱类型、闭包、函数式编程等脚本语言的高级特性。因为小卷所在公司的船申报系统需要重构&#xff0c;对原先java硬编码的各种表单数据校验、后台业务校验使用规则脚本的形式进行剥离出来。而市面上像Jboss Drools这样的规则引…