Skip to main content

ArtifactDetect

Namespace: UTILSLIB  ·  Library: Utilities Library

#include <utils/artifact_detect.h>

class UTILSLIB::ArtifactDetect

ECG and EOG physiological artifact event detection.

// ECG: returns sample indices of R-peaks
QVector<int> rPeaks = ArtifactDetect::detectEcg(matData, fiffInfo, sFreq);

// EOG: returns sample indices of blink/saccade onsets
QVector<int> blinks = ArtifactDetect::detectEog(matData, fiffInfo, sFreq);

Static Methods

detectEcg(matData, fiffInfo, dSFreq, params)

Detect ECG R-peak events.

The function searches FiffInfo for a channel with kind == FIFFV_ECG_CH. If none is found it synthesises an ECG proxy by averaging the absolute gradient-magnetometer data (MEG channels), which often shows a clear cardiac artefact.

Parameters:

  • matData : const Eigen::MatrixXd & Raw data matrix (n_channels × n_samples), calibrated (SI units).

  • fiffInfo : const FiffInfo & Measurement info (channel kinds, names).

  • dSFreq : double Sampling frequency in Hz.

  • params : const EcgParams & Detection parameters.

Returns:

  • QVector< int > — Sample indices (0-based) of detected R-peaks.

detectEog(matData, fiffInfo, dSFreq, params)

Detect EOG blink/saccade events.

The function searches FiffInfo for channels with kind == FIFFV_EOG_CH. If multiple EOG channels are present the channel with the largest peak-to-peak amplitude is used. Returns an empty vector if no EOG channel is found.

Parameters:

  • matData : const Eigen::MatrixXd & Raw data matrix (n_channels × n_samples), calibrated (SI units).

  • fiffInfo : const FiffInfo & Measurement info.

  • dSFreq : double Sampling frequency in Hz.

  • params : const EogParams & Detection parameters.

Returns:

  • QVector< int > — Sample indices (0-based) of detected EOG events (onset of supra-threshold excursion).

Authors of this file