44 Commits
Author SHA1 Message Date
Parminder Singh bb9c3ca173 ue->high_speed_flag is removed from UE channel estimation
- This flag is always set to 1, furthermore with multiple DMRS symbols
  configuration very recent DMRS containing symbol shall be for channel
  estimation.
2021-07-16 09:36:36 +02:00
Parminder Singh 8c023d7c66 Added uplink processing check to avoid false detection in ULSIM.
- In case no signal is received then energy of ULSCH is zero,
  the phy_procedures_gNB_uespec_RX will return 1 as an error.
2021-05-07 11:23:38 +02:00
Parminder Singh 9f16383331 Call common pusch procedure in ulsim
- The TX signal is prepared but not sent which leads to all 0's TX signal.
2021-05-06 11:31:30 +02:00
Parminder Singh 9202c583f5 Spaces are corrected, tabs replaced with spaces 2021-02-10 11:10:19 +01:00
Parminder Singh 222b37ff13 Merge remote-tracking branch 'origin/develop' into ptrs_rrc_config 2021-02-08 14:16:36 +01:00
Parminder Singh 58b36aa222 Added PTRS RRC config validation for DL/UL-SIM uni tests 2021-02-01 13:02:25 +01:00
Parminder Singh 87ada84106 created a new conf file for PTRS testing
- removed default PTRS values from default conf file.
2021-01-29 10:50:48 +01:00
Parminder Singh 334bf336b7 Updated TBS calculation for multiple DMRS positions in a slot
- TBS calculation was done wothout considering mulilple DMRS symbols in
  a slot, which is corrected now.
2020-11-27 15:56:15 +01:00
Parminder Singh 6c2fbb361d Merge remote-tracking branch 'origin/develop' into fhg_shp_phase_noise_est 2020-11-16 09:47:46 +01:00
Parminder Singh 4fe5986845 Corrected conditional statement wrt OAI Formatting Rules 2020-11-12 19:29:10 +01:00
Parminder Singh 841ddaf9f8 Corrected data type for printf to remove warning in nr-softmodem
- In gNB_scheduler int is updated to long int to avoid warnings for
printf
2020-11-10 10:50:27 +01:00
Parminder Singh b0ee3bb206 Correction for first OFDM symbol estimation and compensation
- Direct multiply with the conjugate of the estimation for compensation
2020-11-09 17:25:00 +01:00
Parminder Singh 443f1817e5 Merge remote-tracking branch 'origin/develop' into fhg_shp_phase_noise_est 2020-11-08 18:47:29 +01:00
Parminder Singh 910c1860f0 DMRS estimation default value is moved outside slot processing
- in PTRS processing the default value for DMRS is set outside slot
   processing.
2020-11-06 14:26:25 +01:00
Parminder Singh 03db617c38 Remove TX-GAIN multiplication with transmitted signal in ULSIM
- Removed tx_gain calculations and multiplication with tx signal
- Updated sigma value calculations and removed unused variables
- Re-indent the related code for better readability
2020-11-06 12:12:43 +01:00
Parminder Singh 13645b1b5e Updated the sin cos table condition check
- Sin cos table quadrant condition checks are updated
- function are indented properly
- Debug prints are updated for double data type
2020-11-05 16:31:16 +01:00
Parminder Singh c16e5831d1 Added debug prints in ULSIM for PTRS RE calculations
- Added PTRS Symbols in a slot and Resource elements count in debug print
2020-11-05 14:08:02 +01:00
Parminder Singh c9523b88a7 Updated UL ptrs processing wrt DL
- Most DL code is reused for Ul also to reduce code duplication
- Common CPE calculation function is used for error estimation
- Common slot processing function is used for inter/extrapolation
- Removed old implementation dedicated to UL
2020-11-05 14:00:01 +01:00
Parminder Singh f0c843faf9 Sin cos table initialization for ULSIM also
- As new sin cos table is used in phase noise function it shall be
  initialized for ULSIM also
2020-11-05 13:36:44 +01:00
Parminder Singh 41d3bcac85 Fix - Issue with uninitialized structure in NR_ULSCH_CODING.c
- Initialized variable to remove the valgrind issue.
2020-11-05 10:35:09 +01:00
Parminder Singh 0ce350d1cf Merge remote-tracking branch 'origin/develop' into fhg-shp-dl-ptrs 2020-11-04 16:20:50 +01:00
Parminder Singh 209785551a Review Comments are updated
- updated return function value to -1
- removed static variable for dmrs symbol selection for channel
- Updated sin cos quadrant check conditions
- removed casting from PTRS slope and related calculations
2020-11-04 11:29:35 +01:00
Parminder Singh 741a5b98e7 Added sin cos table implementation for dlsim
- Sin and Cos values are obtained from a table with a resolution of
  100.
- dlsim is updated to use this table for phase noise.
2020-11-03 11:26:37 +01:00
Parminder Singh 65fb8a84b8 Fixed Channel compensation for dlsim for multiple DMRS
- fixed channel compensation by choosing most recent DMRS symbol ina
  slot
- Removed code to find nearest DMRS symbol for channle compensation
- Updated TBS calculation in DLSIM
- Added debug prints in PTRS CPE estimation for DMRS symbol
2020-10-31 14:36:05 +01:00
Parminder Singh 1e9720ef88 Added -U command line parameter to update DMRS configuration for DLSIM
- -U 2 0 [0-2], can be used to update DMRS configurations
- update check for additional position 3 in dlsch decoding
2020-10-29 13:49:03 +01:00
Parminder Singh 327ba9d398 PTRS DL extraction, estimation and compensation
- Added PTRS extraction and estimation for DL
- Added processing for whole slot wrt PTRS estimates
- DLSIM is updated to used -T flag to enable PTRS
- DMRS compensated signal is further compensated with PTRS estimation
2020-10-28 15:39:03 +01:00
Parminder Singh 42e9c655be Moved LLR calculations inside a static function
- LLR calculations are moved inside a static function and done for a
  slot in last symbol processing
2020-10-26 15:01:43 +01:00
Parminder Singh cf3780c04d Added PTRS related definitions and variables for DL processing in UE
- Added PTRS variables in transport UE header file
- Added DMRS inline symbol check function in refsig.h
- Added PTRS estimation and other related structures in defs_nr_UE.h file
2020-10-26 10:29:39 +01:00
Parminder Singh 8d496bdcf8 Adding PTRS symbol from gNB in DL
- Based upon ptrs bitmap, ptrs symbols are added in DL
- Mac ptrs validation condition is updated
2020-10-26 10:28:02 +01:00
Parminder Singh 22cd1885bc DMRS Specific changes from fhg-dl-dmrs branch 2020-10-26 10:23:52 +01:00
Parminder Singh 54c89ccdbc MAC layer changes to process PTRS RRC values and validation
- Get RRC values from dedicated bandwidth part and process it
- Validate all settings in MAC layer and enable PTRS processing in PHY
2020-10-26 10:15:19 +01:00
Parminder Singh 3651107f81 Added PTRS parameters in UE nFAPI interface
- PTRSPortIndex, PTRSTimeDensity, PTRSFreqDensity, PTRSReOffset, nEpreRatioOfPDSCHToPTRS
- mcs_table : to calculate MCS table in MAC layer and pass tp PHY
- pduBitmap : same as used in DL FAPI interface, to enable or disable PTRS processing
2020-10-26 10:06:33 +01:00
Parminder Singh a7982741aa RRC sub-function to add PTRS configuration for DL
- Added a function to add PTRS values in RRC context.
- This function can be used to overwrite the PTRS values also.
- When RRC config file contains PTRS values then this function can be used
respectively in RRC context.
2020-10-26 10:01:15 +01:00
Parminder Singh 2281436b66 Fix - Issue with uninitialized structure in ULSIM
- Changed malloc to calloc to set all values to zero to remove the
  valgrind issue with uninitialized structure values in RC.gNB structure
2020-09-09 11:11:24 +02:00
Parminder Singh b6792b3487 Fixed Warning issue due to wrong data type in ULSIM 2020-09-02 10:59:28 +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 6ce38ac960 Fix Phase noise addition in ULSIM
- moved the noise function gNB variable
2020-09-02 09:53:45 +02:00
Parminder Singh f7ed592ef5 Fixed available_bits calculation for PTRS in -n option in ulsim 2020-09-02 09:51:04 +02:00
Parminder Singh 92fc259592 Merge remote-tracking branch 'origin/develop' into fhg_shp_phase_noise_est 2020-09-01 12:55:50 +02:00
Parminder Singh 8cf32ed2ad Modify DMRS configuration with command line in ULSIM
- To modify DMRS use -U flag followed by 3 integers
- Example: ./nr_ulsim -U 2 1 0
- 1st Value is the list of arguments     -> e.g. 2
- 2nd Value is for TYPE{0=A,1=B}         -> e.g. 1
- 3rd Value is for ADD_POS{0,1,2,3}      -> e.g. 0
2020-09-01 12:22:12 +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
Parminder Singh f4631f2186 Bug-fix in Up-link with respect to PUSCH RE calculation when PTRS is enabled.
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
2020-08-14 10:20:36 +02:00