用c语言实现fft算法
/*****************fft programe*********************/
#include typedef.h
#include math.h
struct compx ee(struct compx b1,struct compx b2)
{
struct compx b3 ;
b3.real=b1.real*b2.real-b1.imag*b2.imag ;
b3.imag=b1.real*b2.imag+b1.imag*b2.real ;
return(b3);
}
void fft(struct compx*xin,int n)
{
int f,m,nv2,nm1,i,k,j=1,l ;
/*int f,m,nv2,nm1,i,k,j=n/2,l;*/
struct compx v,w,t ;
nv2=n/2 ;
f=n ;
for(m=1;(f=f/2)!=1;m++)
{
;
}
nm1=n-1 ;
/*变址运算*/
for(i=1;i<=nm1;i++)
{
if(i
{
t=xin[j];
xin[j]=xin[i];
xin[i]=t ;
}
k=nv2 ;
while(k {
j=j-k ;
k=k/2 ;
}
j=j+k ;
}
{
int le,lei,ip ;
float pi ;
for(l=1;l<=m;l++)
{
le=pow(2,l);
// 这里用的是l而不是1 !!!!
lei=le/2 ;
pi=3.14159 ;
v.real=1.0 ;
v.imag=0.0 ;
w.real=cos(pi/lei);
w.imag=-sin(pi/lei);
for(j=1;j<=lei;j++)
{
/*double p=pow(2,m-l)*j;
double ps=2*pi/n*p;
w.real=cos(ps);
w.imag=-sin(ps);*/
for(i=j;i<=n;i=i+le)
{
/* w.real=cos(ps);
w.imag=-sin(ps);*/
ip=i+lei ;
t=ee(xin[ip],v);
xin[ip].real=xin[i].real-t.real ;
xin[ip].imag=xin[i].imag-t.imag ;
xin[i].real=xin[i].real+t.real ;
xin[i].imag=xin[i].imag+t.imag ;
}
v=ee(v,w);
}
}
}
return ;
}
/*****************main programe********************/
#include
#include
#include
#include typedef.h
float result[257];
struct compx s[257];
int num=256 ;
const float pp=3.14159 ;
main()
{
int i=1 ;
for(;i<0x101;i++)
{
s[i].real=sin(pp*i/32);
s[i].imag=0 ;
}
fft(s,num);
for(i=1;i<0x101;i++)
{
result[i]=sqrt(pow(s[i].real,2)+pow(s[i].imag,2));
}
}
5G网络将至 5G手机预计2019年上半年登场
“红杉数字智能产业孵化中心”在上海张江人工智能岛宣布正式启用
豪微科技:未来智能网卡和视频处理方向将迎来爆发
尽管AI神通广大 入场仍然面临伦理讨论
PHP 8.0 正式版正式开放下载 引入 JIT编译器特性
用C语言实现FFT算法
感应电机和无刷电机的区别
LTCC,什么是LTCC,ltcc技术
中国商用云采用RISC-V架构
机智云私有化部署物联网平台GIE,助力企业数智化转型
cd4046引脚图及功能_cd4046倍频电路设计详解
晶体知识—晶粒长大与再结晶退火浅析
高通变革商业模式:巨头的恐惧
诚迈科技旗下智达诚远参加BlackBerry QNX TECHForum
无人驾驶渐成趋势 沃尔沃推出不同于特斯拉的新方向
Pipenv - 官方推荐的的python包管理工具
传苹果公司预计将在2018年把大部分MacBook订单转移给富士康
【产品应用】AWorksLP 样例详解(MR6450)—— HWTimer
锂电池保护板为什么要带充电均衡呢?
DMS2220LFDB/DMS2120LFWB/DMP216