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. (一)jvm

    jvm,作为java平台通用性的实现基础,重要性不言而喻. 1.开发新项目,写运行脚本时要运用相关知识,确定jvm参数 2.维护老项目,需要对jvm进行性能调优 jvm内存划分: 1.程序计数器 2. ...

  2. 转载自~浮云比翼:Step by Step:Linux C多线程编程入门(基本API及多线程的同步与互斥)

    Step by Step:Linux C多线程编程入门(基本API及多线程的同步与互斥)   介绍:什么是线程,线程的优点是什么 线程在Unix系统下,通常被称为轻量级的进程,线程虽然不是进程,但却可 ...

  3. Oracle 10g ORA-01034: ORACLE not available 错误

    今天在开发系统的时候,刚开始还好好的,突然就遇到了一个错误 ORA-01034: ORACLE not available 感到莫名其妙.然后排查问题 监听器ok,各项服务ok. 最后解决办法如下: ...

  4. 3DTouch开发 (基础)

    一.3DTouch开发准备工作(让模拟器也支持 3DTouch 的解决办法) 需要支持3DTouch的设备,如iPhone6s或以上.iOS9或以上.Xcode7或以上,估计很多和我一样的屌丝还没有i ...

  5. HDFS的概念

    1.数据块 每个磁盘都有默认的数据块大小,这是磁盘进行数据读/写的最小单位.构建于单个磁盘之上的文件系统通过磁盘块来管理该文件系统中的块,该文件系统块的大小可以是磁盘块的整数倍.文件系统快一半为几千字 ...

  6. 在Altium_Designer_PCB_中插入图片的方法

    详细请看PDF: http://files.cnblogs.com/files/BinB-W/在Altium_Designer_PCB_中插入图片的方法.pdf 配套文件: http://files. ...

  7. MacOS10.11的/usr/bin目录不可写后class-dump的处理办法

    许多升级了OSX 10.11的朋友在配置class-dump的时候,会发现书上推荐的class-dump存放目录/usr/bin不再可写,如下所示: 192:~ snakeninny$ touch c ...

  8. LeetCode Shortest Distance from All Buildings

    原题链接在这里:https://leetcode.com/problems/shortest-distance-from-all-buildings/ 题目: You want to build a ...

  9. iOS:融云即时通讯快速集成

    一.介绍 即时通讯在众多社交软件.生活软件以及教育软件中已经是必备的功能了,在当前国内,即时通讯SDK做的比较不错的有那么几家,例如环信SDK.融云SDK...,这两家做的都很不错,各有千秋吧,要是真 ...

  10. storm kafka整合

    public class KafkaTopo { public static void main(String[] args) { String zkRoot = "/kafka-storm ...