A Survey on EEG Data Analysis Software

: Electroencephalography (EEG) is a mechanism to understand the brain’s functioning by analyzing brain electrical signals. More recently, it has been more commonly used in studies that are focused on the causation and effect of dementia. More tools are now available to gather EEG data. This brings about the challenge of understanding brain signals, which involves signal processing. Professionals with an electrical engineering background are very comfortable analyzing EEG data. Still, scientists in computer science and related ﬁelds need a source that can identify all the tools available and the process of analyzing the data. This paper deals speciﬁcally with the existing EEG data analysis tools and the processes involved in analyzing the EEG data using these tools. Furthermore, the paper goes in-depth into identifying the tools and the mechanisms of data processing techniques. In addition, it lists a set of deﬁnitions required for a better understanding of EEG data analysis, which can be challenging. The purpose of this paper is to serve as a reference for not only scientists that are new to EEG data analysis but also seasoned scientists that are looking for a speciﬁc data component in EEG and can go straight to the section of the paper that deals with the tool that they are using.


Introduction
Electroencephalography (EEG) is a method of measuring the state of mind, as well as the output of the brain in response to a given stimulus, either internal or external. This is typically done by attaching electrodes to the scalp, allowing the stronger electrical signals produced within the brain to be measured as a change in voltage across the electrodes. Because the signals collected this way are very weak, they are very sensitive to noise from the environment and other electrical signals produced by the individual being measured, such as those produced by muscle movements and even the movements of fluid in the head. This sensitivity facilitates the need for effective cleaning methods for the recorded signal, including filtration and algorithmic removal of known noise, also called artifacts. Beyond cleaning the signal, numerous methods of analysis are often required to understand the meaning of the collected signals and their significance. This includes traditional as well as algorithmic analysis of the data.
EEG signals can be used in biomedical research to examine the dynamics of brain activity during different cognitive and behavioral tasks [1], emotion recognition [2] neuromarketing research [3]. The effects of various treatments and interventions on brain function, such as medication, psychotherapy [4], or brain stimulation methods [5], can also be studied using EEG. These signals are used clinically to diagnose and track a variety of neurological disorders [6] in addition to being used for research. EEG can be used, for instance, to diagnose and detect seizures [7], to locate epileptic foci [8] prior to surgical intervention, and to track the development of degenerative brain conditions like Alzheimer's [9].
In this paper, we examine the various filtration, preprocessing, and available analysis methods, the software that (purportedly) best makes use of these methods for various

Analysis of Covariance (ANCOVA)
ANCOVA is a simple linear model that combines ANOVA and regression. It is an extension of ANOVA, which assesses if there is a statistically significant difference between three or more independent groups after one or more covariates are considered. The term "covariate" refers to a continuous variable that varies in tandem with the response variable.

Brain-Computer Interface (BCI)
BCI is a connection between the brain and a device that allows brain signals to control external activity. The interface allows for direct communication between the brain and the controlled object. They work in three steps: they gather brain impulses, interpret them, and then send commands to a connected machine based on the information they receive.

Common Spatial Pattern (CSP)
CSP separation is a method of signal processing that attempts to separate a mixed signal into its constituent components by maximizing the variance of the axes of the data. By utilizing a linear combination of the covariance matrices of the subjects under consideration, the authors of this study [11] describe modifications to CSP for subject-to-subject transfer.

Convolutional Neural Networks (CNN)
It is a particular type of artificial neural network that is commonly used to analyze visual imagery. It is a type of neural network that, as part of its operation, attempts to simplify data to avoid issues with complex data analysis; this process usually involves some sort of "filtration" by an earlier layer in the network, followed by an "analysis" layer that examines the simplified data. Face recognition, medical analysis, and categorization are examples of use cases for CNNs. In this study [12], CNN is applied to automatically extract EEG features while simultaneously capturing the asymmetry in various brain regions in a 2D vector named AsMap.

Downsampling
Downsampling is a technique used in digital signal processing to compress highresolution data recorded at a high sampling rate into a smaller bandwidth and sample rate. This is typically done to minimize the data rate or data size. A low-pass filter is usually applied to a signal to minimize its bandwidth.

Fast Fourier Transform (FFT)
A signal is represented in the frequency domain and from its original domain in the Fourier analysis. This study [13] describes the mathematics of the Fourier transform in detail. A Discrete Fourier Transform (DFT) of a sequence is computed using an FFT technique. It is required to determine the strength of signal frequency contributions Sci 2023, 5, 23 3 of 26 independent of time. It works similarly to spectral analysis in that it focuses on the wave's frequency but ignores the signal's temporal components.

Inverse Fast Fourier Transform (IFFT)
IFFT undoes the process of FFT. It transforms a signal from the time or space domain into a frequency domain signal.

Independent Component Analysis (ICA)
ICA is a technique for breaking down a complicated signal into its constituent pieces, allowing for a more thorough examination of each component's contribution. This is frequently used in EEG analysis to find the underlying brain signals that are the basis of specific behavior, such as hand or arm movements, and thoughts connected to specific motions, actions, or brain activity during sleep. To separate the sources from single-channel EEG signals, the authors proposed a combination of ICA and singular spectrum analysis (SSA) in [14].

Impulse Response
In the context of EEG measurements, an impulse response is a signal change that corresponds to a cerebral response to some stimuli.

Linear Regression or Regression
Linear regression is a statistical analysis technique that seeks to discover a function that explains the relationship between data and one or more explanatory factors. When linear correlations between input and output variables are sufficiently explanatory, they are frequently employed as a prediction approach.

Machine Learning
Machine learning is a set of algorithms that 'learn' a set of outputs by using a portion of a data space. This newly acquired behavior can then automatically predict outcomes on data outside the learning subset. When human expertise in the link between input and output data is insufficient, machine learning is becoming increasingly popular. In [15], a machine learning technique is used to accurately identify the presence of certain diseases with the combination of different extracted EEG and ECG features. Different Machine Learning algorithms such as support vector machine (SVM), K nearest neighbor (KNN), random forest, and naive Bayes can be used for classifying the different hand movements using other physiological signals like EMG signals [16].

Neuroinformatic
The field of neuroinformatics combines informatics with neuroscience. It relates to scientific data on primary experimental data, ontology, metadata, analytical tools, and nervous system computational models.

Neural Networks
Neural networks are a machine learning method driven by the activity of neurons in the brain. Over time, the concept has evolved to refer to algorithms that use an input, one or more layers of activation functions (commonly referred to as perceptron) in a matrix format, and then output. The output is based on the input and the layer activation functions. The latter is based on training data that was used to alter the activation functions to generate the correct output. In [15], different analyses are performed using neural networks to identify the different diseases.

Neurophysiology
Neurophysiology is a discipline of physiology and neuroscience that studies the nervous system's function. It employs physiological techniques in various research projects, such as electroencephalography, brainstem stimulation, transcranial magnetic stimulation, chemical synapse, neuroplasticity, etc. It is also concerned with studying disorders affecting the brain, for example, meningitis, strokes, dementia, encephalitis, etc.

