how to get frequency bands of eeg?

11 ビュー (過去 30 日間)
vaggelis papasot
vaggelis papasot 2016 年 3 月 15 日
回答済み: Prasanna 2024 年 12 月 3 日
Hi.
I have a task of motor imagery.Except of discrete wavelet transform which gives time domain features i want to add to my project amplitude analysis features such as peak values of mu and beta bands.So my understanding is i need to bandpass the eeg to get the main frequency bands of eeg. My question is how can i do that?

回答 (1 件)

Prasanna
Prasanna 2024 年 12 月 3 日
Hi Vaggelis,
To extract specific frequency bands like the mu and beta bands from the EEG signals, you can decompose the given EEG signal into its constituent frequency bands using wavelet analysis. By visualizing each band separately, analysis of the frequency bands can be performed. To do the same, the ‘wavedec’ function in MATLAB can be used to perform wavelet decomposition and ‘wrcoef’ can be further performed to reconstruct corresponding frequency band signals representing the various frequency bands like Alpha, beta, gamma, etc. A sample MATLAB code for the same is as follows:
% Sample EEG data
fs = 256;
eegData = randn(1, fs*10); % Example EEG data
% plot the EEG signal
figure;
subplot(6,1,1);
p=plot(eegData);
title('EEG Signal')
% wavelet decomposition
waveletFunction = 'db8';
[C,L] = wavedec(eegData,8,waveletFunction);
% extracting the details and approximation coefficients
cD1 = detcoef(C,L,1);
cD2 = detcoef(C,L,2);
cD3 = detcoef(C,L,3);
cD4 = detcoef(C,L,4);
cD5 = detcoef(C,L,5); %GAMMA
cD6 = detcoef(C,L,6); %BETA
cD7 = detcoef(C,L,7); %ALPHA
cD8 = detcoef(C,L,8); %THETA
cA8 = appcoef(C,L,waveletFunction,8); %DELTA
% Reconstructing the Signal components
D1 = wrcoef('d',C,L,waveletFunction,1);
D2 = wrcoef('d',C,L,waveletFunction,2);
D3 = wrcoef('d',C,L,waveletFunction,3);
D4 = wrcoef('d',C,L,waveletFunction,4);
D5 = wrcoef('d',C,L,waveletFunction,5); %GAMMA
D6 = wrcoef('d',C,L,waveletFunction,6); %BETA
D7 = wrcoef('d',C,L,waveletFunction,7); %ALPHA
D8 = wrcoef('d',C,L,waveletFunction,8); %THETA
A8 = wrcoef('a',C,L,waveletFunction,8); %DELTA
% plotting the frequency bands
Gamma = D5;
subplot(6,1,2);
plot(1:1:length(Gamma),Gamma);title('GAMMA');
Beta = D6;
subplot(6,1,3);
plot(1:1:length(Beta), Beta); title('BETA');
Alpha = D7;
subplot(6,1,4);
plot(1:1:length(Alpha),Alpha); title('ALPHA');
Theta = D8;
subplot(6,1,5);
plot(1:1:length(Theta),Theta);title('THETA');
D8 = detrend(D8,0);
Delta = A8;
subplot(6,1,6);
plot(1:1:length(Delta),Delta);title('DELTA');
The visualization of the above code is the EEG signal decomposed into corresponding frequency bands is as follows:
For more information regarding the functions, refer the following documentations:
Hope this helps!

カテゴリ

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