Home > m > sigproc > time_domain > polydetrend.m

polydetrend

PURPOSE ^

POLYDETREND detrends the input data vector with a polynomial.

SYNOPSIS ^

function y = polydetrend(varargin)

DESCRIPTION ^

 POLYDETREND detrends the input data vector with a polynomial.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 DESCRIPTION: POLYDETREND detrends the input data vector with a polynomial.
              This function is meant to be used by other ltpda_ functions.
              To work with Analysis Objects, use ltpda_polydetrend which calls
              this function.

 CALL:        y = polydetrend(x,order);

 INPUTS:      x     - vector of x values
              order - order of polynomial to fit and subtract

 OUTPUTS:     y   - detrended data

 VERSION:     $Id: polydetrend.m,v 1.2 2007/07/16 12:52:21 ingo Exp $

 HISTORY:     30-05-07 M Hewitson
                 Creation

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function y = polydetrend(varargin)
0002 % POLYDETREND detrends the input data vector with a polynomial.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: POLYDETREND detrends the input data vector with a polynomial.
0007 %              This function is meant to be used by other ltpda_ functions.
0008 %              To work with Analysis Objects, use ltpda_polydetrend which calls
0009 %              this function.
0010 %
0011 % CALL:        y = polydetrend(x,order);
0012 %
0013 % INPUTS:      x     - vector of x values
0014 %              order - order of polynomial to fit and subtract
0015 %
0016 % OUTPUTS:     y   - detrended data
0017 %
0018 % VERSION:     $Id: polydetrend.m,v 1.2 2007/07/16 12:52:21 ingo Exp $
0019 %
0020 % HISTORY:     30-05-07 M Hewitson
0021 %                 Creation
0022 %
0023 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0024 
0025 if nargin == 2
0026   x     = varargin{1};
0027   order = varargin{2};
0028   t     = [1:length(x)]';
0029 elseif nargin == 3
0030   t     = varargin{1};
0031   x     = varargin{2};
0032   order = varargin{3};
0033 else
0034   error('### incorrect inputs.');
0035 end
0036 
0037 % fit polynomial
0038 p = polyfit(t, x, order);
0039 
0040 % make polynomial series
0041 py = polyval(p, t);
0042 
0043 % detrend
0044 y = x - py;
0045 
0046 % END

Generated on Mon 31-Mar-2008 13:54:54 by m2html © 2003