• 大小: 4KB
    文件类型: .c
    金币: 2
    下载: 3 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: FFT  

资源简介

msp430f5529计算fft程序,可用,实测,还可结合ADC多次采样计算

资源截图

代码片段和文件信息

#include
//#include 
#include 
/*********************************************************************
快速福利叶变换C函数
函数简介:此函数是通用的快速傅里叶变换C
语言函数,移植性强,以下部分不依赖硬件。此函数采用联合体的形式表示一个复数,输入为自然顺序的复数(输入实数是可令复数虚部为0),输出为经过FFT变换的自然顺序的复数
使用说明:使用此函数只需更改宏定义FFT_N的值即可实现点数的改变,FFT_N的 应该为2的N次方,不满足此条件时应在后面补0
函数调用:FFT(s);
时间:2010-2-20
版本:Ver1.0 参考文献:
**********************************************************************/
#include
#define PI 3.1415926535897932384626433832795028841971  //定义圆周率值
#define  FFT_N  512  //定义福利叶变换的点数
struct compx {float realimag;};  //定义一个复数结构struct compx s[FFT_N];
struct compx s[FFT_N];              //FFT输入和输出:从S[1]开始存放,根据大小自己定义
float result[FFT_N];
/*******************************************************************
函数原型:
struct compx EE(struct compx b1struct compx b2)
函数功能:对两个复数进行乘法运算
输入参数:两个以联合体定义的复数ab
输出参数:a和b的乘积,以联合体的形式输出
*******************************************************************/
struct compx EE(struct compx astruct compx b)
{
struct compx 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(struct compx *xinint N)
函数功能:对输入的复数组进行快速傅里叶变换(FFT)
输入参数:*xin复数结构体组的首地址指针,struct型
*****************************************************************/
void FFT(struct compx *xin)
{
int fmnv2nm1iklj=0;
struct compx uwt;
nv2=FFT_N/2;
//变址运算,即把自然顺序变成倒位序,采用雷德算法
nm1=FFT_N-1;
for(i=0;i {
if(i {
t=xin[j];
xin

评论

共有 条评论