Commit Graph

69 Commits

Author SHA1 Message Date
rakesh mundlamuri
c76ae22328 Merge branch 'ul_mu_mimo_groups' into 'develop'
Draft: Introduce group based processing for 5G uplink MU-MIMO and a MU-MIMO physical simulator

See merge request oai/openairinterface5g!4093
2026-07-06 08:07:42 +00:00
Robert Schmidt
61a1e8c0d8 Remove common_lib.h includes
After having removed eth_params_t from all L2/L3 files, we can reduce
the scope of common_lib.h, and remove the include from many files.

Signed-off-by: Robert Schmidt <robert.schmidt@openairinterface.org>
2026-06-30 11:34:09 +02:00
Rakesh Mundlamuri
153d41a77d Use SIMD for Interference addition
Signed-off-by: Rakesh Mundlamuri <rakesh.mundlamuri@openairinterface.org>
2026-06-04 13:27:06 +05:30
Robert Schmidt
8107939f08 Change OAI license to CSSL v1.0 (and others)
- all RAN code, CI code, configuration files, dockerfiles, in CSSL v1.0
- all deployment code (openshift, charts, ancillary files like shell
  scripts), in MIT
- documentation in CC-BY-4.0
- exceptions might apply and are listed in NOTICE
- there is a new LICENSES folder with all licenses
- CONTRIBUTIONS.md has been updated accordingly

For automated changes based on OAI PL v1.1:

    perl -i~ -0pe 's/\/\*.*Licensed to the OpenAirInterface.*openairinterface.org\n#?/\/*\n * SPDX-License-Identifier: LicenseRef-CSSL-1.0\n/s' **/*.{c,h,cpp}
    perl -i~ -0pe 's/\/\*.*Licensed to the OpenAirInterface.*openairinterface.org\n#?/\/*\n * SPDX-License-Identifier: LicenseRef-CSSL-1.0\n/s' **/*.ts
    perl -i~ -0pe 's/<!--.*Licensed to the OpenAirInterface.*openairinterface.org\n.*-->/<!-- SPDX-License-Identifier: LicenseRef-CSSL-1.0 -->/s' **/*.xml

The rest (cmake, files with missing license, cmake) manually.
2026-03-27 16:36:37 +01:00
Nika Ghaderi
c54f0f7955 Refactor and extend CPU channel model with float support
This commit refactors the CPU-based channel model for improved reusability and extends it with single-precision floating-point support.
This serves as a performance and correctness baseline for the new CUDA implementation.

Key changes include:

	- The original double-based multipath_channel function is refactored to remove hardcoded antenna dimensions from its signature. It now accepts dynamically sized arrays, making it more flexible for use in simulators like dlsim and ulsim.

	- A new multipath_channel_float function is introduced to operate on float data types, matching the GPU's native format.

	- A corresponding add_noise_float function is also added to complete the floating-point CPU pipeline.

	- The new float-based functions are designed to work with an interleaved IQ sample format ([I, Q, I, Q]), which is more suitable for vectorized (SSE) and GPU processing.
2026-02-09 09:29:36 +00:00
Thomas Schlichter
75df29a333 consistenty use suffix _t for openair0_* types 2026-01-23 18:30:39 +01:00
Bartosz Podrygajlo
6bd3545a78 RFsimulator C++ conversion
Convert rfsimulator C source code to C++ to access to STL.
2025-12-17 22:24:12 +01:00
Laurent THOMAS
a1b4220a91 Exclusively use OAI_RNGSEED env variable everywhere
Hide normal table initialization of Ziggurat generator from outside to
force the usage of randominit() for RNG initialization. In this step,
remove the randominit() seed parameter and only rely on OAI_RNGSEED for
a consistent RNG initialization, as this parameter was used differently
("0" as fixed number or to force a random seed).

Now, only use OAI_RNGSEED env variable to force the usage of a fixed
seed.
2025-12-01 12:10:31 +01:00
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