new adc
This commit is contained in:
@ -65,14 +65,23 @@ def set_calibration_base_value(index: int, value: float) -> np.ndarray:
|
||||
def calibrate_freqs(sweep: Mapping[str, Any]) -> SweepData:
|
||||
"""Return a sweep copy with calibrated and resampled frequency axis."""
|
||||
freqs = np.asarray(sweep["F"], dtype=np.float64).copy()
|
||||
values = np.asarray(sweep["I"], dtype=np.float64).copy()
|
||||
values_in = np.asarray(sweep["I"]).reshape(-1)
|
||||
values = np.asarray(
|
||||
values_in,
|
||||
dtype=np.complex128 if np.iscomplexobj(values_in) else np.float64,
|
||||
).copy()
|
||||
coeffs = np.asarray(CALIBRATION_C, dtype=np.float64)
|
||||
if freqs.size > 0:
|
||||
freqs = coeffs[0] + coeffs[1] * freqs + coeffs[2] * (freqs * freqs)
|
||||
|
||||
if freqs.size >= 2:
|
||||
freqs_cal = np.linspace(float(freqs[0]), float(freqs[-1]), freqs.size, dtype=np.float64)
|
||||
values_cal = np.interp(freqs_cal, freqs, values).astype(np.float64)
|
||||
if np.iscomplexobj(values):
|
||||
values_real = np.interp(freqs_cal, freqs, values.real.astype(np.float64, copy=False))
|
||||
values_imag = np.interp(freqs_cal, freqs, values.imag.astype(np.float64, copy=False))
|
||||
values_cal = (values_real + (1j * values_imag)).astype(np.complex64)
|
||||
else:
|
||||
values_cal = np.interp(freqs_cal, freqs, values).astype(np.float64)
|
||||
else:
|
||||
freqs_cal = freqs.copy()
|
||||
values_cal = values.copy()
|
||||
|
||||
Reference in New Issue
Block a user