New testing tools! #124
dvdgrgrtt
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hey!
A bit under the radar, but a few weeks ago we opened up a new repo, srsRAN-matlab, with all our testing tools based on MATLAB's 5G Toolbox. With this software, it is very easy to test and analyze the behavior of the PHY layer of the srsRAN Project. Let me guide you through its main features - once you have tried the new software, let us know your opinions/comments/questions using the "srsRAN-matlab" category of this Discussions page.
Test Vectors
Test vectors are heavily used to test PHY components of srsRAN (and a few others, too, like the OFH compression module). The idea is simple - for each component, we first generate inputs and expected outputs with a trusted reference (MATLAB's 5G Toolbox, in this case). Second, the input data is fed to the srsRAN component, so that we can compare outputs and ensure the component perfect behavior.
The classes in the root folder of the repo do exactly that, generate test vectors. Names are pretty explanatory - for instance, class
srsChEqualizerUnittest
deals with the test vectors of the channel equalizer. When in doubt, you can check thesrsBlock
static property and get the srsRAN class name of the componentAll the test vectors (typically, a header file with the declarations and a tarball file with the vectors in binary format, for each component) can be generated with
Note that the test vectors are generated directly in a format suitable for the srsRAN C++ code, and no other actions are required.
Analyzers
The analyzers (so far, for PUSCH and PRACH, but more are coming) allow you to look at the signal received by the srsGNB and provide a visual help for your debugging. It is enough to tell the srsGNB to record the IQ samples and then fed them to the analyzers together with some configuration parameters that you can easily find in the srsGNB logs (a tutorial will be available soon, in the meantime have a look at the Configuration Parameters Section of the srsRAN Project documentation for information on how to configure the logging level of the SRS gNB to record the received samples). The figure below shows an example output for the PUSCH analyzer with, from left to right and top to bottom, the heat map of the resource grid, the estimated channel (in magnitued and phase), the equalized constellation and the distribution of the soft bits.
Simulators
The repo also provides simulators to test the performances of some of the PHY components of the srsRAN Project and check where we are with respect to a reference MATLAB implementation and, most importantly, with respect to the conformance testing requirements of the 3GPP standard. For this purpose, we wrap our srsRAN PHY components inside MEX binaries and then use MATLAB for the simulation of the parts outside the scope of srsRAN (e.g., the communications channel) and the post-processing of the collected data. As an examples, here you have a BLER comparison between our PUSCH decoder (in orange) and MATLAB's one (in blue), for all possible MCSs.
Beta Was this translation helpful? Give feedback.
All reactions