Passband and Bandstop
The band of frequencies allowed to pass by a filter is known as the passband. On the other hand, the band of frequencies that will be rejected to pass by a filter is called a bandstop filter.

Principal Component
A collection of unit vectors that form an orthonormal basis for an n-dimensional set of data while minimizing the squared distance between the vectors and the data.

Principal Component Analysis (PCA)
The principal component analysis involves identifying a set of orthonormal unit vectors that maximize the variance of projected data; similarly, to linear regression, the vectors identified are chosen to minimize the average distance between the vector and the data. PCA is best used when significant differences in the relationship between the data, comparable to linear regression, can establish the differences between the data classes. PCA is used in [17] for the assessment of the active pain-coping behavior of the participants.

Recurrent Neural Network (RNN)
A particular type of artificial neural network that employs sequential or time series data is called a recurrent neural network (RNN). In RNN, data at one point depends on data at the previous stage. In other words, the previous stage's output is used as the input to the current stage here.

Signal Space Projection
The Signal-Space Projection (SSP) is a method to remove external artifacts from software. The advantage of SSP is that it does not require additional reference sensors to record the disturbance fields.

Spectral Analysis
Depending on the desired research subject, the spectral analysis focuses on isolating and evaluating frequencies of a specific wavelength. Different spectral analysis methods, like Anti-Leakage Least-Squares Spectral Analysis (ALLSSA), Constrained Least-Squares Spectral Analysis (CLSSA), Least-Squares Spectral Analysis (LSSA), Multichannel Anti-Leakage Least-Squares Spectral Analysis (MALLSSA), etc., are described in [13].

Support Vector Machines (SVMs)
SVMs attempt to distinguish between data classes by constructing separation lines (or planes) that mark the transition from one class to the next. The separation planes are chosen to maximize the distance between data points of various classes. A multiple kernel SVM algorithm is proposed in this study [18] to identify EEG signals, which include cognitive and mental tasks.

Time-Frequency Analysis
Time-frequency analysis is an approach where the signal is studied simultaneously in both the time and frequency domains. It studies a two-dimensional signal instead of just viewing a one-dimensional signal. It is a popular method for analyzing EEG signals. Continuous Wavelet Transform (CWT) and Cross-Wavelet Transform (XWT) are two wellestablished time-frequency analysis methods described here [13].

Wavelet
A finite-duration oscillation that looks like a wave. It starts with an amplitude of zero and then increases and decreases with time. Wavelets are advantageous for signal processing because of their specific characteristics.

Wavelet Transform
The wavelet transform, like the FFT, tries to determine the contribution of independent frequencies to the overall input signal. However, unlike the Fourier transform, the wavelet transform is less computationally expensive and less sensitive. Some of the most popular wavelength transform techniques are Continuous Wavelet Transform (CWT), Discrete Wavelet Transform (DWT), and Empirical Wavelet Transform (EWT), which are described here [13].

Window (or Window Signal)
A signal that is zero-valued outside of a specific interval but has symmetry and maximal values around a central point in the interval (often having a bell-like shape).

EEG Signal Processing Methods
The first step to analyzing newly collected EEG data is preprocessing. Preprocessing involves passing the data through filters that highlight the data of interest. These filtering methods can not only remove data irrelevant to the study (as in the case of high and low pass filters), but they can also amplify data of interest by making it more visible in the data collection. The removal of general signal noise (background noise) and artifacts linked to eye movement, head movement, jaw movement, other muscle movements, blinking, and head tilting are all possible using EEG filtration methods. Filtration techniques may also eliminate signal frequencies that can be ignored or dismissed. The following are some fundamental filtration processes.

Bessel Filter
A Bessel filter (also known as a Thomson filter) is an analog linear filter with a maximally linear phase response. The transition from passband to stopband is slower with a Bessel filter than with other filters of the same order. It has a small amount of overshoot compared to the most common frequency domain filters.

Band Pass Filter
The bandpass filter only allows signals within a specific frequency range to pass. A mixture of high and low-frequency filtering methods can be used to achieve this feature. A bandpass filter can be used to isolate a frequency range by removing frequencies higher than the highest predicted frequency and lower than the lowest expected frequency when the researcher knows the precise frequency range for that study.

Butterworth Filter
A Butterworth filter is a signal processing filter whose frequency response in the passband is as flat as possible. That is why it is also known as the "maximally flat magnitude filter." The order of the filter is determined by the number of reactive elements (capacitors) used in the circuit. It is used as an anti-aliasing filter in data converter applications because of its maximally flat frequency response in the passband. It is also used in audio processing applications, various communication and control systems, motion analysis, etc. To remove eye-blink artifacts, the Butterworth bandpass filter is used to remove all frequencies below 20 Hz in this study [19].

Chebyshev Filter
Chebyshev filters are commonly used to separate frequency bands from one another. It is an analog and digital filter having passband ripple or stopband ripple along with Sci 2023, 5, 23 6 of 26 a steeper roll-off than Butterworth filters. Chebyshev and Inverse Chebyshev filters are used to describe type-1 and type-2 filters, respectively. The Chebyshev filter is used in the IIR filter to eliminate any artifacts from the EEG signal to achieve maximum spectral efficiency [20].

Finite Impulse Response (FIR) Filter
FIR filters are a type of filter that produces a filtered output by combining prior and current signal data. For EEG analysis, FIR filters are preferable over IIR filters because they do not distort waveforms. The FIR filter is used in [21] for detecting the EEG waves.

High/Low Pass Filter
The frequency range of EEG data is between 0.1 and 50 Hz. However, as previously mentioned, different noise sources might emerge in EEG data. Movement, breathing, and external radio waves can all cause this. A high-pass filter can filter out slow frequencies of less than 0.1 Hz or higher frequencies greater than 50 Hz. As a result, the user has a clear signal to analyze.

Infinite Impulse Response (IIR) Filter
The IIR filter creates an impulse response in the same way that an FIR filter does, but over an infinite length of time rather than a finite period.

Least Square Filter
Least Mean Square (LMS) filters are adaptive filters that can "learn" a new unknown transfer function. The filter coefficients of LMS filters are changed depending on the instantaneous error signal using a gradient descent algorithm.

K-Nearest Neighbors
The k-nearest neighbors' technique (k-NN) is a well-known non-parametric signal processing method. KNN can be used to perform both classification and regression forecasting problems. It is widely utilized due to its simplicity of interpretation and quick calculation time. Emotion recognition using EEG signals is nowadays a famous study. The KNN classifier is used here [22] for the classification technique for recognizing emotions from multichannel EEG signals.

Naive Bayes
The Naive Bayes classifier is a classification technique based on Bayes' Theorem. It is a probabilistic classifier that incorporates strong independence assumptions. Naive Bayes classifiers have excelled in various challenging real-world circumstances despite their naïve design and simplistic assumptions. The advantage of naive Bayes is that it can estimate classification parameters with a small amount of training data. This classification technique can be used to classify mental stress using EEG signals [23].

