FFT of signal from text file
19 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi, I am trying to plot an FFT for an EMG signal which is saved in a text file. I did manage to plot the actual signal, but when I plotted the FFT, the window remained blank. Can someone please highlight what I am doing wrong. Also, How to determine the sampling frequency value (Fs)?
Attached please find the text file containing the EMG signal data. Thanks in advance.
Ts = mean(diff(t)); % Sampling Time
Fs = 1/Ts; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
FEMG = fft(EMG)*2/L; % Fourier Transform (Normalised)
Fv = linspace(0, 1, fix(L/2)+1)*Fn; % Frequency Vector
Iv = 1:length(Fv); % Index Vector
figure(1)
plot(Fv, abs(FEMG(Iv)))
grid
0 Commenti
Risposta accettata
Star Strider
il 20 Nov 2015
I don’t see the error in your code, but the code here I wrote (plotting half of the fft) works:
fidi = fopen('John Smith emg.txt', 'rt');
T_EMG = textscan(fidi, '%f%f', 'Delimiter',' ');
t = T_EMG{1};
EMG = T_EMG{2};
L = length(t);
Ts = mean(diff(t)); % Sampling Time
Fs = 1/Ts; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
FEMG = fft(EMG)*2/L; % Fourier Transform (Normalised)
Fv = linspace(0, 1, fix(L/2)+1)*Fn; % Frequency Vector
Iv = 1:length(Fv); % Index Vector
figure(1)
plot(Fv, abs(FEMG(Iv)))
grid
7 Commenti
krn99
il 5 Giu 2017
sir i have used 10hz cutt of freq(fc) high pass and 1000hz fc for low pass FIR filter(4th order). i have used filtfilt function to avoid zero lag. But my doubt is do i want to do divide my cut off frequency with 0.802 for fourth order which is mentioned in Winters and Robertson book. i dont understand their concept. if you know please tell me. Thanks in advance
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Spectral Measurements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!