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.c

You 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.c

Then, 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.

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:                                           

Go  back  to main