• LTE Module User Documentation(翻译7)——无线环境地图(REM)、AMC 模型 和 CQI 计算


    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 (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 ();
    通过配置  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 ($1):($2):(10*log10($4)) with image
    例如,这是根据示例程序  lena-dual-stripe 获得的一个 REM ,表示一个3 扇区的 LTE 宏小区以同信道部署,一些住宅家庭小区随机部署在公寓的 2 个街区中。
     
    _images/lena-dual-stripe.png
     
    注意, 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

  • 相关阅读:
    php7下安装event扩展
    ReactPHP── PHP版的Node.js(转)
    如何将python中的List转化成dictionary
    python3中的zip函数(转)
    python requests的content和text方法的区别(转)
    解决python3 UnicodeEncodeError: 'gbk' codec can't encode character 'xXX' in position XX(转)
    Python语言特性之3:@staticmethod和@classmethod
    Linux 按时间批量删除文件(删除N天前文件)
    简述 OAuth 2.0 的运作流程(转)
    基于jQuery8款超赞的评分插件
  • 原文地址:https://www.cnblogs.com/alice123/p/5500828.html
Copyright © 2020-2023  润新知