当前位置: 首页 > news >正文

Matlab中利用findpeaks找波峰和波谷


利用 findpeaks 工具箱函数可以找原始波形中的波峰,但是当单周期里出现多个极值,时findpeaks的判断会将极值也算入。

原波形 为250HZ的正弦波型,

findpeaks 寻找峰值函数


pks = findpeaks(data)

[pks,locs] = findpeaks(data) ------pks 对应峰值,locs 对应峰值位数

[...] = findpeaks(data,'minpeakheight',mph)----mph 设定峰值的最小高度

[...] = findpeaks(data,'minpeakdistance',mpd)----mpd 设定两峰值间的最小间隔数


原始波形





波峰查找和描绘

>> [maxv,maxl]=findpeaks(m,'minpeakdistance',100); %maxv峰峰值点  maxl:峰峰值点对应的位置   最小间隔=100       

>> hold on
>> plot(t,m)                                                   %绘制原波形
>> plot(maxl,maxv,'*','color','R');                %绘制最大值点



通过增加 最小间隔条件 可以过滤掉单周期内的干扰极值          mpb的值 建议取       周期/1.5   具体看自己的波形做调整



波谷查找和描绘


由于findpeaks不带直接查找波谷,因此需要用些方法来查找,网上的diff方法,不适用于单周期内有干扰极值的情况。

因此我还是采用了findpeaks

首先  将原波形数据 “取反”      m=原始数据(数组类型)

nm=3000-m ;    %  3000是原始数据中的最大值限度 

取反后的波形如图


然后再使用findpeaks 找出取反后的波形中的峰峰值的位置即可

程序:

nm=3000-m(t);% 数组整体减 

[minv,minl]=findpeaks(nm,'minpeakdistance',100); %maxv峰峰值点  maxl:峰峰值点对应的位置

hold on

plot(t,m)

plot(minl,m(minl),'*','color','G');                %绘制最大值点



实现的波谷波形



最后的波峰波谷波形



http://www.xdnf.cn/news/832195.html

相关文章:

  • 招生|清华大学天基网络与通信全国重点实验室
  • 约束条件(constraint)
  • 基于javaweb+mysql的springboot物业管理系统(java+springboot+maven+ssm+thymeleaf+html+jquery+mysql)
  • win11检测工具在哪 win11检测工具位置介绍
  • c盘fakepath是什么意思_C盘越用越大?告诉你什么文件可以删!
  • SVN客户端(Windows)——Tortoise SVN(中文版 )的下载及安装
  • 【网页设计期末大作业源代码】使用HTML5+CSS3+JavaScript十分钟快速制作一个简约大气设计类静态网站|自适应响应式|自制超简单的美术公司网页|直接可以修改使用|适合新手超友好易上手新手必
  • 如何清理电脑浏览器缓存,4款常用浏览器清理缓存的方法
  • 搜索引擎的网站登录入口
  • 新手入门C语言
  • SPSS是什么?
  • 17 VRRP基础(虚拟路由器冗余协议)
  • 计算机网络技术专业,热门就业方向和就业前景
  • 什么是对象数组
  • UFT使用技巧
  • SqlCommand的三种方法以及封装SqlHelper类
  • “String.h” 源代码总结
  • 什么是Symbian
  • Windows修改默认路由(Default Gateway)
  • sleep、usleep、nanosleep函数
  • CAXA3D实体设计2023安装教程(非常详细)从零基础入门到精通,看完这一篇就够了_caxa2023(2)
  • maya2016到2022在线文档地址分享
  • latin1详解
  • 项目需求分析5大常见问题及解决方案
  • 相似度算法
  • C++:OutputDebugString作用(以VS2019为演示例子)
  • 【计算机视觉】基础图像知识点整理
  • 一.基本的select语句
  • 50种网络故障及解决方法,还不赶紧收藏!
  • MySQL数据库基础学习入门教程(非常详细)