No License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
Auto Peak Finder & Analyser

4.0 | 2 ratings Rate this file 5 Downloads (last 30 days) File Size: 3.17 KB File ID: #20221 Version: 1.0

Auto Peak Finder & Analyser



09 Jun 2008 (Updated )

Finds peaks, locations, fwhms and area in signal.

| Watch this File

File Information

Very lean an simple code that automatically finds major peaks, their locations, fwhms and area in a given signal y versus x. Requires no input parameters. The output is a matrix with peaks sorted in rows and following columns:

output = peak No. | peak Y | peak X | peak fwhm | peak area

MATLAB release MATLAB 7.5 (R2007b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (9)
08 Dec 2012 leo

leo (view profile)

Thanks. It has been very helpful

10 Mar 2012 John

John (view profile)

I got an error in line 82
"Subscript indices must either be real positive integers or logicals".
because in some case ipeak-indfwhms equals a negative number

Comment only
21 Jan 2010 Eric Diaz

The above error is a flaw in the code. The programmer forgot to include a check for what happens during shifting of signal when the peak index is too small or too large (i.e., at the edges of the matrix).

One could include the following code just before the shifting to bypass all peaks near the edges. Just define number of elements to ignore on each edge.

% check if index too big
if ipeak >= length(y)-numElements

% check if index too small
if ipeak <= numElements

26 Apr 2009 sam s

sam s (view profile)

when i launch this programm i have an error :

Subscript indices must either be real positive integers or logicals.

Error in ==> autopeak at 75
y_shift2(ifwhms(1)-1:ifwhms(1)+1) = y_shift2(ifwhms(1)-1:ifwhms(1)+1) + peak(i);

Comment only
25 Jan 2009 Donald

Donald (view profile)

yy = smooth(y) smooths the data in the column vector y using a moving average filter. Results are returned in the column vector yy. The default span for the moving average is 5.

The first few elements of yy are given by

yy(1) = y(1)
yy(2) = (y(1) + y(2) + y(3))/3
yy(3) = (y(1) + y(2) + y(3) + y(4) + y(5))/5
yy(4) = (y(2) + y(3) + y(4) + y(5) + y(6))/5

So if you do not have the MATLAB "Curve Fitting Toolbox", you can make your own smooth function from the above description.

Comment only
17 Jan 2009 Claus Jeppesen

Theo...what version are you using?? Smooth.m is not a standard file in my matlab version. Maybe you could upload it

Comment only
24 Nov 2008 Theo

Theo (view profile)

smooth works fine, it's a standard function in my matlab. maybe you don't have the right addons

Comment only
20 Nov 2008 Martin Barlett

Ditto -- need to add your smooth function or remove this posting!

Comment only
06 Nov 2008 Rose Cory

Am I missing a smooth.m file to run this code?

Comment only

Contact us