栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c语言编写fft(测试通过,和matlab结果相同)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言编写fft(测试通过,和matlab结果相同)

1、头文件

#ifndef __FFT_H__
#define __FFT_H__


#include 
#include 
#include 
#define PI 3.14159265358979

typedef struct Complex
{
   double real;
   double image;
} CPLX;

void _fft(CPLX buf[], CPLX out[], int n, int step);
int fft(CPLX buf[], int n);
#endif

2、实现文件

#include "fft.h"
#include

void _fft(CPLX buf[], CPLX out[], int n, int step)
{
   int i;
   CPLX t;
   double a, b, c, d, theta;

   if (step < n) 
   {
   	_fft(out, buf, n, step * 2);
   	_fft(out + step, buf + step, n, step * 2);

   	for (i = 0; i < n; i += 2 * step) 
   	{
   		theta = -PI * i / n;
   		a = cos(theta);
   		b = sin(theta);
   		c = out[i + step].real;
   		d = out[i + step].image;
   		t.real = a * c - b * d;
   		t.image = b * c + a * d;
   		buf[i / 2].real = out[i].real + t.real;
   		buf[i / 2].image = out[
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/932086.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号