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, onlygaussianis 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_edgesoption 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))))