#include "DataProcessAlgorithm.h" #include <math.h> DataProcessAlgorithm::DataProcessAlgorithm(QObject *parent) : QObject(parent) { } double DataProcessAlgorithm::allan(int index,int d, int aN, int ai) { int j = 0; int i = 0; double tau0 = 1; //tau0是基本采样间隔,由计数器或比相仪的最小采样间隔决定,最小为1s double sum = 0.0; double allan[2] = {0.0}; double *y = new double[aN]; double tau_2 = pow(d * tau0, 2); //pow是计算x的y次幂 for (i = 0; i < aN - 2 * d; i = i+1) { y[i] = pow(phaseVector[index][i+2*d] - 2 * phaseVector[index][i+d] + phaseVector[index][i], 2); sum=sum+y[i]; j+=1; } allan[0] = sum/(2*tau_2*(aN-2*d)); //delta的平方 allan[1] = sqrt(sum/(2*tau_2*(aN-2*d))); //delta j = 0; return allan[ai]; }