Notch Filter
It can be advantageous to remove signals within a specified frequency range while studying a signal with a known frequency. A notch filter (also known as a band stop filter) is a filter that "stops" a specific frequency range (not passed through). On the other hand, high or low-frequency filtering rejects all frequencies of a signal above or below a set threshold value. The notch filter functions as both a high-pass and a low-pass filter, preventing signals that would be blocked by both while passing signals that would be filtered by only one. This filter can be used to remove power line interference (50 Hz) from EEG signals [24].

Non-Local Means (NLM) Filter
Non-local means (NLM) is a widespread technique generally used for image denoising. However, the NLM filter with the combination of wavelet transform is also used to remove artifacts from EMG and EEG signals [25].

Partial Least Squares
PLS regression reduces predictors to a smaller collection of uncorrelated components. It does least squares regression on these components rather than the original data. When the predictors are collinear, or the system has more predictors than observations, regular least-squares regression either yields coefficients with high standard errors or fails; PLS regression is incredibly effective.

Random Forest Classifier
A random forest, or a random decision forest, is a classification and regression technique based on decision trees. During training time, many decision trees are constructed in this algorithm. Most trees select the output class of this algorithm. Those trees are relatively uncorrelated, which is the main reason for their excellent accuracy. A random forest classifier can be used to analyze human mental states [26] and perform automatic emotion recognition [27].

Regularized Discriminant Analysis
Regularized discriminant analysis (RDA) is the general form of linear discriminant analysis (LDA) and quadratic discriminant analysis (QDA). This analysis is used for both classification and dimensionality reduction. This method is used to figure out which variables distinguish two or more naturally occurring groups. This is very similar to the analysis of variance (ANOVA).

Artifact Detection and Removal
Artifacts refer to interference in the recorded signal caused by factors such as muscle movements, which cause noticeable shifts in the incoming signal; changes in the subject's electromagnetic state; and interference from other electromagnetic signals in the context of EEG signal collection and analysis (also known as "outside noise"). Head movement, jaw movement, eye movement, blinking, or any other muscle action that produces a sufficiently high electromagnetic field may be considered movement artifacts, depending on the sensitivity of the EEG sensor. Changes in the subject's head orientation affect the condition of the subject's natural electromagnetic field, which can induce artifacts even when the subject is not thinking. The process of replacing an artifact-ridden signal with an estimate of what the signal would have been without the artifact, or some other kind of replacement, is known as artifact removal.

Canonical Correlation Analysis
Canonical correlation analysis (CCA) removes muscle artifacts from the EEG signal. It sometimes outperforms the Independent Component Analysis (ICA) and other frequency filters. This approach takes advantage of the fact that muscle activity has lower autocorrelation than brain activity. A new method using canonical correlation analysis is proposed in this article [28] to simultaneous electroencephalogram (EEG) channel selection and emotion recognition.

Common Spatial Pattern (CSP)
Common Spatial Pattern (CSP) separation is a signal processing technique that aims to separate a mixed signal into its constituent components by increasing the variance of the data axes. It is also used to retrieve spatial information from EEG signals. The Filterbank Common Spatial Pattern (FBCSP) is used in [29] to reduce noise using ICA decomposition.

Empirical Mode Decomposition (EMD)
Empirical Mode Decomposition (EMD) is a signal frequency analysis approach comparable to FFT and Wavelet Transform. It separates the unprocessed, non-stationary, raw signal into a collection of intrinsic mode functions (IMFs). The authors of [30] use the EMD and autoregressive (AR) model-based EEG feature extraction techniques to improve the performance of emotion detection.

Fast Fourier Transform (FFT)
The Fast Fourier transform determines the strength of signal frequency contributions independent of time. It works similarly to spectral analysis, focusing on the wave's frequency. However, it excludes the temporal components of the signal. FFT is also used to improve the automated sleep stage classification performance utilizing the extracted features from EEG through machine learning processes [31].

Independent Component Analysis (ICA)
Independent Component Analysis (ICA) is a method for splitting a complex signal into its basic parts and examining each component's contribution more thoroughly. This is commonly used in EEG analysis to uncover the underlying brain signals that explain a certain behavior, such as hand or arm movements, thoughts associated with specific motions or actions, or brain activity during sleep. It is also used to remove artifacts like muscle movement, eye blinks, or eye movements from the raw EEG signal [32].

Non-linear Mode Decomposition (NMD)
For any waveform, Nonlinear Mode Decomposition (NMD) decomposes the signal into a group of physically relevant oscillations while also removing the noise. NMD is based on a powerful combination of time-frequency analysis techniques. An integrated method named CEEMD-XGBoost is used in [33] by integrating complementary ensemble empirical mode decomposition (CEEMD) and extreme gradient boosting (XGBoost) to detect epileptic seizures automatically.

Principal Component Analysis (PCA)
The principal component analysis seeks to identify a set of orthonormal unit vectors that maximize the variance of projected data; similarly, to linear regression, the vectors identified are chosen to minimize the average distance between the vector and the data. PCA is best used when the differences between the data classes can be established by significant differences in the data's connections, comparable to linear regression.

Source Imaging-Based Methods
Source imaging-based methods are used to identify and localize the scalp-recorded potentials by combining EEG's temporal and spatial components [34]. These techniques solve the so-called inverse problem to reconstruct the original sources of the scalp-captured EEG signals. These approaches try to address this issue by combining statistical techniques with knowledge of the scalp's electrical characteristics and the brain tissues' properties to determine the most likely sources of the EEG activity.

Wavelet Transform
The wavelet transform, like the FFT, tries to determine the contribution of independent frequencies to the overall input signal. However, unlike the Fourier transform, the wavelet transform is less computationally expensive and less sensitive. A survey paper [35] on denoising techniques of EEG provides Wavelet Transform-based denoising techniques and did a comparative analysis.

Available Tools for EEG Signal Processing
The choice of the toolbox made by the researcher depends on several factors. Firstly, the researcher should choose a tool that contains the required functionality. If the researcher determines that filtration is the primary concern for their dataset, then they should choose a tool with many different filtering functions. If the researcher plans to do complex data analysis, then a tool with many different classification algorithms may be appropriate. Secondly, the researcher should choose a tool their team is comfortable using based on programming skill level and language preferences. Some other criteria could be cost and hardware. Some toolboxes are free and open source, while others come with licensing fees. Some toolboxes are associated with specific headsets, so choosing the toolbox that comes with the hardware may be helpful.
A very large portion of the tools used for EEG signal processing come as extensions to existing programs, such as MATLAB. The use of many of these tools, therefore, would require prior knowledge of the use of the program from which they extend. To avoid redundancy, a brief explanation of the overarching programs is given below, followed by the tools which extend from those programs.

