voidfft(){intnn,n1,n2,i,j,k,l,m,s,l1;floatar[1024],ai[1024];//实部虚部floata[2050];floatt1,t2,x,y;floatw1,w2,u1,u2,z;floatfsin[10]={0.000000,1.000000,0.707107,0.3826834,0.1950903,0.09801713,0.04906767,0.02454123,0.01227154,0.00613588,};//优化floatfcos[10]={-1.000000,0.000000,0.7071068,0.9238796,0.9807853,0.99518472,0.99879545,0.9996988,0.9999247,0.9999812,};nn=1024;s=10;n1=nn/2;n2=nn-1;j=1;for(i=1;i<=nn;i++){a[2*i]=ar[i-1];a[2*i+1]=ai[i-1];}for(l=1;l<n2;l++){if(l<j){t1=a[2*j];t2=a[2*j+1];a[2*j]=a[2*l];a[2*j+1]=a[2*l+1];a[2*l]=t1;a[2*l+1]=t2;}k=n1;while(k<j){j=j-k;k=k/2;}j=j+k;}for(i=1;i<=s;i++){u1=1;u2=0;m=(1<<i);k=m>>1;w1=fcos[i-1];w2=-fsin[i-1];for(j=1;j<=k;j++){for(l=j;l<nn;l=l+m){l1=l+k;t1=a[2*l1]*u1-a[2*l1+1]*u2;t2=a[2*l1]*u2+a[2*l1+1]*u1;a[2*l1]=a[2*l]-t1;a[2*l1+1]=a[2*l+1]-t2;a[2*l]=a[2*l]+t1;a[2*l+1]=a[2*l+1]+t2;}z=u1*w1-u2*w2;u2=u1*w2+u2*w1;u1=z;}}for(i=1;i<=nn/2;i++){ar[i]=a[2*i+2]/nn;ai[i]=-a[2*i+3]/nn;a[i]=4*sqrt(ar[i]*ar[i]+ai[i]*ai[i]);//幅值}}

阅读全文 >

c语言实现1024点fft程序,C语言1024点快速傅里叶变换(FFT)程序,最好经过优化,执行速度快...相关推荐

  1. 快速傅里叶变换FFT C语言实现 可用于嵌入式系统进行模拟采样频谱分析

    快速傅里叶变换C语言实现 模拟采样进行频谱分析 FFT是DFT的快速算法用于分析确定信号(时间连续可积信号.不一定是周期信号)的频率(或相位.此处不研究相位)成分,且傅里叶变换对应的 ω \omega ...

  2. 快速傅里叶变换(FFT)c语言实现

      快速傅里叶变换(FFT)c语言实现:(参考:FFT多种编程语言实现).注意:输入数据个数必须为2的n次方,数据不够可以用0补齐. #include <stdio.h> #include ...

  3. C语言二维数组范德蒙,浅谈范德蒙德(Vandermonde)方阵的逆矩阵的求法以及快速傅里叶变换(FFT)中IDFT的原理...

    浅谈范德蒙德(Vandermonde)方阵的逆矩阵与拉格朗日(Lagrange)插值的关系以及快速傅里叶变换(FFT)中IDFT的原理 标签: 行列式 矩阵 线性代数 FFT 拉格朗日插值 只要稍微看 ...

  4. Java编程实现快速傅里叶变换FFT

    快速傅里叶变换的时间复杂度分析 1 快速傅里叶变换FFT 1.1 理论分析 1.1.1 离散傅里叶变换 1.1.2 快速傅里叶变换 1.2 编程实现 1.2.1 算法思想 1.2.2 实验结果 1 快 ...

  5. OpenCV快速傅里叶变换(FFT)用于图像和视讯流的模糊检测

    OpenCV快速傅里叶变换(FFT)用于图像和视频流的模糊检测 翻译自[OpenCV Fast Fourier Transform (FFT) for blur detection in images ...

  6. Matlab如何进行利用离散傅里叶变换DFT (快速傅里叶变换FFT)进行频谱分析

    文章目录 1. 定义 2. 变换和处理 3. 函数 4. 实例演示 例1:单频正弦信号(整数周期采样) 例2:单频正弦信号(非整数周期采样) 例3:含有直流分量的单频正弦信号 例4:正弦复合信号 例5 ...

  7. 快速傅里叶变换FFT进行频谱分析(matlab)

    快速傅里叶变换FFT进行频谱分析(matlab) 本章摘要:FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域.有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了 ...

  8. matlab cftool光滑曲线导出为什么就不光滑了_快速傅里叶变换(FFT)中为什么要“补零”?...

    为了大家能够复现各个图中的结果,我附上了所有我编写的MATLAB代码. 创作不易,未经允许,禁止转载. 另外,说明一下,用MATLAB做FFT并不要求数据点个数必须为以2为基数的整数次方.之所以很多资 ...

  9. 基于python的快速傅里叶变换FFT(二)

    基于python的快速傅里叶变换FFT(二) 本文在上一篇博客的基础上进一步探究正弦函数及其FFT变换. 知识点   FFT变换,其实就是快速离散傅里叶变换,傅立叶变换是数字信号处理领域一种很重要的算 ...

  10. 基于python的快速傅里叶变换FFT(一)

    基于python的快速傅里叶变换FFT(一) FFT可以将一个信号变换到频域.有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了.这就是很多信号分析采用FFT变换的原因. ...

最新文章

  1. [云炬创业基础笔记] 第四章测试1
  2. GirlView的分页
  3. boost::range::for_each相关的测试程序
  4. TensorFlow学习笔记(1):variable与get_variable, name_scope()和variable_scope()
  5. 大话项目管理工具之Confluence篇
  6. BugBugBugBugBugBugBugBugBugBugBugBugBugBugBug
  7. Java小白学习指南【day43】---Linux
  8. php怎么添加extension,php中没有extension怎么办_后端开发
  9. 爬取雪球网的股票信息评论
  10. 第四讲:学习理论(Learning Theory)
  11. Android Studio的Signature Versions选择,分别是什么意思
  12. 如何设计hash函数
  13. 故障描述:服务器应用程序不可用
  14. c++中Const,Const函数,Const变量,函数后面的Const
  15. Android 连续点击屏幕(次数可定,事件可定)后进行操作
  16. 慕学在线--4、知识点二
  17. 魔坊APP项目-19-种植园,我的背包、道具购买
  18. 关于磁盘阵列和LVM
  19. 新版迅雷与360浏览器
  20. 计算机能否代替传统教学设备,电子教案能否取代传统教案?

热门文章

  1. Leecode刷题热题HOT100(13)——罗马数字转整数
  2. Ionic 框架宣布 2019 年将正式支持 Vue 和 React
  3. 12月数据库榜单,整体排名稳定如昨,Oracle 分数接连下降
  4. 微服务 注册中心的作用_微服务架构Dubbo之注册中心(Zookeeper)
  5. python杨辉三角编程_Python基础练习实例49(打印杨辉三角)
  6. 童话 计算机教程,数学绘本 | 脑袋里装了个计算器(第四讲)
  7. 隐藏a标签seo_百度SEO网站整体优化方案 - 蜘蛛池博客
  8. redis 自增_坏了,Redis的字符串类型竟然被张三学明白了?
  9. fpga驱动oled iic显示代码_【接口时序】6、IIC总线的原理与Verilog实现
  10. ionic4 引入外部字体ttf