在找一段信号的波峰波谷的过程中,除了可以用matlab中自带的findpeaks函数,这里给出自己写的找波峰的函数
function [k,v]=findpeaks(x,m,w)
输入:
1 只有一个输入x,表示要找到峰值的信号;
2 m,表示模式,有2种模式,
'q'表示二次插值
'v'表示找到波谷而不是波峰
3 w,表示宽度公差
输出:
k,依次存放峰值的横坐标,当有多个峰值时,是个向量;
v,依次存放峰值的纵坐标。
function [k,v]=findpeaks(x,m,w)
%FINDPEAKS finds peaks with optional quadratic interpolation [K,V]=(X,M,W)
%
% Inputs: X is the input signal (does not work with UInt datatype)
% M is mode:
% 'q' performs quadratic interpolation
% 'v' finds valleys instead of peaks
% W is the width tolerance; a peak will be eliminated if there is
%