Giter VIP home page Giter VIP logo

Comments (9)

xavierarteaga avatar xavierarteaga commented on July 4, 2024

Many thanks for opening this issue.

The gNb detected the MSG3 with good SNR (above 20dB) but failed to decode it:

2024-05-15T13:52:10.107273 [PHY     ] [D] [  801.18] PUSCH: rnti=0x4601 h_id=0 prb=[4, 7) symb=[0, 14) mod=QPSK rv=0 tbs=11 crc=KO iter=6.0 sinr=33.7dB t=769.2us uci_t=0.0us ret_t=0.0us
  rnti=0x4601
  h_id=0
  bwp=[0, 51)
  prb=[4, 7)
  symb=[0, 14)
  oack=0
  ocsi1=0
  part2=entries=[]
  alpha=0.0
  betas=[0.0, 0.0, 0.0]
  mod=QPSK
  tcr=0.1171875
  rv=0
  bg=2
  new_data=true
  n_id=1
  dmrs_mask=00100001000100
  n_scr_id=1
  n_scid=false
  n_cdm_g_wd=2
  dmrs_type=1
  lbrm=3168bytes
  slot=801.18
  cp=normal
  nof_layers=1
  ports=0 1
  dc_position=306
  crc=KO
  iter=6.0
  max_iter=6
  min_iter=6

I guess this could caused by the signal unbalance in the gNb receive ports.

from srsran_project.

houshangaziziaccelleran avatar houshangaziziaccelleran commented on July 4, 2024

Thanks @xavierarteaga I wonder why this "issue" wasn't there with previous release of srsRAN.

from srsran_project.

xavierarteaga avatar xavierarteaga commented on July 4, 2024

There are two changes related to channel estimation and equalization in the last release:

  1. carrier frequency offset measurement and compensation; and
  2. a temporary hotfix in the equalizer noise variance.

You can disable the CFO compensation with the following patch:

diff --git a/include/srsran/phy/upper/signal_processors/signal_processor_factories.h b/include/srsran/phy/upper/signal_processors/signal_processor_factories.h
index bb48607a5..055afda78 100644
--- a/include/srsran/phy/upper/signal_processors/signal_processor_factories.h
+++ b/include/srsran/phy/upper/signal_processors/signal_processor_factories.h
@@ -95,7 +95,7 @@ public:
   virtual std::unique_ptr<port_channel_estimator>
   create(port_channel_estimator_fd_smoothing_strategy fd_smoothing_strategy =
              port_channel_estimator_fd_smoothing_strategy::filter,
-         bool complensate_cfo = true) = 0;
+         bool complensate_cfo = false) = 0;
 };
 
 std::shared_ptr<port_channel_estimator_factory>

For reverting the channel equalizer changes:

diff --git a/lib/phy/upper/equalization/channel_equalizer_zf_impl.cpp b/lib/phy/upper/equalization/channel_equalizer_zf_impl.cpp
index 69632bc61..83b9d2f3c 100644
--- a/lib/phy/upper/equalization/channel_equalizer_zf_impl.cpp
+++ b/lib/phy/upper/equalization/channel_equalizer_zf_impl.cpp
@@ -131,12 +131,8 @@ void channel_equalizer_zf_impl::equalize(span<cf_t>         eq_symbols,
   unsigned nof_rx_ports  = ch_estimates.get_dimension_size(ch_est_list::dims::rx_port);
   unsigned nof_tx_layers = ch_estimates.get_dimension_size(ch_est_list::dims::tx_layer);
 
+  // Compute the average noise variance.
+  float noise_var = 0.0F;
+  for (unsigned i_rx_port = 0; i_rx_port != nof_rx_ports; ++i_rx_port) {
+    noise_var += noise_var_estimates[i_rx_port];
+  }
+  noise_var /= static_cast<float>(nof_rx_ports);
-  // Select the most pessimistic noise variance.
-  float noise_var = *std::max_element(noise_var_estimates.begin(), noise_var_estimates.end());
 
   // Single transmit layer and any number of receive ports.
   if (nof_tx_layers == 1) {

We are working on improving the UL resilience against these types of corner cases. Feel free to try the patches and let us know if any of these patches walk around the problem.

from srsran_project.

houshangaziziaccelleran avatar houshangaziziaccelleran commented on July 4, 2024

Thanks @xavierarteaga We are OK setting number of dl/ul antennas the same on gNB and Amarisoft UE side as there is no issue of that is the case. So for the fix you mentioned, we can wait. Thanks

from srsran_project.

ismagom avatar ismagom commented on July 4, 2024

Hi @houshangaziziaccelleran,

What @xavierarteaga was trying to ask was if you could test the two patches for us please. We are unable to reproduce the issue. It would be very helpful if you can test those patches please. Thanks

from srsran_project.

houshangaziziaccelleran avatar houshangaziziaccelleran commented on July 4, 2024

@xavierarteaga Applying the patch helped. Meaning we don't necessarily need to have the same number of gNB UL antennas on Amarisoft-UE to be able to Attach a UE.
Requested logs are attached.
Cc @ismagom
patch_619.zip

20240516_1-issue_619.zip

from srsran_project.

xavierarteaga avatar xavierarteaga commented on July 4, 2024

Many thanks for sharing the logs with us.

The MSG3 was decoded successfully:

2024-05-16T10:58:53.255257 [PHY     ] [I] [  880.19] PRACH: rsi=1 rssi=-7.4dB detected_preambles=[{idx=0 ta=5.60us detection_metric=1501.6}] t=169.6us
...
2024-05-16T10:58:53.265136 [PHY     ] [I] [  881.18] PUSCH: rnti=0x4601 h_id=0 prb=[4, 7) symb=[0, 14) mod=QPSK rv=0 tbs=11 crc=OK iter=1.0 sinr=34.5dB t=475.8us uci_t=0.0us ret_t=0.0us

Compared with the log before the patch:

2024-05-15T13:52:10.097257 [PHY     ] [D] [  800.19] PRACH: rsi=1 rssi=-6.9dB detected_preambles=[{idx=1 ta=5.60us detection_metric=19.1}] t=272.4us
...
2024-05-15T13:52:10.107273 [PHY     ] [D] [  801.18] PUSCH: rnti=0x4601 h_id=0 prb=[4, 7) symb=[0, 14) mod=QPSK rv=0 tbs=11 crc=KO iter=6.0 sinr=33.7dB t=769.2us uci_t=0.0us ret_t=0.0us

I hypothesize that some RF artifact is received in the second port when the UE is configured with one transmit antenna. This RF artifact causes the equalizer to mix the signal destructively when CFO compensation is enabled. In contrast, this does not happen when two transmit antennas are configured.

If I am not wrong, the UE only transmits on one port even if the UE is configured with two ports.

We will keep trying to model the setup. We will let you know if we need more information.

from srsran_project.

xavierarteaga avatar xavierarteaga commented on July 4, 2024

I found a software defect that mixes up the CFO compensation. We created this patch
cfo.patch.tar.gz.

@houshangaziziaccelleran can you try it and let us know how it goes? 🤞

This fix will be included in the next release.

Many thanks for your help.

from srsran_project.

xavierarteaga avatar xavierarteaga commented on July 4, 2024

Hi @houshangaziziaccelleran,
we have already released all the changes about the CFO compensation. This issue should not happen again after pulling the latest main (f3ed07a) code.

I will close this issue and we reopen it again if the problem persists.

Once again, many thanks for helping us to find the issue.

from srsran_project.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.