Commit Graph
664 Commits
Author SHA1 Message Date
Laurent THOMAS 443307a34a a lib has been added but missed dependancies 2024-12-05 11:29:42 +01:00
Robert Schmidt f5888225ad Merge remote-tracking branch 'origin/imscope-docking' into integration_2024_w48 (!3030)
Imscope updates

- Using imgui docking branch - allows window docking.
- Moved scopes to different windows to allow docking.
- Disabled scatterplot for time domain samples - issues with amount of
  vertices caused segfaults.
- Disabled IQ heatmaps for RX IQ samples on gNB and UE - this was
  incorrect and currently I don't know how to fix it. This will be
  reenabled once it is.
- added a simple menu and disabled demo windows by default.
2024-11-29 15:52:50 +01:00
Bartosz Podrygajlo ef803d02e4 Add default docking window layout for imscope 2024-11-29 11:23:27 +01:00
Bartosz Podrygajlo fddc52de38 Imscope updates
- Using imgui docking branch - allows window docking.
 - Moved scopes to different windows to allow docking.
 - Disabled scatterplot for time domain samples - issues with amount of vertices caused segfaults.
 - Disabled IQ heatmaps for RX IQ samples on gNB and UE - this was incorrect and currently I don't know
   how to fix it. This will be reenabled once it is.
 - added a simple menu and disabled demo windows by default.
2024-11-29 11:23:27 +01:00
Bartosz Podrygajlo 654cffe39f Do not start processSlotTx before it is ready to run.
Implement run-to-completion for processSlotTX. This is achieved by using a new
dynamic_barrier_t which allows to specify callback after the first join has been
made.
2024-11-27 18:14:59 +01:00
Laurent THOMAS 362eba7e27 Clip the input for -32768 because this will make different result in mult_complex_vectors() compared to C version 2024-11-15 13:15:30 +01:00
Laurent THOMAS 8f688c0064 replace assert by error logging when we call DFT with impossible size to deal with existing LTE UE 2024-11-08 12:19:23 +01:00
Laurent THOMAS 486cebce06 replace a printf() by a cleaner call to AssertFatal() 2024-11-07 17:08:18 +01:00
Laurent THOMAS fd83be4e77 change the alignment of OAI mutli-dim arrays from 16 to 32 bytes 2024-11-07 17:08:18 +01:00
Laurent THOMAS 89b7ce5eb9 small fix of rotate vector unit test 2024-11-07 17:07:52 +01:00
Laurent THOMAS ac06f107dd add a optimzed complex vector multiplication function 2024-11-07 17:07:50 +01:00
Robert Schmidt 84db6fd9f3 Merge remote-tracking branch 'origin/add-functional-test-dft' into integration_2024_w44 (!2988)
Add functional DFT test

- clean up code on (i)dft calls
- add DFT test for some DFT sizes against trivial implementation: it
  tests a simple square signal in only real values
- correctly scale DFT-16
2024-10-31 08:40:21 +01:00
Laurent THOMAS ae8df083fc Add functional test for DFT 2024-10-30 18:04:59 +01:00
Laurent THOMAS 576d468809 Clean up intermediate DFT macros, remove non-existing DFTs
DFT for 9216 and 73728 don't exist and/or assert, so remove them from
the list.
2024-10-30 18:04:43 +01:00
Laurent THOMAS 5cd5f72533 case DFT12 processing with specific data organization: remove intermediate pointer 2024-10-30 17:54:58 +01:00
Laurent THOMAS 4cf2719bd9 scale in DFT16 as per normal scaling sqrt(16) = 4 2024-10-29 18:47:15 +01:00
Laurent THOMAS f1f02ec0a1 use existing functions to retrieve (i)dft enum value 2024-10-29 18:47:15 +01:00
Robert Schmidt cf9854601c getopt() returns int
See getopt(3): returns int, so store it in an int variable.
I went through all occurrences, project-wide. All return values of
getopt() should be stored in ints now.
2024-10-24 19:22:06 +02:00
Rúben Soares Silva d9a5866bcd Address warning unused variable 'tw512_128p' 2024-10-15 16:48:23 +01:00
rmagueta 765bb64b5c Fix SNR based on SRS 2024-10-11 11:12:21 +01:00
Jaroslava Fiedlerova b824e55cdd Merge remote-tracking branch 'origin/imscope-td-plot' into integration_2024_w40b 2024-10-04 07:52:36 +02:00
Thomas Schlichter 28656a1adf add test log2_approx.boundaries 2024-10-02 13:30:16 +02:00
Thomas Schlichter d6f9bcd1cc fix test log2_approx64.boundaries
The test was actually never executed correctly (unsigned -10 is never <= 10), and log2_approx64_ref() was not accurate enough.
Therefore replace it by directly comparing one value above and one value below each rounding boundary.
2024-10-02 13:30:16 +02:00
Thomas Schlichter 6bf68c81c8 skip the test log2_approx.complete when using ctest
To skip the test, we use the gtest command line parameter "--gtest_filter" to filter out the unwanted test.
This parameter is described as follows:

