Skip to content

← neural package

FilterBankSourcePowerComodulation

Extract signal components across multiple bands whose variance optimally correlates with some target variable.

FBSPoC generalizes the basic SPoC method to multiple bands (yielding number of bands times number of pattern pairs times 2 channels), and like SPoC it can be used as an adaptive preprocessing step for a multichannel signal, such as EEG, EMG, or MEG, whose variance shall subsequently be used in a regression setup (e.g., to predict some continuous target variable, for instance some cognitive states). The resulting components will usually yield better spectral features than the raw channels, leading to better prediction performance. This node will calibrate itself if it receives a non-streaming (offline) chunk that has a time, space, and instance axis, and which has a target value for each instance (similarly to how machine learning nodes operate). Instances correspond to labeled trials, the space axis represents the channels which are being filtered, and time are the time points of each trial segment. FBSPoC should be preceded at least by a highpass filter (e.g., FIR or IIR prior to segmentation). FBSPoC can be used in all settings where FBCSP would be used, and with the same benefits over SPoC as FBCSP has over CSP. The difference vs. FBCSP is that FBSPoC can predict continuous target variables. Since FBSPoC will generate a relatively large number of features compared to SPoC (by default on the order of 30), many of which are going to be uninformative, it is advisable to use a sparse regression method, such as LASSO regression on the resulting features. Tip: a continuous time series with markers can be segmented into multiple labeled trials / segments using the Assign Target Markers node followed by the Segmentation node. Version 1.0.0

Ports/Properties

data

Data to process.

  • verbose name: Data
  • default value: None
  • port type: DataPort
  • value type: Packet (can be None)
  • data direction: INOUT

nof

Number of pattern pairs to compute per band. This determines the number of output channels for the band ( which is 2x this value) and thus the dimensionality of the feature space. Typical values are 2-4; while one can generate more features ( up to the number of input channels), these will be increasingly less useful to the classifier.

  • verbose name: Number Of Pattern Pairs Per Band
  • default value: 3
  • port type: IntPort
  • value type: int (can be None)

cov_lambda

Covariance regularization parameter. This parameter (between 0 and 1) controls the amount of shrinkage regularization applied to the covariance matrix estimates. Usually, only a small amount is necessary to prevent degenerate solutions, e.g., when channels are linearly dependent.

  • verbose name: Covariance Regularization Parameter
  • default value: 0.001
  • port type: FloatPort
  • value type: float (can be None)

bands

Frequency bands of interest. This is a list of pairs of [low, high] entries, each of which defines another frequency band of interest. Example syntax: [[10,15],[7,30],[15,25]].

  • verbose name: Frequency Bands
  • default value: [[0.5, 3], [4, 7], [8, 12], [13, 30], [31, 42]]
  • port type: ListPort
  • value type: list (can be None)

min_fft_size

Minimum size of the FFT used in spectrum calculation. The chosen value is the greater of this and the next power of 2 greater than the length of the signal.

  • verbose name: Min Fft Size
  • default value: 256
  • port type: IntPort
  • value type: int (can be None)

window_func

Type of window function to use. The data can optionally be windowed using this function, which is especially useful when multiple small overlapped windows are used.

  • verbose name: Window Function
  • default value: hann
  • port type: EnumPort
  • value type: str (can be None)

window_param

Window parameter. Needed to determine the shape of the window if using kaiser, gaussian, slepian, or chebwin.

  • verbose name: Window Parameter
  • default value: None
  • port type: ListPort
  • value type: list (can be None)

window_length

Length of overlapped windows in case of Welch spectral estimation, in samples. Using a smaller value (e.g., 1/4-1/8th of the chunk length) yields a smoother spectrum. The default is 1/2 of the chunk length.

  • verbose name: Window Length
  • default value: None
  • port type: IntPort
  • value type: int (can be None)

overlap_samples

Number of samples of overlap between successive windows. This determines by how much successive sub-windows are overlapped. If not given, defaults to half of the sub-window length. Can also be given as a value between 0 and 1, which is then taken as a fraction of the sub-window length (e.g., 0.8).

  • verbose name: Overlap Between Sub-Windows
  • default value: None
  • port type: FloatPort
  • value type: float (can be None)

initialize_once

Do not recalibrate on subsequent offline chunks, even if they include target labels. If False, this node will recalibrate itself on any offline chunk that has data plus target labels.

  • verbose name: Calibrate Only Once
  • default value: True
  • port type: BoolPort
  • value type: bool (can be None)

block_size

If the size of the input matrix is too big, we choose perform some of the operation on smaller blocks rather on all trails using full vectorization.

  • verbose name: Block Size
  • default value: None
  • port type: IntPort
  • value type: int (can be None)

dont_reset_model

Do not reset the model when the preceding graph is changed. Normally, when certain parameters of preceding nodes are being changed, the model will be reset. If this is enabled, the model will persist, but there is a chance that the model is incompatible when input data format to this node has changed.

  • verbose name: Do Not Reset Model
  • default value: False
  • port type: BoolPort
  • value type: bool (can be None)

robust_flag

If the flag is set the covariance calculation is done robustly.

  • verbose name: Robust Covariance Calculation
  • default value: False
  • port type: BoolPort
  • value type: bool (can be None)

target_field

The name of the instance data field that contains the target variable to be correlated. This parameter will be ignored if the packet has previously been processed by a DescribeStatisticalDesign node.

  • verbose name: Target Field
  • default value: TargetValue
  • port type: StringPort
  • value type: str (can be None)

set_breakpoint

Set a breakpoint on this node. If this is enabled, your debugger (if one is attached) will trigger a breakpoint.

  • verbose name: Set Breakpoint (Debug Only)
  • default value: False
  • port type: BoolPort
  • value type: bool (can be None)

metadata

User-definable meta-data associated with the node. Usually reserved for technical purposes.

  • verbose name: Metadata
  • default value: {}
  • port type: DictPort
  • value type: dict (can be None)