mfilt - general-purpose median filter for WFDB records
-l length [ options ... ]
mfilt can be used to apply a median filter
of any desired length to any desired section of a database record. The
length is expressed in samples (i.e., each output sample is the median of
length input samples). Median filters can be much more effective than any
type of linear filter for removing impulse noise from signals; they are
not particularly useful for removing persistent noise, however. Generally,
the shortest effective median filter is the one that should be used, to
minimize the aliasing effects resulting from the non-linear characteristics
of the filter.
- -f time
- Filter from the specified time on the
input record (default: start at the beginning of the record).
- Print a
- Read the signal files in high-resolution mode (default:
standard mode). These modes are identical for ordinary records. For multifrequency
records, the standard decimation of oversampled signals to the frame rate
is suppressed in high-resolution mode (rather, all other signals are resampled
at the highest sampling frequency).
- -i record
- Use the specified record for
input (default: record 16).
- -l n
- Use an n-point median.
- -n record
- Write the
output signals to record.dat, using the same specifications as the input
signals, and create a header file for the specified record. This option
overrides -o if both are used.
- -o record
- Use the specified record for output
(default: record 16). If the output record header file specifies fewer
signals than are present in the input, any extra input signals are discarded.
- -t time
- Filter until the specified time on the input record (default: go
to the end of the record).
In the present implementation, the same filter
is applied to each input signal. For each output sample, an array of length
input samples centered on the time of interest is sorted. (More efficient
algorithms for finding the median exist, especially for large odd values
of length; see, for example, Numerical Recipes.) If length is odd, the
output is the middle value from the sorted array and there is no phase
shift; otherwise, the output is the average of the two middle values from
the array and there is a phase shift of one-half of the sampling interval.
If necessary, the output is padded at the end to obtain equal numbers
of input and output samples.
It may be necessary to set and export
the shell variable WFDB (see setwfdb(1)
A 3-point median filter,
applied to the first 5 minutes of record 100 to produce a new record 100m:
George B. Moody (email@example.com)
mfilt -l 3 -i 100 -n 100m
Table of Contents
Up: WFDB Applications Guide
Please e-mail your comments and suggestions to firstname.lastname@example.org, or post them to:PhysioNet
MIT Room E25-505A
77 Massachusetts Avenue
Cambridge, MA 02139 USA
Updated 8 March 2019