fast_lisa_subtraction.simulation.tdi module
Some utility functions to compute the characteristic strain and Omega_GW related quantities for LISA TDI channels. We follow Eqs. in Sec 2.3 of arXiv:2009.11845
- fast_lisa_subtraction.simulation.tdi.Sn(f, Nx, channel)[source]
Add the LISA response to a noise power spectral density.
- Parameters:
f (numpy.ndarray or torch.Tensor) – Frequency array in Hz.
Nx (float or array-like) – Noise PSD in
m^2/Hzfor the specified channel.channel (str) – TDI channel, one of
"A","E", or"T".
- Returns:
Noise PSD including the LISA response.
- Return type:
numpy.ndarray or torch.Tensor
- fast_lisa_subtraction.simulation.tdi.characteristic_strain(f, Nx, channel)[source]
Compute the characteristic strain for a TDI channel.
- Parameters:
f (numpy.ndarray or torch.Tensor) – Frequency array in Hz.
Nx (float or array-like) – Noise PSD in
m^2/Hzfor the specified channel.channel (str) – TDI channel, one of
"A","E", or"T".
- Returns:
Characteristic strain in
m/sqrt(Hz)for the specified channel.- Return type:
numpy.ndarray or torch.Tensor
Notes
The characteristic strain is computed as
\[h_c(f) = \sqrt{f\,S_n(f)},\]where \(S_n(f)\) includes the LISA response.
- fast_lisa_subtraction.simulation.tdi.characteristic_strain_2_omega_gw(f, Sn)[source]
Convert characteristic strain to \(\Omega_{\rm GW}\).
- Parameters:
f (numpy.ndarray or torch.Tensor) – Frequency array in Hz.
Sn (numpy.ndarray or torch.Tensor) – Characteristic strain in
1/sqrt(Hz).
- Returns:
Dimensionless \(\Omega_{\rm GW}\).
- Return type:
numpy.ndarray or torch.Tensor
Notes
The conversion uses
\[h_c(f) = \sqrt{f\,S_n(f)} \Rightarrow S_n(f) = \frac{h_c^2(f)}{f},\]and therefore
\[\Omega_{\rm GW}(f) = \frac{4\pi^2 f^3 S_n(f)}{3 H_0^2},\]with \(H_0 = 3.24\times 10^{-18}\,\mathrm{s^{-1}}\).
- fast_lisa_subtraction.simulation.tdi.coarse(f, Si)[source]
Compute a coarse-grained point and uncertainty for one bin.
- Parameters:
f (numpy.ndarray) – Frequency values in the bin.
Si (numpy.ndarray) – Spectrum values in the bin.
- Returns:
(fc, Sc, sigma)wherefcis the weighted frequency,Scis the weighted spectrum value, andsigmais the standard deviation ofSi.- Return type:
tuple
- fast_lisa_subtraction.simulation.tdi.coarse_grain_data(f, data, n=100)[source]
Apply coarse-graining to spectrum data.
- Parameters:
f (numpy.ndarray) – Frequency array.
data (numpy.ndarray) – Spectrum values to be coarse-grained.
n (int, optional) – Number of logarithmic bins.
- Returns:
(f_coarse, data_coarse, sigma_coarse)corresponding to the coarse-grained frequency, spectrum, and standard deviation.- Return type:
tuple of numpy.ndarray
Notes
The coarse-grained value in each bin is
\[S_k = \frac{\sum_i \sigma_i S_i}{\sum_i \sigma_i},\]where \(S_i\) are the PSD values and \(\sigma_i\) their associated uncertainties.
- fast_lisa_subtraction.simulation.tdi.psd_2_omega_gw(f, Sn)[source]
Convert a PSD to \(\Omega_{\rm GW}\).
- Parameters:
f (numpy.ndarray or torch.Tensor) – Frequency array in Hz.
Sn (numpy.ndarray or torch.Tensor) – Noise power spectral density in
1/Hz.
- Returns:
Dimensionless \(\Omega_{\rm GW}\).
- Return type:
numpy.ndarray or torch.Tensor
Notes
The conversion uses
\[\Omega_{\rm GW}(f) = \frac{4\pi^2 f^3 S_n(f)}{3 H_0^2},\]with \(H_0 = 3.24\times 10^{-18}\,\mathrm{s^{-1}}\).