FILTER Name
FILTER
Purpose
This function returns a smoothed version of the input vector.
Category
Time Series Analysis
Calling Sequence
Result = FILTER( Vector, [Width], [Window] )
Inputs
Vector: An vector of type floating point and length N.
Optional Inputs
Width: The width, of type integer, of the smoothing window.
Window: A string containing the name of the smoothing window to
return. Options are 'boxcar', 'gaussian', 'hanning',
'triangle'. The default is a boxcar window.
Keyword Parameters
BOXCAR: Sets the smoothing window to a boxcar filter. This is
the default. If set to a value, it replaces Width.
EDGE_TRUNCATE: Set this keyword to apply the smoothing to all points.
If the neighbourhood around a point includes a point outside
the array, the nearest edge point is used to compute the
smoothed result. If EDGE_TRUNCATE is not set, the points near
the end are replaced with NaNs.
FILTER: A vector containing the filter window to use. This overrides
the window requested in the Window input. This also returns
the filter after use.
NAN: Set this keyword to ignore NaN values in the input array,
provided there is at least one defined value nearby. The
default is to return NaNs wherever they occur.
NO_NAN: Obsolete version of NAN keyword retained for compatibility
but no longer used.
START_INDEX: The location of the centre of the window for the first
averaged output value, in units of Vector indices. Values must
be greater than 0. The default is 0.
STEP: An integer defining the step size for window translation, in
units of Vector indices. The default is 1.
TRIANGLE: Sets the smoothing window to a triangle filter. The default
is a boxcar filter. If set to a value, it replaces Width.
WRAP_EDGES: If set, the vector is treated as being cyclic and the
ends are joined together when smoothing.
Outputs
Result: Returns the smoothed version of Vector.
Uses
dimension.pro
filter_window.pro
plus.pro Procedure
This function manually convolves the input vector with the filter.
Example
Create a vector of daily data and a sinusoid for a year.
x = randomn( seed, 365 ) + sin( 6.28 * findgen( 365 ) / 365. )
Smooth x with a boxcar filter of 7 days, wrapping the edges together.
result = filter( x, 7, 'boxcar', /wrap_edges )
Modification History
Written by: Daithi A. Stone, 2000-06-28.
Modified: DAS, 2000-07-06 (removed LENGTH.pro, added
DIMENSION.pro).
Modified: DAS, 2001-01-24 (added reform(vector) line).
Modified: DAS, 2003-11-19 (added Window input and FILTER
keyword, edited style).
Modified: DAS, 2004-07-14 (allowed input of complex vectors)
Modified: DAS, 2005-08-05 (replaced sum.pro use with IDL's
total; added NAN keyword for consistency with other
routines; removed functionality of NO_NAN keyword;
removed constants.pro use; streamlined coding)
Modified: DAS, 2005-10-21 (removed requirement of odd WIDTH;
allowed operation with WIDTH=1)
Modified: DAS, 2009-01-05 (added and implemented START_INDEX and
STEP keywords)