--gtest_filter=POSITIVE_PATTERNS[-NEGATIVE_PATTERNS]
      Run only the tests whose name matches one of the positive patterns but
      none of the negative patterns. '?' matches any single character; '*'
      matches any substring; ':' separates two patterns.
2024-10-02 13:30:16 +02:00
Bartosz Podrygajlo b2c49fbc27 Add time-domain scope to gNB imscope. 2024-09-30 20:41:08 +02:00
Bartosz Podrygajlo 80f90b5599 Add time domain sample scope before sync
Added new data sync for UE which displays time domain samples read from RF device
before synchronization to PSS/SSS
2024-09-30 20:36:38 +02:00
Bartosz Podrygajlo 43a9236963 Improve imscope's scatterplot
- Reduce point size to 1 pixel
 - call ImPlot::PlotScatter as many times as needed
2024-09-30 20:36:18 +02:00
Bartosz Podrygajlo 7986a4de8e Time domain samples scope for NR UE
Add a new scope data source (ueTimeDomainSamples) which provides time domain samples
for antenna 0 to the scope. Add graphical representation of the data in imscope.

Removed C-define from ENABLE_IMSCOPE cmake option, the #define was unused and this way
code does not have to be recompiled when imscope enable state changes.
2024-09-30 20:34:09 +02:00
Robert Schmidt 51bb3d25cf Merge remote-tracking branch 'origin/small_fixes_for_5G_NR' into integration_2024_w39 2024-09-29 22:09:26 +02:00
Jaroslava Fiedlerova 2ba7d59dfe Merge remote-tracking branch 'origin/remove-includes' into integration_2024_w39 2024-09-27 17:12:39 +02:00
Thomas Schlichter 60c2b3fe00 nrscope: fix label on gNB scope - it is NR not LTE ;-) 2024-09-27 17:07:20 +02:00
Jaroslava Fiedlerova e0800d4225 Merge remote-tracking branch 'origin/fix_log2_approx' into integration_2024_w39 2024-09-27 11:16:22 +02:00
Bartosz Podrygajlo 23cc049157 Remove unnecessary includes in rfsimulator 2024-09-26 14:59:14 +02:00
Thomas Schlichter 4b679c0793 add test for log2_approx64() 2024-09-23 17:58:05 +02:00
Thomas Schlichter 58a2966499 add test for log2_approx() 2024-09-23 17:58:05 +02:00
Thomas Schlichter 4e09353b43 use SIMDE intrinsic to count leading zeroes and make rounding exact 2024-09-23 17:58:03 +02:00
francescomani d304865489 fix for log2_approx to approximate to the nearest neighbor, instead of ceil 2024-09-23 17:56:50 +02:00
Jaroslava Fiedlerova 0dae0551eb Merge remote-tracking branch 'origin/ci-remove-unused-code' into integration_2024_w38b 2024-09-23 17:26:14 +02:00
Robert Schmidt ec2afa22b1 Fix: egrep is obsolescent, use grep -E
See e.g., egrep(1) [https://linux.die.net/man/1/egrep]:

> two variant programs egrep and fgrep are available. egrep is the same
> as grep -E. fgrep is the same as grep -F. Direct invocation as either
> egrep or fgrep is deprecated

See also the rationale of the POSIX description of grep
(https://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html):

> This grep has been enhanced in an upwards-compatible way to provide
> the exact functionality of the historical egrep and fgrep commands as
> well. It was the clear intention of the standard developers to
> consolidate the three greps into a single command.

Closes: #839
2024-09-23 12:19:49 +02:00
Jaroslava Fiedlerova d017afaded Merge remote-tracking branch 'origin/NR_UE_pusch_optimization' into integration_2024_w38b 2024-09-20 16:43:31 +02:00
Sakthivel Velumani 321a20ea78 Fix vector mult function for out of bound access 2024-09-19 09:56:25 -04:00
Laurent THOMAS 31f770978c option q is to set cpu measurements but it is hardcoded in some places 2024-09-18 16:02:14 +02:00
Bartosz Podrygajlo e1879c07bc Fix segfault when attempting to use unsupported scope types in nrscope
Do not attempt to copy scope types >= MAX_SCOPE_TYPES in nrscope as it does
not support them at this point.
2024-09-05 15:21:07 +02:00
Bartosz Podrygajlo 8eb9e3d902 Fix pdschRxdataF_comp phy scope data source
pdschRxdataF_comp data source was handled incorrectly. Each symbol entire slot data was copied. This
caused pdschRxdataF_comp to mostly contain zeros. The call to UEscopeCopy was moved from symbol loop
into last symbol processing. In case imscope is used padding and unused REs are not copied to the
sink.

Added checks inside scope functions to ensure correct functionality.
2024-09-05 15:19:37 +02:00
Guido Casati 70dd524e2b Define softmodem bits in a separate header for either C and C++ 2024-09-05 15:19:26 +02:00
Bartosz Podrygajlo 6dcd3ae8c4 Use --imscope flag to enable/disable imscope 2024-09-05 15:19:09 +02:00
Bartosz Podrygajlo bdc6df8c42 NR UE & gNB imscope.
A new phy scope based on ImGui and ImPlot. This scope uses a different concurrency model than previous
scopes.

The PHY thread writing the data first checks if the data is ready to be written. If its not, nothing is copied.
The GUI thread reads data if available and marks it ready to write. This makes sure that the PHY threads are not
busy copying data that would never be displayed.

Some of the scopes also have a freeze functionality that further limit the amount of data that needs to be copied
from PHY threads. If a scope is "frozen" it still allows the user to explore the data using plots zoom/pan functions
but doesn't cause PHY threads to perform extra writes on the displayed data.

A compile option was added to enable/disable the scope. Use cmake -DENABLE_IMSCOPE=ON to enable the scope.

Update CXX standard to 17; it is required by some libraries (e.g., dear imgui). The oldest gcc version in
use by a distribution supported is Ubuntu 20, which has gcc 9.4 with c++17 support.
2024-09-05 15:19:00 +02:00
Sakthivel Velumani 26b3fcca3b Remove SIMD operation for DMRS amplitude scaling
There was concern that someone in the future might call the function
with the wrong inputs. So, based on the discussion on the MR below
https://gitlab.eurecom.fr/oai/openairinterface5g/-/merge_requests/2916#note_132506
the SIMD for multiplying DMRS vector with amplitude is removed and is
now done with plain C (no SIMD).

The execution time for the function dmrs_amp_mult() in this commit is
10x higher that the previous commit.
2024-09-03 09:21:29 +02:00
Sakthivel Velumani 393363e253 Refactor PUSCH RE mapping
RE mapping time is reduced by 10x. Functions are made generic to be
later reused for PDSCH RE mapping at gNB.
2024-09-03 09:21:29 +02:00
Robert Schmidt d97249d2cf Merge remote-tracking branch 'origin/refactor_rm_double_define' into integration_2024_w35 2024-09-02 11:48:30 +02:00