Peonys 发表于 2017-11-9 10:37

FSK信号鉴频的程序

FSK信号鉴频的程序



[*]/*******************************************************************/

[*]/*******************************************************************/

[*]/* This program implements the function of finding out the largest */

[*]/* and the second largest values of the sequence of "in_buffer"*/

[*]/*******************************************************************/

[*]/*******************************************************************/

[*]

[*]#include <stdio.h>

[*]#include <math.h>

[*]#include "freq_max_finding.h"

[*]

[*]//extern float cosf(float x);

[*]extern int in_buffer={0,0,0,0,0,0,0,0,0,0}; /* in_buffer[]中的值为频谱点 */

[*]//int out_buffer;

[*]

[*]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>in_buffer)

[*]                           {data_max=in_buffer; i_max=i+1;}

[*]                                 

[*]               else {data_max=in_buffer; 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=0;      /* set 0 to "in_buffer"*/

[*]               

[*]                for(p=1;p<=POINT_ALL/2;p++)

[*]                        {

[*]                         for(q=0;q<=POINT_ALL/2-2;q++)

[*]                                 {

[*]                                    if (in_buffer>in_buffer)      

[*]                                                    {data_max2=in_buffer; i_max2=q+1;}

[*]                                                   

[*]                                    else      {data_max2=in_buffer; 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=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;

[*]}

[*]

复制代码


页: [1]
查看完整版本: FSK信号鉴频的程序