added s11!
This commit is contained in:
@@ -49,7 +49,13 @@ def _shm_unlink(name: str) -> None:
|
||||
raise OSError(err, f"shm_unlink failed for {name}")
|
||||
|
||||
|
||||
def build_synthetic_collection(config: RunConfigModel, value_scale: float) -> SweepCollection:
|
||||
def build_synthetic_collection(
|
||||
config: RunConfigModel,
|
||||
value_scale: float,
|
||||
*,
|
||||
s11_scale: float,
|
||||
s11_phase_offset: float,
|
||||
) -> SweepCollection:
|
||||
"""Build synthetic sweep collection for all configured switch combos."""
|
||||
traces: list[TraceData] = []
|
||||
combos = RunConfigModel.build_full_combos(config.input_switch.positions, config.output_switch.positions)
|
||||
@@ -62,12 +68,15 @@ def build_synthetic_collection(config: RunConfigModel, value_scale: float) -> Sw
|
||||
dtype=np.float32,
|
||||
)
|
||||
phase = np.linspace(0.0, np.pi * 2.0, config.radar.sweep.points, dtype=np.float32)
|
||||
reflected_phase = (phase * 0.6) + s11_phase_offset
|
||||
s11 = (s11_scale * (np.cos(reflected_phase) + 1j * np.sin(reflected_phase))).astype(np.complex64)
|
||||
s21 = value_scale * (np.cos(phase) + 1j * np.sin(phase)).astype(np.complex64)
|
||||
|
||||
traces.append(
|
||||
TraceData(
|
||||
combo=ComboKey(input_pos=combo.input, output_pos=combo.output),
|
||||
frequency_hz=frequency_hz,
|
||||
s11=s11,
|
||||
s21=s21,
|
||||
)
|
||||
)
|
||||
@@ -107,22 +116,27 @@ def main() -> int:
|
||||
power_dbm=config.radar.sweep.power_dbm,
|
||||
)
|
||||
|
||||
calibration_set = build_synthetic_collection(config, value_scale=1.0)
|
||||
reference_set = build_synthetic_collection(config, value_scale=0.3)
|
||||
s21_calibration_set = build_synthetic_collection(config, value_scale=1.0, s11_scale=0.15, s11_phase_offset=0.4)
|
||||
s21_reference_set = build_synthetic_collection(config, value_scale=0.3, s11_scale=0.08, s11_phase_offset=0.9)
|
||||
s11_open_set = build_synthetic_collection(config, value_scale=0.85, s11_scale=0.95, s11_phase_offset=0.1)
|
||||
s11_short_set = build_synthetic_collection(config, value_scale=0.85, s11_scale=0.95, s11_phase_offset=3.2)
|
||||
s11_load_set = build_synthetic_collection(config, value_scale=0.85, s11_scale=0.05, s11_phase_offset=1.4)
|
||||
s11_reference_set = build_synthetic_collection(config, value_scale=0.3, s11_scale=0.18, s11_phase_offset=1.1)
|
||||
|
||||
store.save_set("calibration", radar_key, "smoke_cal", calibration_set)
|
||||
store.save_set("reference", radar_key, "smoke_ref", reference_set)
|
||||
store.save_set("s21_calibration", radar_key, "smoke_cal", s21_calibration_set)
|
||||
store.save_set("s21_reference", radar_key, "smoke_ref", s21_reference_set)
|
||||
store.save_set("s11_open", radar_key, "smoke_open", s11_open_set)
|
||||
store.save_set("s11_short", radar_key, "smoke_short", s11_short_set)
|
||||
store.save_set("s11_load", radar_key, "smoke_load", s11_load_set)
|
||||
store.save_set("s11_reference", radar_key, "smoke_s11_ref", s11_reference_set)
|
||||
|
||||
calibration_bundle, reference_bundle = config_writer.prepare_s21_bundles(
|
||||
store,
|
||||
radar_key,
|
||||
"smoke_cal",
|
||||
"smoke_ref",
|
||||
)
|
||||
config.preprocess.s21_calibration_set = "smoke_cal"
|
||||
config.preprocess.s21_reference_set = "smoke_ref"
|
||||
config.preprocess.s21_calibration_bundle_path = str(calibration_bundle)
|
||||
config.preprocess.s21_reference_bundle_path = str(reference_bundle)
|
||||
config.preprocess.s21.calibration.set_name = "smoke_cal"
|
||||
config.preprocess.s21.reference.set_name = "smoke_ref"
|
||||
config.preprocess.s11.calibration.open.set_name = "smoke_open"
|
||||
config.preprocess.s11.calibration.short.set_name = "smoke_short"
|
||||
config.preprocess.s11.calibration.load.set_name = "smoke_load"
|
||||
config.preprocess.s11.reference.set_name = "smoke_s11_ref"
|
||||
config_writer.prepare_preprocess_bundles(store, radar_key, config)
|
||||
|
||||
config_path = config_writer.write(config, project_root / "python_app/runtime/run_config_smoke.json")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user