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 PertMpCorrection

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

corr = PertMpCorrection(
    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.1.1.tar.gz (49.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.1.1-py3-none-any.whl (40.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zlw-0.1.1.tar.gz
  • Upload date:
  • Size: 49.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.1.1.tar.gz
Algorithm Hash digest
SHA256 df7e138c1f3e797aaf11855dda09d5111b911b51512fc58e485de85508942fcb
MD5 b68fde4bc175b812c1adcd0ec92d6f77
BLAKE2b-256 95404840a400b0bdc3d9cd694d1092bdbe35f34920dce69b3fb2eb5bba34489c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zlw-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 40.1 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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 52e17728740409aba7fe6021aeeff68b9184492eab32c93e478313040b3e520c
MD5 e86af374ba464526be085957fa69cb57
BLAKE2b-256 05661d0dd1fe2096e6b913a6ba3cd735b5b6b762d898a431d4689b2866f4b736

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