1523|0

6802

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

C6000系列DSP›FSK信号鉴频的程序 [复制链接]

/*******************************************************************/
/*******************************************************************/
/* This program implements the function of finding out the largest */
/* and the second largest values of the sequence of "in_buffer[10]"*/
/*******************************************************************/
/*******************************************************************/

#include
#include
#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;
}


 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表