Commit 54ec4ada0b07134e4185b0670d7b394cbe58c671

Authored by bmarechal
1 parent 4a63914c1d
Exists in master

add help header

Showing 1 changed file with 19 additions and 3 deletions Inline Diff

#!/usr/bin/octave-cli --persist 1 1 #!/usr/bin/octave-cli --persist
2 2
3 # allanplot.m computes Allan deviation from temporal dataset
4 #
5 # use : allanplot.m file.dat column_i gain_i ad_opt
6 # allanplot.m file.dat [column_i,column_j] [gain_i,gain_j] [ad_opt_i,ad_opt_j]
7 #
8 # inputs:
9 # file.dat : [string] file to load
10 # columns : int or [int] columns to load
11 # gains : float or [float] gains to apply
12 # ad_opt : int or [int] ad options :
13 # 0 direct allan computation
14 # 1 drift removed ad
15 # 2 relative ad
16 # 3 relative drift removed ad
17
filename = argv(){1}; 3 18 filename = argv(){1};
col = eval(argv(){2}); 4 19 col = eval(argv(){2});
mult = eval(argv(){3}); 5 20 mult = eval(argv(){3});
21 ad_opt = eval(argv(){4});
6 22
if length(col) == length(mult) 7 23 if length(col) == length(mult)
figure 8 24 figure
hold all 9 25 hold all
grid on 10 26 grid on
cc = 'bkcgmry'; 11 27 cc = 'bkcgmry';
for i = [1:length(col)] 12 28 for i = [1:length(col)]
data.freq = load(filename)(:,col(i)).*mult(i); 13 29 data.freq = load(filename)(:,col(i)).*mult(i);
if nargin == 4 14 30 if nargin == 4
if eval(argv(){4})(i) == 1 15 31 if ad_opt(i) == 1
printf(strcat(filename, ' col', num2str(col(i)), ' drift removed\n\n')) 16 32 printf(strcat(filename, ' col', num2str(col(i)), ' drift removed\n\n'))
data.freq = detrend(data.freq); 17 33 data.freq = detrend(data.freq);
elseif eval(argv(){4})(i) == 2 18 34 elseif ad_opt(i) == 2
printf(strcat(filename, ' col', num2str(col(i)), ' relative ad : mean=', num2str(mean(data.freq)), '\n\n')) 19 35 printf(strcat(filename, ' col', num2str(col(i)), ' relative ad : mean=', num2str(mean(data.freq)), '\n\n'))
data.freq = data.freq./mean(data.freq); 20 36 data.freq = data.freq./mean(data.freq);
elseif eval(argv(){4})(i) == 3 21 37 elseif ad_opt(i) == 3
printf(strcat(filename, ' col', num2str(col(i)), ' drift removed relative ad\n\n')) 22 38 printf(strcat(filename, ' col', num2str(col(i)), ' drift removed relative ad\n\n'))
data.freq = detrend(data.freq./mean(data.freq)); 23 39 data.freq = detrend(data.freq./mean(data.freq));
end 24 40 end
endif 25 41 endif
data.rate = 1; 26 42 data.rate = 1;
[ad, S, err, tau] = allan(data, 2.^[0:nextpow2(length(data.freq))-3]./data.rate, strcat(strsplit(filename, '/'){end}, num2str(i)), 0); 27 43 [ad, S, err, tau] = allan(data, 2.^[0:nextpow2(length(data.freq))-3]./data.rate, strcat(strsplit(filename, '/'){end}, num2str(i)), 0);
loglogerr(tau, ad, err, strcat(cc(mod(i, length(cc))), '-s')) 28 44 loglogerr(tau, ad, err, strcat(cc(mod(i, length(cc))), '-s'))
leg{i} = strcat(filename, ' col', num2str(col(i))); 29 45 leg{i} = strcat(filename, ' col', num2str(col(i)));
axis(10.^ceil(log10([tau(1), tau(end)]))) 30 46 axis(10.^ceil(log10([tau(1), tau(end)])))
hold on 31 47 hold on
end 32 48 end
legend(leg) 33 49 legend(leg)
input("Press to continue..."); 34 50 input("Press to continue...");
end 35 51 end
exit 36 52 exit
37 53