The frequency analysis:
Through the following link, you can acces a C-language code which implements the Modified Fourier Transform (Laskar 1999) and its variants with frequency corrections: fmft.cYou will need to compile it with nrutil.c and the header nrutil.h , which contain the routines of C-language dynamical declarations. After downloading the files the compilation is typically:
gcc -c nrutil.c
gcc -c fmft.cThen, the resulting *.o files must be linked with a driver file:
gcc -o main_fmft main_fmft.c fmft.o nrutil.o -lm
An example of the driver file: main_fmft.c . This particular driver uses fmft.c to determine frequencies, amplitudes and phases in a time series resulting from the secular evolution of planetary orbits. Typically, you type:
main_fmft < input > output
where input is the file containing the time series and output will contain results of the frequency analysis. The file input must have 3 columns (time x y) and more than NDATA rows (see below). The complex time series z(time)= x(time) + i y(time) must have an equal time spacing. In main_fmft.c, one shell define:
The output file will have 3 columns (frequency, amplitude and phase) and NFREQ rows.
- interval of frequencies (in arcsec per year) where the frequencies are calculated (MIN_F,MAX_F)
- variant of the frequency analysis (an integer FMFT_FLAG, see fmft.c for options)
- number of frequencies to be calculated (NFREQ)
- spacing in the input time series (DATA_SEP)
- length of the time series (NDATA), must be a power of 2 and the number of rows in the input file must be equal or larger than NDATA
An example of input and output files. This example is e*exp(i*varpi), where e and varpi are the eccentricity and perihelion longitude of Jupiter sampled each 1000 yr for 10 Myr (NDATA <= 10000). The time series were artificially limited to 10 harmonics with largest amplitudes.
If nothing works, contact me on: david@obs-nice.fr
Go back to main