C语言实现FFT算法

fft1d.c和fft1d.h见https://download.csdn.net/download/weixin_43216875/12009644

1 fft1d.h

#ifndef FFT1D_H
#define FFT1D_H#include "math.h"#define PI 3.1415926535897932384626433832795028841971typedef struct complex //复数类型
{float real;        //实部float imag;     //虚部
}complex;void conjugate_complex(int n,complex in[],complex out[]);
void c_plus(complex a,complex b,complex *c);//复数加
void c_mul(complex a,complex b,complex *c) ;//复数乘
void c_sub(complex a,complex b,complex *c); //复数减法
void c_div(complex a,complex b,complex *c); //复数除法
void fft(int N,complex f[]);//傅立叶变换 输出也存在数组f中
void ifft(int N,complex f[]); // 傅里叶逆变换
void c_abs(complex f[],float out[],int n);//复数数组取模#endif // FFT1D_H

2 main.cpp

#include <iostream>
using namespace std;#include "fft1d.h"
#define N 4 //N取值为2^n
int main()
{complex a[N];float b[N];for(int i=0;i<N;i++){a[i].real = i+1;a[i].imag = 0;}cout << "data:" << endl;for(int i=0;i<N;i++)cout << a[i].real  << endl;fft(N,a);cout << endl << "fft:" << endl;for(int i=0;i<N;i++)cout << a[i].real << "+" << a[i].imag << "j" << endl;ifft(N,a);c_abs(a,b,N);cout << endl << "ifft:" << endl;for(int i=0;i<N;i++)cout << b[i] << endl;return 0;
}

3 与Matlab对比

3.1 Matlab运行结果

3.2 C语言运行结果

C语言实现FFT算法相关推荐

  1. c代码实现 ifft运算_fft算法c语言_matlab fft算法_ifft c语言

    FFT快速算法C程序_工学_高等教育_教育专区.电子信息工程综合课程设计报告书 DSP 课程设计 报告 题学 目: 院: FFT 快速算法 C 程序 计算机与信息工程学院 09 ... fft算法代码 ...

  2. 使用C语言实现FFT算法(快速傅里叶变换)

    文章目录 (一)FFT的基本原理 (二)FFT代码 (三)使用典型函数进行测试 (一)FFT的基本原理 FFT的总思路 第一步,将长序列DFT分解成短序列的DFT(本来是N点的DFT,被分解成两个 N ...

  3. dsp实现快速傅里叶的C语言程序,DSP-快速傅立叶变换(FFT)算法实验

    <DSP-快速傅立叶变换(FFT)算法实验>由会员分享,可在线阅读,更多相关<DSP-快速傅立叶变换(FFT)算法实验(10页珍藏版)>请在人人文库网上搜索. 1.中 南 大 ...

  4. czt算法c语言实现,基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF).ppt

    基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF) 第四节基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF)(Sander-Tu ...

  5. c代码实现 ifft运算_C语言系列之FFT算法实现

    0x10 序言 长文预警,详细介绍FFT算法的编程原理和C实现,并在文章的最后附上了本文的所有源代码. 0x11 速览 1)FFT背后的数学原理 2)码位倒序 3)蝶形运算设计 4)利用复数FFT编写 ...

  6. FFT算法的完整DSP实现

    傅里叶变换或者FFT的理论参考: [1] http://www.dspguide.com/ch12/2.htm The Scientist and Engineer's Guide to Digita ...

  7. FFT算法的完整DSP实现(转)

    源:FFT算法的完整DSP实现 傅里叶变换或者FFT的理论参考: [1] http://www.dspguide.com/ch12/2.htm The Scientist and Engineer's ...

  8. [Matlab科学计算] 频谱分析和FFT算法总结

    频谱分析是一种非常重要的信号处理方法,在机械设备故障诊断.振动系统分析.电力系统.无线电通信.信息图像处理和自动控制等学科中都有重要应用.频谱分析的核心是1965年Cooely-Tukey发表的快速傅 ...

  9. 深入浅出理解FFT算法。通俗易懂,xilinxIP核仿真

    深入浅出理解FFT算法,通俗易懂,用xilinxIP核心仿真 1.前言:傅里叶变换:时域到频域的转换 FS连续时间周期傅里叶级数->DFS离散傅里叶级数->FT连续时间非周期信号的傅里叶变 ...

  10. 小波分析c语言编程,小波分析算法的公式与C语言实现 - 全文

    一.小波分析算法的计算 1.Mallat算法[经典算法] 在小波理论中,多分辨率分析是一个重要的组成部分.多分辨率分析是一种对信号的空间分解方法,分解的最终目的是力求构造一个在频率上高度逼近L2(R) ...

最新文章

  1. mysql replace报错_Mysql中replace与replace into的用法讲解
  2. 解决IDEA自动重置LanguageLevel和JavaCompiler版本的问题
  3. % %和ltscripte runat=server的区别
  4. [转]ASP.Net缓存总结
  5. 复现经典:《统计学习方法》第 8 章 提升方法
  6. NPAPI和PPAPI开发
  7. CF79D Password(P3943 星空)
  8. CodeIgniter中URL含有中文字符串的解决方案
  9. IIS Web怪问题: Access is denied due to invalid credentials.
  10. 调用软键盘_Android 支持拖动、缩放的自定义软键盘
  11. Java实现阶乘的和
  12. 如何从Java方向转向Linux C方向?
  13. python str has no attribute_python – AttributeError(“’str’object has no attribute’read’”)...
  14. 博弈论基础知识--非合作博弈,零和博弈,负和博弈,主从博弈,Nash均衡
  15. php 调用极光api,利用php+curl调用极光IM第三方REST API方法经验
  16. 各类学科入门书籍推荐
  17. Tensorflow入门(一)----”搭建图像识别系统“教程整理
  18. 浅谈Word.Application,关于js操作word文档的使用
  19. kazam录制视频在windows下无法播放解决办法
  20. 庄懂的技术美术入门课系列——学习笔记

热门文章

  1. excel游戏_Excel集中游戏
  2. sql server商品进销存管理系统设计及实现的数据库源代码
  3. android水印的添加,Android添加水印的正确方法 只要三步!
  4. 千兆网络PHY芯片 RTL8211E的实践应用
  5. 计算机怎么改鼠标标志,鼠标指针怎么换,教您如何更换鼠标指针
  6. 斐讯N1强制刷机-免拆版
  7. Win10 安装CUDA10(包括各种版本的CUDA和cuDNN下载链接)
  8. 【OpenCV 例程200篇】203. 伪彩色图像处理
  9. 主曲率,主方向,高斯曲率与平均曲率公式与matlab代码
  10. Java输出竖排古典文字