Butterworth filter for a vector/scalar field
FF = bwfilterf(F,FSIZE,ORDER) applies a lowpass Butterworth filter
to the vector/scalar field F with a cutoff size FSIZE (in grid units)
and order ORDER. Dimensions of FSIZE and ORDER must match the dimension
of the field F. If FSIZE and/or ORDER are scalar, the same cutoff and
order is applied to each field of F. bwfilterf first Fourier-transforms
the field(s), applies a low/high-pass transfer function and inverse
Fourier transforms. Typical values for FSIZE are around 1-10, and typical
values for ORDER are in the range 2-10 (positive for a low-pass filter,
negative for a high-pass filter). Sharp filters (ie large values of
FSIZE) may produce oscillations.
FF = bwfilterf(F,FSIZE,ORDER,OPT), where OPT is a string that may
contain one or several substrings:
'low', 'high': specifies a lowpass (by default) or highpass filter
'trunc': truncates the borders of width FSIZE, which are
affected by the filtering.
The X and Y dimensions of the fields must be even. If one of the
dimension is odd, the last column/row is discarded.
If no output argument, the result is displayed by showf.
Note 1: A highpass filter of order ORDER is equivalent to a lowpass
filter of order -ORDER.
Note 2: If there are missing data in the field, it is better to first
interpolate the data. See interpf.