Commit Graph
40 Commits
Author SHA1 Message Date
Rakesh Mundlamuri 25ee8cd7e9 Update the average value of the dlsim, ulsim timing test
The lower bound for the tests are too tight and any slight improvement in the timing can result in a test failure.
For example, these tests were failing due to the improvements from the MR 3718
2026-01-12 15:28:27 +05:30
Rakesh Mundlamuri 5d545a6cc5 Add srssim to the feature set 2026-01-09 20:49:46 +05:30
Rakesh Mundlamuri a752f43ad6 Harmonize phy_simulators to use compute_tx_energy_level() and compute_noise_variance() 2026-01-09 20:49:46 +05:30
Rakesh Mundlamuri f84ed0bbcf Make nb_antenna as a input parameter to generate_srs_nr()
- We use the same function at gNB and UE.
 - We always use nb_antennas_tx to check the max possible number of ports (which is wrong).
 - At gNB, we should use nb_antennas_rx and at the UE, we should use nb_antennas_tx.
2026-01-09 20:49:46 +05:30
Rakesh Mundlamuri dea4508f89 Update docker file to compile nr_srssim to fix tests in gracehopper 2026-01-09 20:49:46 +05:30
Rakesh Mundlamuri be3ad2beba rewrite srs channel estimation to fix memory alignment in SRS channel estimation
The memory alignment is required to use c16multaddVectRealComplex
in SRS channel interpolation. With a change in SRS comb_offset, the
existing algorithm was giving segmentation fault.

The existing srs channel estimation required memory alignment at two
stages. 1. When k = 0 (the first srs subcarrier), 2. When subcarrier <
K_TC (wrapped around after ofdm_symbol_size). Thus two memory alignments
are required leading to complications.

The srs channel estimation is now simplified to do it linearly instead of
wrapping around. This simplified the memory alignment required only when
k = 0.
2026-01-09 20:49:46 +05:30
Rakesh Mundlamuri 7b698531a9 update phy_simulators testcases 2026-01-09 20:49:38 +05:30
Rakesh Mundlamuri bfb0c707fe Fix tdd pattern of phy_simulators for mu = 0, 3 2026-01-09 16:58:34 +05:30
Rakesh Mundlamuri 4c48d91538 Fix issues detected using address sanitizer 2026-01-09 16:58:34 +05:30
Rakesh Mundlamuri 0b197891cc Introduce SRS multi-symbol channel estimation 2026-01-09 16:58:34 +05:30
Rakesh Mundlamuri 0b0dce9995 Update T traces to record toa in ns and SRS time/frequency channel over multiple rx antennas and ports 2026-01-09 16:58:34 +05:30
Rakesh Mundlamuri 729dc02b88 Split the code in the SNR loop as functions for readability
- Introduce signal energy and noise variance functions
- Combine rotation and OFDM modulation RX as a function
- Harmonize the use of number of antennas across the code
- Rename nr_ue_pusch_common_procedures() to nr_tx_rotation_and_ofdm_mod() to decribe the functionality better
2026-01-09 16:58:34 +05:30
Rakesh Mundlamuri 14cfbbf425 fix do_tdd_config_sim() while filling uplink slots 2026-01-09 16:58:34 +05:30
Rakesh Mundlamuri 9a0a89fa88 fix nr_phy_config_request_sim that overwrites threequarter sampling rate parameter 2026-01-09 16:58:34 +05:30
Rakesh Mundlamuri 1b974c6ab2 merge timing_advance_offset and timing_advance_offset_ns computation 2026-01-09 16:58:34 +05:30
Rakesh Mundlamuri b378acf2e0 Introduce SRS oversampling for better accuracy in estimating nanoseconds 2026-01-09 16:58:34 +05:30
Rakesh Mundlamuri 7846d83b07 use intermediate variables to improve readability and avoid additional computations 2026-01-09 16:58:34 +05:30
Rakesh Mundlamuri a5a09676ad rewrite nr_srs_channel_estimation() to loop over rx antennas and antenna ports to be able to parallelize 2026-01-09 16:58:34 +05:30
Rakesh Mundlamuri 1ffb1cfe16 Adding testcases to test nr_srssim 2026-01-09 16:58:34 +05:30
Rakesh Mundlamuri 3d68a44da0 Introduce SRS physical simulator 2026-01-09 16:58:26 +05:30
Rakesh Mundlamuri 5803e2037e bugfix to avoid error after enabling DEBUG_CH 2026-01-09 09:26:48 +05:30
Rakesh Mundlamuri 4b102ea237 Make SRS receive procedures as a function 2026-01-09 09:26:48 +05:30
Rakesh Mundlamuri 3684c3e0e8 Declare ue_srs_procedures_nr in a header file to use in nr_srssim 2026-01-09 09:26:48 +05:30
Rakesh Mundlamuri 871b813c12 Modify the script with a retry logic for a failed test and print summary
This commit inputs several distances at once and obtain the summary of
successful and failed tests. We look for the number of successful tests
that are geater than 0. We do that here since we sometimes dont receive
a response for a telnet command from the rfsim although the command
is applied. This is related to the queing telnet commands in the rfsim.

