LTE用户文档 (如有不当的地方,欢迎指正!) 6 仿真输出 ns-3 LTE 模型当前支持输出 PHY, MAC, RLC 和 PDCP 级别的 Key Performance Indicators (KPIs,关键性能指标)文件.可以使用以下方式使能输出:  Ptr<LteHelper> lteHelper = CreateObject<LteHelper> (); // 这里配置所有的仿真场景... lteHelper->EnablePhyTraces ();lteHe…
LTE用户文档 (如有不当的地方,欢迎指正!)     21 Examples Programs(示例程序)   路径 src/lte/examples/ 包含一些示例仿真程序,这些例子表明如何仿真不同的LTE场景.     22 Reference scenarios(参考场景)   文献中可以找到大量的参考仿真场景.下面我们列出了其中一部分:   [TR36814] 的 A.2 节提到的系统仿真场景. dual stripe model [R4-092042], 在示例程序  src/lte…
LTE用户文档 (如有不当的地方,欢迎指正!) 18 X2-based handover   正如 3GPP 定义的,切换是改变用户服务小区的连接方式的过程.这一过程中涉及的两个基站通常称为源基站和目标基站.   为了使能仿真中 X2 切换的执行,有三个条件必须要满足.首先,仿真中必须使能 EPC(见 Evolved Packet Core (EPC) ).   其次,两个基站之间必须配置 X2 接口,这一点必须在仿真程序中明确交待: lteHelper->AddX2Interface (enb…
LTE用户文档 (如有不当的地方,欢迎指正!) 15 Using the EPC with emulation mode(使用仿真方式的 EPC)     在上一节中,我们使用点对点链路连接基站和服务网关 (S1-U 接口) 以及在基站间连接 (X2-U 和 X2-C 接口). LTE 模块支持使用仿真(emulation )链路而不是点对点链路.这只是通过下列代码将创建 LteHelper 替换为 EpcHelper 来实现的:   Ptr<LteHelper> lteHelper = Cr…
LTE用户文档 (如有不当的地方,欢迎指正!) 12 Radio Environment Maps   通过使用类 RadioEnvironmentMapHelper  是可能输出文件 Radio Environment Map (REM,无线环境地图) 的,例如一个统一的 2D 网格值,表示下行基站(在每个点有最强的信号)的信噪比,可以指定 REM 是否应生成数据或控制信道. 并且,用户可以设置 RbId, 它表示 REM 将生成. 默认情况下,RbId 为 -1 ,表示 REM 将生成来自所…
LTE用户文档 (如有不当的地方,欢迎指正!) 1.背景 假定读者已经熟悉 ns-3 simulator ,能运行一般的仿真程序.如果不是的话,强烈推荐读者参考 [ns3tutorial].   2. 使用概述 ns-3 LTE 模块是一个软件库,允许仿真LTE网络,一些情况下还可以仿真核心网 Evolved Packet Core (EPC).仿真过程通常涉及以下几个步骤: 定义仿真场景. 编写程序,重建期望的仿真场景拓扑/架构,通过使用 ns3::LteHelper API(定义在 src/…
LTE用户文档 (如有不当的地方,欢迎指正!)   19 Frequency Reuse Algorithms(频率复用算法)   本节我们将描述如何在 LTE 仿真中使用频率复用(FR)算法.共有两种可能的配置方式.第一种方法是“手动”,它需要更多的参数配置,但是允许用户按照自己的需求配置 FR 算法.第二种是更加“自动的”,它非常方便,因为它对于每种 FR 算法都是一样的,因此用户可以通过修改 FR 算法的类型就能非常快速地切换 FR 算法 .“自动”方法的一个缺点是每种算法只有有限的配置,…
LTE用户文档 (如有不当的地方,欢迎指正!) 17 Configure UE measurements   仿真中激活的用户测量配置取决于所选的 “consumers”,例如切换算法.用户可能需要添加自己的配置,有以下几种方式:   在基站 RRC 实体中直接配置: 配置现有的切换算法:并 开发一种新的切换算法.   本节只讲述第一种方法.第二种方法在章节 Automatic handover trigger 中,第三种方法在设计文档的 Handover algorithm 中有讲.   在基…
LTE用户文档 (如有不当的地方,欢迎指正!) 16 Network Attachment(网络连接)   正如前面章节 Basic simulation program 所述,连接用户到基站时通过调用 LteHelper::Attach 函数实现的.   有两种可能的网络连接方式,一种是“手动连接”,另一种方式更加“自动”.本节将讲述这两种方式.   16.1 Manual attachment(手动连接) 该方法使用前面提及的 LteHelper::Attach 函数.在早期版本的LTE模块…
LTE用户文档 (如有不当的地方,欢迎指正!) 14 Evolved Packet Core (EPC)   我们现在讲解如何编写一个仿真程序——除了 LTE 无线接入网外,还允许仿真 EPC. EPC 允许使用 IPv4 网络与 LTE 设备连接.换句话说,可以在 LTE 上使用常规的 ns-3 应用和 IPv4  sockets ,并且能够把 LTE 网络与仿真中的任何 IPv4 网络相连接.   首先,除了我们已经在 Basic simulation program 中介绍过的 LteHe…
LTE用户文档 (如有不当的地方,欢迎指正!) 9 PHY Error Model   物理误差模型包含数据误差模型和下行控制误差模型,两者默认为激活.可以使用 ns-3 属性系统去激活,具体为:   Config::SetDefault ("ns3::LteSpectrumPhy::CtrlErrorModelEnabled", BooleanValue (false)); Config::SetDefault ("ns3::LteSpectrumPhy::DataErro…
LTE用户文档 (如有不当的地方,欢迎指正!) 8 Mobility Model with Buildings   我们现在通过例子解释如何在 ns-3 仿真程序中使用 buildings 模型(特别是 MobilityBuildingInfo  和 BuildingPropagationModel 类) 来设置 LTE 仿真场景(包括建筑物和室内节点). 1. 包含的头文件: #include <ns3/mobility-building-info.h> #include <ns3/b…
LTE用户文档 (如有不当的地方,欢迎指正!) 7 使用 Fading Trace   本节描述如何在 LTE 仿真中使用 fading traces .   (1)生成 Fading Traces    通过使用专用的 matlab 脚本 (/lte/model/fading-traces/fading-trace-generator.m)提供的代码生成 fading traces .该脚本包含典型的 taps 配置,用于 3 种 3GPP 场景(例如,行人.车辆和城市,定义在 Annex B…
LTE用户文档 (如有不当的地方,欢迎指正!) 20 Uplink Power Control(上行功率控制)   上行功率控制功能默认是开启的.用户可以通过设置布尔属性 ns3::LteUePhy::EnableUplinkPowerControl 为真来关闭该功能.   用户可通过设置布尔属性 ns3::LteUePowerControl::ClosedLoop 以在 Open Loop Power Control(开环功率控制)和 Closed Loop Power Control (闭环…
LTE用户文档 (如有不当的地方,欢迎指正!) 5 配置 LTE MAC 调度器   这里有几种 LTE MAC 调度器用户可以选择.使用下面的代码定义调度器的类型: Ptr<LteHelper> lteHelper = CreateObject<LteHelper> (); lteHelper->SetSchedulerType ("ns3::FdMtFfMacScheduler"); // FD-MT scheduler lteHelper->S…
LTE Manual ——Logging(翻译) (本文为个人学习笔记,如有不当的地方,欢迎指正!) 9 Logging   ns-3 日志功能可以用于监测或调试仿真程序的进展.日志输出可以通过 main()  程序中的语句或通过使用 NS_LOG 环境变量来启用.   日志语句并没有编译成 ns-3 的优化版本(Logging statements are not compiled into optimized builds of ns-3).为了使用日志,必须 build  ns-3  的默…
Testing Documentation 翻译 (如有不当的地方,欢迎指正!)     1 概述   为了测试和验证 ns-3 LTE 模块,文档提供了几个 test suites (集成在 ns-3 测试框架中).为了运行它们,可以按照以下方式配置仿真器的 buid:   $ ./waf configure --enable-tests --enable-modules=lte --enable-examples $ ./test.py   上述代码将不仅运行 LTE 模块的 test su…
LTE Manual ——Logging(翻译) (本文为个人学习笔记,如有不当的地方,欢迎指正!) 1.17.3 Testing framework(测试框架)   ns-3 包含一个仿真核心引擎.一系列模块.例子程序和测试.随着时间的推移,一些新的贡献者贡献出模型.测试和例子.  Python 测试程序 test.py 作为测试执行管理者:test.py 运行测试代码和例子来寻找 regressions,输出结果有很多种形式,管理代码覆盖分析工具. 此外,我们对  buildslaves  …
①仿真精度越高,仿真效率月底. 仿真时采用`timescale 1ns/1ns比采用1ns/100ps的仿真效率高 simulation was two billion ns. ②clock generation coding tips (from<A BFM Simulation Strategy for Verilog>) ②减少层次结构 在设计中层次结构越少,仿真速度越快,这是因为参数在module中通过端口传递会消耗仿真器的时间 ③进程越少,仿真效率越高 代码中出现的进程越少,仿真越快…
格式化输出io:format是我接触Erlang使用的第一个库函数(io:format("Hello World")),随着学习的深入,它也是我debug优先选择最简单直接的工具. 不过它除了简单的输出外,还有很多进阶用法.甚至通过它,你就可以在命令行画出精艳的图表.比如:我在Visualize Erlang/Elixir Nodes On The Command Line observer_cli中绘制的与htop类似图表. 同时这个API的选项特别多,却又非常好用,你完全可以不必了…
The environment settings are as follows: 1. ubuntu 14.04 , linux kernel: linux-lts-xenial-4.4.0 2. module :  Quectel EC20-CE-TE-A 在linux中增加usb驱动的时候,需要修改linux代码,但是ubuntu的源码是不完全的,所以需要去官网下载源码,修改完了之后编译成模块的形式,更新. 下载源码命令如下: sudo apt-get source linux-image-…
Transformer 目录 Transformer 1.理论 1.1 Model Structure 1.2 Multi-Head Attention & Scaled Dot-Product Attention 2.实验 2.1 束搜索 2.2 Issue 1.理论 1.1 Model Structure 1.2 Multi-Head Attention & Scaled Dot-Product Attention 2.实验 2.1 束搜索 束搜索过程示意图: 2.2 Issue 贪婪…
1. 模块加载方案 commonJS 背景: 历史上,JavaScript 一直没有模块(module)体系, 无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来. 其他语言都有这项功能: Ruby 的require Python 的import 甚至就连 CSS 都有@import 但是 JavaScript 任何这方面的支持都没有,这对开发大型的.复杂的项目形成了巨大障碍 在 ES6 之前,社区制定了一些模块加载方案,最主要的有: CommonJS     用于服务器 AMD …
Module 的加载实现 Module 的加载实现 上一章介绍了模块的语法,本章介绍如何在浏览器和 Node 之中加载 ES6 模块,以及实际开发中经常遇到的一些问题(比如循环加载). 浏览器加载 传统方法 HTML 网页中,浏览器通过<script>标签加载 JavaScript 脚本. <!-- 页面内嵌的脚本 --> <script type="application/javascript"> // module code </scrip…
本文是记录项目过程中遇到的奇巧淫技,如有遗漏或者不足,请大家改正和补充,谢谢. 随着深亚微米技术的普及与发展,leakage功耗在整个功耗中的比重越来越大,比如45nm下,已经占到了60%以上,所以低功耗解决方案应运而生.目前已经有一套标准的低功耗设计流程,流程有CPF(cadence主导)和UPF(synopsys主导)两种,但技术趋势是UPF会大一统,所以本篇将为那些仍旧使用ncverilog而不是vcs仿真工具的苦逼们提供一些参考.目前常用的降低低功耗的方法有四种:多电压域.时钟门控.电源…
背景 Python中有一些基本的名词,很多人,尤其是一些初学者,可能听着就很晕. 此处,简单总结一下,module,library,package之间的大概区别. Python中的module的简介 module,中文翻译为:模块 Python中的module,说白了,就是Python文件,而python文件一般后缀为py,所以就是你的xxx.py而已. library简介 library,中文翻译为:库,也常称为:库文件 之所以此处不说是Python中的library,那是因为,本身libra…
Module 的加载实现 上一章介绍了模块的语法,本章介绍如何在浏览器和 Node 之中加载 ES6 模块,以及实际开发中经常遇到的一些问题(比如循环加载). 浏览器加载 传统方法 HTML 网页中,浏览器通过<script>标签加载 JavaScript 脚本. <!-- 页面内嵌的脚本 --> <script type="application/javascript"> // module code </script> <!--…
浏览器加载 传统方法 HTML 网页中,浏览器通过<script>标签加载 JavaScript 脚本. <!-- 页面内嵌的脚本 --> <script type="application/javascript"> // module code </script> <!-- 外部脚本 --> <script type="application/javascript" src="path/t…
IOS Translation Tool(IOS国际化翻译工具) 介绍 当IOS项目国际化的时候,手工去翻译每一个字符串是一件非常痛苦的事情.尤其是当项目中存在N多种语言.而且又很难保证,手工翻译的准确性.所以写了一个Python的翻译脚本来做这个事情. 使用说明 1.在setting.ini中进行配置. NEEDTRANSLATION 为要翻译的语种 SOURCESPATH 为项目源文件目录 en- 为具体翻译语种的配置.aim是翻译好的文件的目标路径, dic是字典文件路径,needtr是还…
在node中,需要记住,在使用exports和module.exports的时候,实际输出的是module.exports. exports指向module.exports,是module.exports的引用,所以,当使用 exports.a = x 的时候,通过引用关系,造成了module.exports.a = x.当使用 exports = x 的时候,造成了exports不再指向module.exports,所以,仅改变了exports,并没有改变module.exports,也就并没…