FUNCTION test_idlfft ; --------- ; Open file ; --------- OPENR, 1, 'fft_input.dat' ; ------------------ ; Read in input data ; ------------------ file_info = FSTAT( 1 ) n = ( file_info.size / 4 ) / 2 MESSAGE, STRING( n ) + ' real and imaginary points to be read', /INFO real_part = FLTARR( n ) imag_part = FLTARR( n ) READU, 1, real_part, imag_part CLOSE, 1 ; ------------ ; Reflect data ; ------------ real_part = [ real_part, REVERSE( real_part[ 1 : n - 2 ] ) ] imag_part = [ imag_part, -1.0 * REVERSE( imag_part[ 1 : n - 2 ] ) ] ; -------------------------------------- ; Perform FFT; spectrum -> interferogram ; -------------------------------------- cxs = COMPLEX( real_part, imag_part ) ifg = FFT( cxs, /INVERSE ) ; ------------- ; Output result ; ------------- OPENW, 1, 'idlfft_output.dat' WRITEU, 1, FLOAT( ifg ), IMAGINARY( ifg ) CLOSE, 1 ; ------------- ; Return result ; ------------- RETURN, ifg END