The script for the distances 50, 100 and 150 are called as follows,

./set-and-verify-distance-prs.sh 50 100 150

The summary can be viewed as follows,
==================== SUMMARY ====================
Total tests run : 3
Successful tests: 3
Failed tests    : 0
=================================================
2025-11-05 10:42:37 +01:00
rakesh mundlamuriandRobert Schmidt 1dca20ba85 Introduce a bash script to test PRS using estimated ToA
Set RFsim (DL) distance and use PRS to estimate the new distance. This
is verified by comparing the distance set in RFsim with the distance
reported through ToA estimation at the UE.

Note that since RFsim telnet output is asynchronous (it uses a queue
internally), we use grep --max-count 1 to wait for the matching line,
together with ncat --idle 0.3 to keep ncat open for some time. The
--max-count option will terminate grep after the first occurrence. For
this to work reliably, we need to use grep <(echo | ncat) as opposod to
simply echo | ncat | grep, as the latter does not seem to reliably
make grep exit after the occurrence.

Co-authored-by: Robert Schmidt <robert.schmidt@openairinterface.org>
2025-11-05 10:42:37 +01:00
rakesh mundlamuri 825c6803ad harmonize IQ samples in prs channel estimation to use c16_t 2025-11-03 16:50:27 +05:30
rakesh mundlamuri 5690aa0fe3 first_half index correction in PRS channel estimation while copying memory
Previously, we were using int16_t for the variable ch_tmp which was later harmonized to use c16_t while leaving <<1. This introduced the bug while accessing the address of the element at first_half of the ch_tmp variable.
2025-11-03 16:50:27 +05:30
rakesh mundlamuri 47d1f8bb82 harmonizing the IDFT index at different places 2024-04-11 16:47:32 -04:00
rakesh mundlamuri 45c00b7ad2 fix for 3072 fft size when using 80 MHz and -E 2024-04-11 16:47:32 -04:00
rakesh mundlamuri 6a280abf6b bugfix in fftsize 2023-05-17 12:07:41 +02:00
rakesh mundlamuri 08a8a23011 enabling 100MHz on usrp x310 2023-05-17 12:07:41 +02:00
rakesh mundlamuri 594fb18cc8 adressing the comments 2023-04-24 11:05:05 +02:00
rakesh mundlamuri 5143133d33 ssb offset to point A bugfix 2023-04-24 10:47:41 +02:00
rakesh mundlamuri 09f50edc88 adding subdev selection for nrUE 2022-05-20 09:59:46 +02:00
rakesh mundlamuri 68dd4fa20b introducing the selection of tx and rx subdev 2022-05-19 12:41:20 +02:00
rakesh mundlamuri 8b9c76be88 revert the config files 106 and 273 for usrp n310 2022-04-07 11:53:44 +02:00
rakesh mundlamuri df67fd02a9 renamed config files to use it with usrp x310 2022-04-07 11:48:56 +02:00
rakesh mundlamuri 3ab0c2bae8 ue prs config for 217 PRB 2022-04-07 11:30:08 +02:00
rakesh mundlamuri 7b34a49de0 centered fr1 config to 3.75 GHz 2022-04-07 11:22:28 +02:00
rakesh mundlamuri a907d3d220 beam switching logic for sivers 2022-03-30 08:43:53 +02:00