Newer
Older
PhaseMeasure / DataProcessAlgorithm.cpp
TAN YUE on 5 Jan 2022 800 bytes 20220104 udp test
#include "DataProcessAlgorithm.h"
#include <math.h>

DataProcessAlgorithm::DataProcessAlgorithm(QObject *parent) : QObject(parent)
{

}

double DataProcessAlgorithm::allan(double x[], int d, int aN, int ai)
{
    int j = 0;
    int i = 0;
    double tau0;    //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(x[i+2*d] - 2 * x[i+d] + x[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];
}