fix: align all range/carrier/velocity values to PLFM hardware + FPGA bug fixes
- Correct carrier from 10.525/10 GHz to 10.5 GHz (verified ADF4382 config) - Correct range-per-bin from 4.8/5.6/781.25 m to 24.0 m (matched-filter) - Correct velocity resolution from 1.484 to 2.67 m/s/bin (PRI-based) - Correct processing rate from 4 MSPS to 100 MSPS (post-DDC) - Correct max range from 307/5000/50000 m to 1536 m (64 bins x 24 m) - Add WaveformConfig.pri_s field (167 us PRI for velocity calculation) - Fix short chirp chirp_complete deadlock (Bug A) - Remove dead short_chirp ports, rename long_chirp to ref_chirp (Bug B) - Fix stale latency comment 2159 -> 3187 cycles (Bug C) - Create radar_params.vh as single source of truth for FPGA parameters - Lower RadarSettings.cpp map_size validation bound from 1000 to 100 - Add PLFM hardware constants to golden_reference.py - Update all GUI versions, tests, and cross-layer contracts All 244 tests passing (167 Python + 21 MCU + 29 cross-layer + 27 FPGA)
This commit is contained in:
@@ -108,7 +108,7 @@ class GPSData:
|
||||
@dataclass
|
||||
class RadarSettings:
|
||||
"""Radar system configuration"""
|
||||
system_frequency: float = 10e9 # Hz
|
||||
system_frequency: float = 10.5e9 # Hz (PLFM TX LO)
|
||||
chirp_duration_1: float = 30e-6 # Long chirp duration (s)
|
||||
chirp_duration_2: float = 0.5e-6 # Short chirp duration (s)
|
||||
chirps_per_position: int = 32
|
||||
@@ -116,8 +116,8 @@ class RadarSettings:
|
||||
freq_max: float = 30e6 # Hz
|
||||
prf1: float = 1000 # PRF 1 (Hz)
|
||||
prf2: float = 2000 # PRF 2 (Hz)
|
||||
max_distance: float = 50000 # Max detection range (m)
|
||||
coverage_radius: float = 50000 # Map coverage radius (m)
|
||||
max_distance: float = 1536 # Max detection range (m) -- 64 bins x 24 m
|
||||
coverage_radius: float = 1536 # Map coverage radius (m)
|
||||
|
||||
|
||||
class TileServer(Enum):
|
||||
@@ -198,7 +198,7 @@ class RadarMapWidget(QWidget):
|
||||
pitch=0.0
|
||||
)
|
||||
self._targets: list[RadarTarget] = []
|
||||
self._coverage_radius = 50000 # meters
|
||||
self._coverage_radius = 1536 # meters (64 bins x 24 m, 3 km mode)
|
||||
self._tile_server = TileServer.OPENSTREETMAP
|
||||
self._show_coverage = True
|
||||
self._show_trails = False
|
||||
@@ -1088,7 +1088,7 @@ class TargetSimulator(QObject):
|
||||
new_range = target.range - target.velocity * 0.5 # 0.5 second update
|
||||
|
||||
# Check if target is still in range
|
||||
if new_range < 500 or new_range > 50000:
|
||||
if new_range < 50 or new_range > 1536:
|
||||
# Remove this target and add a new one
|
||||
continue
|
||||
|
||||
|
||||
Reference in New Issue
Block a user