資料一階FFT與IFFT問題 |
尚未結案
|
okbankul
一般會員 發表:3 回覆:2 積分:1 註冊:2004-09-10 發送簡訊給我 |
這是我在本站看到的一階FFT程式
請教一下
剛接觸影像處理
有人知道這個副程式中的
ar與ai與n,isign代表什麼嗎?
能否給與指教
或是能提供小弟有關一階FFT,IFFT的程式範例?
感激.....
void FFT1D(double* ar, double* ai,int n,int isign)
{
double u_r,u_i,w_r,w_i,t_r,t_i;
int i,j,k,m,ip;
int ln,n2,stepN,stepN2;
//resort
n2 = n / 2;
j = 1;
for (i = 1; i < n; i )
{
if (i < j)
{
t_r = ar[i - 1];
t_i = ai[i - 1];
ar[i - 1] = ar[j - 1];
ai[i - 1] = ai[j - 1];
ar[j - 1] = t_r;
ai[j - 1] = t_i;
}
k = n2;
while (k < j)
{
j = j - k;
k = k / 2;
}
j = j k;
} //
ln = log(n)/log(2);
stepN=1;
for (k = 1; k <= ln; k ) /* loops thru stages */
{
stepN*= 2;
stepN2=stepN / 2;
w_r = cos(Pi/(double)stepN2 );
w_i = isign*sin(Pi/(double)stepN2 );
u_r = 1.0;
u_i = 0.0;
for (m = 1; m <= stepN2; m ) /* loops thru 1/2 twiddle values per stage */
{
for (i = m; i <= n; i = stepN) /* loops thru points per 1/2 twiddle */
{
ip = i stepN2;
t_r = ar[ip - 1] * u_r - u_i * ai[ip - 1];
t_i = ai[ip - 1] * u_r u_i * ar[ip - 1]; ar[ip - 1] = ar[i - 1] - t_r;
ai[ip - 1] = ai[i - 1] - t_i; ar[i - 1] = ar[i - 1] t_r;
ai[i - 1] = ai[i - 1] t_i;
}
t_r = u_r * w_r - w_i * u_i;
u_i = w_r * u_i w_i * u_r;
u_r = t_r;
}
}
if(isign==-1)
{
for (i = 0; i < n; i )
{
ar[i]/=n;
ai[i]/=n;
}
}
}
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |