new kamil adc
This commit is contained in:
@@ -42,6 +42,38 @@ class RadarMultiDeviceModel:
|
||||
recovery_attempts: int = 3
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class KamilAdcPhaseCalibrationModel:
|
||||
"""Affine law mapping the reference signal's unwrapped phase to frequency.
|
||||
|
||||
Two fixed anchor points ``(phase0_rad, freq0_hz)`` and ``(phase1_rad, freq1_hz)``
|
||||
define ``f(phase) = freq0_hz + (phase - phase0_rad) * (freq1_hz - freq0_hz)
|
||||
/ (phase1_rad - phase0_rad)``, applied to the *absolute* unwrapped phase of
|
||||
every sweep. These are physical constants of the reference arm and must be
|
||||
supplied by config — never derived from a live sweep.
|
||||
"""
|
||||
|
||||
phase0_rad: float = 0.0
|
||||
freq0_hz: float = 2_046_000_000.0
|
||||
phase1_rad: float = 300.0
|
||||
freq1_hz: float = 5_612_000_000.0
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class KamilAdcBandModel:
|
||||
"""Fixed frequency window every sweep is cropped to and resampled onto.
|
||||
|
||||
Each sweep is resampled onto ``linspace(start_hz, stop_hz, points)`` so all
|
||||
sweeps share one identical axis and can be averaged/subtracted. The window
|
||||
must lie inside the (floating) range each sweep actually covers; sweeps that
|
||||
fail to cover it are rejected rather than edge-extrapolated.
|
||||
"""
|
||||
|
||||
start_hz: float = 2_100_000_000.0
|
||||
stop_hz: float = 5_500_000_000.0
|
||||
points: int = 2048
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class KamilAdcModel:
|
||||
"""External Kamil ADC acquisition process settings."""
|
||||
@@ -54,6 +86,10 @@ class KamilAdcModel:
|
||||
startup_timeout_s: float = 5.0
|
||||
sweep_timeout_s: float = 5.0
|
||||
stop_timeout_s: float = 2.0
|
||||
phase_calibration: KamilAdcPhaseCalibrationModel = field(
|
||||
default_factory=KamilAdcPhaseCalibrationModel
|
||||
)
|
||||
band: KamilAdcBandModel = field(default_factory=KamilAdcBandModel)
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
|
||||
Reference in New Issue
Block a user