annotate Allan.h @ 67:0159abc1a9d8

Fix slope measurement For the update algorithm to work correclty the slope measurement must be updated before the mean measurement. Other code is affected by the same issue.
author Daniele Nicolodi <daniele.nicolodi@obspm.fr>
date Mon, 29 Oct 2012 14:48:08 +0100
parents d9aae7d7f2c6
children bd28161e5ac2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
1 #include "YLCStuff.h"
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
2
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
3 #define ALLAN_MAXPOINTSNUMBER 13 // can compute Allan dev for tau from 1s to 2^13 s =8192 s ~ 2h15' < 10000 s
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
4
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
5
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
6 // Allan_Data : the data of crypto class Allan
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
7
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
8 typedef struct {
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
9 PanelHandle AllanPanel ; // le handle sur le graphe
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
10 void (*OnClosePanel)(int); // pointer on a function to execute when the panel is closed (argument is the panel Handle)
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
11 double AllanVar[ALLAN_MAXPOINTSNUMBER] ; // the values of variances for each tau = 2^n.tau_0 (with n from 0 to ALLAN_MAXPOINTSNUMBER)
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
12 double FirstMean[ALLAN_MAXPOINTSNUMBER] ; // the means of the first block of 2^n data for which averaging was completed
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
13 double LastMean[ALLAN_MAXPOINTSNUMBER] ; // the means of the last block of 2^n data for which averaging was completed
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
14 int BlocksNumber[ALLAN_MAXPOINTSNUMBER] ; // the number of blocks of 2^n data (averaged) used for computing AVAR(2^ntau)
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
15 double CurrentAverage[ALLAN_MAXPOINTSNUMBER] ; // the sum of the last p data points retrieved (with p<2^2n). used for averaging as soon as p=2^n
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
16 int NbCurrentAverage[ALLAN_MAXPOINTSNUMBER] ; // number of data point being summed in CurrentAverage (from 0 up to 2^n)
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
17 double Drift, Mean ; // the drift rate of the data (in Hz/s), and the mean value (in Hz) : only usefull for dedrifting...
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
18 } Allan_Data ;
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
19
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
20
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
21 // The functions of crypto class Allan
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
22
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
23 int Allan_InitPanel(Allan_Data * Instance, char * title, double Normalizer, void (*OnCloseFunc)(int)) ;
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
24 int Allan_ClosePanel(Allan_Data * Instance) ;
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
25 int Allan_AddFrequency(Allan_Data * Instance, double Freq) ;
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
26
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
27 int Allan_Reset(Allan_Data * Instance) ;
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
28 int Allan_AddFrequency(Allan_Data * Instance, double Freq);
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
29 int Allan_Display(Allan_Data * Instance, int ColorPt, int ColorErrorBar);
Daniele Nicolodi <daniele.nicolodi@obspm.fr>
parents:
diff changeset
30 int Allan_DisplayErrorBars(Allan_Data * Instance, int color);