forked from stpaine/FERS
-
Notifications
You must be signed in to change notification settings - Fork 1
Phase Noise Simulation
David Young edited this page Apr 30, 2025
·
1 revision
This process simulates the effect of phase noise, typically originating from system oscillators, on the final received signal samples processed for output. It retrieves instantaneous phase error samples (in radians) from the Receiver's associated Timing model instance. This phase error is then applied to the complex IQ data within the rendered time window via complex multiplication (effectively rotating the phase of each complex sample: output_sample = input_sample * exp(j * phase_error_sample)). This simulation step can be disabled via configuration settings related to the output process.
- Assumes the underlying phase noise model provided by the
Timingobject accurately represents the desired statistical characteristics (e.g., power spectral density shape) of the physical clock's phase noise, within the limits of the chosen noise model implementation. - Assumes that phase noise effects can be correctly modeled as a multiplicative process applied to the complex baseband signal (
exp(j * phase_error)). - Assumes the
Timingobject correctly manages its internal state progression, including handling synchronization resets (via thesync_on_pulseflag) and skipping the appropriate number of samples between processing windows when generating the noise sequence. - Assumes the nominal carrier frequency (used for Doppler calculations etc.) is handled separately and correctly by other parts of the simulation.
-
Fidelity Dependency: The accuracy and realism of the simulated phase noise are entirely dependent on the fidelity of the underlying
Timingmodel's noise generation implementation. This is particularly constrained by theClockModelGeneratorand its known limitations regarding supported noise types (restricted 1/f^alpha components) and reliance on hardcoded filter designs and branch counts. - Simplified Application: The phase noise is applied as a simple multiplicative factor to the complex samples after all signal components (target returns, direct path, thermal noise) have been aggregated for a window. It does not model more complex interactions or noise injection points within a physical receiver chain.
-
Timing of Application: If receiver-side oversampling (
params::oversampleRatio > 1) is used, phase noise is added after the downsampling step performed during HDF5 export. This might differ from some physical systems where noise impacts the signal before critical filtering or decimation stages. -
Window Start Time Adjustment: The implementation adjusts the effective start time reference for the processing window based on the initial phase noise sample retrieved for that window. This interaction with the
Timingmodel's state evolution (especiallysync_on_pulse) could potentially introduce subtle complexities or artifacts in precise timing analyses across window boundaries.
-
receiver_export.cpp: Specifically thegeneratePhaseNoiseandaddPhaseNoiseToWindowfunctions operating within theexportReceiverBinarycontext. -
radar::Timing: The class responsible for generating the raw phase noise samples (via its internalnoise::ClockModelGenerator). - Timing
- FIR-based Downsampling (Process step potentially preceding phase noise application)
- Needs Verification: The quantitative accuracy of the applied phase noise has not been explicitly validated against theoretical phase noise models or known clock noise profiles beyond basic functional checks.
-
Key Areas for Validation:
- Verify the statistical properties (e.g., power spectral density using appropriate estimation techniques like Welch's method) of the applied phase noise sequence match the intended profile configured via the
Timingmodel's alpha/weight parameters, acknowledging the inherent implementation limitations. - Confirm the timing of application (relative to downsampling) is correct according to the intended simulation model.
- Analyze the impact of the
sync_on_pulseflag on the noise statistics and continuity across processing window boundaries. - Assess the magnitude and consequences of the window start time adjustment mechanism.
- Verify the statistical properties (e.g., power spectral density using appropriate estimation techniques like Welch's method) of the applied phase noise sequence match the intended profile configured via the
-
Priority: Medium (Phase noise is crucial for coherent radar performance simulation, but its fidelity here is known to be constrained by the complex and limited underlying
Timing/ClockModelGenerator. Validating its behavior within those known constraints is important.)