1
1
// -----------------------------------------------------------------------------
2
2
// Copyright 2012 Masanori Morise
3
3
// Author: mmorise [at] yamanashi.ac.jp (Masanori Morise)
4
- // Last update: 2017/02/01
4
+ // Last update: 2018/01/21
5
5
//
6
6
// This file represents the functions about FFT (Fast Fourier Transform)
7
7
// implemented by Mr. Ooura, and wrapper functions implemented by M. Morise.
@@ -29,7 +29,7 @@ static void BackwardFFT(fft_plan p) {
29
29
p.input [1 ] = p.c_in [p.n / 2 ][0 ];
30
30
for (int i = 1 ; i < p.n / 2 ; ++i) {
31
31
p.input [i * 2 ] = p.c_in [i][0 ];
32
- p.input [i * 2 + 1 ] = p.c_in [i][1 ];
32
+ p.input [i * 2 + 1 ] = - p.c_in [i][1 ];
33
33
}
34
34
rdft (p.n , -1 , p.input , p.ip , p.w );
35
35
for (int i = 0 ; i < p.n ; ++i) p.out [i] = p.input [i] * 2.0 ;
@@ -41,7 +41,7 @@ static void BackwardFFT(fft_plan p) {
41
41
cdft (p.n * 2 , -1 , p.input , p.ip , p.w );
42
42
for (int i = 0 ; i < p.n ; ++i) {
43
43
p.c_out [i][0 ] = p.input [i * 2 ];
44
- p.c_out [i][1 ] = p.input [i * 2 + 1 ];
44
+ p.c_out [i][1 ] = - p.input [i * 2 + 1 ];
45
45
}
46
46
}
47
47
}
@@ -54,7 +54,7 @@ static void ForwardFFT(fft_plan p) {
54
54
p.c_out [0 ][1 ] = 0.0 ;
55
55
for (int i = 1 ; i < p.n / 2 ; ++i) {
56
56
p.c_out [i][0 ] = p.input [i * 2 ];
57
- p.c_out [i][1 ] = p.input [i * 2 + 1 ];
57
+ p.c_out [i][1 ] = - p.input [i * 2 + 1 ];
58
58
}
59
59
p.c_out [p.n / 2 ][0 ] = p.input [1 ];
60
60
p.c_out [p.n / 2 ][1 ] = 0.0 ;
@@ -65,8 +65,8 @@ static void ForwardFFT(fft_plan p) {
65
65
}
66
66
cdft (p.n * 2 , 1 , p.input , p.ip , p.w );
67
67
for (int i = 0 ; i < p.n ; ++i) {
68
- p.c_out [i][0 ] = p.input [i * 2 ];
69
- p.c_out [i][1 ] = p.input [i * 2 + 1 ];
68
+ p.c_out [i][0 ] = p.input [i * 2 ];
69
+ p.c_out [i][1 ] = - p.input [i * 2 + 1 ];
70
70
}
71
71
}
72
72
}
0 commit comments