作者carlos761017 (异形)
看板C_and_CPP
标题[问题] 不好意思 麻烦大家一下
时间Mon Apr 13 14:07:30 2009
其实我正在写FFT的演算法
是用cooley-tukey的algorithm写的
可是却出现了两个问题
Q1:compile完的时候程式说expect '}'at the end of input
可是我却找不出我是哪边少打了'}' 请大家帮我看看好吗?
Q2:其实我也有就在结尾再补一个'}'可是她compile又说
[Linker error] Undefined reference to 'Winmain@16'
Id returned 1 exit status
我就不懂这是什麽意思了
就这两个问题~
麻烦大家了~~~
谢谢~~
以下是我的CODE
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <cmath>
#define i pow(-1,1/2)
#define pi 3.14159256
#define N 8
#define r 3
#define NU1 r-1
void FFT()
{
int N2=N/2;
int bitn=N-1;
int bitk=N-1;
int l=r;
int n[r],k[r];
float rex[N][l],imx[N][l];
float rey[N],imy[N];
float p=0,p1=0; //power of W
double fcos,fsin;
///counter
int q=0,a=0,b=0,c=0,d=0;
/* 给初始值 */
for (d=0; d<r; d++)
{
n[d]=0;
k[d]=0;
}
for (a=0; a<N; a++)
{ for (l=0; l<r; l++)
{
rex[a][l]=0;
imx[a][l]=0;
}
}
for (b=0; b<N; b++)
{
rey[b]=0;
imy[b]=0;
}
/* 输入data */
FILE * fp;
fp = fopen("fft_x.DAT","r");
for (bitk=0; bitk<=N-1; bitk++)
{
//x[k]=(Redata[k],Imdata[k]);
fscanf (fp, "%f", &rex[bitk][0]);
imx[bitk][0]=0;
printf("(%f,%f) \n",rex[bitk][0],imx[bitk][0]);
}
//n and k decompose
for (l=1; l<=r; l++)
{
printf("L=%d \n",l);
for(bitn=0,bitk=0; bitn<N||bitk<N; bitn++,bitk++)
{
for (q=0; q<r; q++)
{
n[r-q]=bitn%(int)pow(2,r-q)/(int)pow(2,q);//bit reverse
//k[r-r+q]=bitk%pow(2,r-q)/pow(2,q);
//FFT algorithm
for (k[r-l]=0; k[r-l]<2; k[r-l]++)
{
for(c=1; c<=l; c++)p1=p1+n[c-1]*pow(2,c-1);
p=pow(2,r-l)*k[r-l]*p1;
fcos=acos(2*pi*p/N);
fsin=asin(2*pi*p/N);
if(bitk<N2 && k[r-1]==0)
{
rex[bitk][l]=rex[bitk][l]+rex[bitk][l-1]*fcos-imx[bitk][l-1]*fsin;
imx[bitk][l]=imx[bitk][l]+rex[bitk][l-1]*fsin+imx[bitk][l-1]*fcos;
}
else if(bitk<N2 && k[r-1]==1)
{
rex[bitk][l]=rex[bitk][l]+rex[bitk+N2][l-1]*fcos-imx[bitk+N2][l-1]*fsin;
imx[bitk][l]=imx[bitk][l]+rex[bitk+N2][l-1]*fsin+imx[bitk+N2][l-1]*fcos;
}
else if(bitk>=N2 && k[r-1]==0)
{
rex[bitk][l]=rex[bitk][l]+rex[bitk][l-1]*fcos-imx[bitk][l-1]*fsin;
imx[bitk][l]=imx[bitk][l]+rex[bitk][l-1]*fsin+imx[bitk][l-1]*fcos;
}
else
{
rex[bitk][l]=rex[bitk][l]+rex[bitk-N2][l-1]*fcos-imx[bitk-N2][l-1]*fsin;
imx[bitk][l]=imx[bitk][l]+rex[bitk-N2][l-1]*fsin+imx[bitk-N2][l-1]*fcos;
}
}
printf("x%d(%d)=(%f,%f) \n",l,bitk,rex[bitk][l],imx[bitk][l]);
}
N2=N2/2;
printf("\n");
}
system("PAUSE");
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.168.193.83
1F:推 QQ29:你可以用至底的 贴code网页 你这样超难阅读的 04/13 14:53
2F:→ carlos761017:不好意思不好意思 我去贴了 04/13 14:57
4F:→ akasan:A2:没有main 04/13 17:08