《FFT算法的C语言编程》由会员分享,可在线阅读,更多相关《FFT算法的C语言编程(5页珍藏版)》请在人人文库网上搜索。

1、include #include #include #define PI 3./*This program is used to conduct FFT or IFFT transform based on 2 discompositiondata can be loaded by typing on the keyboard or from file.*/typedef structdouble real;double imag;complex;long NN;long t2t(long n, int M)long nn=0;for(int i=0;iM;i+)nn=nn+n%2*pow(2。

2、,M-1-i);n=n/2;return nn;int defM(long n)int M=0;while(pow(2,M)n)M+;return M;void datain(complex x,long N)int flag;long i;char s20;FILE *fpi;double a,b;printf(Load data from keybord(input 0) or file(input 1)n);scanf(%d,&flag);if(flag=0)printf(Please enter the data in the form of a,b-a+j*b ending with。

3、*n);for(i=0;getchar()!=*;i+)scanf(%lf%lf,&xi.real,&xi.imag);while(iN)xi.real=0;xi.imag=0;i+;elseif(flag=1)printf(Please input the name of the file with its File type suffix-(eg:data.txt)n);gets(s);gets(s);/To avoid the quick response to enterfpi=fopen(s,r);if(!fpi)printf(Open file error);i=0;while(!。

4、feof(fpi)fscanf(fpi,%lf,&a);fscanf(fpi,%lf,&b);xi.real=a;xi.imag=b;i+;fclose(fpi);while(iN)xi.real=0;xi.imag=0;i+;void dataout(complex x,long N)long i;for(i=0;iN;i+)printf(%.3lf+j*%.3lfn,xi.real,xi.imag);void reverse(complex x,complex xi,long n,int m)long i;long temp;for(i=0;in;i+)temp=t2t(i,m);xii.。

5、real=xtemp.real;xii.imag=xtemp.imag;complex com_add(complex x1,complex x2)complex y;y.real=x1.real+x2.real;y.imag=x1.imag+x2.imag;return y;complex com_sub(complex x1,complex x2)complex y;y.real=x1.real-x2.real;y.imag=x1.imag-x2.imag;return y;complex com_mul(complex x1,complex x2)complex y;y.real=x1.。

6、real*x2.real-x1.imag*x2.imag;y.imag=x1.real*x2.imag+x2.real*x1.imag;return y;complex com_div(complex x1,complex x2)complex y;double down=x2.real*x2.real+x2.imag*x2.imag;y.real=(x1.real*x2.real+x1.imag*x2.imag)/down;y.imag=(x2.real*x1.imag-x1.real*x2.imag)/down;return y;void fft(complex x,long NN, in。

7、t M)int m,i,j;long Nw,Ni;complex Wm,temp;for(m=0;mM;m+)Nw=pow(2,m+1);Ni=pow(2,m);for(i=0;iNi;i+)for(j=i;jNN;j=j+Nw)Wm.real=cos(2*i*PI/Nw);Wm.imag=-sin(2*i*PI/Nw);temp=com_mul(xj+Ni,Wm);xj+Ni=com_sub(xj,temp);xj=com_add(xj,temp);void ifft(complex x,long NN, int M)int m,i,j;long Nw,Ni;complex Wm,temp;。

8、for(m=0;mM;m+)Nw=pow(2,m+1);Ni=pow(2,m);for(i=0;iNi;i+)for(j=i;jNN;j=j+Nw)Wm.real=cos(2*i*PI/Nw);Wm.imag=-sin(2*i*PI/Nw);temp=com_mul(xj+Ni,Wm);xj+Ni=com_sub(xj,temp);xj=com_add(xj,temp);for(i=0;iNN;i+)xi.real=xi.real/NN;xi.imag=-xi.imag/NN;int main()long N,i;int M,flag;double a,b;printf(Please ente。

9、r the length of the sequencen);scanf(%ld,&N);M=defM(N);NN=pow(2,M);complex xyNN;complex xyiNN;datain(xy,N);for(i=N;iNN;i+)xyi.real=0;xyi.imag=0;reverse(xy,xyi,NN,M);printf(Please choose FFT(1) or IFFT(-1)n);scanf(%d,&flag);if(flag=1)fft(xyi,NN,M);elseif(flag=-1)ifft(xyi,NN,M);printf(The initial sequence is:n);dataout(xy,N);printf(The FFT results are as follows:n);dataout(xyi,N);return 0。

c语言编fft算法程序,FFT算法的C语言编程相关推荐

  1. 判断魔方阵c语言程序设计_魔方阵算法及C语言实现

    1 魔方阵概念 2填充的,每一行.每一列.对角线之和均相等的方阵,阶数n = 3,4,5-.魔方阵也称为幻方阵. 例如三阶魔方阵为: 魔方阵有什么的规律呢? 魔方阵分为奇幻方和偶幻方.而偶幻方又分为是 ...

  2. 心碎的图案怎么用c语言编出来,教案实验2用c语言编写简单程序.doc

    教案实验2用c语言编写简单程序 实验2 用C语言编写简单程序 2.1 基本数据处理1.调试示例 改正下列程序中的错误,求华氏温度100oF对应的摄氏温度?计算公式如下,其中:c 表示摄氏温度,f 表示 ...

  3. 为什么c语言编的爱心是歪的,C语言之后(歪谈语言史)

    众所周知,C语言是在B语言的基础上发展起来的,而B语言又是从A语言的基础上发展起来的.在学C的时候,我就曾经突发奇想,难道下一个取代C语言的是D语言吗?呵呵,当然不是,且不谈曾有D开头的语言(delp ...

  4. c语言中文字模描点算法,点阵字模工具编程是怎么编的?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 0x12,0x18,0x21,0x08,0x01,0x40,0x07,0x80, 0x01,0x00,0x01,0xF8,0x3E,0x00,0x00,0 ...

  5. 如何让c语言编的游戏运行,如何用C语言编写游戏一.doc

    如何用C语言编写游戏 网络游戏是常谈的话题,是交互式娱乐的主力军,是一种 高层次的综合艺术,更是一个民族的文化,世界观的全新传播方式 作为游戏玩家的我们,是不是想设计一个属于自己的游戏呢? 爱玩是人的 ...

  6. 滑动窗口滤波 c语言,关于中值滤波算法 以及C语言实现

    1.什么是中值滤波? 中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护 ...

  7. lfu算法实现c语言_哈希查找算法(C语言实现)

    上一节介绍了有关哈希表及其构造过程的相关知识,本节将介绍如何利用哈希表实现查找操作.在哈希表中进行查找的操作同哈希表的构建过程类似,其具体实现思路为:对于给定的关键字 K,将其带入哈希函数中,求得与该 ...

  8. pid温度控制c语言程序及仿真,pid算法温度控制c语言程序

    描述 温度控制PID自整定原理介绍 整定PID(三模式)控制器 整定温度控制器涉及设置比例.积分和微分值,以得到对特定过 程的可能的最佳控制.如果控制器不包含自动整定算法,或者自 动整定算法未提供适合 ...

  9. c语言怎么实现滑动窗口算法,【C语言】滑动窗口算法

    1.滑动窗口的思想: 它是一个运行在一个大数组上的子列表,该数组是一个底层元素集合.假设有数组 [a b c d e f g h ],一个大小为 3 的 滑动窗口 在其上滑动,则有: [a b c] ...

  10. 用c语言编一个贪吃蛇,刚学C语言,想写一个贪吃蛇的代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include typedef struct snake { int a; int b; stru ...

最新文章

  1. 分享我的第一个asp.net core开发过程
  2. svn教程----示例二:测试人员拥有读权限
  3. python连接池原理_python redis之连接池的原理
  4. 国家开放大学2021春1110工程地质题目
  5. return编程python_python3 第二十一章 - 函数式编程之return函数和闭包
  6. ear的英语怎么念_ear英语怎么读
  7. 线性代数【12】矢量(向量) - 概念和专有名词
  8. 何恺明组又出神作!最新论文提出全景分割新方法
  9. 《R语言数据挖掘:实用项目解析》——1.9 循环原理——repeat循环
  10. 【打印代码+好好理解+子串问题】LeetCode 76. Minimum Window Substring
  11. C# installshield使用教程
  12. Ueditor 使用
  13. 诛仙服务器技能修改,【诛仙422】自己修改的特色一键端(2018.10.11号更新修复BOOS不刷新BUG)技能修改补丁...
  14. 微信文章爬虫demo -- 综合实验和练习
  15. mysql8多值索引(Multi-Valued Indexes)使用方法和性能测试
  16. 安卓修改电池容量教程_Android 使用adb查看和修改电池信息
  17. Greenplum6 JDBC insert性能媲美MySQL
  18. QCombobox组合框的样式
  19. ios热更新JSPatch
  20. Windows 7 系统服务优化

热门文章

  1. 微电子专业深度盘点:哪所大学芯片最强?强在哪?(第3弹)
  2. 有趣的逻辑较量——《啊哈C语言》更新开始
  3. 菜鸟教程Python教程100例合集
  4. java web对cpu要求_java web服务器cpu占用过高的处理
  5. Java基础编程题(API阶段测试)
  6. PDF文件有密码怎么解除?
  7. 导线怎么用计算机平差,导线平差计算软件
  8. DDA算法、中点Bresenam算法,圆或椭圆的绘制
  9. 爬虫实例之获取豆瓣前250名电影名称
  10. 240万!动漫人脸数据集AnimeCeleb