LTE user documentation (if any, please correct me !)
12 radio environment maps by using the radioenvironmentmaphelper class, the radio environment map (REM) file may be output. For example, a uniform 2D mesh value indicates the downlink base station (with the strongest signal at each point) signal-to-Noise Ratio, you can specify whether REM should generate data or control channels. In addition, you can set rbid, which indicates that REM will be generated. By default, rbid is-1, indicating that REM will generate an average signal-to-noise ratio from all RBS. To achieve this, you only need to add the following code when your simulation program approaches the end, just before calling simulator: Run:
Ptr<RadioEnvironmentMapHelper> remHelper = CreateObject<RadioEnvironmentMapHelper> ();remHelper->SetAttribute ("ChannelPath", StringValue ("/ChannelList/0"));remHelper->SetAttribute ("OutputFile", StringValue ("rem.out"));remHelper->SetAttribute ("XMin", DoubleValue (-400.0));remHelper->SetAttribute ("XMax", DoubleValue (400.0));remHelper->SetAttribute ("XRes", UintegerValue (100));remHelper->SetAttribute ("YMin", DoubleValue (-300.0));remHelper->SetAttribute ("YMax", DoubleValue (300.0));remHelper->SetAttribute ("YRes", UintegerValue (75));remHelper->SetAttribute ("Z", DoubleValue (0.0));remHelper->SetAttribute ("UseDataChannel", BooleanValue (true));remHelper->SetAttribute ("RbId", IntegerValue (10));remHelper->Install ();
By configuring the properties of the radioenvironmentmaphelper object, you can adjust the generated REM parameters. Note that each radioenvironmentmaphelper instance can generate only one REM; if you want to generate more REMs, you need to create a separate instance for each REM. Note that REM generation is extremely demanding, especially:
- The runtime memory consumption is almost 5 kb per pixel. For example, a 500x500 resolution REM requires about 1.25 GB of memory, and a 1000x1000 resolution REM requires about 5 GB of memory (too large for a regular PC ). To overcome this, Rem generation requires continuous steps. The maximum number of pixels in each step is determined by the value of the radioenvironmentmaphelper: maxpointsperiteration attribute.
- If you generate a REM at the beginning of the simulation, the execution of the remaining simulation will slow down. If you want to generate a program's REM and use the same program to obtain the simulation results, we recommend that you add the command line switch, which either generates REM or runs the complete simulation. To achieve this, note that there is a property radioenvironmentmaphelper: stopwhendone (default: True) that forces the simulation to stop after the REM is generated.
The following column formats are stored in an ASCII file:
- Column 1 is X coordinate
- Column 2 is Y coordinate
- Column 3 is the Z coordinate
- Column 4 is SINR in linear units
The smallest gnuplot script for drawing REM:
set view map;set xlabel "X"set ylabel "Y"set cblabel "SINR (dB)"unset keyplot "rem.out" using ($1):($2):(10*log10($4)) with image
For example, this is a rem obtained based on the example program Lena-Dual-stripe, indicating that an LTE macro cell with three sectors is deployed on the same channel, some residential and residential communities are randomly deployed in two blocks of the apartment. Note that the Lena-Dual-stripe sample program will also generate the gnuplot-compatible output file, which contains the location information of the user and the base station node and the building, including the file ues.txt, enbs.txt, and buildings.txt. These can be easily included when gnuplot is used. For example, assume that your gnuplot script (for example, the minimum gunplot script described above) is saved as my_plot_script Run the following command to draw the locations of users, base stations, and buildings on top of REM:
gnuplot -p enbs.txt ues.txt buildings.txt my_plot_script
13 AMC model and CQI Calculation for MCSS selection and corresponding cqis generation, the simulator provides two possible methods. The former is based on the gsoc module [piro2011] and works based on each RB. This model can be activated using the NS3 attribute system:
Config::SetDefault ("ns3::LteAmc::AmcModel", EnumValue (LteAmc::PiroEW2010));
At the same time, the solution based on the physical error model can be controlled using the following code:
Config::SetDefault ("ns3::LteAmc::AmcModel", EnumValue (LteAmc::MiErrorModel));
Finally, the efficiency required by the piroew2010 AMC module can be adjusted by the BER attribute:
Config::SetDefault ("ns3::LteAmc::Ber", DoubleValue (0.00005));
References
Https://www.nsnam.org/docs/models/html/lte-user.html
LTE Module User Documentation-wireless environment map (REM), AMC model, and CQI computing