Skip to main content

Zero Latency Whitening Utilities

Project description

zlw — Zero‑Latency Whitening utilities

Pipeline Status Coverage Python Version

zlw is a focused package for zero‑latency whitening in gravitational‑wave data analysis. It provides rigorous tools for:

  • Whitening Kernels: Computing Minimum‑Phase (MP) filters that whiten data without introducing acausal latency.
  • Perturbative Corrections: Geometric drift correction terms for the MP–MP scheme. These calculate the precise timing ($dt$) and phase ($d\phi$) biases introduced when the template PSD differs slightly from the real noise PSD.

Installation

pip install zlw

Structure

  • zlw.kernels: Construction of MP whitening filters and frequency response utilities.
  • zlw.corrections: Perturbative MP–MP correction terms (PerturbativeMPCorrection).
  • zlw.fourier, zlw.window: FFT and windowing backend helpers.
  • zlw.bin: Simulation and QA scripts.

Part 3: Example 1 (Whitening Filters)

Quick Examples

1. Computing a Whitening Filter

from zlw.kernels import MPWhiteningFilter

# psd: One‑sided PSD array (Hz^-1)
# fs: Sampling rate (Hz)
# n_fft: FFT length (e.g., 4 * fs)
wf = MPWhiteningFilter(psd, fs, n_fft)

# Get the one‑sided complex frequency response
# This response is minimum-phase (causal)
Wf = wf.frequency_response()

2. Computing Perturbative Corrections

If your template PSD (psd2) differs from the actual noise PSD (psd1), you can calculate the resulting geometric drift corrections.

import numpy as np
from zlw.corrections import PrtPsdDriftCorrection

# freqs:  One‑sided frequency grid
# psd1:   Realization/Noise PSD (The truth)
# psd2:   Template PSD (The model)
# htilde: Template waveform (frequency domain)

corr = PrtPsdDriftCorrection(
    freqs=freqs,
    psd1=psd1,
    psd2=psd2,
    htilde=htilde,
    fs=4096.0
)

# Calculate first-order geometric corrections
results = corr.correction()

print(f"Time Drift: {results.dt1:.4e} s")
print(f"SNR Loss:   {results.dsnr1:.4f}")

Development

To install development dependencies and run the test suite (requires lalsuite):

# Install in editable mode with dev dependencies
pip install -e .[dev]

# Run tests
pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zlw-0.2.1.tar.gz (73.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zlw-0.2.1-py3-none-any.whl (53.7 kB view details)

Uploaded Python 3

File details

Details for the file zlw-0.2.1.tar.gz.

File metadata

  • Download URL: zlw-0.2.1.tar.gz
  • Upload date:
  • Size: 73.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.12

File hashes

Hashes for zlw-0.2.1.tar.gz
Algorithm Hash digest
SHA256 c4b26e88d6bf1cc7a5378ea62cc8cf19bdc52ff6652d601e357c34098dd53523
MD5 38225dc55e36e7829b9f9cddef279fe5
BLAKE2b-256 f5533ccf3e96c6fe91d04292f0979eff23aede462d0a1a549d2b57017f5933e7

See more details on using hashes here.

File details

Details for the file zlw-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: zlw-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 53.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.12

File hashes

Hashes for zlw-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 df4bfb41071722da1cf5f993e28b633347a70a7bdd53c68796aec70bb18ecba6
MD5 78efad351533d006bfc513321e0aeb30
BLAKE2b-256 5fbb1a0ac8f6654b203a89e996cd69be872382fb217eac46c6993075010b71aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page