?? fft.c
字號:
#include<stdio.h>
#include<dos.h>
#include<stdlib.h>
#include<malloc.h>
#include<math.h>
#include"dsp.h"
void main()
{
COMPLEX*x,*xtemp;
int i,nn,mm;
double y,q;
system("cls");
printf("\n********************************************");
printf("\n* Filename:fft1.c *");
printf("\n* Function:fft analysis for signals *");
printf("\n* Signal :x(n)=exp(-n) *");
printf("\n********************************************");
printf("\n Input m= ");
scanf("%d",&mm);
nn=1<<mm;
x=(COMPLEX*)calloc(nn,sizeof(COMPLEX));
xtemp=(COMPLEX*)calloc(nn,sizeof(COMPLEX));
x[0].real=1.0;
x[0].imag=0.0;
for(i=1;i<nn;i++)
{x[i].real=(float)exp(-i);
x[i].imag=0.0;
}
for(i=0;i<nn;i++)xtemp[i]=x[i];
/* FFT analysis for x(n) */
fft(x,mm);
printf("finished! \n\n");
/* output result in a format */
printf(" k XR(K) XI(K) |X(K)| Q(K)\n");
printf("------------------------------------------------------\n");
for(i=0;i<nn;i++)
{
y=x[i].real*x[i].real+x[i].imag*x[i].imag;
if(x[i].real!=0)
{
if(x[i].imag==0.0)
{ if(x[i].real>0) q=0.0;
if(x[i].real<0) q=4.0*(atan(1.0));
}
q=atan(x[i].imag/x[i].real);
}
printf("%4d %9f %9f %9f %9f\n",i,x[i].real,x[i].imag,sqrt(y),q);
}
printf("\n\n");
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -