EEG signal processing using Matlab

81 ビュー (過去 30 日間)
Eleonora Adelina Danila
Eleonora Adelina Danila 2022 年 5 月 30 日
回答済み: SHANJANA 2024 年 4 月 3 日
I have two datasets (.edf) of EEG recordings, one for healthy people (H S9 EC), one for depressive people(MDD S9 EC).
Each of the recording has 20 channels.
I have to process the data using Matlab this way:
  1. to load and plot the EEG signal;
  2. to introduce a noise on the healthy and depressive EEG recordings;
  3. to filter both of the recordings that now have noise, using these filters: - Butterworth, Chebyshev and Elliptic;
  4. to calculate the correlation coefficient between the filtered signal and the initial(original) signal;
  5. to plot the correlation coefficients.
So far I opened the datasets using edfread(). If anyone can Help me with the other steps, I kind of need it.

回答 (2 件)

Siraj
Siraj 2023 年 9 月 6 日
Hi! It is my understanding that you want to read the EEG recordings and perform some data analysis.
Use “edfread()” to read the dataset. Refer to the link below to learn more about the function.
To add noise on the healthy and depressive data first determine the characteristics of the noise you want to introduce. This could include the type of noise (e.g., Gaussian, white, pink), the amplitude, and the frequency content.
For example, you can use the randn function to generate Gaussian noise with zero mean and unit variance.
Add the noise to the data. Refer to the following code for better understanding.
noise = randn(size(healthy_data));
noisy_healthy_data = healthy_data + noise;
noisy_depressive_data = depressive_data + noise;
To filter the noisy data using a Butterworth filter in MATLAB, you can utilize the "butter()" function. This function requires you to specify the filter order and the cutoff frequency. For more detailed information about the parameters and usage of the "butter()" function, you can refer to the following link:
On the same note you can design a Chebyshev filer you can use “cheby1” function.
To design an elliptic filter use the “ellip()” function.
To obtain the filtered data using the transfer function coefficients of the filter obtained from any of the previously mentioned functions, you can use the "filter" function in MATLAB. This function takes the filter coefficients as inputs to perform the filtering operation. For a detailed understanding of how to pass the transfer function coefficients to the "filter" function, you can refer to the following link.
To calculate the correlation coefficients between the filtered data and the original data in MATLAB, you can utilize the "corrcoef" function. This function allows you to compute the correlation matrix and extract the correlation coefficients between two datasets. For more detailed information about the "corrcoef" function and its usage, you can refer to the following link:
You can also refer to the following link, there is a large selection of submissions which may help with EEG workflows.
Hope this helps

SHANJANA
SHANJANA 2024 年 4 月 3 日
% Load EEG data from a file (replace 'filename.eeg' with your file)
data = load('filename.eeg');
% Plot EEG signal
figure;
plot(data);
title('EEG Signal');
xlabel('Time');
ylabel('Amplitude');

カテゴリ

Help Center および File ExchangeEEG/MEG/ECoG についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by