FreeScopes "Record, Replay & Livestream" Module allows to transfer live (livestream) or recorded data to MATLAB or any other numeric computing environment.The procedure is easy. From FreeScopes I/Q data logs are exported in a hdf5 format.
This procedure is required by students and researcher who want to develop additional filters, or views, or correlate the data with additional algorithms (e.g., machine learning for pattern analysis).
At the end of this article you will find an explainer video.
In radar technology, IQ data streams (In-phase and Quadrature) are essential for representing the complex amplitude of a radar signal. The In-phase (I) component measures the real part of the signal, aligned with the reference waveform, while the Quadrature (Q) component captures the imaginary part, shifted by 90 degrees from the reference. By jointly processing these two orthogonal components, engineers can derive valuable information such as target range, velocity, and direction. This dual-channel representation allows for more advanced signal processing techniques, enabling improved detection and tracking capabilities compared to traditional amplitude-only radar systems.
FreeScope's I/Q data logs have some additional meta-data like the time stamp or header information.
The Hierarchical Data Format version 5 (HDF5) is a versatile data model, library, and file format for storing and managing complex data. Designed to store large volumes of data, HDF5 supports an unlimited variety of data types and is optimized for high-performance I/O. It arranges data in a hierarchical model, similar to a file system, allowing for more efficient organization and retrieval. Unlike simpler formats such as CSV or JSON, HDF5 supports n-dimensional arrays and is widely used in scientific computing contexts, where both the integrity and the efficient manipulation of large and complex datasets are required.
And there is another advantages: it is very easy to integrate it into MATLAB
We use the MATLAB command 'h5read' to import the code into MATLAB.
The `h5read` function in MATLAB is designed to read data from datasets like our I/Q dataset in an HDF5 file. The function allows users to specify the HDF5 file name and the dataset name within that file as arguments.
Users can also specify subsets of the dataset to read by indicating starting indices and the count of elements to read along each dimension. The function then returns the selected subset of the dataset as an array in MATLAB's workspace. This function is particularly useful in scenarios involving the manipulation or analysis of large and complex datasets stored in the HDF5 format, as it allows for efficient, targeted data retrieval without the need to load the entire file into memory.
Here is the code which we used:
% Input data
raw_data = h5read('R05-barrage-jamming.hdf5', '/data');
% Read complex and imaginary data
C = complex(raw_data.r, raw_data.i);
% Calculate absolute value of complex matrix
C_abs = abs(C);
% Create a figure and an initial empty plot
figure;
h = plot(NaN, NaN);
% Set axis limits based on your data
axis([1 size(C_abs, 1) min(C_abs(:)) max(C_abs(:))]);
% Loop through the columns of the matrix
for column = 1:size(C_abs, 2)
% Extract the current column
currentColumn = C_abs(:, column);
% Update the plot with the current column
set(h, 'XData', 1:size(C_abs, 1), 'YData', currentColumn);
title(['Frame ', num2str(column)]);
% Pause briefly to observe the updated plot (adjust the pause duration as needed)
pause(0.01); % Adjust the pause duration as needed
end
Look at out video example now:
Record & replay is part of the Record, Replay & Lifestream Package.
Stay tuned to be always the first to learn about new use cases and training solutions in radar qualification (real radars or simulators) for ATSEP.
Or simply talk to us to discuss your training solution.