做8点的FFT程序 用C或matlab实现

来源:百度知道 编辑:UC知道 时间:2024/06/25 11:51:19
做8点的FFT程序 用C或matlab实现 我要具体的程序 思路不要

n年前做的了基2的
#include "stdafx.h"
#include "complex.h"

void main()
{
const double pi = 3.14159265;
int i; //循环变量
//////////////////////////////////////////////////////////////////
//信号生成:正弦信号,固定频率。生成1024点
const N = 64; //信号点数
const n =N/2; //半点数,用于循环控制
float S[N]; //信号数组
float temp;
temp = (float) (8 * pi) / N; //出现两个周期
for(i=0; i<N; i++) S[i] = (float) sin(temp * i);
//////////////////////////////////////////////////////////////////
//旋转因子数组生成
complex W[n];
temp = (float) (2 * pi / N);
for(i=0; i<n; i++) {
W[i].SetReal((float)cos(temp * i));
W[i].SetImag((float)-sin(temp * i));
// cout<<W[i]<<endl;
}
///////////////////////////////////////////////////////////////////
//变换:基2-FFT
//先做蝶形运算,再对信号排序
///////////////////////////////////////////////////////////////////

////////////