AcqKnowledge
AcqKnowledge is a data acquisition and analysis program owned by BIOPAC that offers an EEG analysis module. The system can be used for recording EEG data, filtering the signal, displaying frequency bands, and performing analysis. Their EEG frequency analysis includes the following metrics: mean power, median frequency, mean frequency, spectral edge, and peak frequency. Filtered data can be observed in real-time during recording. AcqKnowledge must be used with the hardware and is compatible with the BIOPAC MP160, MP150, and MP36R research systems. AcqKnowledge is compatible with Windows and Mac computers. The software is not free and requires purchasing one of BIOPAC's research systems. The software interface of AcqKnowledge is shown in Figure 1.

BESA
BESA, or Brain Electrical Source Analysis, offers a software module for EEG data processing called BESA Research. The processing tools available allow the user to filter the data using high, low, bandpass, and notch filtering. There are options for automated and user-defined artifact detection and removal. The module has pattern detection and averaging capabilities and tools for spectral analysis and independent component analysis (ICA). Additionally, the module provides visualization of the signal. While BESA is not a MATLAB plugin, it does provide an interface for efficiently transferring analysis results to MATLAB. Figure 2 shows the discrete multiple source analysis and cortical CLARA images on the inflated cortex.

BESA
BESA, or Brain Electrical Source Analysis, offers a software module for EEG data processing called BESA Research. The processing tools available allow the user to filter the data using high, low, bandpass, and notch filtering. There are options for automated and user-defined artifact detection and removal. The module has pattern detection and averaging capabilities and tools for spectral analysis and independent component analysis (ICA). Additionally, the module provides visualization of the signal. While BESA is not a MATLAB plugin, it does provide an interface for efficiently transferring analysis results to MATLAB. Figure 2 shows the discrete multiple source analysis and cortical CLARA images on the inflated cortex.
BESA, or Brain Electrical Source Analysis, offers a software module for EEG data processing called BESA Research. The processing tools available allow the user to filter the data using high, low, bandpass, and notch filtering. There are options for automated and user-defined artifact detection and removal. The module has pattern detection and averaging capabilities and tools for spectral analysis and independent component analysis (ICA). Additionally, the module provides visualization of the signal. While BESA is not a MATLAB plugin, it does provide an interface for efficiently transferring analysis results to MATLAB. Figure 2 shows the discrete multiple source analysis and cortical CLARA images on the inflated cortex. In [38], the authors collected data from human participants to find a relationship between two neural measures of emotional reactivity, known as late positive potential (LPP) and blood oxygen level-dependent (BOLD). The collected EEG signal was analyzed with BESA 5.0. The BESA software was used to correct the cardiac artifacts and to remove trials with excessive motion artifacts. Also, using BESA's source coherence module, time-frequency maps were calculated in this study. In [38], the authors collected data from human participants to find a relationship between two neural measures of emotional reactivity, known as late positive potential (LPP) and blood oxygen level-dependent (BOLD). The collected EEG signal was analyzed with BESA 5.0. The BESA software was used to correct the cardiac artifacts and to remove trials with excessive motion artifacts. Also, using BESA's source coherence module, timefrequency maps were calculated in this study.

BIOPAC Student Lab (BSL)
BSL is a system for students to perform basic physiology lab experiments, including EEG, EMG, ECG, and EOG signals. Students can record data from human participants using this system. It has everything (except computers) to collect the necessary biological data. This BSL system contains BSL Software (supports both Windows and MAC), BSL Laboratory Manual, PDF Manuals and Tutorials, MP36 Data Acquisition Unit with USB Cable, DC Adapter (110 V/60 Hz or 220 V/50 Hz), and Cord, 2 x Electrode Lead Sete, Disposable Electrodes, and Abrasive Pads.
The BIOPAC Student Lab was used in [39] to collect EEG data to determine the average level of relaxation and concentration while listening to alpha music. This research provides strong evidence that alpha music reduces stress and increases a sense of physical relaxation. This tool was also used to collect EMG signals for age classification [40].

BioSig
It is an open-source software [41] for different biomedical signals like an electroencephalogram (EEG), electrocardiogram (ECG), electrocorticogram (ECoG), electromyogram (EMG), electrooculogram (EOG), etc. Major application areas of this software are braincomputer interfaces (BCI), neuroinformatics, neurophysiology, psychology, cardiovascular systems, sleep research, etc. BioSig can be used with Octave and MATLAB (biosig4octmat), C/C++ (biosig4c++), Python, R, Java, etc. It supports forty reading and ten writing data formats, including some audio formats (examples: GDF, EDF, BKR, MFER, etc.). It also supports classification techniques like linear, quadratic, and regularized discriminant analysis, Support Vector Machine (SVM), Naive Bayes Classifiers, Perceptron Learning, and Partial Least Squares/Regression analysis, as well as some sparse classifiers. BioSig is normally used for Heart Rate Extraction (ECG), Artifact Processing (muscle artifacts in EEG, electrooculography (EOG) artifacts), Coupling and Connectivity with EEG, Multivariate Autoregressive Models, and Brain-Computer Interfacing. The architecture of this toolbox and its elements are shown in Figure 3. gram (EMG), electrooculogram (EOG), etc. Major application areas of this software are brain-computer interfaces (BCI), neuroinformatics, neurophysiology, psychology, cardiovascular systems, sleep research, etc. BioSig can be used with Octave and MATLAB (bi-osig4octmat), C/C++ (biosig4c++), Python, R, Java, etc. It supports forty reading and ten writing data formats, including some audio formats (examples: GDF, EDF, BKR, MFER, etc.). It also supports classification techniques like linear, quadratic, and regularized discriminant analysis, Support Vector Machine (SVM), Naive Bayes Classifiers, Perceptron Learning, and Partial Least Squares/Regression analysis, as well as some sparse classifiers. BioSig is normally used for Heart Rate Extraction (ECG), Artifact Processing (muscle artifacts in EEG, electrooculography (EOG) artifacts), Coupling and Connectivity with EEG, Multivariate Autoregressive Models, and Brain-Computer Interfacing. The architecture of this toolbox and its elements are shown in Figure 3.

BrainFlow
BrainFlow is a library partnered with OpenBCI that can be used to collect and analyze EEG data. It is a free, active open-source project with thorough documentation and user support. BrainFlow comprises two APIs: an API for data acquisition from sensor devices and an API for signal processing. These APIs are independent; researchers may use Brain-Flow for signal processing without using the BrainFlow API for data collection. Their APIs can be used with MATLAB but can stand alone with Python, C++, Java, C#, R, or Julia.

