eelbrain.NDVar.smooth
- NDVar.smooth(dim, window_size=None, window='hamming', mode='center', window_samples=None, fix_edges=False, name=None)
Smooth data by convolving it with a window
- Parameters:
dim (str) – Dimension along which to smooth.
window_size (scalar) – Size of the window (in dimension units, i.e., for time in seconds). For finite windows this is the full size of the window, for a gaussian window it is the standard deviation.
window (str | tuple) – Window type, input to
scipy.signal.get_window()
. For example ‘boxcar’, ‘triang’, ‘hamming’ (default). For dimensions with irregular spacing, such asSourceSpace
, onlygaussian
is implemented.mode ('left' | 'center' | 'right' | 'full') –
Alignment of the output to the input relative to the window:
left
: sample in the output corresponds to the left edge of the window.center
: sample in the output corresponds to the center of the window.right
: sample in the output corresponds to the right edge of the window.full
: return the full convolution. This is only implemented for smoothing time axis.
window_samples (scalar) – Size of the window in samples (this parameter is used to specify window size in array elements rather than in units of the dimension; it is mutually exclusive with
window_size
).fix_edges (bool) – Standard convolution smears values around the edges resulting in some data loss. The
fix_edges
option renormalizes the smoothing window when it overlaps an edge to make sure thatx.smooth('time').sum('time') == x.sum('time')
. Only implemented formode='center'
).name (str) – Name for the smoothed NDVar.
- Returns:
smoothed_ndvar – NDVar with identical dimensions containing the smoothed data.
- Return type:
Notes
To perform Gaussian smoothing with a given full width at half maximum, the standard deviation can be calculated with the following conversion:
>>> std = fwhm / (2 * (sqrt(2 * log(2))))