61 Commits
Author SHA1 Message Date
Bartosz Podrygajlo 16f5299203 Taps client client for vrtsim
Added a libary that can connect to a channel emulator and provide taps
as they are generated.

 - Enable connection from vrtsim to channel emulation server
 - Depends on flatbuffers definition file from raytracing-channel-emulator
 - Depends on libanomsg-dev and flatbuffers-compiler (Ubuntu) or equivalent
 - Added a compile time option ENABLE_TAPS_CLIENT to prevent other users
   from being affected by additional dependencies
2025-08-20 15:57:30 +02:00
Thomas Schlichter d6585f3750 rfsimulator: enable and correct NTN LEO doppler simulation 2025-04-10 13:56:20 +00:00
Thomas Schlichter dd827c7bd8 refactor (co)sinus calculation out of phase_noise() into openair1/PHY/TOOLS/get_sin_cos.c 2025-04-10 12:37:19 +00:00
Thomas Schlichter 9e4df97d84 move function add_noise() to file openair1/SIMULATION/TOOLS/phase_noise.c 2025-04-10 12:36:30 +00:00
Bartosz Podrygajlo 5d3708ac3e Realtime channel emulation for shm_radio 2025-03-26 16:53:35 +01:00
Bartosz Podrygajlo 2fb541a68e Add option to use global noise power for all RX channels in RFSimulator
Added new command line option to channelmod: noise_power_dBFS. This options
allows the user to configure noise power in dBFS added instead of the per-channel
value.

This makes it so noise is not accumulated per channel reaching higher than expected
values.

The dBFS unit allows easy configuration. The gNB by default uses -36 dBFS setting.
To reach 3dB SNR one should set the noise_power_dBFS value to -39.

To configure using command line use --channelmod.noise_power_dBFS -50. Using this
setting the gNB and nrUE connect without issue.
2025-02-19 16:05:38 +01:00
Thomas Schlichter 6a8edaf317 rfsimulator: add delay and Doppler simulation for circular orbit and add according channel models SAT_LEO_TRANS and SAT_LEO_REGEN
Delay and Doppler computation is done as in Matlab function dopplerShiftCircularOrbit:
https://de.mathworks.com/help/satcom/ref/dopplershiftcircularorbit.html
2024-08-20 16:46:25 +02:00
Thomas Schlichter 68b07d542c rfsimulator: correctly set center frequency 2024-08-20 16:46:25 +02:00
Thomas Schlichter 5ac881b7c1 rfsimulator: add support to simulate a long propagation delay
Add the option `--rfsimulator.prop_delay` to specify the simulated receive-path (gNB: UL, UE: DL) propagation delay in ms.
This option can be used e.g. to simulate a simple GEO satellite channel by specifying `--rfsimulator.prop_delay 238.74` to both, the gNB and the UE.

