Rank: 64 based on 927 downloads (last 30 days) and 24 files submitted
photo

Tom O'Haver

E-mail
Company/University
U. of Maryland College Park

Personal Profile:

Retired university professor. Google me.

Professional Interests:
http://terpconnect.umd.edu/~toh

 

Watch this Author's files

 

Files Posted by Tom View all
Updated   File Tags Downloads
(last 30 days)
Comments Rating
19 Mar 2014 Screenshot iSignal 3 Interactive smoothing, differentiation, peak sharpening and measurement of time-series signals. Author: Tom O'Haver signal processing, data import, chemistry, data exploration, medical, pharmaceutical 66 10
  • 5.0
5.0 | 3 ratings
19 Mar 2014 Screenshot iPeak: Interactive Peak Detector (Version 5.96) Keypress operated interactive peak detector function. Author: Tom O'Haver analytical chemistry, chemistry, instrumental analysis, peak detection, physics, signal processing 70 26
  • 4.75
4.8 | 8 ratings
13 Mar 2014 Screenshot Interactive Peak Fitter (Version 10) Keyboard operated peak fitting function for time-series signals. Author: Tom O'Haver chemistry, physics, peak fitting, curve fitting, time series, decomposition 48 21
  • 3.0
3.0 | 4 ratings
11 Feb 2014 Screenshot Peak Fitter Command-line peak fitter for time-series signals. Version 5, February 2014 Author: Tom O'Haver chemistry, curve fitting, decomposition, peak fitting, physics, time series 161 65
  • 4.5
4.5 | 14 ratings
14 Nov 2013 Screenshot Peak finding and measurement Function to locate and measure the positive peaks and valleys in noisy data sets. Author: Tom O'Haver chemistry, physics, peak detection, analytical chemistry, instrumental analysis, tom 137 37
  • 4.8
4.8 | 21 ratings
Comments and Ratings by Tom View all
Updated File Comments Rating
15 Feb 2014 iSignal 3 Interactive smoothing, differentiation, peak sharpening and measurement of time-series signals. Author: Tom O'Haver

Hmmmm, "range" is a built-in Matlab function, or at least it has been in several recent versions. Here's the definition; you can copy and paste this into the editor and save it in your path.

function y = range(x,dim)
%RANGE Sample range.
% Y = RANGE(X) returns the range of the values in X. For a vector input,
% Y is the difference between the maximum and minimum values. For a
% matrix input, Y is a vector containing the range for each column. For
% N-D arrays, RANGE operates along the first non-singleton dimension.
%
% RANGE treats NaNs as missing values, and ignores them.
%
% Y = RANGE(X,DIM) operates along the dimension DIM.
%
% See also IQR, MAD, MAX, MIN, STD.

% Copyright 1993-2004 The MathWorks, Inc.
% $Revision: 2.8.2.3 $ $Date: 2004/07/05 17:03:18 $

if nargin < 2
y = max(x) - min(x);
else
y = max(x,[],dim) - min(x,[],dim);
end

14 Feb 2014 Peak Fitter Command-line peak fitter for time-series signals. Version 5, February 2014 Author: Tom O'Haver

As suggested by Alex, I've uploaded version 5 of peakfit.m that includes the option to specify a different peak-shape for each peak, designated by using vectors rather than scalars as the 5th and 6th input arguments (peakshape and the 'extra' parameter for variable-shape types).

10 Feb 2014 iPeak: Interactive Peak Detector (Version 5.96) Keypress operated interactive peak detector function. Author: Tom O'Haver

Oops, I forgot to include that function. I'll fix it, but in the meantime, here it is:

function [index,closestval]=val2ind(x,val)
% Returns the index and the value of the element of vector x that is closest to val
% If more than one element is equally close, returns vectors of indicies and values
% Tom O'Haver (toh@umd.edu) October 2006
% Examples: If x=[1 2 4 3 5 9 6 4 5 3 1], then val2ind(x,6)=7 and val2ind(x,5.1)=[5 9]
% [indices values]=val2ind(x,3.3) returns indices = [4 10] and values = [3 3]
dif=abs(x-val);
index=find((dif-min(dif))==0);
closestval=x(index);

08 Feb 2014 Peak Fitter Command-line peak fitter for time-series signals. Version 5, February 2014 Author: Tom O'Haver

Prompted by Alex's suggestion, I am working on version 5 of peakfit.m that includes the option to specify a different line-shape for each peak. I'll upload it here when it's 'completely' debugged, but it mostly works now and you can download it from http://terpconnect.umd.edu/~toh/spectrum/peakfit.m
Bug reports welcome.

05 Feb 2014 iPeak: Interactive Peak Detector (Version 5.96) Keypress operated interactive peak detector function. Author: Tom O'Haver

iPeak version 5.9, submitted this morning, adds the percent fitting as the 6th column of the peak table. Thanks to helin for making this suggestion. Also available on http://terpconnect.umd.edu/~toh/spectrum/PeakFindingandMeasurement.htm

Comments and Ratings on Tom's Files View all
Updated File Comment by Comments Rating
16 Apr 2014 iSignal 3 Interactive smoothing, differentiation, peak sharpening and measurement of time-series signals. Author: Tom O'Haver Velakur, Karthik

19 Feb 2014 iPeak: Interactive Peak Detector (Version 5.96) Keypress operated interactive peak detector function. Author: Tom O'Haver Jochen

Fantastic work! Thanks a lot!

19 Feb 2014 iPeak: Interactive Peak Detector (Version 5.96) Keypress operated interactive peak detector function. Author: Tom O'Haver Jochen

15 Feb 2014 iSignal 3 Interactive smoothing, differentiation, peak sharpening and measurement of time-series signals. Author: Tom O'Haver O'Haver, Tom

Hmmmm, "range" is a built-in Matlab function, or at least it has been in several recent versions. Here's the definition; you can copy and paste this into the editor and save it in your path.

function y = range(x,dim)
%RANGE Sample range.
% Y = RANGE(X) returns the range of the values in X. For a vector input,
% Y is the difference between the maximum and minimum values. For a
% matrix input, Y is a vector containing the range for each column. For
% N-D arrays, RANGE operates along the first non-singleton dimension.
%
% RANGE treats NaNs as missing values, and ignores them.
%
% Y = RANGE(X,DIM) operates along the dimension DIM.
%
% See also IQR, MAD, MAX, MIN, STD.

% Copyright 1993-2004 The MathWorks, Inc.
% $Revision: 2.8.2.3 $ $Date: 2004/07/05 17:03:18 $

if nargin < 2
y = max(x) - min(x);
else
y = max(x,[],dim) - min(x,[],dim);
end

15 Feb 2014 iSignal 3 Interactive smoothing, differentiation, peak sharpening and measurement of time-series signals. Author: Tom O'Haver Teresa

Hi Tom,

I tried to run the sunspots data (from your website) through the iSignal's frequency spectrum function but MATLAB returned the following error:

----------
Undefined function 'range' for input arguments of type 'double'.
Error in isignal>PlotFrequencySpectrum (line 1805)
f=((plotrange-1)./range(xx));
Error in isignal>ReadKey (line 1110)
PlotFrequencySpectrum(X,Y,xo,dx,plotmode,xmode)
Error while evaluating figure KeyPressFcn
----------

Why is it so and how do I fix it?
You help will be much appreciated, thank you!

Contact us