- 27 Aug, 2020 1 commit
-
-
Parminder Singh authored
FEATURE STATEMENT: - Introduce linear phase error noise model in Uplink at UE - Perform common phase error (CPE) estimation and compensation at gNB SOLUTION: - A linear phase shift model is introduced in simulation. - PTRS symbols are used to perform estimation of CPE from DMRS compensated signal - The estimated values are interpolated in time domain and signal is compensated for the CPE. - PTRS processing is done in Frequency Domain for each symbol in a slot and LLR's are calculated for each symbol accordingly. IMPLEMENTATION: * sim.h/channle_sim.c - Linear Phase Noise Generation model definition. * nr_ul_channel_estimation.c/nr_ul_estimation.h - CPE estimation from PTRS and DMRS compensated signal. * nr_dmrs_rx.c/nr_refsig.h - Regenerate PTRS symbols at gNB. * nr_ulsch_demodulation.c - Removed old PTRS processing code and move to a common PTRS processing function * defs_gNB.h/init.c - New PTRS variables definition and initialization * nr_ulsch_ue.c - Corrected PTRS parameter to get new PTRS symbols for each OFDM symbol TESTING * ulsim.c - Added Phase noise, Enable PTRS signal and verified the output. VERIFICATION - The LLR are rotated back with estimated CPE and no error is observed in scrambling/decoding
-
- 14 Aug, 2020 1 commit
-
-
Parminder Singh authored
Problem STATEMENT: - When enabling PTRS flag in ulsim, there are multiple scrambling and decoding errors are observed even with high SNR values SNR 60dB errors_scrambling 5546/13800 Channel BLER 1.000000e+00, Channel BER 4.018841e-01 ANALYSIS: - While extracting PTRS RE's, the PUSCH RE count was not updated accordingly for PTRS symbols. - This results in 0 value LLR's on same positions which cause offset issue in later processing. IMPLEMENTATION: * nr_ulsch_demodulation.c - In case of PTRS symbol, respective total number of PTRS RE's are subtracted from available PUSCH RE's in each PUSCH Symbol processing. TESTING * ulsim.c - PTRS are enabled for testing and are not enabled by default by this commit. - Available bit count is adjusted if PTRS is enabled. VERIFICATION - Total Scrambling errors after gNb processing shall be only 250 bits (in K=2) which were replaced with PTRS at UE side while transmission. SNR 60.000000 errors_scrambling 250/13800 Channel BLER 0.000000e+00, Channel BER 1.811594e-02 - After adjusting available bits in ulsim.c for error calculation SNR 60.000000: n_errors errors_scrambling 0/13550 Channel BLER 0.000000e+00, Channel BER 0.000000e+00 EXTRA - Removed white-spaces from all above mentioned files - Added Global/vim tags to .gitignore file
-
- 29 Jul, 2020 1 commit
-
-
Raphael Defosseux authored
Integration branch 2020 week 30 - MR 854 : NR_DCI_01 - MR 857 : improve_ue_stability - MR 839 : mac-flexran-improvements
-
- 27 Jul, 2020 4 commits
- 23 Jul, 2020 1 commit
-
-
Francesco Mani authored
-
- 22 Jul, 2020 3 commits
-
-
Francesco Mani authored
-
Francesco Mani authored
-
Francesco Mani authored
-
- 21 Jul, 2020 1 commit
-
-
Remi Hardy authored
Oai integration week29 See merge request oai/openairinterface5g!858
-
- 20 Jul, 2020 28 commits
-
-
Francesco Mani authored
-
Robert Schmidt authored
-
Robert Schmidt authored
Use LFDS 7.0.0 Ringbuffer implementation to handle * Slice Configuration * UE slice association which is then uploaded through MAC scheduling thread
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
Selects the UE with the highest CQI. If two UEs have the same CQI, choses the one with highest number of bytes in RLC queue. Allocates as many RBGs as possible, and potentially continues with the next UE.
-
Robert Schmidt authored
Selects UE with highest coefficient. Allocates until there are no more RBGs to allocate, or UE has no more data. In the latter case, continues with the next UE (second-highest coefficient).
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
- Loop only to next UE instead of jumping multiple - mark used RBGs in rbg_mask - Only calculate number of RBs based on CQI when UE is selected, instead of calculating for all UEs which might be unnecessary. - When looping the list of UEs for RB allocation, remove UEs that have no data anymore instead of skipping them.
-
Robert Schmidt authored
The preprocessor pre-allocates a CCE. Thus, when arriving at the check for the number of RBs for retransmission, it is too late to skip the UE. Therefore, only print a warning. The default schedulers allocate a correct amount of RBs for retransmissions, therefore it is ok.
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
The test seemingly ensures that this code block is hit only once. However, if we enable later activation of MMEs, it will be hit a second (and third, ...) time. The only thing in guards against, though, is an INIT message to the L1L2 thread, when register_enb_pending == 0, which should only be sent once. Therefore, functionality won't be changed if register_enb_pending becomes negative, and the assert can be removed.
-
Robert Schmidt authored
-