fft源码,VS2010上可编译运行

本文介绍了如何在Visual Studio 2010环境下使用C语言编写并编译运行快速傅立叶变换(FFT)程序,重点讲解了关键的蝶形运算流程。
摘要由CSDN通过智能技术生成

#include<math.h>
#include<stdio.h>
#include <memory>

#define FFT_COUNT	256
#define PI	3.1415926f
int FFT_R = 0;

double val[FFT_COUNT][2];
double val2[FFT_COUNT][2];
double fft_w[FFT_COUNT][2];
double fft_x1[FFT_COUNT][2];
int pos[FFT_COUNT];
double anm[FFT_COUNT];

//fft 如果isr==1表示傅氏变换时域->频域,否则表示反变换频域->时域
void fft2(double (*val_in)[2], double (*X1)[2], int isr)
{
	double  rcos = 0.0f, isin  = 0.0f;	//中间临时变量
	int mmax = 0;
	int n = 0, i=0, k=0, j=0;
	
	//重新排序输入量
	for(i = 0; i<FFT_COUNT; i++)
	{
		X1[pos[i]][0] = val_in[i][0];
		X1[pos[i]][1] = val_in[i][1] * isr; //0;//
	}

	//第一层,表示几个蝶形
	for(k=0; k<FFT_R; k++ )
	{
		mmax = 1 << ( k + 1 ); //2,4,8
		for( j = 0; j <(mmax>>1) ; j++)		//	
		{
			int wk = j * ( 1 << ( FFT_R - k - 1) );
			for( i = j; i < FFT_COUNT; i+= mmax )
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值