有没有DFT实数序列变换的源程序啊?
最好是1024点的,谢谢!回复:(roboy)有没有DFT实数序列变换的源程序啊?
看看这个是不是你需要的算法原理与matlab语言的fft和ifft函数同。(可详见matlab的help文件)。
#include "stdio.h"
#include "math.h"
#define PI 3.1415926
#define N 7
void mefft(float pr[],float pi[],int n,float fr[],float fi[])
{
int i,k;
for(k=0;k<n;k++)
{
fr=0;
fi=0;
}
for(k=0;k<n;k++)
{
for(i=0;i<n;i++)
{
fr=fr+pr*cos(-2*PI*i*k/n)-pi*sin(-2*PI*i*k/n);
fi=fi+pi*cos(-2*PI*i*k/n)+pr*sin(-2*PI*i*k/n);
}
}
}
void meifft(float fr[],float fi[],int n,float pr[],float pi[])
{
int i,j,k;
for(i=0;i<n;i++)
{
pr=0;
pi=0;
}
for(i=0;i<n;i++)
{
for(k=0;k<n;k++)
{
pr=pr+(fr*cos(2*PI*i*k/n)-fi*sin(2*PI*i*k/n));
pi=pi+(fi*cos(2*PI*i*k/n)+fr*sin(2*PI*i*k/n));
}
pr=pr/n;
pi=pi/n;
}
}
main()
{
float fr,fi;
int i,j;
static float pr={1,2,3,4,5,6,7};
static float pi={0,0,0,0,0,0,0};
mefft(pr,pi,7,fr,fi);
for(i=0;i<7;i++)
{
printf("%f %f\n",fr,fi);
}
meifft(fr,fi,7,pr,pi);
for(i=0;i<7;i++)
{
printf("%f %f\n",pr,pi);
}
}
热烈感谢aspen啊!
<P>程序我还没有试,但是大概看了一下就是它了。太谢谢了!</P>回复:(roboy)热烈感谢aspen啊!
不用客气,希望以后经常光临,大家共同交流提高。
页:
[1]