LTE用户文档

(如有不当的地方,欢迎指正!)

12 Radio Environment Maps

 
通过使用类 RadioEnvironmentMapHelper  是可能输出文件 Radio Environment Map (REM,无线环境地图) 的,例如一个统一的 2D 网格值,表示下行基站(在每个点有最强的信号)的信噪比,可以指定 REM 是否应生成数据或控制信道。 并且,用户可以设置 RbId, 它表示 REM 将生成。 默认情况下,RbId 为 -1 ,表示 REM 将生成来自所有 RBs 的平均信噪比。
 
为了实现这一点,你只需在你的仿真程序接近尾端时添加下列代码,刚好在调用 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 ());
remHelper->SetAttribute ("YMin", DoubleValue (-300.0));
remHelper->SetAttribute ("YMax", DoubleValue (300.0));
remHelper->SetAttribute ("YRes", UintegerValue ());
remHelper->SetAttribute ("Z", DoubleValue (0.0));
remHelper->SetAttribute ("UseDataChannel", BooleanValue (true));
remHelper->SetAttribute ("RbId", IntegerValue ());
remHelper->Install ();
通过配置  RadioEnvironmentMapHelper  对象的属性,你可以调整生成的 REM 参数。注意,每个  RadioEnvironmentMapHelper  实例只能生成一个 REM ;如果你想生成更多的 REMs,你需要为每个 REM 创建单独的实例。 
 
注意,REM 的生成是非常苛刻的,特别的:
 
  • 运行时的内存消耗几乎是 5KB 每像素。例如,一个具有 500x500 分辨率的 REM 大概需要 1.25 GB 内存,一个具有 1000x1000 分辨率的 REM 大概需要 5 GB 内存(对于常规的 PC 来说太大了) 。为了克服这一点,REM的生成需要连续的步骤,每一步至多估计的像素数目由属性  RadioEnvironmentMapHelper::MaxPointsPerIteration 的值来确定。
  • 如果你在仿真开始时生成一个REM,执行剩余的仿真就会慢下速度。如果你想生成一个程序的 REM,并使用同一程序获取仿真结果,推荐添加命令行开关,它要么生成 REM,要么运行完整的仿真。为了实现这一点,注意,有一个属性 RadioEnvironmentMapHelper::StopWhenDone(default: true)会在生成 REM 后强制仿真停止。
 
REM 以下列格式存储在一个 ASCII 文件中:
 
  • column 1 为 x 坐标
  • column 2 为 y 坐标
  • column 3 为 z 坐标
  • column 4 为 SINR in linear units
 
绘制 REM 的最小 gnuplot 脚本:
set view map;
set xlabel "X"
set ylabel "Y"
set cblabel "SINR (dB)"
unset key
plot "rem.out" using ($):($):(*log10($)) with image
例如,这是根据示例程序  lena-dual-stripe 获得的一个 REM ,表示一个3 扇区的 LTE 宏小区以同信道部署,一些住宅家庭小区随机部署在公寓的 2 个街区中。
 
 
注意, lena-dual-stripe 示例程序也会生成 gnuplot-compatible 输出文件,包含用户与基站节点以及建筑物的位置信息,分别为文件 ues.txt、 enbs.txt  和 buildings.txt 。使用 gnuplot 时,这些可以很容易包含在内。例如,假定你的 gnuplot 脚本(例如上面描述的最小 gunplot 脚本)保存为  my_plot_script  ,运行下列命令会在 REM 顶端画出用户、 基站和建筑物的位置:
 
gnuplot -p enbs.txt ues.txt buildings.txt my_plot_script
 
 
 
 

13 AMC Model and CQI Calculation( AMC 模型和 CQI 计算)

 
对于 MCSs 的选择和相应 CQIs 的生成,仿真器提供两种可能的方法。前者基于 GSoC 模块[Piro2011] ,基于 每个 RB 工作。该模型可以使用 ns3 属性系统激活:
Config::SetDefault ("ns3::LteAmc::AmcModel", EnumValue (LteAmc::PiroEW2010));
 
与此同时,基于物理误差模型的解决方案可以使用下列代码控制:
Config::SetDefault ("ns3::LteAmc::AmcModel", EnumValue (LteAmc::MiErrorModel));
最后, PiroEW2010 AMC 模块所需的效率可以通过  Ber 属性来调整:
Config::SetDefault ("ns3::LteAmc::Ber", DoubleValue (0.00005));
 
 
 

参考文献

https://www.nsnam.org/docs/models/html/lte-user.html

