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]