BrainFlow
BrainFlow is a library partnered with OpenBCI that can be used to collect and analyze EEG data. It is a free, active open-source project with thorough documentation and user support. BrainFlow comprises two APIs: an API for data acquisition from sensor devices and an API for signal processing. These APIs are independent; researchers may use BrainFlow for signal processing without using the BrainFlow API for data collection. Their APIs can be used with MATLAB but can stand alone with Python, C++, Java, C#, R, or Julia.
BrainFlow's data acquisition API is compatible with several boards in addition to their boards, including OpenBCI's Cyton, Ganglion, and Cyton Daisy boards; NeuroMD's BrainBit and Calibri devices; G.TEC's Unicorn board; Neurosity's Notion boards; and FreeEEG32 s board. Their API is uniform across all of these boards.
BrainFlow's signal processing API provides several filtration methods, including Butterworth, Chebyshev (type 1), Bessel, bandpass, and notch filtering. It also provides methods for performing downsampling, wavelet transforms, and fast Fourier transforms, calculating common spatial patterns, power spectral density, band power, and average band power across all channels. BrainFlow provides tools for statistical analysis and supports regression, k-nearest neighbors, support vector machines, and latent Dirichlet allocation classifiers. The graphical user interface (GUI) of BrainFlow is shown in Figure 4.
The main objective of this study [42] was to discuss the benefits of neuro-computer interfaces for controlling actuators. The input data for this experiment was streaming EEG data, which was analyzed with the BrainFlow software. All the data preprocessing, artifact removal, filtering, and resampling were performed using the BrainFlow library and the Java programming language. A set of adaptive filters was used to obtain temporary sequences suitable for feeding into a neural network. cation classifiers. The graphical user interface (GUI) of BrainFlow is shown in Figure 4.
The main objective of this study [42] was to discuss the benefits of neuro-computer interfaces for controlling actuators. The input data for this experiment was streaming EEG data, which was analyzed with the BrainFlow software. All the data preprocessing, artifact removal, filtering, and resampling were performed using the BrainFlow library and the Java programming language. A set of adaptive filters was used to obtain temporary sequences suitable for feeding into a neural network.

Brainstorm
Brainstorm [44] is a free and open-source tool for neural signal processing, including the analysis of EEG signals. Brainstorm provides basic EEG analysis tools such as recording, visualization, head modeling, group analysis, time and frequency decomposition, automatic detection of artifacts generated by eyeblinks and heartbeats, artifact correction using single space projections, power spectrum density, frequency filtering, and resampling, and automatic detection of bad channels. Brainstorm also offers tools for keeping the data organized and the analysis efficient, such as batch processing. Brainstorm interfaces with MATLAB or can be run independently and is supported for Linux, Windows, and macOS. A general overview of this tool is shown in Figure 5.

Brainstorm
Brainstorm [44] is a free and open-source tool for neural signal processing, including the analysis of EEG signals. Brainstorm provides basic EEG analysis tools such as recording, visualization, head modeling, group analysis, time and frequency decomposition, automatic detection of artifacts generated by eyeblinks and heartbeats, artifact correction using single space projections, power spectrum density, frequency filtering, and resampling, and automatic detection of bad channels. Brainstorm also offers tools for keeping the data organized and the analysis efficient, such as batch processing. Brainstorm interfaces with MATLAB or can be run independently and is supported for Linux, Windows, and macOS. A general overview of this tool is shown in Figure 5. For source localization of amygdala responses, Brainstorm software was used in this [45] study. For each patient, electrodes with amygdala connections were chosen. The average response to broad spatial frequency (BSF) and low, broad spatial frequency (LSF) from all contacts were analyzed. Data from 5-12 contacts per electrode can be sent to Brainstorm for source localization. For source localization of amygdala responses, Brainstorm software was used in this [45] study. For each patient, electrodes with amygdala connections were chosen. The average response to broad spatial frequency (BSF) and low, broad spatial frequency (LSF) from all contacts were analyzed. Data from 5-12 contacts per electrode can be sent to Brainstorm for source localization.

EDF Browser
The EDF Browser is a free and open-source toolbox for time series analysis supported for Linux and Windows. It provides various filtering algorithms, including Butterworth, Chebyshev, Bessel, moving average, notch, and finite impulse response filters. It also provides an ECG powerline interference removal filter and a spike filter. The interface of the EDF Browser is shown in Figure 6. For source localization of amygdala responses, Brainstorm software was used in this [45] study. For each patient, electrodes with amygdala connections were chosen. The average response to broad spatial frequency (BSF) and low, broad spatial frequency (LSF) from all contacts were analyzed. Data from 5-12 contacts per electrode can be sent to Brainstorm for source localization.

EDF Browser
The EDF Browser is a free and open-source toolbox for time series analysis supported for Linux and Windows. It provides various filtering algorithms, including Butterworth, Chebyshev, Bessel, moving average, notch, and finite impulse response filters. It also provides an ECG powerline interference removal filter and a spike filter. The interface of the EDF Browser is shown in Figure 6.  An EEG-based rehabilitative control system was developed in this study [47] by analyzing the neural responses of human participants. EEG signal processing is done using EEGLAB and EDF Browser software applications. The EDF browser also plots double, and single eye-blink actions acquired by an EMOTIVE headset.

EEGNET
EEGNET [48] is a MATLAB-based Graphical User Interface software for EEG signal processing and represents corresponding functional brain networks. It can process and visualize brain networks from raw EEG recordings. It supports operating systems, including Windows 7, Linux, and Mac OS in, 64-bit versions. This software is easy to use, flexible and user-friendly. EEGNET is an open-source tool and can be downloaded free of charge. It includes an EEG preprocessing technique that supports different file formats like .mat. The signal can be a 2D electrode signal and a 3D source signal. The Inverse problem solver/cortical sources reconstruction feature can be used to estimate the cortical source signals from the recorded EEG scalp signals. The functional connectivity matrices can be computed using cross-correlation, coherence, phase synchronization, etc. Network measures like the graph, node, and edge parameters can be calculated from graph theory-based approaches. Also, two types of brain networks, 2D and 3D, can be visualized using this software. The pipeline of EEGNET is shown in Figure 7. The signal can be a 2D electrode signal and a 3D source signal. The Inverse problem solver/cortical sources reconstruction feature can be used to estimate the cortical source signals from the recorded EEG scalp signals. The functional connectivity matrices can be computed using cross-correlation, coherence, phase synchronization, etc. Network measures like the graph, node, and edge parameters can be calculated from graph theorybased approaches. Also, two types of brain networks, 2D and 3D, can be visualized using this software. The pipeline of EEGNET is shown in Figure 7. EEGNET was used for connectivity analysis, network measurements, and visualization [50]. In the context of epilepsy, the researchers did a comparative study of the networks obtained using combinations of different algorithms. The main objective was to solve the EEG inverse problem and estimate the functional connectivity.

ELAN
The ELAN [51] software contains many preprocessing and signals analysis tools for biomedical signals like an electroencephalogram (EEG), magnetoencephalogram (MEG), intracranial EEG (iEEG), and local field potentials (LFPs) in animals. This software is EEGNET was used for connectivity analysis, network measurements, and visualization [50]. In the context of epilepsy, the researchers did a comparative study of the networks obtained using combinations of different algorithms. The main objective was to solve the EEG inverse problem and estimate the functional connectivity.

