SpatioSpectralDecomposition¶
Extract components that are most representative of a given "peak" signal.
This node has two alternative modes depending on the input ports used. First, one can provide unfiltered data into the data port. In this case, this node will separate the input signal to a "peak" signal and a "noise" signal using FIR filters designed based on the node's other parameters. For example, the default settings will find components that maximally emphasize the 8-15 Hz band while suppressing activity in the 4-7 Hz and 16-20 Hz bands. Second, one can provide pre-filtered signals directly to the peak_data port and the noise_data port. In that case, it is a good idea to make sure that the two bandpass filters that feed into this node have approximately (or exactly) the same filter order, which could be ensured by setting the order in those filters. The resulting components will usually have a better signal-to-noise ratio than the raw channels for the given frequency band or "peak" signal of interest. This filter is meant to operate on continuous data, i.e., it should not be preceded by a Segmentation node. Also, this filter can adapt itself online, i.e., without the need to buffer calibration data. However, keep in mind that initially the filter will not be perfectly adjusted, and the exact sources that it picks up may change over time, especially at the beginning. If you are using machine learning among the downstream nodes, these could be negatively impacted by this.
Version 1.1.0
Ports/Properties¶
data¶
Unfiltered data (will be filtered in node).
peak_data¶
Data already filtered to the peak freq band.
noise_data¶
Data already filtered to the noise freq bands.
out_data¶
Output data.
peak_frequency_bounds¶
Lower and upper frequency bounds for the peak data. The upper frequency band value is non inclusive.
peak_noise_gap¶
Gap, in Hz, between the peak frequencies and the noise 'side lobes'.
noise_length¶
Size of the noise 'side lobes', in Hz.
filter_order¶
Filter used used for the FIRFilter when extracting peak and noise data from the data packet.
nof¶
Number of spatial filters to learn. This determines the number of output channels. The first few filters are the most useful, so only a small number of filters is usually necessary.
streaming_update¶
Perform streaming (online) updates. If enabled, the filter will update itself in an online fashion; otherwise it requires a non-streaming calibration recording at first.
half_time¶
Time constant of adaptive filter, in seconds. Data that lies this many seconds in the past will be weighted half as much as the most recent data when designing the filter, and data twice as old will be weighted by 1/4, etc. Can also be thought of as the half-time of an exponentially weighted filter.
shrinkage¶
Shrinkage regularization parameter. This parameter (between 0 and 1) controls the amount of shrinkage regularization applied to the filter estimates. Usually, only a small amount is necessary to prevent degenerate solutions, e.g., when channels are linearly dependent.
model_format¶
Format of the model of this node. The packet format is a packet with all relevant matrices as separate streams. The legacy format is a dictionary of 3 dictionaries (filters, peak_cov, noise_cov) of matrices, one per stream.
set_breakpoint¶
Set a breakpoint on this node. If this is enabled, your debugger (if one is attached) will trigger a breakpoint.
metadata¶
User-definable meta-data associated with the node. Usually reserved for technical purposes.