CalibrationVault

Overview

CalibrationVault wraps the interaction matrix inversion, computing the pseudo-inverse via SVD. It stores the full and truncated reconstructors, singular values, and conditioning number.

API reference

class OOPAO.calibration.CalibrationVault.CalibrationVault(D, nTrunc=0, display=False, print_details=False, invert=True)[source]

SVD-based pseudo-inverse of an interaction matrix.

Parameters:
  • D (numpy.ndarray) – Interaction matrix to invert (shape [n_measurements, n_modes]).

  • nTrunc (int) – Number of singular values to truncate. Default 0 (no truncation).

  • display (bool) – If True, plot the singular value spectrum. Default False.

  • print_details (bool) – If True, print progress during SVD. Default False.

  • invert (bool) – If True (default), compute the pseudo-inverse. If False, store D without inverting.

Key attributes

M: numpy.ndarray

Full pseudo-inverse V @ S⁻¹ @ Uᵀ.

Mtrunc: numpy.ndarray

Truncated pseudo-inverse (nTrunc smallest singular values removed).

s: numpy.ndarray

Singular value vector.

cond: float

Conditioning number (s[0] / s[-1]).

D: numpy.ndarray

Reconstructed interaction matrix U @ S @ V.

Example

from OOPAO.calibration.CalibrationVault import CalibrationVault

calib = CalibrationVault(iMat, nTrunc=10, display=True)
modal_commands = calib.M @ wfs.signal