ELAN
The ELAN [51] software contains many preprocessing and signals analysis tools for biomedical signals like an electroencephalogram (EEG), magnetoencephalogram (MEG), intracranial EEG (iEEG), and local field potentials (LFPs) in animals. This software is compatible with 32-bit and 64-bit Linux operating systems. However, Mac and Windows users can also run this software by installing a virtual machine that runs Linus as a guest operating system. 4 GB of RAM is recommended, but the minimum requirement is 128 MB.
This toolbox is designed to import data directly from different data acquisition systems like Alpha Omega AlphaMap, Wave metrics, IGOR Pro, Biosemi, CTF Inc, Elekta/Neuromag, EGI Geodesic, InstEP System, Micromed, and Neuroscan. This tool can also import data from standard file formats such as ASCII (text), MATLAB (.mat), EDF (European Data Format), and GDF (General Data Format). The result of any analysis performed using this tool can be stored in the three main data formats: continuous data (.eeg), event-related data (.p), and time-frequency data format (.tf). Besides those three formats, ELAN uses two other files: event files (.pos) and parameter files (.par).
ELAN has three visualization GUIs: the EEG tool for continuous data, ERPA for eventrelated data files, and TFVIZ for time-frequency analysis. Artifacts can be manually detected and removed using the EEG visualization tool. It can also be automatically removed by using a fixed threshold. That threshold can be adjusted separately for each channel. Ocular artifacts can be corrected using a provided MATLAB function that uses ICA functions. Bad or missing data from different channels can be reconstructed by interpolation using spline functions. Different ELAN functions exist for different filters, such as high-pass, bandpass, Butterworth low-pass, and stopband. It computes time-frequency representations using wavelet analysis. Figure 8 shows the ELAN analysis workflow overview.
During a speeded visual detection task, the researchers analyzed reaction times and event-related potentials (ERPs) in profoundly deaf adults and hearing controls [52]. For this experiment, they collected EEG data from 10 deaf individuals. To eliminate artifacts due to eye movement, they performed independent component analysis (ICA) using EEGLAB. They used ELAN for analyzing event-related potentials (ERPs).

LIMO EEG
The LInear MOdeling of MEEG data (LIMO MEEG) [53] is a MATLAB toolbox for the statistical analysis of physiological data. LIMO EEG is best used if it is used as a plugin of EEGLAB. However, the statistical analyses can be performed independently. This toolbox is primarily designed to analyze EEG data but can also process MEG data. This toolbox is implemented in MATLAB and requires the MATLAB statistical toolbox. This toolbox offers a range of popular designs like ANOVAs, linear regressions, ANCOVAs, etc. The LIMO EEG is based on a hierarchical linear model. The first level of this model

LIMO EEG
The LInear MOdeling of MEEG data (LIMO MEEG) [53] is a MATLAB toolbox for the statistical analysis of physiological data. LIMO EEG is best used if it is used as a plugin of EEGLAB. However, the statistical analyses can be performed independently. This toolbox is primarily designed to analyze EEG data but can also process MEG data. This toolbox is implemented in MATLAB and requires the MATLAB statistical toolbox. This toolbox offers a range of popular designs like ANOVAs, linear regressions, ANCOVAs, etc. The LIMO EEG is based on a hierarchical linear model. The first level of this model consists of modeling all trials for each subject. This way, it is possible to derive parameter estimates for any effects. The second-level analysis takes those parameter estimates and performs robust statistics on them. The hierarchical procedure of LIMO EEG is illustrated in Figure 9.
Signals 2023, 4, FOR PEER REVIEW 17 performs robust statistics on them. The hierarchical procedure of LIMO EEG is illustrated in Figure 9.

MNE-MATLAB
The MNE-MATLAB [54] toolbox is compatible with MATLAB version 7.0 or later. It provides interfacing with binary file formats like .fif, .stc, .label, and .w files. Software gradient compensation and signal-space projection are available here for signal processing. It also has utility functions like transforming data between coordinate systems, proving coil definitions for various sensor types, assembling inverse operators, etc. [54] is an open-source package for visualizing and analyzing biomedical data like MEG, EEG, ECoG, etc. It supports data preprocessing, source estimation, time-frequency analysis, machine learning, and statistics. It supports different file formats like Brainvision (.vhdr), Biosemi data format (.bdf), Neuroscan CNT(.cnt), European data format (.edf), EEGLAB (.set), EGI simple binary (.egi), EGI MFF format (.mff), eXimia

MNE-Python
MNE-Python supports different filtering techniques like bandpass, low-pass, highpass, band-stop, and notch filtering. Fast Fourier Transform (FFT) based finite impulse response (FIR) filters, and infinite impulse response like Butterworth filters can be implemented to filter instances of raw data.
Artifacts can be removed or significantly suppressed by using Signal Space Projection (SSP) or Independent Component Analysis (ICA). It also supports Python-level functions to detect heartbeats and eye blinks automatically. The procedure and visualization of electrophysiology data are shown in Figure 10.
The researchers present a novel approach for automatically detecting and repairing bad segments in this study's single-trial MEG/EEG data [55]. For the experimental validation protocol, MNE-python is used to compute all general data processing. The data validation is done with four open-sourced datasets, including MNE sample data.
Artifacts can be removed or significantly suppressed by using Signal Space Projection (SSP) or Independent Component Analysis (ICA). It also supports Python-level functions to detect heartbeats and eye blinks automatically. The procedure and visualization of electrophysiology data are shown in Figure 10.
The researchers present a novel approach for automatically detecting and repairing bad segments in this study's single-trial MEG/EEG data [55]. For the experimental validation protocol, MNE-python is used to compute all general data processing. The data validation is done with four open-sourced datasets, including MNE sample data.

OpenViBE
The software platform OpenViBE [56] is used to create, test, and use brain-computer interfaces. In [57], the researchers used a combination of MI EEG neurofeedback and fMRI to determine the link between MI EEG neurofeedback and activation in cortical sensorimotor areas. OpenViBE 0.16.2 was used to control the presentation of stimuli. During the first session, artifact-corrected data was passed to OpenViBE via a direct network link for further processing. During the second session, EEG data was directly acquired with OpenViBE.

PyEEG
PyEEG [58] is a Python module designed explicitly for feature extraction. It is free, open-source, and convenient to use for Python programmers. Its features include power spectral intensity, relative intensity ratio, Petrosian fractal dimension, Higuchi fractal dimension, Hjorth mobility and complexity, spectral entropy, Fisher statistics, approximate entropy, detrended fluctuation analysis, and Hurst exponent. The PyEEG framework is shown in Figure 11.

OpenViBE
The software platform OpenViBE [56] is used to create, test, and use brain-computer interfaces. In [57], the researchers used a combination of MI EEG neurofeedback and fMRI to determine the link between MI EEG neurofeedback and activation in cortical sensorimotor areas. OpenViBE 0.16.2 was used to control the presentation of stimuli. During the first session, artifact-corrected data was passed to OpenViBE via a direct network link for further processing. During the second session, EEG data was directly acquired with OpenViBE.

