view Allan.h @ 134:bd28161e5ac2

Major code cleanup
author Daniele Nicolodi <daniele.nicolodi@obspm.fr>
date Wed, 22 Jan 2014 12:29:28 +0100
parents d9aae7d7f2c6
children 77539f2597b1
line wrap: on
line source

#include "YLCStuff.h"

#define ALLAN_MAXPOINTSNUMBER 13			// can compute Allan dev for tau from 1s to 2^13 s =8192 s ~ 2h15' < 10000 s


// Allan_Data : the data of crypto class Allan

typedef struct {
	PanelHandle AllanPanel ;					// le handle sur le graphe
	double AllanVar[ALLAN_MAXPOINTSNUMBER] ;	// the values of variances for each tau = 2^n.tau_0 (with n from 0 to ALLAN_MAXPOINTSNUMBER)
	double FirstMean[ALLAN_MAXPOINTSNUMBER] ;   // the means of the first block of 2^n data for which averaging was completed
	double LastMean[ALLAN_MAXPOINTSNUMBER] ;    // the means of the last block of 2^n data for which averaging was completed
	int BlocksNumber[ALLAN_MAXPOINTSNUMBER] ;	// the number of blocks of 2^n data (averaged) used for computing AVAR(2^ntau)       
	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
	int NbCurrentAverage[ALLAN_MAXPOINTSNUMBER] ;	// number of data point being summed in CurrentAverage (from 0 up to 2^n)
	double Drift, Mean ; // the drift rate of the data (in Hz/s), and the mean value (in Hz) : only usefull for dedrifting...
	int active;
	int parent;
	int control;
} Allan_Data ;


// The functions of crypto class Allan

int Allan_InitPanel(Allan_Data * Instance, const char * title, double Normalizer, int parent, int control) ;
int Allan_ClosePanel(Allan_Data * Instance) ;
int Allan_AddFrequency(Allan_Data * Instance, double Freq) ;

int Allan_Reset(Allan_Data * Instance) ;
int Allan_AddFrequency(Allan_Data * Instance, double Freq);
int Allan_Display(Allan_Data * Instance, int ColorPt, int ColorErrorBar);
int Allan_DisplayErrorBars(Allan_Data * Instance, int color);