How can I distinguish from an unfiltered signal an eeg signal from an emg one?

2 views (last 30 days)
Could you please provide guidance on how to plot the signal from the file "sigtest230504.mat" in MATLAB with a sampling frequency of 1000Hz? Additionally, how can I analyze the signal's spectrum to determine the type of biopotential it represents? Is there a script available to differentiate between EEG, EMG, and ECG signals?

Accepted Answer

Star Strider
Star Strider on 10 Jun 2023
Plotting is straightforward —
LD = load('sigtest230504.mat');
s = LD.sig;
L = numel(s);
Fs = 1E+3;
t = linspace(0, L-1, L)/Fs; % Time Vector
figure
plot(t, s)
grid
xlabel('Time')
ylabel('Amplitude')
figure
plot(t, s)
grid
xlabel('Time')
ylabel('Amplitude')
xlim([0 0.1]) % See Detail
Fn = Fs/2;
NFFT = 2^nextpow2(L)
NFFT = 8192
FTs = fft((s-mean(s)).*hann(L), NFFT)/L;
Fv = linspace(0, 1, NFFT/2+1)*Fn;
Iv = 1:numel(Fv);
figure
plot(Fv, abs(FTs(Iv))*2)
grid
xlabel('Frequency (Hz)')
ylabel('Magnitude')
title('Fourier Transform')
xline([50 60], '--r')
The spectrum is not going to tell much (if anything) about the type of signal it represents, since that is not the purpose of the Fourier transform. It will tell you the frequency content aand whether any noise is broadband (and that appears to be the situation here) or band-liminted (for example containing mains (powerline) frequency noise). The dashed red lines here indicate the most common mains frequencies, and there does not appear to be any significant signal energy at or near these frequencies.
Generally EKG signals have a bandwidth of 0 to 100 Hz, and nothing much above that. This appears to be typical for an EMG signal. The frequencies appear to be too high for an EEG signal (most of which are below about 30 Hz, at least in my experience).
.
  4 Comments
Star Strider
Star Strider on 10 Jun 2023
Reason for what?
The reason those are not present in this signal is most likely due to having the correct instrumentation and correct lead placement, as well as using a reference electrode to subtract background noise from the desired signal.
The reason they might be present in a signal is the opposite of that.

Sign in to comment.

More Answers (0)

Categories

Find more on Biomedical Signal Processing in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!