00001 00002 /*---------------------------------------------------------------------------- 00003 * E.S.O. 00004 *---------------------------------------------------------------------------- 00005 * File name : fourier.c 00006 * Author : Nicolas Devillard 00007 * Created on : OCt 20, 1995 00008 * Hardware : Sun Sparc 20 00009 * Software : ANSI C under Solaris Unix 00010 * Part of ECLIPSE library for Adonis 00011 * Description : fourier transform routines 00012 *--------------------------------------------------------------------------*/ 00013 00014 /* 00015 00016 $Id: fourier.h,v 1.1 2003/09/03 12:50:47 amodigli Exp $ 00017 $Author: amodigli $ 00018 $Date: 2003/09/03 12:50:47 $ 00019 $Revision: 1.1 $ 00020 00021 */ 00022 00023 00024 #ifndef _FOURIER_H_ 00025 #define _FOURIER_H_ 00026 00027 00028 /*---------------------------------------------------------------------------- 00029 * Includes 00030 *--------------------------------------------------------------------------*/ 00031 00032 #include <math.h> 00033 #include "memory.h" 00034 #include "cube_defs.h" 00035 #include "cube_handling.h" 00036 #include "fft_base.h" 00037 00038 00039 /*---------------------------------------------------------------------------- 00040 * Function ANSI C prototypes 00041 *--------------------------------------------------------------------------*/ 00042 00043 00044 /*---------------------------------------------------------------------------- 00045 * Function : fftn_image() 00046 * In : 2 images: real and imaginary, fft direction 00047 * Out : 1 cube containing 2 images 00048 * Job : compute image FFT 00049 * Notice : if no imaginary part is given, give NULL as argument for 00050 * the second image. sign is set to FFT_FORWARD for foward fft, 00051 * FFT_INVERSE for inverse fft. 00052 *--------------------------------------------------------------------------*/ 00053 00054 OneCube * 00055 fftn_image( 00056 OneImage *real_img, 00057 OneImage *imaginary_img, 00058 int sign 00059 ) ; 00060 00061 00062 /*---------------------------------------------------------------------------- 00063 * Function : conv_xy_rtheta() 00064 * In : one 2-plane cube 00065 * Out : one newly allocated 2-plane cube 00066 * Job : convert a 2-plane cube in (real,imag) to (modulus,phase) 00067 * Notice : 00068 *--------------------------------------------------------------------------*/ 00069 00070 OneCube * 00071 conv_xy_rtheta(OneCube * cube_in) ; 00072 00073 00074 00075 /*---------------------------------------------------------------------------- 00076 * Function : conv_rtheta_xy() 00077 * In : one 2-plane cube 00078 * Out : one newly allocated 2-plane cube 00079 * Job : convert a cube in (modulus,phase) to (real,imaginary) 00080 * Notice : 00081 *--------------------------------------------------------------------------*/ 00082 00083 OneCube * 00084 conv_rtheta_xy(OneCube * cube_in) ; 00085 00086 00087 00088 /*---------------------------------------------------------------------------- 00089 * Function : swap_image_quadrants() 00090 * In : 1 image 00091 * Out : void 00092 * Job : swap quadrants in image 00093 * Notice : if the image is initially 1 2 it becomes 4 3 00094 * 3 4 2 1 00095 * 00096 * the input image is modified 00097 *--------------------------------------------------------------------------*/ 00098 00099 void 00100 swap_image_quadrants(OneImage * cube_in) ; 00101 00102 00103 #endif 00104 /*--------------------------------------------------------------------------*/
1.2.13.1 written by Dimitri van Heesch,
© 1997-2001