# FFT of EMG Signal

133 views (last 30 days)
Karl Rueth on 22 Oct 2017
Commented: ANADI BISWAS on 28 Dec 2021
I am trying to obtain the FFT of an EMG Signal, I have already done some other type of processing, including; removing DC Offset, Rectification and Signal Envelope, however I am stuck in the FFT part ? Any help would be appreciated ..
Attached the Code and Photo of current situation can be found. dpb on 23 Oct 2017
What "final result", there's no FFT uncommented in the sample code; the result will be what it shall be; you can't really "require" anything.
You don't even say what your desired result is that you're looking for, specifically, what are we, mind-readers?
Look at the example at
doc fft
for example of doing PSD via FFT for pointers.

Star Strider on 22 Oct 2017
See the documentation on fft (link).

Luc Dransfeld on 8 Jan 2018
If you follow the FFT documentation from Matlab, you should be able to get there. Maybe though, you should set your plot window differently, as motion artifacts can contain a power that is proportionately way bigger that the rest of the EMG-frequencies resulting that you will only visibly see the motion artifacts. You can always use matlab function: periodogram, which basically gets you the logarithm from the power, expressed in dB.

Trishna Sah on 23 Jan 2019
Edited: Trishna Sah on 23 Jan 2019
This is using your variables in the fft doc by Matlab
%fft plot for emg4
Fs=1000;
L=length(emg4);
t=L/Fs;
x=emg4;
Y = fft(x);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = Fs*(0:(L/2))/L;
plot(f,P1)
title('Frequency Spectrum Plot')
xlabel('f (Hz)')
ylabel('|P1(f)|')
f = Fs*(0:(L/2))/L;
plot(f,P1)
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')
ANADI BISWAS on 28 Dec 2021
Units of x axis and y axis after abs(fft)?