Performance Considerations for Using mmWave Radar Sensors for Reading Raw ADC Data
Time lag when processing IQ data in real-time
Background
To process ADC (IQ) data in real-time, you call the dca1000
object and add a custom processing code within a loop. If the processing code takes
longer than the Frame Periodicity (rate at which TI Radar generate IQ data), the ADC
(IQ) data will accumulate in the UDP buffer. The next time the
dca1000
object is called, it will read the buffered data, which
will not be the latest data, causing the code to process outdated information.
To prevent this, ensure that your processing is faster than the frame periodicity of the TI Radar.
Additional Information
Frame Periodicity: TI mmWave radar generates IQ data, which
is transmitted to the host PC by the DCA1000EVM at intervals approximately equal to
the Frame Periodicity. The Frame Periodicity value is set using the Config File
(refer to Configure Radar Using a Configuration (.cfg) File for Reading Raw ADC (IQ) Data) and is specified
by the FramePeriodicity
property of the dca1000
object.
ADC data Streaming: The first call to the
dca1000
object configures the radar and DCA1000, along with
initiating the streaming of ADC data, and it continues to stream data until the
release
function is called. Each call to the
dca1000
object reads the first available datagrams in the UDP
buffers, extracts the data, and reshapes it to form the IQ data cube. Until the data
is read by calling dca1000
, the buffers will remain
uncleared.
Packet drops and zero filled packets
The DCA1000EVM sends IQ data in the form of UDP packets, and there is a possibility of some UDP packets being dropped or arriving out of sequence. The data once received on the host will be processed to correct the sequence, and if any packet is missed, the data will be filled with zeros in the dropped packets. One radar data cube is formed by multiple UDP packets. If the rate of UDP packet drops is high, your data will be corrupted. To avoid or reduce data drops, you can perform these steps:
Increase the delay between UDP packets
Use the
UDPPacketDelay
property of the DCA1000EVM. Increasing the Ethernet packet delay will reduce the probability of UDP packet drops however decreases streaming throughput due to slower data capturing. Lower delay allows for higher bandwidth but increases the probability of UDP packet drops at the PC end.Reduce the Frame Period
Modify the Config file used for configuring the radar to reduce the frame period.
Reduce the data size of each frame:
Adjust the parameters that define the size of each frame (a group of chirps used to form the radar data cube). The number of bytes received for each frame is approximately:
Number of ADC Samples * Number of Receivers * Number of Chirps * Bytes Per Sample (4 bytes)
These parameters can be modified by changing the respective settings in the Config File. The above equation does not include packet overhead.
Time Taken for Execution of First Step
Calling the dca1000
object for first time after object creation or calling the object after calling the
release
function takes additional time to complete. This is because the object sends some
commands to TI mmWave radar and DCA1000EVM and waits for its response to configure the
radar, DCA1000EVM capture card, and test the setup.
The subsequent calls the object are faster. While doing a performance characterization, exclude the first call to the dca1000 object.