LTE Module User Documentation(翻译7)——无线环境地图(REM)、AMC 模型 和 CQI 计算的更多相关文章

  1. LTE Module User Documentation(翻译8)——核心网(EPC)

    LTE用户文档 (如有不当的地方,欢迎指正!) 14 Evolved Packet Core (EPC)   我们现在讲解如何编写一个仿真程序——除了 LTE 无线接入网外,还允许仿真 EPC. EP ...

  2. LTE Module User Documentation(翻译15)——示例程序、参考场景以及故障检测和调试技巧

    LTE用户文档 (如有不当的地方,欢迎指正!)     21 Examples Programs(示例程序)   路径 src/lte/examples/ 包含一些示例仿真程序,这些例子表明如何仿真不 ...

  3. LTE Module User Documentation(翻译1)——背景、使用概述、基本的仿真程序和配置LTE模型参数

    LTE用户文档 (如有不当的地方,欢迎指正!) 1.背景 假定读者已经熟悉 ns-3 simulator ,能运行一般的仿真程序.如果不是的话,强烈推荐读者参考 [ns3tutorial].   2. ...

  4. LTE Module User Documentation(翻译14)——Uplink Power Control(上行功率控制)

    LTE用户文档 (如有不当的地方,欢迎指正!) 20 Uplink Power Control(上行功率控制)   上行功率控制功能默认是开启的.用户可以通过设置布尔属性 ns3::LteUePhy: ...

  5. LTE Module User Documentation(翻译13)——频率复用算法(Frequency Reuse Algorithms)

    LTE用户文档 (如有不当的地方,欢迎指正!)   19 Frequency Reuse Algorithms(频率复用算法)   本节我们将描述如何在 LTE 仿真中使用频率复用(FR)算法.共有两 ...

  6. LTE Module User Documentation(翻译12)——X2切换(X2-based handover)

    LTE用户文档 (如有不当的地方,欢迎指正!) 18 X2-based handover   正如 3GPP 定义的,切换是改变用户服务小区的连接方式的过程.这一过程中涉及的两个基站通常称为源基站和目 ...

  7. LTE Module User Documentation(翻译11)——配置用户测量

    LTE用户文档 (如有不当的地方,欢迎指正!) 17 Configure UE measurements   仿真中激活的用户测量配置取决于所选的 “consumers”,例如切换算法.用户可能需要添 ...

  8. LTE Module User Documentation(翻译10)——网络连接(Network Attachment)

    LTE用户文档 (如有不当的地方,欢迎指正!) 16 Network Attachment(网络连接)   正如前面章节 Basic simulation program 所述,连接用户到基站时通过调 ...

  9. LTE Module User Documentation(翻译9)——Using the EPC with emulation mode

    LTE用户文档 (如有不当的地方,欢迎指正!) 15 Using the EPC with emulation mode(使用仿真方式的 EPC)     在上一节中,我们使用点对点链路连接基站和服务 ...

随机推荐

  1. 使用 JavaScript 实现栈

    1.栈的基本操作 function Stack() { //使用数组保存栈元素 var items = []; //添加新元素到栈顶(相当于数组的末尾) this.push = function(el ...

  2. 在Win7系统中搭建Web服务器

    局 域网Web服务器的主要功能是实现资源共享,同时借助于局域网服务器访问页面可有效的实现信息的同步.利用Web服务器,我们随时随地都可以将自己的信息 上传到服务器端,让其它关注你的用户能在第一时间内了 ...

  3. CDN缓存那些事

    CDN是什么? 谈到CDN的作用,可以用8年买火车票的经历来形象比喻: 8年前,还没有火车票代售点一说,12306.cn更是无从说起.那时候火车票还只能在火车站的售票大厅购买,而我所住的小县城并不通火 ...

  4. H5页面性能优化

    对于一个产品,性能在用户体验中是必不可缺的一环.性能优化是个长远的事情,联想到导航项目,列出以下性能优化的方案: 一. 基本的代码层面优化: 1:合理使用css 1)正确使用Display属性 Dis ...

  5. OceanBase架构(二)

    http://www.cnblogs.com/LiJianBlog/p/4779990.html OceanBase架构浅析(二)   单点性能 OceanBase架构的优势在于既支持跨行跨表事务,又 ...

  6. Windows Services

    1.本机服务查看:services.msc /s2.服务手动安装(使用sc.exe):sc create MemoryStatus binpath= c:\MyServices\MemoryStatu ...

  7. replace截取字段

    var a = '123:'b = '123:disfkajsdhfjkasdhf'c = b.replace(a, '')"disfkajsdhfjkasdhf"

  8. Linux下使用shell实现上传linux下某个目录下所有文件到ftp

    首先我们需要搞清楚单个文件怎么上传,把这个单文件上传到ftp上的实现命名为一个:upload_to_ftp_command.sh 之后,需要弄清楚怎么实现遍历一个目录下的所有文件的,把这个遍历某个目录 ...

  9. C++函数模板template

    一.  问题: 强类型语言要求我们为所有希望比较的类型都实现一个实例 int min(int a, int b) { return a < b ? a : b; } double min(dou ...

  10. AJAX-----01远古时期的ajax

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...