Apply PCI to simulated data

Here we apply PCI to data simulated via the LISA Simulation Suite, following the simulation scripts described in Simulate LISA data: noise and signal.

The simulated datasets are 3 days long. PCI is applied to 12 hours of data, with 4 hours of skipped data at the beginning of the simulation.

We need the following simulated datasets:

  • full simulation noise dataset (including laser noise and secondary noises), with filename ending in _measurements_4Hz.h5

  • secondary noises dataset, with filename ending in _noise_sec_4Hz.h5

2. Apply PCI to the data

We now resort to PCIFilter to evaluate PCI from \(\vec{y}\).

An instance of PCIFilter has two required inputs:

  • ydata: matrix with the single link LISA temporal phase data streams \(\vec{y}\).

  • fs: sampling rate of the data streams (Hz).

The optional parameters are

  • nhalf: filter stencil halfwidth in samples. The default is 45.

  • order: order of PCI. The default is 1.

  • maxcompts: PCA results will be truncated to this length after initial processing. The default is 10.

  • Tscale: if dt is None, then dt defaults to Tscale/ns

The input channels \(\vec{y}\) are stretches of data, usually of length ns+2*nhalf, but sometimes varying. The variations are: : (full length of matrix) 0:ns_fixed 0:ns+2nhalf skip:skip+ns+2nhalf In every case the window is trivial np.ones([data lenght])

The PCIFilter class applies the following methods

  • self.build_data_matrix(ydata, zero_mean=zero_mean,detrend=detrend)

  • self.apply_pca(datamatrix, maxcompts)

  • self.set_stencil(self.maxcompts)

  • self.channels = self.components.dot(datamatrix.T).astype(np.float64)

3. Run channel analysis on the PCI output

5. Estimate sensitivity