OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2901|回复: 3

大家好 新手求助一个问题关于fft的程序

[复制链接]

9

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2015-7-9
在线时间
19 小时
发表于 2015-8-18 15:49:12 | 显示全部楼层 |阅读模式
5金钱
在论坛看见原子上传的一个关于fft程序  我就把这个程序放到我的代码里边
[mw_shl_code=c,true]void FFT(compx *xin,u16 N) { u16 f,m,LH,nm,i,k,j,L; u16 p; u16 le,B,ip; compx ws,t; LH=N/2; f=N; for(m=1;(f=f/2)!=1;m++); nm=N-2; j=N/2; for(i=1;i<=nm;i++) { if(i<j){t=xin[j];xin[j]=xin;xin=t;} k=LH; while(j>=k){j=j-k;k=k/2;} j=j+k; } for(L=1;L<=m;L++) { le=mypow(2,L); B=le/2; for(j=0;j<=B-1;j++) { p=mypow(2,m-L)*j; ws.real=cos_tab[p]; ws.imag=sin_tab[p]; for(i=j;i<=N-1;i=i+le) { ip=i+B; t.real=xin[ip].real*ws.real-xin[ip].imag*ws.imag; t.imag=xin[ip].real*ws.imag+xin[ip].imag*ws.real; xin[ip].real=xin.real-t.real; xin[ip].imag=xin.imag-t.imag; xin.real=xin.real+t.real; xin.imag=xin.imag+t.imag; } } } }原子的转换程序[/mw_shl_code]
放到我自己的程序里边        
compx rbuf[600];
FFT(rbuf,512);   进去的是正确的数据 波形也测过 然后经过这个函数一转换 发现除了第一个和最后一个有变化之外 其余的数据基本都是一样的  求大神指导 这是为什么
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-8-18 23:11:44 | 显示全部楼层
看你传入的数据是什么了,输入一个正弦波看看。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

9

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2015-7-9
在线时间
19 小时
 楼主| 发表于 2015-8-19 18:01:58 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥 谢谢回答  你的程序是能跑的  我输入的就是1khz的正弦波  算法出来的是两个相反的波形比如 11235711111753211 类似这种 这是怎么回事呢
回复

使用道具 举报

9

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2015-7-9
在线时间
19 小时
 楼主| 发表于 2015-8-19 18:03:19 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
理论上一个频率只会出现一个波形的  我是把转换后的数据放到excel表格折线图里边看到的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-16 07:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表