FERS 0.1.0
The Flexible Extensible Radar Simulator
Loading...
Searching...
No Matches
finalizer_pipeline.cpp File Reference
#include "finalizer_pipeline.h"
#include <algorithm>
#include <array>
#include <cmath>
#include <cstddef>
#include <highfive/highfive.hpp>
#include <limits>
#include <optional>
#include <ranges>
#include <stdexcept>
#include <unordered_map>
#include "core/logging.h"
#include "core/output_metadata.h"
#include "core/parameters.h"
#include "processing/signal_processor.h"
#include "radar/receiver.h"
#include "radar/target.h"
#include "radar/transmitter.h"
#include "serial/hdf5_handler.h"
#include "serial/response.h"
#include "signal/dsp_filters.h"
#include "simulation/channel_model.h"
#include "timing/timing.h"
+ Include dependency graph for finalizer_pipeline.cpp:

Go to the source code of this file.

Namespaces

namespace  processing
 
namespace  processing::pipeline
 

Functions

void processing::pipeline::advanceTimingModel (timing::Timing *timing_model, const radar::Receiver *receiver, RealType rate)
 Advances the receiver's timing model to the start of the next processing window.
 
std::tuple< RealType, RealTypeprocessing::pipeline::calculateJitteredStart (RealType ideal_start, RealType first_phase_noise, RealType carrier_freq, RealType rate)
 Calculates the jittered start time and fractional delay from a phase noise sample.
 
void processing::pipeline::applyStreamingInterference (std::span< ComplexType > window, RealType actual_start, RealType dt, const radar::Receiver *receiver, const std::vector< core::ActiveStreamingSource > &streaming_sources, const std::vector< std::unique_ptr< radar::Target > > *targets, core::ReceiverTrackerCache &tracker_cache, const simulation::CwPhaseNoiseLookup *phase_noise_lookup=nullptr)
 Applies streaming interference to a time window.
 
void processing::pipeline::applyPulsedInterference (std::vector< ComplexType > &iq_buffer, const std::vector< std::unique_ptr< serial::Response > > &interference_log)
 Renders and applies pulsed interference to a streaming IQ buffer.
 
void processing::pipeline::applyPulsedInterference (std::vector< ComplexType > &iq_buffer, const std::vector< std::unique_ptr< serial::Response > > &interference_log, std::span< const SampleSpan > active_spans, RealType output_sample_rate)
 Renders and applies pulsed interference only inside active sample spans.
 
void processing::pipeline::addPhaseNoiseToWindow (std::span< const RealType > noise, std::span< ComplexType > window)
 Applies a pre-generated sequence of phase noise samples to an I/Q buffer.
 
RealType processing::pipeline::applyDownsamplingAndQuantization (std::vector< ComplexType > &buffer)
 Downsamples and quantizes an IQ buffer.
 
void processing::pipeline::applyDownsampling (std::vector< ComplexType > &buffer)
 Downsamples an IQ buffer to the configured output rate without quantization.
 
void processing::pipeline::exportStreamingToHdf5 (const std::string &filename, const std::vector< ComplexType > &iq_buffer, RealType fullscale, RealType ref_freq, const core::OutputFileMetadata *metadata=nullptr, RealType sample_rate=0.0)
 Exports a finalized streaming IQ buffer to an HDF5 file.