How to generate test vectors for each channel

I would like to perform tests for each channel at L1 under various SNR conditions and channel situations.
Therefore, I referred to the documentation and used the commands below to generate test vectors for each channel in MATLAB:

genCfgTV_perf_ss('performance-avg.xlsm')
genCfgTV_perf_ss_bwc('performance-avg.xlsm')
genCfgTV_perf_pucch()
genCfgTV_perf_pdcch()
genCfgTV_perf_prach()
genCfgTV_perf_csirs()
genCfgTV_perf_ssb()
genCfgTV_perf_srs()

However, it seems that I cannot change the channel parameters, such as SNR values, for each channel.
For example, I changed the SNR, Dopper shift, and channel model values in ‘performance-avg.xlsm’ file and generated the test vectors, but those values were not reflected.

Please let me know if there’s another method to generate diverse test vectors while modifying these parameter values.

Hi @hyuna0213.jo ,

Welcome to the Aerial forum!

You should use the scripts testPerformance_** for this purpose.

You can set the SNR to different values by defining SNR_offset value(s). SNR offset is the difference of SNR from the starting SNR value.

In the following example, the default starting SNR value for the test case 7001 is -2.8 dB. The following command will run the simulation for the SNR values -2.8, -0.8, 1.2 and 3.2 dB. Note that you need to run sufficient number of frames (unlike on the following simple example) to be able to see a meaningful BLER values.

I hope this helps.

testPerformance_pusch(7001, [0, 2, 4, 6])
Test PUSCH data detection performance:

TC#    Nframe      FRC            Chan       rxAnt  SNR  SNRoffset  CFO   delay   nCB  errCB   CBer   nTB  errTB   TBer Csi1Ber Csi2Ber cfoErr toErr sinrErr postSinrErr
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
7001     1    G-FR1-A3-14  TDLB100-400-Low     2   -2.8      0.0    200    0.0     80      0  0.000    20     0   0.000   0.000   0.000   46    0.13  0.76     1.10
7001     1    G-FR1-A3-14  TDLB100-400-Low     2   -2.8      2.0    200    0.0     80      0  0.000    20     0   0.000   0.000   0.000   46    0.13  0.76     1.01
7001     1    G-FR1-A3-14  TDLB100-400-Low     2   -2.8      4.0    200    0.0     80      0  0.000    20     0   0.000   0.000   0.000   46    0.13  0.80     0.96
7001     1    G-FR1-A3-14  TDLB100-400-Low     2   -2.8      6.0    200    0.0     80      0  0.000    20     0   0.000   0.000   0.000   46    0.13  0.83     0.94
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total TC = 1, PASS = 1, FAIL = 0

Thank you for your response.

I would like to verify the operation of cuPHY on a GPU.
Therefore, my goal is to create a test vector that will be used when running the cuPHY example.
For example, I want to generate a test vector in HDF5 file format as the output.
I am wondering if the above guide is the correct method for generating test vectors.

Additionally, according to the documentation, the 5G Toolbox is not required for TV generation.
▶ 5G Toolbox (optional)
▶ Not required for TV generation
▶ Required for waveform compliance test and performance simulation

Is there a way to disable the 5G Toolbox in MATLAB while generating a test vector?

Hi @hyuna0213.jo ,

You can use aerial_mcore inside the Aerial container if you do not have MATLAB 5G toolbox license.

Please follow the steps here.

Thank you.

Is there any possible way to generate test vectors based on Matlab without using the 5G toolbox?

And I have one more question regarding mcore.

When using MATLAB, it seems possible to modify various configuration values directly in the code.
How can I modify configuration values when using mcore?

For example, if I modify the channel code, is there a way to use Mcore to generate a test vector with the modified code?

Hi @hyuna0213.jo ,

5G Toolbox is used by multiple components in 5G Model. In general, it may not be straightforward to bypass the 5G Toolbox.

If you are mainly interesting in changing the channel model, you can do this by setting
Chan.model_source = 'custom';
in 5G_Model/nr_matlab/config/cfgChan.m .

You should rebuild the mcore again since the code is modified.

Thank you.

Thank you for the explanation.
I was wondering how to rebuild mcore.
According to the documentation, it seems that aerial_mcore is already installed in the cuBB container.
Is there a way to rebuild and apply the modified code?
If so, I would like to know which command can be used to build the mcore

Hi @hyuna0213.jo ,

Rebuilding the aerial mcore requires Matlab runtime and 5G toolbox license. We are providing aerial_mcore so that you do not need a license while generating the TVs. Unless you are making changes to the Matlab source files, you do not need to regenerate the aerial_mcore. There are many different L1 configurations supported by our 5G Model, which you can use for your testing.

Sample example scripts provided here can be modified to call Matlab runtime depending on your need.

Please see example_runSim.py script, which calls the Matlab function runSim(cfgFileName, tvFileName, rxFileName, nargout=4). This function can generate testvectors as defined in the cfgFileName. You can modify this script to call testPerformance_pusch(7001, [0, 2, 4, 6]) as well.

As long as the given L1 configuration is supported by 5G Model and Aerial cuPHY, the TV will be generated.

You can then use these TVs for testing with cuPHY or cuBB.

I hope this helps.

Thank you.

Hi @hyuna0213.jo ,

I received a message from you (via email) regarding randomization of the PDU payload, but the message is not shown here. I am not sure if you resolved it already.

Do you have any other questions on this subject?

Balkan

Thank you for your response.
I found that the random seed value is initially set to 0 in the ‘SimCtrl.seed’.
After changing it to the current time, I confirmed that a different test vector is generated each time.
If there is anything wrong with this solution, please let me know.
Once again, thank you for your response.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.