FFT using CSV data file
4 ビュー (過去 30 日間)
古いコメントを表示
Hi guys, ive been struggling with a task. I have to import the data from .csv file and then do the fft from the data imported, im using code like this:
filename = 'pomiary1.csv';
X = csvread(filename);
Fs = 2.5;
T = 1/Fs;
L = 100000;
t = (0:L-1)*T;
Fn = Fs/2;
FX = fft(X)/L;
Fv = linspace(0, 1, fix(L/2)+1)*Fn;
Iv = 1:length(Fv);
figure(1);
plot(Fv, abs(FX(Iv))*2)
grid
title('Fourier Transform Of Original Signal ‘X’')
xlabel('Frequency (Hz)')
ylabel('Amplitude')
Code seems to be fine but the fft it gives is a straight line on 0 level (x axis) and i dont know why
I attached the data file first column is time second is the current
0 件のコメント
回答 (1 件)
Star Strider
2017 年 7 月 4 日
I could not get csvread to read the file correctly, because each number in the second column has ‘;;;;’ following it in the file you attached.
This works:
[t,S] = xlsread(filename);
X = cellfun(@(c) sscanf(c,'%f;;;;'), S);
Ts = mean(diff(t));
Fs = 1/Ts;
L = length(t);
Fn = Fs/2;
FX = fft(X)/L;
Fv = linspace(0, 1, fix(L/2)+1)*Fn;
Iv = 1:length(Fv);
figure(1);
semilogy(Fv, abs(FX(Iv))*2)
grid
title('Fourier Transform Of Original Signal ‘X’')
xlabel('Frequency (Hz)')
ylabel('Amplitude')
I changed your code slightly to correct for the sampling time interval and to define a few other variables from the data.
6 件のコメント
参考
カテゴリ
Help Center および File Exchange で Measurements and Feature Extraction についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
