|
/*******************************************************************/ /*******************************************************************/ /* This program implements the function of finding out the largest */ /* and the second largest values of the sequence of "in_buffer[10]"*/ /*******************************************************************/ /*******************************************************************/
#include <stdio.h> #include <math.h> #include "freq_max_finding.h"
//extern float cosf(float x); extern int in_buffer[10]={0,0,0,0,0,0,0,0,0,0}; /* in_buffer[]中的值为频谱点 */ //int out_buffer[2];
static void dataIN(void);
void main() { int i=0; // float data_max=0; int data_max=0; // float data_max2=0; int data_max2=0; int i_max=0; int i_max2=0; float f_max=0; float f_max2=0; int p=0; int q=0; // float a=0, b=3.14159; // a=a+0; // b=b+0; // a=cosf(b);
/**********************************************************/ /** 几句废话,消除warning:data_max was set but never used **/ data_max=data_max+0; data_max2=data_max2+0; // i_max=i_max+0; // i_max2=i_max2+0; f_max=f_max+0; f_max2=f_max2+0; /**********************************************************/ dataIN(); /* read data into memory */ /************************************************/ /** find out the greatest value of "in_buffer" **/
for(i=0;i<=POINT_ALL-2;i++) { if (in_buffer[i+1]>in_buffer[i]) {data_max=in_buffer[i+1]; i_max=i+1;} else {data_max=in_buffer[i]; i_max=i;} }
f_max=FS*i_max/POINT_ALL; /* calculate the value of carrier frequency */ /************************************************/
/*****************************************************/ /* find out the second greatest value of "in_buffer" */
in_buffer[i_max]=0; /* set 0 to "in_buffer[i_max]"*/ for(p=1;p<=POINT_ALL/2;p++) { for(q=0;q<=POINT_ALL/2-2;q++) { if (in_buffer[q+1]>in_buffer[q]) {data_max2=in_buffer[q+1]; i_max2=q+1;} else {data_max2=in_buffer[q]; i_max2=q;} } /* determines the availability of i_max2 through estimating the distance of i_max between i_max2 */ if (abs(i_max-i_max2)<=GAP) in_buffer[i_max2]=0; else break; } f_max2=FS*i_max2/POINT_ALL; /* calculate the value of carrier frequency2 */ /*****************************************************/ while(1); }
static void dataIN() { /* do read data from host file */ return; }
|