FFT的C语言版,附源码哟

[复制链接]
8381|37
 楼主| beyond696 发表于 2012-3-21 19:57 | 显示全部楼层 |阅读模式
本帖最后由 beyond696 于 2012-3-21 20:00 编辑

首先声明程序不是我写的,我只是拿来用,顺便把使用的方法介绍给大家,当然老鸟就直接可以跳过了,程序验证过没有问题,我用它实现了音乐频谱,可以看看我之前发的音乐频谱视频连接。附件里面是源程序。
再次感谢无私奉献给我们程序的人......
性能:
64点  :1.50299ms(CPU时钟72M)
128点 :3.09864ms(CPU时钟72M)
使用方法指导:
1,需要两个文件,fft_fp.c和fft_fp.h
2,根据需求修改fft_fp.h中的采样点数FFT_N,采样点数以宏定义的方式定义
3,外部声明两个全局变量,已经在fft_fp.c中定义
    extern struct compx s[FFT_N];     //FFT输入和输出:从S[0]开始存放,根据大小自己定义
    extern float SIN_TAB[FFT_N/4+1];  //正弦信号表
4,调用create_sin_tab(float *sin_t)函数将正弦信号数据表生成在内存中,比如这样调用create_sin_tab(SIN_TAB);
5,采样数据,将ADC采样的数据按自然序列放在s的实部,虚部为0
6,调用FFT(struct compx *xin)函数开始计算,计算结果也存放在xin中,比如我们这样调用:FFT(s),结果存放在s中
7,计算每个频点的模值,计算方法如下:
    for(i=1;i<FFT_N/2;i++){          //求变换后结果的模值,存入复数的实部部分
        s.real=sqrt(s.real*s.real+s.imag*s.imag)/(i=0?FFT_N:FFT_N/2));
    }
8,大功告成!

FFT的C语言版.rar

3.45 KB, 下载次数: 446

李富贵 发表于 2012-3-21 20:04 | 显示全部楼层
CMSIS库是汇编的吧。
 楼主| beyond696 发表于 2012-3-21 20:09 | 显示全部楼层
我没用官方的那个库
laserpic 发表于 2012-3-21 21:01 | 显示全部楼层
感谢无私奉献
 楼主| beyond696 发表于 2012-3-22 09:46 | 显示全部楼层
selina1983 发表于 2012-5-23 23:20 | 显示全部楼层
感谢无私奉献
我来自未来 发表于 2013-4-13 10:35 | 显示全部楼层
谢谢楼主的分享,感谢大神们的美德
qq20707 发表于 2013-4-13 19:27 | 显示全部楼层
谢谢楼主的分享,感谢大神们的美德
hawksabre 发表于 2013-4-13 19:36 | 显示全部楼层
感谢楼主的资料   谢谢了  楼主   呵呵   顶一个
hawksabre 发表于 2013-4-13 19:37 | 显示全部楼层
这个很不错的   呵呵    自己的源代码   还是需要好好顶一个   真的很不错   谢谢你的共享
电子小健 发表于 2013-8-5 16:29 | 显示全部楼层
非常感谢LZ分享,我正好要用到FFT
cjhk 发表于 2013-8-5 18:46 | 显示全部楼层
谢谢了   楼主  很无私   有时间好好看看   
cjhk 发表于 2013-8-5 18:46 | 显示全部楼层
顺便谢谢你的共享   希望能多上传一些这样的资料  
huangfeng33 发表于 2013-8-5 20:05 | 显示全部楼层
其实我完全看不懂啊●ω●(FFT是不是要看复变函数和数字信号处理?)
huazhongwang 发表于 2013-8-6 01:26 | 显示全部楼层
好奇,看看。谢谢楼主
armauk 发表于 2013-8-6 09:19 | 显示全部楼层
很好,收藏了
TRUE_ARM 发表于 2013-8-7 09:26 | 显示全部楼层
谢谢了
longm 发表于 2013-8-13 09:20 | 显示全部楼层
菜鸟问问建立sin表是做什么啊
zlutian 发表于 2013-8-13 13:39 | 显示全部楼层
谢谢楼主分享!
3qxj 发表于 2013-8-14 10:19 | 显示全部楼层
谢楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:USB转I2C,SPI,CAN,UART,GPIO,PWM,IR,ADC,DAC合一 http://usb2xxx.taobao.com

55

主题

294

帖子

12

粉丝
快速回复 在线客服 返回列表 返回顶部