📄 fft.cpp
字号:
/*
Short test program to accompany fix_fft.c
使用N点fft计算2N点实序列的DFT
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "fft.h"
////////////file test/////////////////
#define FFT_SIZE 128
#define log2FFT 7
#define FREQUENCY 1
#define AMPLITUDE (128*500/FFT_SIZE)
int main()
{
FILE *fp;
float a[FFT_SIZE];
short x[FFT_SIZE];
int i;
if((fp = fopen("D:\\work\\matlab\\fft\\time8.txt","rt")) == NULL)
exit(1);
for(i=0;i<FFT_SIZE;i++)
//matlab中使用6f,c语言中使用9f
fscanf(fp,"%9f",&a[i]);
fclose(fp);
puts("===============x===================");
for (i=0; i<FFT_SIZE; i++)
{
x[i] = short(AMPLITUDE*a[i]);
printf("%d%s%d\n",i," ",x[i]);
}
puts("===============fx===================");
fix_fftr1(x, log2FFT);
for (i=0; i<FFT_SIZE; i++)
{
printf("%d%s%d\n",i," ",x[i]/AMPLITUDE);
}
return 0;
}
//////////////////////////////
/*
//////fix_fftr1/////////////////
#define FFT_SIZE 128
#define log2FFT 7
#define FREQUENCY 1
#define AMPLITUDE (128*500/FFT_SIZE)
int main()
{
int i;
short x[FFT_SIZE];
puts("===============x===================");
for (i=0; i<FFT_SIZE; i++)
{
x[i] = AMPLITUDE*cos(i*FREQUENCY*(2*3.1415926535)/FFT_SIZE);
printf("%d%s%d\n",i," ",x[i]);
}
puts("===============fx===================");
fix_fftr1(x, log2FFT);
for (i=0; i<FFT_SIZE; i++)
{
printf("%d%s%d\n",i," ",x[i]/AMPLITUDE);
}
return 0;
}
//////////////////////////////////////
*/
/*
//////fix_fftr2/////////////////
#define FFT_SIZE 128
#define log2FFT 7
#define FREQUENCY 1
#define AMPLITUDE 12288 //(1<<(log2FFT*2))
int main()
{
int i;
short x[FFT_SIZE];
puts("===============x===================");
for (i=0; i<FFT_SIZE; i++)
{
x[i] = AMPLITUDE*cos(i*FREQUENCY*(2*3.1415926535)/FFT_SIZE);
printf("%d%s%d\n",i," ",x[i]);
}
puts("===============fx===================");
fix_fftr2(x, log2FFT);
for (i=0; i<FFT_SIZE; i++)
{
printf("%d%s%d\n",i," ",x[i]);
}
return 0;
}
//////////////////////////////////////
*/
/*
//////fix_fftr3/////////////////
#define FFT_SIZE 1024
#define log2FFT 10
#define FREQUENCY 1
#define AMPLITUDE (128*500/FFT_SIZE)
int main()
{
int i;
short x[FFT_SIZE];
puts("===============x===================");
for (i=0; i<FFT_SIZE; i++)
{
x[i] = AMPLITUDE*cos(i*FREQUENCY*(2*3.1415926535)/FFT_SIZE);
printf("%d%s%d\n",i," ",x[i]);
}
puts("===============fx===================");
fix_fftr3(x, log2FFT);
for (i=0; i<FFT_SIZE; i++)
{
printf("%d%s%d\n",i," ",x[i]/AMPLITUDE);
}
return 0;
}
//////////////////////////////////////
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -