Commit Graph
42 Commits
Author SHA1 Message Date
Thomas Schlichter 73f5851690 Merge remote-tracking branch 'develop'
Conflicts:
	openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
	openair1/PHY/NR_TRANSPORT/pucch_rx.c
	openair1/SIMULATION/NR_PHY/ulsim.c
2020-09-08 12:01:37 +02:00
Parminder Singh 88a14fc4cc Set the previous PTRS estimates to 0 for each slot
- The memory shall be reset for each slot to avoid interpolation error.
2020-09-02 10:10:10 +02:00
Parminder Singh 14096886e8 Enable PTRS with command line in ULSIM
- To enable PTRS use -T flag followed by 3 integers
- Example: ./nr_ulsim -T 2 0 2
- 1st Value is the list of arguments -> e.g. 2
- 2nd Value is for L_PTRS{0,1,2}     -> e.g. 0
- 3rd Value is for K_PTRS{2,4}       -> e.g. 2
2020-08-31 17:51:56 +02:00
Parminder Singh ec0aea2374 Removed separate LLR calculation for PTRS
- New Data Structure to store PTRS RE's is removed
- LLR's are calculated at the end symbol for whole slot
2020-08-28 12:14:13 +02:00
Parminder Singh b288eafd1e Common Phase error estimation and compensation in uplink.
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
2020-08-27 11:55:06 +02:00
Raymond Knopp cc0ff7422e implementation of missing symbol-based rotation for NR modulation/demodulation (Section 5.3 38.211). Tested with unitary simulators (ulsim/dlsim).
To be tested with gNB testbench and rfsimlator
2020-08-25 01:48:55 +02:00
Francesco Mani 7989afbb78 bugfix in measurements 2020-08-07 17:05:58 +02:00
Francesco Mani 7d46e43334 using the right structures for n0 measurements 2020-08-07 09:19:37 +02:00
Francesco Mani ff7ac327cd first version of pusch power control 2020-08-05 12:30:25 +02:00
Francesco Mani 86250f682a bugfix in ul estimation and other minor changes 2020-07-28 16:35:12 +02:00
Francesco Mani 3648ac46ce fix in ulsch ch estimation debug message 2020-07-27 09:29:43 +02:00
Francesco Mani d474f4a1b8 fix some warnings 2020-07-09 10:55:41 +02:00
Francesco Mani d268c320ca Merge branch 'develop' into NR_RRC_harq_hacks 2020-05-15 16:26:33 +02:00
Francesco Mani 88e5203dfa bugfix in dci1_1 size 2020-05-08 17:19:31 +02:00
Raymond Knopp 160fef9a2d fix after merge 2020-05-08 10:25:06 +02:00
Raymond Knopp 70dff719e2 pusch dmrs rx fix, added comp file dump to ulsim 2020-05-08 10:16:30 +02:00
Raymond Knopp 042aac3d4f reverted handling of transform_precoding variable in NR FAPI. Added correct handling of this in ulsim.c 2020-05-04 09:49:18 +02:00
Raymond Knopp 2f9bf0d84c added file reading for ulsim 2020-05-04 08:19:48 +02:00
Francesco Mani 448cae257d Revert "ENDC path switch S1-U: Bugfixes at gNB side"
This reverts commit 1462f0e659.
2020-04-03 13:41:23 +02:00
frtabu 0518ced81f dft/idft in shared lib 2020-04-02 12:11:21 +02:00
Raymond Knopp e9ff6bad2e Merge with branch NR_RRC_PRACH_procedures 2020-03-31 15:25:42 +02:00
Francesco Mani d320fa13b3 Merge branch 'develop' into NR_RRC_PRACH_procedures 2020-03-25 18:45:00 +01:00
Francesco Mani 817afd999b fixing reference point for k in pusch dmrs 2020-03-24 16:00:52 +01:00
Raymond Knopp 1462f0e659 ENDC path switch S1-U: Bugfixes at gNB side 2020-03-20 22:55:17 +01:00
Francesco Mani 6d058d306a SCF FAPI structures for PUSCH at gNB 2020-03-19 18:07:12 +01:00
Francesco Mani 98714f3138 using SCF fapi structure for PUSCH and initialization of pusch dmrs sequences at nr_init 2020-03-06 18:05:12 +01:00
adk e72e1d87f2 added PUSCH PTRS structs (UE + gNB) and parameters initialization 2020-03-04 14:37:05 +01:00
Raphael Defosseux 7de6a7f252 Merge remote-tracking branch 'origin/develop-nr' into 472-add-pusch-dmrs-modes 2020-01-09 17:22:40 +01:00
Raymond Knopp 5490d3e75d some cppcheck fixes and also compilation warnings removal 2019-12-19 09:43:45 +01:00
Khalid Ahmed 23ade3ada6 PUSCH Rx channel estimation supporting DMRS type 2
- nr_ulsim supports multiple DMRS configurations
2019-12-18 11:05:37 +01:00
Khalid Ahmed ccc515c537 PUSCH Rx channel estimation supporting DMRS type 1 and mapping type B 2019-12-18 11:02:55 +01:00
Sakthivel Velumani 1928936883 Fixed a misaligned problem in PUSCH channel esti
An avx2 instruction in idft4096 introduced segfault sometimes
2019-12-03 15:55:14 +01:00
Sakthivel Velumani f1740e2c9c Fixed CI failure 2019-12-02 14:11:47 +01:00
Sakthivel Velumani 620038220c Fixed a bug in channel estimation; and updated a dlsim test case 2019-11-28 17:43:24 +01:00
Sakthivel Velumani e253a6f380 Added support for nushift 2019-11-15 14:15:45 +01:00
Thomas Schlichter ef3be74025 Fix channel estimation for 3/4 sampling
In 3/4 sampling mode, the OFDM symbol size is _not_ a power of two (e.g. 1536 instead of 2048).
In this case it is _not_ OK to calculate the modulus using a binary AND, it _must_ use either the actul modulus operator (%) using an integer division,
or a _correct_ if statement or tertianary operator like this:

re_offset = (re_offset + 4 >= ue->frame_parms.ofdm_symbol_size) ? (re_offset + 4 - ue->frame_parms.ofdm_symbol_size) : (re_offset + 4);

But of course using the actual modulus operator is much more readable and surely not much slower:

re_offset = (re_offset + 4) % ue->frame_parms.ofdm_symbol_size;
2019-11-14 17:32:09 +01:00
Sakthivel Velumani 3185728107 Some updates in uplink and downlink channel estimations 2019-11-13 14:35:14 +01:00
Sakthivel Velumani 2deda8df51 Improved channel estimates around DC for uplink 2019-11-12 15:15:37 +01:00
Sakthivel Velumani 497afe4f58 UL improved channel estimation around DC 2019-11-08 10:27:06 +01:00
Ahmed Hussein b0f5f5f864 Adding TA estimation at gNB PHY for TA updates 2019-10-08 09:30:15 +02:00
Ahmed Hussein 675c0dff2d Providing time domain channel estimates 2019-10-08 09:30:15 +02:00
Ahmed Hussein 3a8bf560da channel estimation, compensation, etc ..
Added the following folder:
- ../openair1/PHY/NR_ESTIMATION/

Added the following file to CMakelists.txt:
- ../openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c

Added the following functions:
- nr_pusch_dmrs_rx
- nr_gold_pusch
- nr_ulsch_channel_level
- nr_ulsch_channel_compensation
- nr_ulsch_scale_channel is commented out (I think only used for downlink)

Changes from Khalid Ahmed Mahmoud Mohamed:
- nr_pusch_channel_estimation is used
- nr_ulsch_scale_channel is used
- nr_ulsch_channel_level is used
- nr_ulsch_channel_compensation is used
- multiple logging options for channel and signal magnitude
2019-10-08 09:30:14 +02:00