⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 freq_max_finding.c

📁 这是一个fsk信号鉴频的程序
💻 C
字号:
/*******************************************************************/
/*******************************************************************/
/* 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;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -