LALInspiral 5.0.3.1-eeff03c
LALInspiralStationaryPhaseApprox1.c File Reference

This module computes the stationary phase approximation to the Fourier transform of a chirp waveform by integrating Eq. \eqref{eq_InspiralFourierPhase}. More...

Prototypes

REAL8 XLALPsiOfT (REAL8 v, void *param)
 
int XLALInspiralStationaryPhaseApprox1 (REAL4Vector *signalvec, InspiralTemplate *params)
 

Detailed Description

This module computes the stationary phase approximation to the Fourier transform of a chirp waveform by integrating Eq. \eqref{eq_InspiralFourierPhase}.

Author
B.S. Sathyaprakash

Prototypes

XLALInspiralStationaryPhaseApprox1()

  • signalvec: Output containing the inspiral waveform.
  • params: Input containing binary chirp parameters.

Description

This module generates the Fourier domain waveform that is analogous of the time-domain approximant TaylorT1. Instead of re-expanding the the energy and flux functions they are kept in tact and the integral in Eq. \eqref{eq_InspiralFourierPhase} is solved numerically. The code returns the Fourier transform packed in the same way as fftw would for the Fourier transform of a real vector. For a signal vector of length n=signalvec->length (n even):

  • signalvec->data[0] is the real 0th frequency component of the Fourier transform.
  • signalvec->data[n/2] is the real Nyquist frequency component of the Fourier transform.
  • signalvec->data[k] and signalvec->data[n-k], for k=1,..., n/2-1, are the real and imaginary parts of the Fourier transform at a frequency \(k\Delta f=k/T,\) \(T\) being the duration of the signal and \(\Delta f=1/T\) is the frequency resolution.

Algorithm

The lal code XLALREAL8RombergIntegrate() is used to solve the integral in Eq. \eqref{eq_InspiralFourierPhase}. The reference points are chosen so that on inverse Fourier transforming the time-domain waveform will

  • be padded with zeroes in the first params->nStartPad bins,
  • begin with a phase shift of params->nStartPhase radians,
  • have an amplitude of \(n v^2.\)

Uses

int XLALInspiralSetup(expnCoeffs *ak, InspiralTemplate *params)
int XLALInspiralChooseModel(expnFunc *func, expnCoeffs *ak, InspiralTemplate *params)
REAL8 XLALREAL8RombergIntegrate(REAL8(*f)(REAL8 x, void *params), void *params, REAL8 xmin, REAL8 xmax, IntegralType type)

Notes

If it is required to compare the output of this module with a time domain signal one should use an inverse Fourier transform routine that packs data in the same way as fftw. Moreover, one should divide the resulting inverse Fourier transform by a factor \(n/2\) to be consistent with the amplitude used in time-domain signal models.

Definition in file LALInspiralStationaryPhaseApprox1.c.

Go to the source code of this file.

Function Documentation

◆ XLALPsiOfT()

REAL8 XLALPsiOfT ( REAL8  v,
void *  param 
)

Definition at line 241 of file LALInspiralStationaryPhaseApprox1.c.

◆ XLALInspiralStationaryPhaseApprox1()

int XLALInspiralStationaryPhaseApprox1 ( REAL4Vector signalvec,
InspiralTemplate params 
)

Definition at line 103 of file LALInspiralStationaryPhaseApprox1.c.