PyEEG
PyEEG [58] is a Python module designed explicitly for feature extraction. It is free, open-source, and convenient to use for Python programmers. Its features include power spectral intensity, relative intensity ratio, Petrosian fractal dimension, Higuchi fractal dimension, Hjorth mobility and complexity, spectral entropy, Fisher statistics, approximate entropy, detrended fluctuation analysis, and Hurst exponent. The PyEEG framework is shown in Figure 11. In [59], five features were extracted using PyEEG to classify epileptic and non-epileptic seizure events. Those extracted features are Singular Value Decomposition Entropy (SVDEn), Detrended Fluctuation Analysis (DFA), Fisher Information (FI), Higuchi Fractal Dimension (HFD), and Petrosian Fractal Dimension (PFD). Then the authors fed those features into a support vector machine (SVM) for classification.

Statistical Parametric Mapping (SPM)
SPM [60] is a free but copy-righted software to analyze brain imaging data sequences. The current version of this software is SPM12, designed to analyze EEG, MEG, fMRI, PET, and SPECT signals. MATLAB versions R2007a (7.4) to R2021a (9.10) are required to run SPM12. It requires the core MATLAB and does not support other MATLAB toolboxes. It supports Windows (both 32 and 64-bit), Linux (64-bit), and macOS (64-bit). SPM M/EEG consists of 2 files: a header file (.mat) and a data file (.dat).
It supports low-pass, high-pass, bandpass, and band-stop filters for continuous and epoch data filtering. It uses a Butterworth filter to do that. Data can be downsampled to any specific sampling rate. The artifact detection function is extendable and can automatically detect and use plugin functions to implement particular detection schemes. The montage function can remove noise and artifact detection in SPM. It supports independent component analysis (ICA) and signal space projection (SSP). Sometimes, re-referencing the data to a new reference is necessary for analysis. SPM does that by multiplying data by a weight matrix.
The data dimension can be reduced using a data reduction function by projecting the data onto a comparatively small number of spatial components. It also supports utility functions like Grand Mean, Merge, Multimodal Fusion, Rescaling and Baseline Correction of Time-Frequency, Contrast of Trials, Sort Conditions, and Remove Bad Trials.
In [61], the researchers proposed a novel age estimation framework capable of recognizing faster brain atrophy. This could aid in the early detection and treatment of neurodegenerative disorders. The SPM8 software was used to preprocess the images in this research. Figure 11. The PyEEG framework [58].
In [59], five features were extracted using PyEEG to classify epileptic and non-epileptic seizure events. Those extracted features are Singular Value Decomposition Entropy (SV-DEn), Detrended Fluctuation Analysis (DFA), Fisher Information (FI), Higuchi Fractal Dimension (HFD), and Petrosian Fractal Dimension (PFD). Then the authors fed those features into a support vector machine (SVM) for classification.

Statistical Parametric Mapping (SPM)
SPM [60] is a free but copy-righted software to analyze brain imaging data sequences. The current version of this software is SPM12, designed to analyze EEG, MEG, fMRI, PET, and SPECT signals. MATLAB versions R2007a (7.4) to R2021a (9.10) are required to run SPM12. It requires the core MATLAB and does not support other MATLAB toolboxes. It supports Windows (both 32 and 64-bit), Linux (64-bit), and macOS (64-bit). SPM M/EEG consists of 2 files: a header file (.mat) and a data file (.dat).
It supports low-pass, high-pass, bandpass, and band-stop filters for continuous and epoch data filtering. It uses a Butterworth filter to do that. Data can be downsampled to any specific sampling rate. The artifact detection function is extendable and can automatically detect and use plugin functions to implement particular detection schemes. The montage function can remove noise and artifact detection in SPM. It supports independent component analysis (ICA) and signal space projection (SSP). Sometimes, re-referencing the data to a new reference is necessary for analysis. SPM does that by multiplying data by a weight matrix.
The data dimension can be reduced using a data reduction function by projecting the data onto a comparatively small number of spatial components. It also supports utility functions like Grand Mean, Merge, Multimodal Fusion, Rescaling and Baseline Correction of Time-Frequency, Contrast of Trials, Sort Conditions, and Remove Bad Trials.
In [61], the researchers proposed a novel age estimation framework capable of recognizing faster brain atrophy. This could aid in the early detection and treatment of neurodegenerative disorders. The SPM8 software was used to preprocess the images in this research.

TAPEEG
The Toolbox for Automatic Processing of EEG Files (TAPEEG) is a MATLAB toolbox for processing EEG and MEG files. This toolbox provides various pre-and post-processing methods and statistical analysis. Available filtering methods include Butterworth filters, Chebyshev type 2 filters, least-square filters, frequency filters using FFT, wavelet transformation, notch filters, and high-pass and low-pass filters. It also provides methods for detecting and removing artifacts caused by eye blinks and deep brain stimulation. Post-processing methods include inverse FFT, frequency analysis, micro-states, and connectivity analysis. Statistical models include a generalized linear model, SVM, random forest classifier, ANOVA, and PCA.
Authors in [62] used the EEG data processing toolbox TAPEEG to find reliable qEEG biomarkers for detecting patients with early cognitive impairments. Data was collected from thirty-five patients, and TAPEEG and EEGLA tools were used to detect and remove artifacts automatically. All the respective graph analysis formulas were also implemented in TAPEEG.

EEGLab
EEGLab is a free interactive MATLAB toolbox for EEG data analysis. It can be run through MatLab, Octave, or as a standalone application. EEGLab is a widely utilized tool for EEG data analysis. Many other tools operate as plugins or extensions of EEGLab. EEGLab can process continuous and event-related EEG, MEG (magnetoencephalography), and other electrophysiological data. It can be run on Linux, Unix, Windows, and Mac OS.
This software package [63] has numerous tools for filtering and processing electrophysiological data. These tools are built to help with preprocessing, extracting data, and visualization. For preprocessing, numerous filters are provided, including high pass, low pass, finite impulse response (FIR), infinite impulse response (IIR), downsampling, referencing, and rejection of continuous data. Once the data has been imported and filtered, analysis can be performed. EEGLab can use many processing techniques, such as independent component analysis (ICA).
EEGLab, being one of the most popular and widely used EEG analysis tools, has many plugins that have been developed for it. Table A1 in Appendix A briefly describe many of the more commonly used plugins.
EEG lab software was used to calculate the power spectrum density (PSD) of the alpha band in [64] from participants with open and closed eyes. The result shows that the alpha rhythm in the back of the head with closed eyes dominates power in the periodogram. The primary goal of [65] is to investigate the behavior of brain signals for visual attention. Artifact removal, independent component analysis, and principal component analysis are applied using the EEGLab toolkit to observe the power spectrum of each frequency band. A deep learning algorithm was used in [66] to learn features and classify different emotional states simultaneously. All the preprocessing, artifact removal, filtration, epoch selection, and signal average were performed using the EEGLab toolbox. The epoch management and visualization features are available in this toolbox, which helped the researcher to perform data analysis. Another study [32] on identifying EEG biomarkers for autobiographical memory recall used EEGLab for filtration, channel separation, artifact removal, and ICA.

