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. DefaultFalse.print_details (bool) – If
True, print progress during SVD. DefaultFalse.invert (bool) – If
True(default), compute the pseudo-inverse. IfFalse, storeDwithout inverting.
Key attributes
- M: numpy.ndarray¶
Full pseudo-inverse
V @ S⁻¹ @ Uᵀ.
- Mtrunc: numpy.ndarray¶
Truncated pseudo-inverse (
nTruncsmallest singular values removed).
- s: numpy.ndarray¶
Singular value vector.
- 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