This is part of the work developed by Fraunhofer IIS within the ESA-funded project 5G-GOA (https://connectivity.esa.int/projects/5ggoa).
2024-05-07 20:46:37 +02:00
Guido Casati 563109a88f Cleanup of unused and outdated legacy RFSIM code
- deleted:    ../../../executables/rfsim.c
- removed unused command line options to set SINR and SNR
- removed unused functions to get SINR and SNR
- removed unused RFSIM struct members
2024-02-20 15:06:59 +01:00
Laurent THOMAS bba9aac079 fix most of doxygen warnings and errors 2023-10-26 16:47:19 +02:00
rmagueta 28438ab5c4 Add ptrs_bit_map input in add_noise() function 2023-09-04 18:37:01 +01:00
Robert Schmidt ff4c48f952 Align all configuration structs, and guard them to not be formatted with clang-format 2023-03-09 19:01:47 +01:00
francescomani 2385bc364a fixing most warning when compiling nr-softmodem 2023-03-09 19:01:46 +01:00
laurent b74ba0fb92 cleaning only 2023-01-19 14:52:39 +01:00
Robert Schmidt 8cacbb884c Address review comments 2022-12-19 16:23:40 +01:00
Robert Schmidt fb6f9d3bf0 Read /dev/urandom to init RNG for uniformrandom and gaussZiggurat 2022-12-19 15:57:09 +01:00
Roberto Louro Magueta 2b40675b3a Apply Doppler Effect 2022-11-25 11:03:45 +00:00
Roberto Louro Magueta 9b04af1b52 Put the center_freq and maxDoppler as input of new_channel_desc_scm() function 2022-11-25 11:03:45 +00:00
Roberto Louro Magueta e44a99b3c1 Implementation of get_cexp_doppler() function to compute the Doppler Effect 2022-11-25 10:56:52 +00:00
Roberto Louro Magueta 255ad24410 Replace gaussdouble() by gaussZiggurat() in random_channel() and add_noise() 2022-11-09 18:58:09 +00:00
Roberto Louro Magueta 6b83d9e0f1 Compute normalization channel factor 2022-10-27 17:18:38 +01:00
Roberto Louro Magueta abb6fadd19 Implementation of function add_noise() 2022-10-27 17:18:38 +01:00
Roberto Louro Magueta 6f51b930c1 Put the correlation level (low, medium or high) as input of new_channel_desc_scm() 2022-10-27 17:07:25 +01:00
Roberto Louro Magueta 3d966b09e8 TDL channel model implementation for low, medium and high correlation scenarios 2022-10-27 17:07:25 +01:00
laurent 65b399fcd7 fix bugs in config module and config usage
fix bug from this MR

fix bug from this MR

stupid-mistake
2022-08-16 09:22:15 +02:00
Robert Schmidt b4dbf46dde Provide term_freq_channel() to free memory in abstraction.c 2022-02-21 13:35:36 +01:00
Eurecom c834f40186 Merge remote-tracking branch 'origin/develop' into bandwidth-testing
Conflicts:
	executables/nr-uesoftmodem.c
	executables/nr-uesoftmodem.h
	executables/softmodem-common.h
	openair1/PHY/MODULATION/slot_fep_nr.c
	openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
	openair1/PHY/NR_TRANSPORT/pucch_rx.c
	openair1/SCHED_NR/fapi_nr_l1.c
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair1/SIMULATION/TOOLS/abstraction.c
	openair1/SIMULATION/TOOLS/random_channel.c
	openair2/LAYER2/NR_MAC_UE/mac_proto.h
	openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2021-09-05 15:37:11 +02:00
Raymond Knopp 8a9194300f commit before merge 2021-08-09 10:55:55 +02:00
Rodolphe BERTOLINI 387223eea6 removed duplicate structure, changed 'x' to 'r' and 'y' to 'i' 2021-08-09 09:59:38 +02:00
Raymond Knopp d88ce5b9bf Merge remote-tracking branch 'origin/develop' into oairu 2021-04-27 11:58:31 +02:00
hardy 246afc7ccb Merge remote-tracking branch 'origin/sim-channels' into integration_2020_wk15 2021-04-14 14:37:09 +02:00
Laurent OpenCells c0ef3e6f88 fix gcc reported issues 2021-04-03 23:37:58 +02:00
Laurent THOMAS 0827488303 noise power 2021-03-17 19:34:27 +01:00
frtabu 1f0e82664f enhance channel model configuration 2021-03-10 02:33:31 +01:00
Laurent THOMAS 3b1b74cfd2 starting 2021-03-04 13:22:14 +01:00
Raymond Knopp d06018d1e3 Merge branch 'four_antenna_eNB' into oairu 2021-02-07 17:46:23 +01:00
Raymond Knopp 78f14bc9a4 fixed build for oairu executable. tested with sirius/phoenix 2021-01-28 21:53:24 +01:00
Raymond Knopp f04846cf4f 2 and 4 antenna testing with ulsim functional. >=3 dB gains from 2 to 4 antennas on SCM channels 2021-01-26 13:25:07 +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
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 92fc259592 Merge remote-tracking branch 'origin/develop' into fhg_shp_phase_noise_est 2020-09-01 12:55:50 +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
Francesco Mani fd003dd786 Merge remote-tracking branch 'origin/develop' into NR_UL_scheduling 2020-08-20 12:37:21 +02:00
Raymond Knopp 49a14c4f9f fixes for TDL channel models in nr_ulsim 2020-08-13 09:43:50 +02:00
Raymond Knopp 13d1be0782 added TDL channel models and use them in nr_ulsim 2020-08-12 16:23:14 +02:00
frtabu d4bd2cdc63 implement modifying channel model algo while running, complete function freeing a model 2020-07-29 20:27:04 +02:00
frtabu 7eb2ab66c5 add telnet commands to show and modify channel simulation parameters 2020-07-28 01:33:16 +02:00
Francesco Mani bedb295dfd Merge branch 'develop' into NR_RRC_harq_hacks 2020-06-09 20:32:35 +02:00
Thomas Schlichter 614083f03f Merge branch 'develop' into NR_RRC_PRACH_procedures
Conflicts:
	cmake_targets/CMakeLists.txt
	openair2/GNB_APP/gnb_app.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
	openair2/RRC/NR/rrc_gNB_nsa.c
2020-06-09 13:03:28 +02:00