Matlab中利用findpeaks找波峰和波谷
2015-12-11 17:53
507 查看
利用 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'); %绘制最大值点
实现的波谷波形
最后的波峰波谷波形
原波形 为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'); %绘制最大值点
实现的波谷波形
最后的波峰波谷波形
相关文章推荐
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua实现split函数
- Lua常用时间函数使用实例
- Lua函数与字符串处理简明总结
- Lua学习笔记之表和函数
- Lua中实现sleep函数功能的4种方法
- Lua函数用法研究
- Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记
- PowerShell函数简明教程
- 探索PowerShell(十一)函数介绍