OFDM Radar¶

A radar implementation estimation range-doppler maps from OFDM symbols as suggested by [1].
An OFDM radar can be created as follows:
1# Configure a OFDM radar
2device = SimulatedDevice(
3 carrier_frequency=24e9,
4 bandwidth=1024*90.909e3,
5 oversampling_factor=4,
6)
7radar = OFDMRadar(OFDMWaveform(
8 grid_resources=[
9 GridResource(16, PrefixType.CYCLIC, .1, [GridElement(ElementType.DATA, 7), GridElement(ElementType.REFERENCE, 1)]),
10 GridResource(128, PrefixType.CYCLIC, .1, [GridElement(ElementType.DATA, 1)]),
11 ],
12 grid_structure=[
13 SymbolSection(64, [0, 1])
14 ],
15 num_subcarriers=1024,
16))
17radar.detector = MaxDetector()
18device.add_dsp(radar)
19
20# Generate a single target
21radar_channel = SingleTargetRadarChannel(.75 * radar.max_range(device.bandwidth), 1., velocity=10, attenuate=False)
22transmission = device.transmit()
23propagation = radar_channel.propagate(transmission, device, device)
24reception = device.receive(propagation)
25
26# Visualize radar image
27reception.operator_receptions[0].cube.plot_range()
- class OFDMRadar(waveform=None, receive_beamformer=None, detector=None, min_range=0.0, selected_transmit_ports=None, selected_receive_ports=None, carrier_frequency=None, seed=None)[source]¶
Bases:
DuplexJCASOperator[OFDMWaveform],SerializableA joint communication and sensing approach estimating a range-power profile from OFDM symbols.
Refer to [1] for the original publication.
- Parameters:
waveform (
OFDMWaveform|None) – Communication waveform emitted by this operator.receive_beamformer (
ReceiveBeamformer|None) – Beamformer used to process the received signal.detector (
RadarDetector|None) – Detector used to process the radar cube.min_range (
float) – Minimal range considered for the generated radar cubes. Zero by default, but can be adjusted to ignore, for example, self-interference.selected_transmit_ports (
Sequence[int] |None) – Indices of antenna ports selected for transmission from the operatedDevice'santenna array. If not specified, all available ports will be considered.selected_receive_ports (
Sequence[int] |None) – Indices of antenna ports selected for reception from the operatedDevice'santenna array. If not specified, all available antenna ports will be considered.carrier_frequency (
float|None) – Central frequency of the mixed signal in radio-frequency transmission band. If not specified, the operated device’s default carrier frequency will be assumed during signal processing.seed (
int|None) – Random seed used to initialize the pseudo-random number generator.
- 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 (
DeserializationProcess) – The current stage of the deserialization process. This object is generated by theFactoryand provides an interface to deserialization methods supporting multiple backends.- Return type:
- Returns:
The deserialized object.
- max_range(bandwidth)[source]¶
Maximum range detectable by OFDM radar.
Defined by equation (12) in [1] as
\[d_\mathrm{max} = \frac{c_0}{2 \Delta f} \quad \text{.}\]
- max_relative_doppler(bandwidth)[source]¶
The maximum relative doppler shift detectable by the OFDM radar in Hz.
- range_resolution(bandwidth)[source]¶
Range resolution achievable by OFDM radar.
Defined by equation (13) in [1] as
\[\Delta r = \frac{c_0}{2 B} = \frac{c_0}{2 N \Delta f} = \frac{d_{\mathrm{max}}}{N} \quad \text{.}\]