-
Notifications
You must be signed in to change notification settings - Fork 0
/
periodicity.m
39 lines (37 loc) · 1005 Bytes
/
periodicity.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function [dominantfrequency, meanv, maxv, minv, dominantamp, file] = periodicity(filename, col, Stime, file, Tper,mod)
% show fft
% [dominantfrequency, meanv, maxv, minv, dominantamp] = showp(filename, col, Stime, file)
setPlotParameters;
varname = {'t', 'fxp', 'fxv', 'fx', 'fyp', 'fyv', 'fy', '', '', '', ''};
if nargin < 4
nskip = 5;
nvars = 7;
file = loaddata(filename, nskip, nvars);
end
if nargin>=6
mode = mod;
else
mode = 0;
end
if nargin < 5
[meanv, maxv, minv, is, ie] = peak_mean(Stime, file, col, mode);
else
[meanv, maxv, minv, is, ie] = period_mean(Stime, Tper, file, col, mode);
end
Tp = file.data(ie, 1) - file.data(is, 1);
y = 1/(ie-is)*fft(file.data(is:(ie-1),col)-meanv);
figure;
index = (1:min(ceil(length(y)/2),100))';
plot((index-1)/Tp, abs(y(index)),'.-');
hold on;
xlabel('frequency');
ylabel('amplitude');
title(varname{col});
[dominantamp, id] = max(abs(y(index)));
format long;
meanv
maxv
minv
dominantamp
dominantfrequency = (index(id)-1)/Tp
end