#include<stdio.h>
#include<math.h>
#define N 1024 //符号长度
int main()
{
int AFE;
int AFE_local[N];
int j,n,d;
int i = 0;
int k = 0;
int q = 0;
float T;
float AFE_local_data[N];
float AFE_data[N];
FILE * fin;
FILE * fin_local;
/*********导入序列***********/
if((fin = fopen("AFE_data_200.txt","r")) == NULL)
{
printf("Can't Open");
}
/*********导入本地序列序列***********/
if((fin_local = fopen("AFE_LOCAL.txt","r")) == NULL)
{
printf("Can't Open");
}
for(j = 0; j < N ; j++)
{
fscanf(fin_local,"%d\n",&AFE_local[j]);
//printf("%d\n",AFE_local[j]);
AFE_local_data[j] = (AFE_local[j] * 1.2)/4096;
}
fclose(fin_local);
/***********将数列存到AFE中************/
while(!feof(fin))
{
float C = 0;
fscanf(fin,"%d\n",&AFE);//取序列
if( AFE == 0)
{
AFE = 2047;
}
/*************存序列*****************/
if(i < N)
{
AFE_data[i] = AFE * 1.2/4096;
}else
{
/*********当i = N时,开始相关计算****************/
for(n = 0; n < N ; n++)
{
C = C + fabs((AFE_local_data[n] - 0.6) * (AFE_data[n] - 0.6));
}
//printf("%f\n",C);
/********************判断信号来到****************/
if( C > 20) //进入0序列范围内
{
k = k + 1;
}
if( (k == 12) && (C < 1) )
{
k = 0;
q = q + 1;
printf("Signal arrival:%d\n",q);
}
/*if( C < 1 )
{
k = 0;
q = q + 1;
printf("Signal arrival:%d End position: %d\n",q,i-1024);
//printf("Signal Come %d %d \n",k,i - 1024);//当i = N时,开始相关计算 ,计算次数需减N
}*/
/*************当i>N时AFE_data左移****************/
for(d = 1 ; d < N ; d++)
{
AFE_data[d-1] = AFE_data[d];
}
AFE_data[N-1] = AFE * 1.2/4096;
}
i = i + 1;
}
fclose(fin);
getchar();
}