BesselFilter¶
class BesselFilter(settings: Optional[dict] = None)
Bases: MetaFilter
Subclass for defining a low-pass Bessel filter to be applied to a dataset
Public Methods¶
- BesselFilter.close_resources(channel: int | None = None) None¶
Perform any actions necessary to gracefully close resources before app exit. If channel is not None, handle only that channel, else close all of them.
- Parameters:
channel (Optional[int]) – channel ID
- BesselFilter.get_empty_settings(globally_available_plugins: Dict[str, List[str]] | None = None, standalone: bool = False) Dict[str, Dict[str, Any]]¶
Declare the settings this filter exposes, on top of the base contract.
Called by poriscope when the plugin is instantiated or reconfigured, to build the settings dialog and to sanity-check whatever the user enters; the accepted values are then readable through
self.settings. Seeget_empty_settings()for the structure of the dict and whatType,Value,Min,Max,OptionsandUnitsmean in it, and for the reserved keys the GUI builds file pickers from.The keys this plugin adds:
Cutoff(Hz) - the -3 dB corner frequency of the low-pass.Samplerate(Hz) - the rate of the data to be filtered, which sets the normalised frequency the coefficients are built at.Poles- the filter order, 2 to 10 in even steps. Higher is a steeper roll-off and a longer settling time on an event edge.
- Parameters:
- Returns:
the dict that must be filled in to initialize the filter
- Return type:
- BesselFilter.reset_channel(channel: int | None = None) None¶
Reset the state of a specific channel for a new operation or run. If channel is not None, handle only that channel, else reset all of them. No-op here, since this filter holds no persistent per-channel state between calls.
- Parameters:
channel (Optional[int]) – channel ID
Private Methods¶
- BesselFilter._apply_filter(data: ndarray[tuple[int, ...], dtype[float64]]) ndarray[tuple[int, ...], dtype[float64]]¶
Apply the specified filter to the data, callable only privately. Must be implemented by subclasses.
- Parameters:
data (npt.NDArray[np.float64]) – The data to be filtered
- Returns:
The filtered data
- Return type:
npt.NDArray[np.float64]
- BesselFilter._finalize_initialization() None¶
Apply the provided filter paramters and intialize any internal structures needed by self.apply_filter(). Should Raise if initialization fails, but corner cases should be handled by _validate_settings already
- BesselFilter._init() None¶
Perform additional initialization specific to the algorithm being implemented. Must be implemented by subclasses.
This function is called at the end of the class constructor to perform additional initialization specific to the algorithm being implemented. kwargs provided to the base class constructor are available as class attributes.
- BesselFilter._validate_settings(settings: dict) None¶
Validate that the filter_params dict contains the correct information for use by the subclass. Must be implemented by subclasses.
- Parameters:
settings (dict) – A dict specifying the parameters of the filter to be created. Required keys depend on subclass.
- Raises:
ValueError – If the settings dict does not contain the correct information for the given subclass.