打印

FSK信号鉴频的程序

[复制链接]
367|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
米尔豪斯|  楼主 | 2016-6-29 21:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************************/
/*******************************************************************/
/* 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;
}
复制代码

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

150

主题

731

帖子

1

粉丝