FMCW¶
- class FMCW(num_chirps=10, bandwidth=100000000.0, chirp_duration=1.5e-06, pulse_rep_interval=1.5e-06, sampling_rate=None, adc_sampling_rate=None)[source]¶
- Bases: - RadarWaveform- Frequency Modulated Continuous Waveform Radar Sensing with stretch processing. - This class generates a frame consisting of a sequence of unmodulated chirps. They are used for radar detection with stretch processing, i.e., mixing the received signal with the transmitted sequence, (under)sampling and applying an FFT. S A minimal example configuring an - FMCWradar waveform illuminating a single target within the context of a- Simulationwould look like this:- 1from hermespy.radar import Radar, FMCW, ReceiverOperatingCharacteristic 2from hermespy.simulation import Simulation, N0 3from hermespy.channel import SingleTargetRadarChannel 4 5# Create a new simulated scenario featuring a single device 6simulation = Simulation() 7device = simulation.new_device(noise_level=N0(2.5e-6), carrier_frequency=60e9) 8 9# Configure the device to transmit and reveive radar waveforms 10radar = Radar() 11radar.waveform = FMCW(num_chirps=3, bandwidth=1e9, chirp_duration=1e-6, pulse_rep_interval=1.1e-6) 12device.add_dsp(radar) 13 14# Create a new radar channel with a single illuminated target 15target = SingleTargetRadarChannel(1, 1., attenuate=True) 16simulation.scenario.set_channel(device, device, target) 17 18# Create a new detection probability evaluator 19simulation.add_evaluator(ReceiverOperatingCharacteristic(radar, device, device, target)) 20 21# Run the simulation - Parameters:
- num_chirps ( - int) – Number of dedicated chirps within a single radar frame. \(10\) by default.
- bandwidth ( - float) – Sweep bandwidth of every chirp in Hz. \(0.1~\mathrm{GHz}\) by default.
- chirp_duration ( - float) – Duration of every chirp in seconds. \(1.5~\mathrm{\mu s}\) by default.
- pulse_rep_interval ( - float) – Repetition interval of the individual chirps in seconds. \(1.5~\mathrm{\mu s}\) by default.
- sampling_rate ( - float|- None) – Sampling rate of the baseband signal in Hz. If not specified, the sampling rate will be equal to the bandwidth.
- adc_sampling_rate ( - float|- None) – Sampling rate of the analog-digital conversion in Hz. If not specified, the adc sampling rate will be equal to the bandwidth.
 
 - classmethod Deserialize(process)[source]¶
- Deserialize an object’s state. - Objects cannot be deserialized directly, instead a - Factorymust be instructed to carry out the deserialization process.- Parameters:
- process – The current stage of the deserialization process. This object is generated by the - Factoryand provides an interface to deserialization methods supporting multiple backends.
- Returns:
- The deserialized object. 
 
 - estimate(input_signal)[source]¶
- Generate a range-doppler map from a single-stream radar frame. - Parameters:
- signal – Single-stream signal model of a single propagated radar frame. 
- Return type:
- Returns:
- Numpy matrix (2D array) of the range-doppler map, where the first dimension indicates discrete doppler frequency bins and the second dimension indicates discrete range bins. 
 
 - ping()[source]¶
- Generate a single radar frame. - Return type:
- Returns:
- Single-stream signal model of a single radar frame. 
 
 - serialize(process)[source]¶
- Serialize this object’s state. - Objects cannot be serialized directly, instead a - Factorymust be instructed to carry out the serialization process.- Parameters:
- process ( - SerializationProcess) – The current stage of the serialization process. This object is generated by the- Factoryand provides an interface to serialization methods supporting multiple backends.
- Return type:
 
 - property adc_sampling_rate: float¶
- Sampling rate at the ADC in Hz. - Raises:
- ValueError – If sampling rate is smaller or equal to zero. 
 
 - property bandwidth: float¶
- Bandwidth swept during each chirp.     - Returns:
- Sweep bandwidth in Hz. 
- Return type:
- Raises:
- ValueError – If bandwidth is smaller or equal to zero. 
 
 - property chirp_duration: float¶
- Duration of a single chirp within the FMCW frame. - In combination with - pulse_rep_intervalthe chirp duration determines the guard interval between two consecutive chirps:    - Raises:
- ValueError – For durations smaller or equal to zero. 
 
 - property frame_duration: float¶
- Duration of a single radar frame in seconds. - Denoted by \(T_{\mathrm{F}}\) of unit \(\left[ T_{\mathrm{F}} \right] = \mathrm{s}\) in literature. 
 - property max_range: float¶
- The waveform’s maximum detectable range in meters. - Denoted by \(R_{\mathrm{Max}}\) of unit \(\left[ R_{\mathrm{Max}} \right] = \mathrm{m}\) in literature. 
 - property max_relative_doppler: float¶
- Maximum relative detectable radial doppler frequency shift in Hz. \[\Delta f_\mathrm{Max} = \frac{v_\mathrm{Max}}{\lambda}\]
 - property num_chirps: int¶
- Number of chirps per transmitted radar frame. - Changing the number of chirps per frame will result in a different radar frame length:     - Raises:
- ValueError – If the number of chirps is smaller than one. 
 
 - property pulse_rep_interval: float¶
- Pulse repetition interval in seconds. - The pulse repetition interval determines the overall frame duration. In combination with the - chirp_durationthe pulse repetition interval it determines the guard interval between two consecutive chirps:    - Raises:
- ValueError – If interval is smaller or equal to zero. 
 
 - property range_resolution: float¶
- Resolution of the radial range sensing in meters. - Denoted by \(\Delta R\) of unit \(\left[ \Delta R \right] = \mathrm{m}\) in literature. 
 - property relative_doppler_bins: ndarray¶
- Realtive discrete sample bins of the radial doppler frequency shift sensing. - A numpy vector (1D array) of discrete doppler frequency bins in Hz. 
 - property relative_doppler_resolution: float¶
- Relative resolution of the radial doppler frequency shift sensing in Hz. \[\Delta f_\mathrm{Res} = \frac{v_\mathrm{Res}}{\lambda}\]
 - property sampling_rate: float¶
- The optional sampling rate required to process this waveform. - Denoted by \(f_\mathrm{s}\) of unit \(\left[ f_\mathrm{s} \right] = \mathrm{Hz} = \tfrac{1}{\mathrm{s}}\) in literature. 
 - property slope: float¶
- Slope of the bandwidth sweep. - Returns:
- Slope in Hz / s. 
- Return type:
- Raises:
- ValueError – If slope is smaller or equal to zero.