128 std::vector<FmcwChirpBoundaryTracker>
direct;
129 std::vector<std::vector<FmcwChirpBoundaryTracker>>
reflected;
FMCW linear chirp signal implementation.
FMCW symmetric triangular modulation signal implementation.
Class representing a radar signal with associated properties.
Represents a radar transmitter system.
Global configuration file for the project.
double RealType
Type for real numbers.
std::uint64_t countFmcwTriangleStarts(const ActiveStreamingSource &source, const RealType active_start, const RealType active_end)
Counts FMCW triangles that start inside the absolute interval.
StreamingWaveformKind
Streaming waveform shape cached for a currently active source.
ActiveStreamingSource makeActiveSource(const radar::Transmitter *const tx, const RealType segment_start, const RealType segment_end)
Builds an active-source cache from a streaming transmitter and segment bounds.
std::uint64_t countFmcwChirpStarts(const ActiveStreamingSource &source, const RealType active_start, const RealType active_end)
Counts FMCW chirps that start inside the absolute interval.
std::optional< RealType > firstFmcwTriangleStart(const ActiveStreamingSource &source, const RealType active_start, const RealType active_end)
Returns the first FMCW triangle start inside the absolute interval, if one exists.
ActiveStreamingSource makeActiveSourceFromWaveform(const fers_signal::RadarSignal *const signal, const RealType segment_start, const RealType segment_end)
Builds an active-source cache directly from a waveform for receiver-local LO references.
std::optional< RealType > firstFmcwChirpStart(const ActiveStreamingSource &source, const RealType active_start, const RealType active_end)
Returns the first FMCW chirp start inside the absolute interval, if one exists.
Cached description of an active streaming transmitter segment.
RealType s_pi_alpha
Cached signed pi-scaled FMCW chirp-rate factor.
RealType triangle_period
Cached full triangle period in seconds.
RealType amplitude
Cached emitted signal amplitude.
RealType carrier_freq
Cached carrier frequency in hertz.
RealType two_pi_f0
Cached two-pi carrier angular frequency factor.
RealType neg_pi_alpha
Triangle down-leg quadratic coefficient.
RealType two_pi_f0_plus_B
Triangle down-leg linear coefficient.
RealType mod_phi_tri
Triangle period phase increment modulo 2*pi.
RealType mod_phi_up
Triangle leg phase increment modulo 2*pi.
RealType segment_start
Segment start time in seconds.
RealType signed_chirp_rate
Cached signed FMCW chirp rate in hertz per second.
RealType pi_alpha
Triangle up-leg quadratic coefficient.
const radar::Transmitter * transmitter
Transmitter active during this segment.
RealType chirp_duration
Cached FMCW chirp duration in seconds.
RealType chirp_period
Cached FMCW chirp period in seconds.
StreamingWaveformKind kind
Cached streaming waveform shape.
const fers_signal::FmcwChirpSignal * fmcw
Stable pointer to the linear FMCW waveform, if any.
bool is_fmcw
Compatibility flag for any FMCW source.
std::optional< std::size_t > chirp_count
Optional finite chirp count for the segment.
std::optional< std::size_t > triangle_count
Optional finite triangle count for the segment.
RealType segment_end
Segment end time in seconds.
const fers_signal::FmcwTriangleSignal * triangle
Stable pointer to the triangle waveform, if any.
RealType chirp_rate
Cached FMCW chirp rate in hertz per second.
RealType start_freq_off
Cached FMCW start frequency offset in hertz.
Tracks the current FMCW chirp boundary for a streaming path.
RealType t_n
Current chirp boundary time in seconds.
RealType triangle_phi_base
Current modular triangle base phase in radians.
bool triangle_initialized
True after the triangle tracker has been initialized.
std::size_t triangle_leg
Current triangle leg index: 0 for up-leg, 1 for down-leg.
std::size_t triangle_index
Current zero-based triangle index.
std::size_t n_current
Current zero-based chirp index.
bool initialized
True after the tracker has been initialized for a path.
RealType triangle_t_leg
Current triangle leg boundary time in seconds.
Tracks the current FMCW triangle leg boundary for a streaming path.
std::size_t m_current
Current leg index: 0 for up-leg, 1 for down-leg.
RealType phi_base
Current modular base phase in radians.
std::size_t M_current
Current zero-based triangle index.
RealType t_leg
Current leg boundary time in seconds.
bool initialized
True after the tracker has been initialized for a path.
Per-receiver FMCW tracker state for direct and reflected streaming paths.
std::vector< std::vector< FmcwChirpBoundaryTracker > > reflected
Trackers for reflected paths.
std::optional< RealType > last_dechirp_time
Last sample time used by the LO cursor.
std::vector< FmcwChirpBoundaryTracker > dechirp_reference
Trackers for receiver LO source segments.
std::vector< FmcwChirpBoundaryTracker > direct
Trackers for direct paths by source index.
std::size_t active_dechirp_source_index
Monotonic cursor for receiver LO source segments.
Holds the dynamic global state of the simulation.
std::vector< ActiveStreamingSource > active_streaming_transmitters
A global list of all currently active streaming transmitters.
RealType t_current
The master simulation clock, advanced by the event loop.
Header file for the Transmitter class in the radar namespace.