Hello; Can someone please help me matlab doesn't plot my excel data it show the axis only I am trying to make spectral analysis.i have attested the excel file and code as well.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
filename = 'datacollect2.xlsx';
N = length(filename);
fs = 400;
fnyquest = fs/2;
num = xlsread(filename);
y = num(: ,2);
mags = abs(fft(y));
bin_vals = [0 : N-1];
fax_Hz = bin_vals*fs/N;
N_2 = ceil(N/2);
plot(mags(1:N_2),fax_hz(1:N_2))
xlabel('Frequency (Hz)')
ylabel('Power (dB)');
title('Single-sided Power spectrum (Hertz)');
axis tight
5 Kommentare
Akzeptierte Antwort
dpb
am 15 Mai 2017
Bearbeitet: dpb
am 15 Mai 2017
filename = 'datacollect2.xlsx';
N = length(filename);
fs = 400;
fnyquest = fs/2;
num = xlsread(filename);
y = num(: ,2);
mags = abs(fft(y));
bin_vals = [0 : N-1];
Probably biggest problem is you've used the length of the filename as the length of the data. The file name is just that; the string containing the name of the file on the disk, it has nothing whatsoever to do with the data contained in the file.
Here,
>> filename = 'datacollect2.xlsx';
N = length(filename)
N =
17
>>
so all you've plotted are the first 9 points out of the arrays; not much at all... :)
N = length(y);
after you've defined y will undoubtedly help a lot, particularly when you get the roles of X,Y corrected in the plot statement.
You may want to also plot 2*abs(fft(y))/N to normalize the spectrum amplitude to input. See
doc fft % example there shows some other details as well
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Data Distribution Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!