资源简介
通过C语言实现定点和浮点傅里叶变换,包含一般傅里叶变换和快速傅里叶变换。

代码片段和文件信息
#include
#include
#define PI 3.1415926535897932384626
#define FFT_N 32
#define Change 32768
#define Q 15
//定点FFT
struct compx_fp {long realimag;};
struct compx_fp s_fp[FFT_N];
int multiply_i(int aint b)
{
int ci=0;
while(a<-Change||a>Change-1)
{
i+=1;
a>>=1;
}
while(b<-Change||b>Change-1)
{
i+=1;
b>>=1;
}
c=((a*b)>>(Q-i));
return c;
}
struct compx_fp multiply_fp(struct compx_fp astruct compx_fp b)
{
struct compx_fp c;
c.real=(multiply_i(a.realb.real)-multiply_i(a.imagb.imag));
c.imag=(multiply_i(a.realb.imag)+multiply_i(a.imagb.real));
return(c);
}
void FFT_fp(struct compx_fp *xin)
{
int fmnv2nm1iklj=0;
struct compx_fp uwt;
nv2=FFT_N/2;
nm1=FFT_N-1;
for(i=0;i {
if(i {
t=xin[j];
xin[j]=xin[i];
xin[i]=t;
}
k=nv2;
while(k<=j)
{
j=j-k;
k=k/2;
}
j=j+k;
}
int leleiip;
f=FFT_N;
for(l=1;(f=f/2)!=1;l++) ;
for(m=1;m<=l;m++)
{
le=2<<(m-1);
lei=le/2;
u.real=(long)(1.0*Change);
u.imag=(long)(0.0*Change);
w.real=(long)(cos(PI/lei)*Change);
w.imag=(long)(-sin(PI/lei)*Change);
for(j=0;j<=lei-1;j++)
{
for(i=j;i<=FFT_N-1;i=i+le)
{
ip=i+lei;
t=multiply_fp(xin[ip]u);
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;
}
u=multiply_fp(uw);
}
}
}
//定点FFT
//浮点FFT
struct compx_fl {float realimag;};
struct compx_fl s_fl[FFT_N];
struct compx_fl multiply_fl(struct compx_fl astruct compx_fl b)
{
struct compx_fl c;
c.real=a.real*b.real-a.imag*b.imag;
c.imag=a.real*b.imag+a.imag*b.real;
return(c);
}
void FFT_fl(struct compx_fl *xin)
{
int fmnv2nm1iklj=0;
struct compx_fl uwt;
nv2=FFT_N/2;
nm1=FFT_N-1;
for(i=0;i {
if(i {
t=xin[j];
xin[j]=xin[i];
xin[i]=t;
}
k=nv2;
while(k<=j)
{
j=j-k;
k=k/2;
}
j=j+k;
}
int leleiip;
f=FFT_N;
for(l=1;(f=f/2)!=1;l++) ;
for(m=1;m<=l;m++)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 225343 2015-05-20 09:29 fft_final\Debug\fft_final.exe
文件 227280 2015-05-20 09:29 fft_final\Debug\fft_final.ilk
文件 221564 2015-05-19 21:27 fft_final\Debug\fft_final.pch
文件 508928 2015-05-20 09:29 fft_final\Debug\fft_final.pdb
文件 16617 2015-05-20 09:29 fft_final\Debug\main.obj
文件 33792 2015-05-20 18:24 fft_final\Debug\vc60.idb
文件 53248 2015-05-20 09:29 fft_final\Debug\vc60.pdb
文件 4315 2015-05-19 21:49 fft_final\fft_final.dsp
文件 526 2015-05-19 21:26 fft_final\fft_final.dsw
文件 41984 2015-06-05 00:26 fft_final\fft_final.ncb
文件 48640 2015-06-05 00:26 fft_final\fft_final.opt
文件 252 2015-05-20 18:24 fft_final\fft_final.plg
文件 96 2015-05-19 20:51 fft_final\input_i.txt
文件 192 2015-05-19 20:42 fft_final\input_r.txt
文件 7666 2015-05-20 09:29 fft_final\main.cpp
文件 743 2015-05-20 18:24 fft_final\output_dl.txt
文件 295 2015-05-20 18:24 fft_final\output_dp.txt
文件 743 2015-05-20 18:24 fft_final\output_fl.txt
文件 295 2015-05-20 18:24 fft_final\output_fp.txt
目录 0 2019-03-31 12:19 fft_final\Debug
目录 0 2019-03-31 12:19 fft_final
----------- --------- ---------- ----- ----
1392519 21
相关资源
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
评论
共有 条评论