Blame view

sim_fft-adev/psd_tf.m 1.1 KB
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
37
38
  clc
  close all
  clear all
  
  %%
  N = 1e7;
  Fs = 1000;
  %%
  
  data_white.rate = Fs;
  data_white.freq = noise(N, 1, 'white');
  [ad_white, S, err_white, tau] = allan(data_white, 2.^[0:nextpow2(length(data_white.freq))]./Fs, 'white noise',0);
  [p_white, f_white] = pwelch(data_white.freq, [], [], [], data_white.rate, 'onesided');
  
  data_pink.rate = Fs;
  data_pink.freq = noise(N, 1, 'pink');
  [ad_pink, S, err_pink, tau] = allan(data_pink, 2.^[0:nextpow2(length(data_pink.freq))]./Fs, 'pink noise',0);
  [p_pink, f_pink] = pwelch(data_pink.freq, [], [], [], data_pink.rate, 'onesided');
  
  
  data_brown.rate = Fs;
  data_brown.freq = noise(N, 1, 'brown');
  [ad_brown, S, err_brown, tau] = allan(data_brown, 2.^[0:nextpow2(length(data_brown.freq))]./Fs, 'brown noise',0);
  [p_brown, f_brown] = pwelch(data_brown.freq, [], [], [], data_brown.rate, 'onesided');
  
  figure
  hold on
  loglogerr(tau, ad_white, err_white, 'b')
  loglogerr(tau, ad_pink, err_pink, 'm')
  loglogerr(tau, ad_brown, err_brown, 'k')
  grid on
  
  figure
  hold on
  semilogx(f_white, 10*log10(p_white), 'b')
  semilogx(f_pink, 10*log10(p_pink), 'm')
  semilogx(f_brown, 10*log10(p_brown), 'k')
  grid on