FDNoiseModel§

class typed_lisa_toolkit.types.FDNoiseModel[source]§

Frequency domain noise model.

Assuming the noise is stationary, the noise model is given by the noise power spectral density (PSD) in the frequency domain. This class might not be suitable for non-stationary noise.

Note

To construct a FDNoiseModel, use the noise_model() factory function.

Attention

This class is considered experimental. If you are interested in using it, please reach out to the developers to discuss your use case and how we can best support it.

get_complex_scalar_product(left: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]], right: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]]) Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]][source]§

Return the complex scalar product.

Assuming left is \(d\), right is \(h\), and the noise PSD is \(S_n(f)\), this method returns

\[\langle d, h \rangle = 4 \int_{f_\text{min}}^{f_\text{max}} \frac{d^*(f) h(f)}{S_n(f)} \, \mathrm{d} f.\]
get_cross_correlation(left: TimedFSData, right: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]])[source]§

Return the cross correlation.

Assuming left is \(d\), right is \(h\), and the noise PSD is \(S_n(f)\), we define the cross-correlation as

\[(d \ast h)(\tau) := \left( \hat{d}(t) \middle| \hat{h}(t + \tau) \right),\]

where the hat denotes the real Fourier transform. This methods returns a generalization of the above cross-correlation which is complex-valued

\[(d \star h)(\tau) := \langle \hat{d}(t), \hat{h}(t + \tau) \rangle.\]

In the implementation, the generalized cross-correlation is computed using

\[(d \star h)(\tau) \propto \mathcal{F}^{-1}\left(4\frac{d^*(f) h(f)}{S_n(f)}\right),\]

where \(\mathcal{F}^{-1}\) is the two-sided inverse Fourier transform. Note that the input arrays \(d(f)\) and \(h(f)\) are one-sided, and the negative frequencies are populated by zero before the inverse Fourier transform.

get_cumulative_complex_scalar_product(left: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]], right: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]]) Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]][source]§

Return the cumulative complex scalar product.

Assuming left is \(d\), right is \(h\), and the noise PSD is \(S_n(f)\), this method returns an array of the following function on the input frequency grid \([f_\text{min}, f_\text{max}]\):

\[F \mapsto 4\int_{f_\text{min}}^{F} \frac{d^*(f) h(f)}{S_n(f)} \, \mathrm{d} f.\]
get_cumulative_scalar_product(left: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]], right: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]]) Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]][source]§

Return the cumulative scalar product.

Assuming left is \(d\), right is \(h\), and the noise PSD is \(S_n(f)\), this method returns an array of the following function on the input frequency grid \([f_\text{min}, f_\text{max}]\):

\[F \mapsto 4\Re \int_{f_\text{min}}^{F} \frac{d^*(f) h(f)}{S_n(f)} \, \mathrm{d} f.\]
get_integrand(left: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]], right: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]]) Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]][source]§

Return the frequency-domain inner-product integrand.

Computes \(4\, d^*(f)\, S_n^{-1}(f)\, h(f)\) at each frequency bin, returning an array of shape (n_batches, n_channels, 1, 1, n_freqs).

get_overlap(left: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]], right: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]]) Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]][source]§

Return the overlap.

Assuming left is \(d\), right is \(h\), and the noise PSD is \(S_n(f)\), this method returns

\[\frac{\langle d, h \rangle} {\sqrt{\langle d, d \rangle \langle h, h \rangle}}.\]
get_scalar_product(left: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]], right: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]]) Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]][source]§

Return the scalar product.

Assuming left is \(d\), right is \(h\), and the noise PSD is \(S_n(f)\), this method returns

\[\left( d \middle| h \right) = 4 \Re \int_{f_\text{min}}^{f_\text{max}} \frac{d^*(f) h(f)}{S_n(f)} \, \mathrm{d} f.\]
inner(left: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]], right: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]]) Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]]§

Alias for get_scalar_product().

reset() Self[source]§

Reset the noise model to its original state, typically after subband restriction.

to_subband(f_interval: tuple[float, float]) Self[source]§

Restrict the noise model to a subband.

whiten(_data: FSData | ProjectedWaveform[FrequencySeries[Axis[Array[Any, ModuleType] | ndarray[tuple[Any, ...], dtype[Any]] | Linspace, ModuleType]]])[source]§

Return whitened data with the same container type as input.

Applies the whitening matrix, so whitened noise has unit covariance.