[問題] 不好意思 麻煩大家一下
其實我正在寫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
推
04/13 14:53, , 1F
04/13 14:53, 1F
→
04/13 14:57, , 2F
04/13 14:57, 2F
→
04/13 14:57, , 3F
04/13 14:57, 3F
→
04/13 17:08, , 4F
04/13 17:08, 4F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章