MATLAB Plugins
MATLAB (MATrix LABritory) is a programming language commonly used in the analysis of signals. MATLAB is a powerful and popular tool in the study of EEG data, as it includes many built-in signal processing tools, along with a large library of installable plugins. Table A2 in Appendix B provides an overview of the more commonly used tools and popular plugins. Please note that these tools and plugins are not necessarily specific to EEG analysis. EEG data is no different than other RF signals and can therefore be analyzed using generic RF analysis tools.

Conclusions
This paper provides an overview of 15 standalone software modules for performing EEG signal analysis and 7 MATLAB plugins, and 31 EEGLAB plugins. Researchers can easily compare different EEG signal processing techniques and tools from this study. Some use cases for that software and techniques are also provided, and those can guide a new researcher to start working on EEG signals. All the required definitions and important references are also provided for noob researchers. Researchers should base their choice of software on their needs in terms of data analysis, the hardware they are using, and their comfort level with various programming languages and environments. EEG researchers may use this paper as a resource to help determine what software modules would best meet their needs. More tools are available for EEG signal processing. However, it is only possible to cover some of those tools in a single study. So, only the most popular and most powerful tools are mentioned in this study. Also, those tools are more capable than the description provided. However, it is only possible to include some of the capabilities with appropriate examples in a single study. So, novel researchers can pick the most appropriate tool from this study and explore it more.

Conflicts of Interest:
The authors declare no conflict of interest.

Abbreviations
The

Name Description
FIRfilt Apply a variety of linear filters to EEGLAB data.

CleanRawData
Cleans raw EEG data using a variety of methods, including Artifact Subspace Reconstruction.

DIPFIT
Dipole modeling of independent data components using a spherical or boundary element head model. Uses functions from the FIELDTRIP toolbox.

ICLabel
An automated EEG independent component classifier plugin for EEGLAB.

App-MATLABViewer
The bids-matlab-tool repository contains a collection of functions to import and export BIDS (Brain Imaging Data Structure)-formated experiments.
bids-matlab-tools Import/export data in a wide variety of data formats.

BIOSIG
Toolbox allowing data import in multiple data formats. It contains functions redundant with EEGLAB but also contains unique functions.
FileIO Import/export files from/to the Brain Vision Software Analyser suite.
ANTeepimport Import data files in the EEP format of the ANT EEG company.
bva-io Import/export files from/to the Brain Vision Software Analyser suite.
neuroscanio Import/export files from/to the Neuroscan software.
MFFMATLABIO Import/export files from/to the EGI company in MFF format.

Name Description
xdfimport Import files in XDF (LSL) format (EEG stream and EEG marker stream only).

Mobilab
Import files in XDF (LSL) format and allow fusing streams at different sampling rates for joint processing in EEGLAB

IIRfilt
Apply short non-linear infinite impulse response filters to EEGLAB data.

REST
A method to standardize a reference of scalp EEG recordings to a point at infinity.

AAR
The Automatic Artifact Removal toolbox aims to integrate several state-of-the-art methods for the automatic removal of ocular and muscular artifacts in the electroencephalogram (EEG).

VisEd
The Vised Marks extension for EEGLAB adds editing functions to the native eegplot data scrolling figure.
Specifically, it allows adding/editing event markers, flagging channels/components, flagging time periods, and displaying the properties of the marks structure. get_chanlocs The get_chanlocs EEGLAB plugin locates 3-D electrode positions from a 3-D scanned head image. A tutorial on how to acquire these images with off-theshelf equipment is included.

FMRIB
Remove fMRI-environment artifacts from EEGLAB data. This extension allows the removal of scannerrelated artifacts from EEG data collected during fMRI scanning.

BERGEN
Removal of fMRI-related gradient artifacts from simultaneous EEG-fMRI data. The BERGEN extension for EEGLAB provides a GUI with different methods for gradient artifact correction.

MARA
Automatic identification of artifactual independent components. MARA is a linear classifier that learns from expert ratings by extracting six features from the spatial, spectral, and temporal domains.
FASTER Implements a fully automated, unsupervised method for processing high-density EEG data. FASTER includes common features such as data importing, epoching, re-referencing, grand average creation, automated channel, epoch, and artifact rejection based on ICA.
ADJUST A completely automatic algorithm that identifies artifact-related Independent Components by combining stereotyped artifact-specific spatial and temporal features.

CORRMAP
Semi-automatic identification of common EEG artifacts based on a template. The CORRMAP extension consists of a set of MATLAB functions allowing the identification and clustering of independent components representing common EEG artifacts.

CIAC
The cochlear implant artifact correction is a semiautomatic ICA-based tool for the correction of electrical artifacts originating from cochlear implants.

RELICA
The goal of RELICA is to identify IC processes that are most stably separated from the decomposition data across many random bootstrap selections of its data frames or epochs.

MP_clustering
A toolbox for Measure Projection Analysis for projecting EEG measures tagged by source location into a common template brain space, testing local spatial measure consistency, and parsing measureconsistent brain areas into measure-separable domains.

REGICA
An extension to remove EOG artifacts by regression performed on ICA components. A semi-simulated dataset that might be used in any artifact rejection study is also available.

SASICA
SASICA is an EEGLAB plugin to help the researcher to reject/select independent components based on the various properties of these components.

Automagic
Automagic is a MATLAB-based toolbox for preprocessing of EEG-datasets. It has been developed to offer user-friendly preprocessing software for big (and small) EEG datasets.

AMICA
Adaptive Mixture Independent Component Analysis (AMICA) is a binary program and EEGLAB plugin that performs an independent component analysis (ICA) decomposition on input data, potentially with multiple ICA models. Also, consider downloading the postAmicaUtility plugin.

Appendix B
Provided here is a table summarizing MATLAB EEG plugins.

Name Description
Signal Analyzer A powerful toolbox of useful signal analysis functions. Provides visualization, preprocessing, filtering and analysis tools for generic signals.

EEGLab
The most popular EEG specific MATLAB plugin. Provides extensive and state of the art EEG data processing. EEGLab is capable of performing most of the tasks described in this table, and has its own extensive ecosystem of plugins.
NFT Toolbox Neuroelectromagnetic Forward Head Modeling Toolbox. This tool is used to physically map EEG data to a head model. This allows for visualization and better understanding of the collected data.
SIFT Used for analysis of EEG data flow between multiple Sources.

HeadIT
Database system for easy storage and retrieval of EEG data based on biomarkers and metadata.
BCILAB Toolbox for classification of EEG signals. Simplifies the creation of Brain Computer Interfaces by allowing MATLAB to classify EEG signals in real time.

ERICA
Overarching framework which allows for recording, analysis, and stimulus control.