View Raw SPL
/*****************************************************************************
* *
* MEDFILT1.SPL Copyright (C) 2013 DSP Development Corporation *
* All Rights Reserved *
* *
* Author: Randy Race *
* *
* Synopsis: Median filtering of a series *
* *
* Revisions: 4 Jun 2013 RRR Creation *
* *
*****************************************************************************/
#if @HELP_MEDFILT1
MEDFILT1
Purpose: Performs median filtering of a series.
Syntax: MEDFILT1(series, n)
series - the input series
n - an integer, the block size
Returns: A series or table
Example:
W1: 1..5
W2: medfilt1(w1, 3)
returns the series {1, 2, 3, 4, 4}
Remarks:
MEDFILT1 computes a moving median similar to MOVMEDIAN where
the beginning and end points of the series are assumed to be
zero.
See MEDFILT to perform 2D median filtering on an array or image.
See Also:
Medfilt
Median
Movmedian
#endif
/* modified moving median for a series */
ITERATE medfilt1(s, kernel, blocksize)
{
local start;
/* unused blocksize parameter for compatibility */
if (argc < 2)
{
if (argc < 1) error("medfilt1 - input series required");
kernel = 3;
}
/* extraction start */
start = (kernel > 0) ? ceil(kernel / 2) : 1;
/* extract end segments from movmedian result */
return(extract(movmedian(s, kernel, 0), start, length(s), 0.0));
}