How can I distinguish from an unfiltered signal an eeg signal from an emg one?
2 ビュー (過去 30 日間)
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?
Star Strider 2023 年 6 月 10 日
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
xlim([0 0.1]) % See Detail
Fn = Fs/2;
NFFT = 2^nextpow2(L)
FTs = fft((s-mean(s)).*hann(L), NFFT)/L;
Fv = linspace(0, 1, NFFT/2+1)*Fn;
Iv = 1:numel(Fv);
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).