Zero Latency Whitening Utilities
Project description
zlw — Zero‑Latency Whitening utilities
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df7e138c1f3e797aaf11855dda09d5111b911b51512fc58e485de85508942fcb
|
|
| MD5 |
b68fde4bc175b812c1adcd0ec92d6f77
|
|
| BLAKE2b-256 |
95404840a400b0bdc3d9cd694d1092bdbe35f34920dce69b3fb2eb5bba34489c
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52e17728740409aba7fe6021aeeff68b9184492eab32c93e478313040b3e520c
|
|
| MD5 |
e86af374ba464526be085957fa69cb57
|
|
| BLAKE2b-256 |
05661d0dd1fe2096e6b913a6ba3cd735b5b6b762d898a431d4689b2866f4b736
|