资源简介
32位整数的1024点FFT变换,总结网上资料,比较适合16或32位单片机使用!

代码片段和文件信息
#include
#include “fft.h“
struct compx //定义一个复数结构体
{
float real;
float imag;
};
// 冒泡法排序函数
void BubbleSort(float pt[] int Cnt)
{
int k = 0;
float temp = 0;
while (Cnt > 0)
{
for (k=0; k {
if (pt[k] < pt[k+1])
{
temp = pt[k];
pt[k] = pt[k+1];
pt[k+1] = temp;
}
}
Cnt--;
}
}
//复数乘法
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);
}
//快速傅立叶变换-FFT
void FFT(struct compx *xin int Num)
{
int f m LH nm i k j L;
double p ps ;
int le B ip;
float pi;
struct compx w t;
LH = Num / 2;
f = Num;
for (m=1; (f=f/2)!=1; m++); // 2^m=N
{
for (L=m; L>=1; L--) // 这里和时域的也有差别
{
le = (int)pow(2 L);
B = le / 2; // 每一级碟形运算间隔的点数
pi = 3.1415926;
for (j=0; j<=B-1; j++)
{
p = pow(2 m-L) * j;
ps = 2*pi/Num*p;
w.real = cos(ps);
w.imag = -sin(ps);
for (i=j; i<=Num-1; i=i+le)
{
ip = i+B;
t = xin[i];
xin[i].real = xin[i].real + xin[ip].real;
xin[i].imag = xin[i].imag + xin[ip].imag;
xin[ip].real = xin[ip].real - t.real;
xin[ip].imag = xin[ip].imag - t.imag;
xin[ip] = EE(xin[ip] w);
}
}
}
}
// 变址运算
nm = Num - 2;
j = Num / 2;
for (i=1; i<=nm; i++)
{
if (i < j)
{
t = xin[j];
xin[j] = xin[i];
xin[i] = t;
}
k = LH;
while (j >= k)
{
j -= k;
k /= 2;
}
j += k;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1977 2013-08-24 15:12 fft_int\BoardConfig.h
文件 28672 2013-11-17 19:57 fft_int\fft.aps
文件 1699 2013-08-24 14:41 fft_int\fft.c
文件 2289 2013-11-17 20:53 fft_int\fft.clw
文件 4155 2013-09-11 08:42 fft_int\fft.cpp
文件 3101 2013-08-24 18:12 fft_int\fft.dep
文件 4617 2013-11-17 21:46 fft_int\fft.dsp
文件 531 2013-09-11 08:42 fft_int\fft.dsw
文件 52202 2013-08-24 13:50 fft_int\fft.ewp
文件 1323 2013-09-11 08:42 fft_int\fft.h
文件 132096 2013-11-20 21:42 fft_int\fft.ncb
文件 50688 2013-11-20 21:42 fft_int\fft.opt
文件 4102 2013-11-20 21:41 fft_int\fft.plg
文件 10502 2013-09-11 08:42 fft_int\fft.rc
文件 1682 2013-09-11 08:42 fft_int\fftDoc.cpp
文件 1442 2013-09-11 08:42 fft_int\fftDoc.h
文件 4057 2013-11-17 20:43 fft_int\fftint.cpp
文件 1295 2013-11-18 21:35 fft_int\fftint.h
文件 15728 2013-11-20 21:12 fft_int\fftView.cpp
文件 2296 2013-11-19 20:36 fft_int\fftView.h
文件 2464 2013-08-24 16:11 fft_int\main.c
文件 2504 2013-09-11 08:42 fft_int\MainFrm.cpp
文件 1581 2013-09-11 08:42 fft_int\MainFrm.h
文件 4239 2013-09-11 08:42 fft_int\ReadMe.txt
文件 1078 2013-09-11 08:42 fft_int\res\fft.ico
文件 395 2013-09-11 08:42 fft_int\res\fft.rc2
文件 1078 2013-09-11 08:42 fft_int\res\fftDoc.ico
文件 1078 2013-09-11 08:42 fft_int\res\Toolbar.bmp
文件 488 2013-09-11 08:42 fft_int\Resource.h
文件 205 2013-09-11 08:42 fft_int\StdAfx.cpp
............此处省略6个文件信息
- 上一篇:三维力控与MODBUS仪表通讯说明及例程
- 下一篇:韩文乱码相互转换器
评论
共有 条评论