UE: implement TRS processing in PHY#199
Conversation
| # -*- coding: utf-8 -*- | ||
|
|
||
| # | ||
| # SPDX-License-Identifier: GPL-3.0 |
|
CI Build: #337 | Failed on the following stages: |
86d1ebb to
77163ae
Compare
|
CI Build: #424 | Failed on the following stages: |
1b57d37 to
ebb0d46
Compare
|
I removed the CI test framework from this MR. We can add the CI test for TRS later on when its clean on how to add external scripts with GPL. |
|
CI Build: #656 | Failed on the following stages: |
|
CI Build: #657 | Failed on the following stages: |
| if (!slot_fep_map[symb]) { | ||
| nr_slot_fep(ue, &ue->frame_parms, proc->nr_slot_rx, symb, rxdataF, link_type_dl, 0, ue->common_vars.rxdata); | ||
| slot_fep_map[symb] = true; | ||
| { |
There was a problem hiding this comment.
I would remove this parenthesis that gives an unnecessary indentation
There was a problem hiding this comment.
I added the parenthesis to minimize the scope of the buffer trs_estimates so that the following code would have more available stack to work with.
There was a problem hiding this comment.
adding a new scope does not change the stack size in anyway, could you please explain what you mean?
or is it to reduce the scope? this has nothing to do with the stack.
There was a problem hiding this comment.
my understanding is that when the program leaves a scope, it reclaims the stack. so in this case after leaving the scope, the physical memory used by trs_estimates[] could be reused by whatever comes next.
There was a problem hiding this comment.
that is correct, thanks. it makes now sense to me. You could alternatively also create a function, but for me it's fine then.
TRS resources if configured by gnb, is present in two consequtive slots and two symbols per slot. LS estimates from the first symbol is saved and in second symbol frequency offset and time offset is estimated. The estimated FO is saved in UE global structure which is used in the last TRS slot. If the FO is above a threshold, the radio's center frequency is adjusted. Time offset is estimated but not used because time is already tracked using PBCH DMRS. Signed-off-by: Sakthivel Velumani <s.velumani@northeastern.edu>
measurement bitmap for CSI-RS is 0 means CSI-RS for tracking. So don't return and proceed with processing the CSI-RS. Signed-off-by: Sakthivel Velumani <s.velumani@northeastern.edu>
Signed-off-by: Sakthivel Velumani <s.velumani@northeastern.edu>
ebb0d46 to
2fb7efd
Compare
|
CI Build: #685 | Failed on the following stages: |
This PR implements PHY layer processing for CSI-RS tracking signal that estimates the CFO and sends a frequency correction command to the radio when CFO goes above a threshold of 500Hz.
A CI test is added with a GNU radio script between OCUDU gNB and the UE that simulates a continuous frequency offset. The test passes if the UE sends a frequency correction command.