全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1437
推到 Plurk!
推到 Facebook!

關於C語言2D_FFT....

尚未結案
emil5201314_61135
一般會員


發表:4
回覆:3
積分:1
註冊:2006-08-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-10-01 12:08:48 IP:210.209.xxx.xxx 未訂閱
小弟利用了版上的大大程式碼,修改成C語言的FFT。可是出來的結果好像跟MATLAB差很多,請問各位大大我哪裡有寫錯??請大大幫忙小弟,十分感謝大大!!
#include <math.h><br />#include
#include
struct COMPLEX {
float r, i;
};

void _1Dfft( COMPLEX F[ 64 ], int log2n, int n, int ntype ) {
int n2, i, j, k, m, stepN, stepN2, sign, ip;
double ur, ui, wr, wi, tr, ti, pi = 4. * atan( 1. ), in;
sign = -1;
if ( ntype != 0 )
sign = 1;
n2 = n / 2;
j = 1;
for ( i = 1; i < n; i ) {
if ( i < j ) {
tr = F[ i - 1 ].r;
ti = F[ i - 1 ].i;
F[ i - 1 ].r = F[ j - 1 ].r;
F[ i - 1 ].i = F[ j - 1 ].i;
F[ j - 1 ].r = tr;
F[ j - 1 ].i = ti;
}
k = n2;
while ( k < j ) {
j = j - k;
k = k / 2;
}
j = j k;
}
stepN = 1;
for ( k = 1; k <= log2n; k ) {
stepN *= 2;
stepN2 = stepN / 2;
wr = cos( pi / ( double ) stepN2 );
wi = sign * sin( pi / ( double ) stepN2 );
ur = 1.0;
ui = 0.0;
for ( m = 1; m <= stepN2; m ) {
for ( i = m; i <= n;i = stepN ) {
ip = i stepN2;
tr = F[ ip - 1 ].r * ur - F[ ip - 1 ].i * ui;
ti = F[ ip - 1 ].r * ui F[ ip - 1 ].i * ur;
F[ ip - 1 ].r = F[ i - 1 ].r - tr;
F[ ip - 1 ].i = F[ i - 1 ].i - ti;
F[ i - 1 ].r = F[ i - 1 ].r tr;
F[ i - 1 ].i = F[ i - 1 ].i ti;
}
tr = ur * wr - ui * wi;
ti = ur * wi ui * wr;
ur = tr;
}
}
if ( ntype != 0 ) {
in = 1. / n;
for ( i = 0; i < n; i ) {
F[ i ].r = F[ i ].r * in;
F[ i ].i = F[ i ].i * in;
}
}
return ;
}
void _2Dfft( COMPLEX F[ 64 ][ 64 ], int n, int log2n, int ntype ) {
int i, j;
struct COMPLEX temp[ 64 ];
for ( i = 0; i < n; i ) {
for ( j = 0;j < n;j ) {
temp[ j ].r = F[ i ][ j ].r;
temp[ j ].i = F[ i ][ j ].i;
}
_1Dfft( temp, log2n, n, ntype );
for ( j = 0;j < n;j ) {
F[ i ][ j ].r = temp[ j ].r;
F[ i ][ j ].i = temp[ j ].i;
}
}
for ( j = 0; j < n; j ) {
for ( i = 0;i < n;i ) {
temp[ i ].r = F[ i ][ j ].r;
temp[ i ].i = F[ i ][ j ].i;
}
_1Dfft( temp, log2n, n, ntype );
for ( i = 0;i < n;i ) {
F[ i ][ j ].r = temp[ i ].r;
F[ i ][ j ].i = temp[ i ].i;
}
}
}
系統時間:2024-05-04 16:28:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!