Clear Filters
Clear Filters

After applying EMD method for removing artifacts with the help of global thresholding the SNR and MSE value are calculated. Is it correct or not? Please check this and guide .

2 views (last 30 days)
Here is my dataset.
%%
clc
clear
close all;
load B02T.mat;
fs=250;
% t = 0.004:1/fs:1;
eeg1 = data{1,1}.X;
channel_1= eeg1(:,1);
ch_1=channel_1(1:3000);
figure;
subplot(2,1,1);
plot(ch_1);
xlabel('Time (s)');
ylabel('Amplitude');
legend('ch1');
title("Plot channel "+1+ " for Structure 1X1");
hold on;
grid on;
eeg_signal = eeg1(1:3000); % first 2000 samples
subplot(2,1,2);
plot(eeg_signal,'black');
hold on;
grid on;
legend('EEG Signal');
title('Raw EEG Signal');
%%
[IMF, residual, info] = emd(eeg_signal);
imf_count = max(info.NumIMF);
figure;
for i=1:imf_count
subplot(6,2,i)
plot(IMF(:,i))
title("IMF"+i);
end
subplot(6,2,imf_count+1)
plot(residual)
title("Residue");
%%
thresholds = thselect(IMF, 'rigrsure'); % determine threshold for each IMF using universal thresholding
for i = 1:imf_count
IMF(:,i) = wthresh(IMF(:,i), 's', thresholds(i));
end
% Reconstruct denoised signal from thresholded IMFs
adaptive_thr=1.5;
sum1=0;
sum2=0;
for i=1:imf_count
if(thresholds(i)<adaptive_thr)
sum1=sum1+IMF(:,i);
else
sum2=sum2+IMF(:,i);
end
end
clean_EEG=sum1;
denoised_signal=sum2;
% Plot results
figure;
subplot(3,1,1);
plot(eeg_signal);
title('Contaminated EEG signal');
subplot(3,1,2);
plot(denoised_signal);
legend( 'Noise signal');
title('Noise signal');
subplot(3,1,3);
plot(clean_EEG);
legend( 'Clean signal');
title('Pure EEG signal');
%%
% Calculate SNR
SNR = 20 * log10(norm(eeg_signal)/norm(clean_EEG));
% Calculate MSE
MSE = ((norm(eeg_signal) - norm(clean_EEG)).^2) / 3000;
% MSE2 = immse(norm(eeg_signal), norm(clean_EEG))/3000;
%
disp(['SNR: ', num2str(SNR), ' dB']);
disp(['MSE: ', num2str(MSE)]);

Answers (0)

Categories

Find more on EEG/MEG/ECoG in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!