|
FERS 0.1.0
The Flexible Extensible Radar Simulator
|
FMCW linear chirp signal implementation. More...
#include "radar_signal.h"
Inheritance diagram for fers_signal::FmcwChirpSignal:
Collaboration diagram for fers_signal::FmcwChirpSignal:Public Member Functions | |
| FmcwChirpSignal (RealType chirp_bandwidth, RealType chirp_duration, RealType chirp_period, RealType start_frequency_offset=0.0, std::optional< std::size_t > chirp_count=std::nullopt, FmcwChirpDirection direction=FmcwChirpDirection::Up) | |
| Constructs an FMCW chirp signal with timing and sweep parameters. | |
| ~FmcwChirpSignal () override=default | |
| FmcwChirpSignal (const FmcwChirpSignal &) noexcept=delete | |
| FmcwChirpSignal & | operator= (const FmcwChirpSignal &) noexcept=delete |
| FmcwChirpSignal (FmcwChirpSignal &&) noexcept=delete | |
| FmcwChirpSignal & | operator= (FmcwChirpSignal &&) noexcept=delete |
| RealType | getChirpBandwidth () const noexcept |
| Gets the chirp bandwidth in hertz. | |
| RealType | getChirpDuration () const noexcept |
| Gets the chirp duration in seconds. | |
| RealType | getChirpPeriod () const noexcept |
| Gets the chirp period in seconds. | |
| RealType | getStartFrequencyOffset () const noexcept |
| Gets the start frequency offset relative to carrier in hertz. | |
| const std::optional< std::size_t > & | getChirpCount () const noexcept |
| Gets the optional finite chirp count. | |
| RealType | getChirpRate () const noexcept |
| Gets the chirp rate in hertz per second. | |
| RealType | getSignedChirpRate () const noexcept |
| Gets the signed chirp rate in hertz per second. | |
| FmcwChirpDirection | getDirection () const noexcept |
| Gets the FMCW sweep direction. | |
| bool | isDownChirp () const noexcept |
| Returns true when this chirp sweeps downward. | |
| bool | isTriangle () const noexcept |
| Returns false for linear chirps; triangles override this shape predicate. | |
| std::optional< std::size_t > | activeChirpIndexAt (RealType time_since_segment_start) const noexcept |
| Returns the active chirp index for a time since the segment start. | |
| bool | isActiveAt (RealType time_since_segment_start) const noexcept |
| Returns true when the signal is inside an active chirp at the specified time. | |
| RealType | basebandPhaseForChirpTime (RealType chirp_time) const noexcept |
| Computes baseband phase for a time inside a chirp. | |
| std::optional< RealType > | instantaneousBasebandPhase (RealType time_since_segment_start) const noexcept |
| Computes instantaneous baseband phase at a time since segment start. | |
| std::vector< ComplexType > | render (const std::vector< interp::InterpPoint > &points, unsigned &size, RealType fracWinDelay) const override |
| Renders an FMCW waveform from interpolation points. | |
| bool | isFmcwFamily () const noexcept override |
| Returns true when this signal belongs to the FMCW waveform family. | |
| void | clear () noexcept |
| Clears the internal signal data. | |
| void | load (std::span< const ComplexType > inData, unsigned samples, RealType sampleRate) |
| Loads complex radar waveform data. | |
| RealType | getRate () const noexcept |
| Gets the sample rate of the signal. | |
| unsigned | getSampleCount () const noexcept |
| Gets the number of native samples held by this signal. | |
| virtual std::vector< ComplexType > | renderSlice (const std::vector< interp::InterpPoint > &points, RealType outputStartTime, RealType outputSampleRate, std::size_t sampleCount, RealType fracWinDelay) const |
| Renders a bounded absolute-time slice on the requested output grid. | |
FMCW linear chirp signal implementation.
Definition at line 307 of file radar_signal.h.
| fers_signal::FmcwChirpSignal::FmcwChirpSignal | ( | RealType | chirp_bandwidth, |
| RealType | chirp_duration, | ||
| RealType | chirp_period, | ||
| RealType | start_frequency_offset = 0.0, |
||
| std::optional< std::size_t > | chirp_count = std::nullopt, |
||
| FmcwChirpDirection | direction = FmcwChirpDirection::Up |
||
| ) |
Constructs an FMCW chirp signal with timing and sweep parameters.
Definition at line 55 of file radar_signal.cpp.
|
overridedefault |
|
deletenoexcept |
|
deletenoexcept |
|
noexcept |
Returns the active chirp index for a time since the segment start.
Definition at line 65 of file radar_signal.cpp.
References max.
|
noexcept |
Computes baseband phase for a time inside a chirp.
Definition at line 101 of file radar_signal.cpp.
|
noexceptinherited |
Clears the internal signal data.
Definition at line 232 of file radar_signal.cpp.
Referenced by fers_signal::Signal::load().
Here is the caller graph for this function:
|
noexcept |
Gets the chirp bandwidth in hertz.
Definition at line 326 of file radar_signal.h.
|
noexcept |
Gets the optional finite chirp count.
Definition at line 338 of file radar_signal.h.
|
noexcept |
Gets the chirp duration in seconds.
Definition at line 329 of file radar_signal.h.
Referenced by serial::fmcw_validation::validateSchedule().
Here is the caller graph for this function:
|
noexcept |
Gets the chirp period in seconds.
Definition at line 332 of file radar_signal.h.
Referenced by serial::fmcw_validation::validateSchedule().
Here is the caller graph for this function:
|
noexcept |
Gets the chirp rate in hertz per second.
Definition at line 341 of file radar_signal.h.
|
noexcept |
Gets the FMCW sweep direction.
Definition at line 350 of file radar_signal.h.
|
noexceptinherited |
Gets the sample rate of the signal.
Definition at line 86 of file radar_signal.h.
|
noexceptinherited |
Gets the number of native samples held by this signal.
Definition at line 89 of file radar_signal.h.
|
noexcept |
Gets the signed chirp rate in hertz per second.
Definition at line 344 of file radar_signal.h.
|
noexcept |
Gets the start frequency offset relative to carrier in hertz.
Definition at line 335 of file radar_signal.h.
|
noexcept |
Computes instantaneous baseband phase at a time since segment start.
Definition at line 89 of file radar_signal.cpp.
References max.
Returns true when the signal is inside an active chirp at the specified time.
Definition at line 362 of file radar_signal.h.
References max.
|
noexcept |
Returns true when this chirp sweeps downward.
Definition at line 353 of file radar_signal.h.
References fers_signal::Down.
|
overridevirtualnoexcept |
Returns true when this signal belongs to the FMCW waveform family.
Reimplemented from fers_signal::Signal.
Definition at line 378 of file radar_signal.h.
|
noexcept |
Returns false for linear chirps; triangles override this shape predicate.
Definition at line 356 of file radar_signal.h.
|
inherited |
Loads complex radar waveform data.
| inData | The input span of complex signal data. |
| samples | The number of samples in the input data. |
| sampleRate | The sample rate of the input data. |
Definition at line 238 of file radar_signal.cpp.
References fers_signal::Signal::clear(), max, params::oversampleRatio(), and fers_signal::upsample().
Here is the call graph for this function:
|
deletenoexcept |
|
deletenoexcept |
|
overridevirtual |
Renders an FMCW waveform from interpolation points.
Reimplemented from fers_signal::Signal.
Definition at line 106 of file radar_signal.cpp.
References max.
|
virtualinherited |
Renders a bounded absolute-time slice on the requested output grid.
Definition at line 272 of file radar_signal.cpp.
References interp::InterpFilter::getInstance(), max, and params::renderFilterLength().
Referenced by fers_signal::Signal::render().
Here is the call graph for this function:
Here is the caller graph for this function: