Blame view

sim_fft-adev/adev_averaging.m 987 Bytes
0cbce28ef   bmarechal   sim_fft-adev: add...
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
  clc
  close all
  clear all
  
  Ts = 0.2;
  N = 1e6;
  D = 5;
  
  data_raw.rate = 1/Ts;
  data_raw.freq = 1/2.*noise(N, 1, 'white') + 1.*noise(N, 1, 'pink') + 1.*noise(N, 1, 'brown') + 0e-8.*[0:N-1]';
  t_raw = [0:length(data_raw.freq)-1];
  [ad_raw, S, err_raw, tau_raw] = allan(data_raw, 2.^[0:20].*Ts, 'raw',0);
  
  data_avg.rate = 1/(Ts*D);
  data_avg.freq = mean(reshape(data_raw.freq', [D, N/D]))';
  t_avg = D.*[1:length(data_avg.freq)];
  [ad_avg, S, err_avg, tau_avg] = allan(data_avg, 2.^[0:20].*Ts*D, 'avg',0);
  
  data_decim.rate = 1/(Ts*D);
  data_decim.freq = reshape(data_raw.freq', [D, N/D])(1,:)';
  t_decim = D.*[0:length(data_decim.freq)-1];
  [ad_decim, S, err_decim, tau_decim] = allan(data_decim, 2.^[0:20].*Ts*D, 'decim',0);
  
  figure
  hold on
  loglogerr(tau_raw, ad_raw, err_raw, 'b')
  loglogerr(tau_decim, ad_decim, err_decim, 'm')
  loglogerr(tau_avg, ad_avg, err_avg, 'r')
  grid on
  
  figure
  hold on
  plot(t_raw, data_raw.freq, 'b')
  plot(t_decim, data_decim.freq, 'm')
  plot(t_avg, data_avg.freq, 'r')
  grid on