</pre><p>快速离散傅立叶变换FFT利用DFT计算的对称性实现的,具体的介绍网上一大堆。这次自己写了个定点FFT头文件,直接用C语言写的很容易移植。</p><p></p><p><pre name="code" class="cpp">/*
快速离散傅立叶算法V1.0
含有:FFT,IFFT
made by xyt
2015/7/8
C语言
*/
#ifndef _FFT_H
#define _FFT_H
#include<math.h>
#define FFT_N 8 //点数,要求2的次方
#define PI 3.14159265354
struct fft_complex{
double r,i;
};
int fft_fi(double in){ //四舍五入转整
if((in-(int)in)>0.5) return (int)in+1;
else return (int)in;
}
int fft_fac2(int n){ //返回log2(n)
int count=0;
while(n/2!=0){
n/=2;count++;
}
return count;
}
int fft_turndat(int n,int num){
int g=n,m,r=0;
int count=0;
while(num/2!=0){
num/=2;count++;
}
while(count>=0){
m=g%2;
r+=m*pow(2,--count);
g/=2;
}
return r;
}
fft_complex fft_t(fft_complex a){
fft_complex tmp;
tmp.i=-1*a.i;
tmp.r=-1*a
FFT快速傅立叶算法纯C语言版本
最新推荐文章于 2024-02-27 17:42:56 发布