毫米波与太赫兹:使用matlab RF propagation进行电波仿真可视化

2023-11-03

使用Matlab RF propagation 工具箱进行电波传播的仿真和可视化显示,并对结果进行分析。

仿真场景自定义;天线参数自定义;频率选择移动通信典型频段,或未来移动通信规划频段。

课程设计报告参考标准学术期刊论文格式.

设计代码1如下:(一步一步的运行,否则得不了四个图)

%载入地图:导入可视化建组模型数据(模拟密集城市环境中的小区场景)
viewer = siteviewer("Buildings","canarywharf.osm","Basemap","topographic");

%定义发射站点
% 经度:51.50375
% 维度:-0.01843
% 基站天线高度:20m
% 基站天线电压:5V
% 工作频率28e9
tx = txsite("Name","小型发射基站", ...
    "Latitude",51.50375, ...
    "Longitude",-0.01843, ...
    "AntennaHeight",20, ...
    "TransmitterPower",5, ...
    "TransmitterFrequency",28e9);
show(tx)

%----------------------单次反射-------------------%
%1
%定义视线传播覆盖区域
%使用SBR对光线进行追踪
%默认最大反射次数为:0
%设置建筑和地形材料为理想模型(满足理想全反射)
rtpm = propagationModel("raytracing", ...
    "Method","sbr", ...
    "MaxNumReflections",0, ...
    "BuildingsMaterial","perfect-reflector", ...
    "TerrainMaterial","perfect-reflector");
%设置信号强度
%查看距离基站300米的最大范围的相应覆盖地图
%信号增益:3
%透明度:0.6
coverage(tx,rtpm, ...
    "SignalStrengths",-100:-5, ...
    "MaxRange",300, ...
    "Resolution",3, ...
    "Transparency",0.6)

%定义在非视线位置接收器站点
%经度:51.50216
%维度:-0.01769
%基站高度:5m
rx = rxsite("Name","小型接收基站", ...
    "Latitude",51.50216, ...
    "Longitude",-0.01769, ...
    "AntennaHeight",5);
los(tx,rx)


%设置最大反射次数为:1
%raytrace:设置接受站点tx到接收机站点rx的传播路径,利用光线追踪
rtpm.MaxNumReflections = 1;
clearMap(viewer)
raytrace(tx,rx,rtpm)

%--------------------------多次反射--------------%
%2
%分析信号强度和材料效应
%计算建筑和地形材料为理想模型的完美反射的接受功率
ss = sigstrength(rx,tx,rtpm);
disp("使用完美反射的接收功率: " + ss + " dBm")


%设置建筑和地形材料为真实材料:钢筋混泥土
rtpm.BuildingsMaterial = "concrete";
rtpm.TerrainMaterial = "concrete";
%raytrace:设置接受站点tx到接收机站点rx的传播路径,利用光线追踪
%分析信号强度和材料效应
%计算建筑和地形材料为真实材料:钢筋混泥土的实际反射的接受功率
raytrace(tx,rx,rtpm)
ss = sigstrength(rx,tx,rtpm);
disp("使用混凝土材料的接收功率:" + ss + " dBm")
%考虑天气对信号的损失
rtPlusWeather = ...
    rtpm + propagationModel("gas") + propagationModel("rain");
%raytrace:设置接受站点tx到接收机站点rx的传播路径,利用光线追踪
raytrace(tx,rx,rtPlusWeather)
ss = sigstrength(rx,tx,rtPlusWeather);
%计算在天气损失在信号传播的接受功率
disp("接收功率(包括天气损失): " + ss + " dBm")
%打印最大的反射传播路径:2
%设置天线类型:矮天线
rtPlusWeather.PropagationModels(1).MaxNumReflections = 3;
rtPlusWeather.PropagationModels(1).AngularSeparation = "low";
ss = sigstrength(rx,tx,rtPlusWeather);
disp("具有两个反射路径的接收功率: " + ss + " dBm")
clearMap(viewer)
raytrace(tx,rx,rtPlusWeather)



%使用单反射路径查看覆盖图
%使用配置的传播模型,重新生成包含单反射路径和天气损害的覆盖图。
rtPlusWeather.PropagationModels(1).MaxNumReflections = 4;
clearMap(viewer)

show(tx)
coverageResults = load("coverageResults.mat");
contour(coverageResults.propDataSingleRef, ...
   "Type","power", ...
   "Transparency",0.6)

tx.Antenna = helperM2412PhasedArray(tx.TransmitterFrequency);
tx.AntennaAngle = -90;

clearMap(viewer)
show(rx)
pattern(tx,"Transparency",0.6)
hide(tx)

rtPlusWeather.PropagationModels(1).MaxNumReflections = 1;
ray = raytrace(tx,rx,rtPlusWeather);
disp(ray{1})

aod = ray{1}.AngleOfDeparture;
steeringaz = wrapTo180(aod(1)-tx.AntennaAngle(1));
steeringVector = phased.SteeringVector("SensorArray",tx.Antenna);
sv = steeringVector(tx.TransmitterFrequency,[steeringaz;aod(2)]);
tx.Antenna.Taper = conj(sv);

pattern(tx,"Transparency",0.6)
raytrace(tx,rx,rtPlusWeather);
hide(tx)
    
ss = sigstrength(rx,tx,rtPlusWeather);
disp("Received power with beam steering: " + ss + " dBm")
% coverage(tx,rtPlusWeather, ...
%     "SignalStrengths",-120:-5, ...
%     "MaxRange", 250, ...
%     "Resolution",2, ...
%     "Transparency",0.6)

 运行最后一行代码之后结果截图:

 设计代码2如下:

%载入地图:导入可视化建组模型数据(模拟密集城市环境中的小区场景)
viewer = siteviewer("Buildings","canarywharf.osm","Basemap","topographic");

%定义发射站点
% 经度:51.50375
% 维度:-0.01843
% 基站天线高度:20m
% 基站天线电压:5V
% 工作频率28e9
tx = txsite("Name","小型发射基站", ...
    "Latitude",51.50375, ...
    "Longitude",-0.01843, ...
    "AntennaHeight",20, ...
    "TransmitterPower",5, ...
    "TransmitterFrequency",28e9);
show(tx)

%--------------------------多次反射--------------%
%2
%分析信号强度和材料效应
%计算建筑和地形材料为理想模型的完美反射的接受功率
ss = sigstrength(rx,tx,rtpm);
disp("使用完美反射的接收功率: " + ss + " dBm")
%设置建筑和地形材料为真实材料:钢筋混泥土
rtpm.BuildingsMaterial = "concrete";
rtpm.TerrainMaterial = "concrete";
%raytrace:设置接受站点tx到接收机站点rx的传播路径,利用光线追踪
%分析信号强度和材料效应
%计算建筑和地形材料为真实材料:钢筋混泥土的实际反射的接受功率
raytrace(tx,rx,rtpm)
ss = sigstrength(rx,tx,rtpm);
disp("使用混凝土材料的接收功率:" + ss + " dBm")
%考虑天气对信号的损失
rtPlusWeather = ...
    rtpm + propagationModel("gas") + propagationModel("rain");
%raytrace:设置接受站点tx到接收机站点rx的传播路径,利用光线追踪
raytrace(tx,rx,rtPlusWeather)
ss = sigstrength(rx,tx,rtPlusWeather);
%计算在天气损失在信号传播的接受功率
disp("接收功率(包括天气损失): " + ss + " dBm")
%打印最大的反射传播路径:2
%设置天线类型:矮天线
rtPlusWeather.PropagationModels(1).MaxNumReflections = 3;
rtPlusWeather.PropagationModels(1).AngularSeparation = "low";
ss = sigstrength(rx,tx,rtPlusWeather);
disp("具有两个反射路径的接收功率: " + ss + " dBm")
clearMap(viewer)
raytrace(tx,rx,rtPlusWeather)


%使用单反射路径查看覆盖图
%使用配置的传播模型,重新生成包含单反射路径和天气损害的覆盖图。
rtPlusWeather.PropagationModels(1).MaxNumReflections = 1;
clearMap(viewer)

show(tx)
coverageResults = load("coverageResults.mat");
contour(coverageResults.propDataSingleRef, ...
    "Type","power", ...
    "Transparency",0.6)

运行最后一行代码之后结果截图:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

毫米波与太赫兹:使用matlab RF propagation进行电波仿真可视化 的相关文章

  • 如何在 MATLAB 的 for 循环中读取多个图像?

    我已将结果分段放在一个文件夹中 这些需要在 for 循环中读取并在循环中进一步处理 我尝试阅读如下 for i 1 10 file name dir strcat C Users adminp Desktop dinosaurs im im
  • Matlab-如何在曲线上绘制切线

    我在 matlab 中绘制了一个图表 plot x y 我的图表有不同的斜率 我如何在每个斜率上绘制切线并计算斜率的系数 如果您没有用于绘制点的显式函数 您可以使用有限差分 http en wikipedia org wiki Finite
  • 如何将条形图的 XtickLabels 向左移动?

    我目前正在尝试创建频率直方图 为此 我必须创建一个条形图 条形图之间没有空格 然而 这集中于XTickLabels在酒吧的中间 由于它是一个直方图 我希望数值位于每个条形之间的线上 以便它可以直观地指示间隔 本质上 我需要将所有刻度标签移至
  • FFT 的功率谱密度

    我有一段代码可以获取部分信号的 FFT 现在我正在尝试获取 PSD Fs 44100 cj sqrt 1 T 6 dt 1 Fs left test 1 right test 2 time 45 interval 636 w range t
  • Matlab:掩码/创建一个知道其原点且具有一定半径的圆形 roi

    只是一个简单的问题 我有一张图像 并且提取了某个点 特征 我知道每个帧中该点的坐标 说 x1 和 y1 我需要一个圆形 ROI 形式 该点在图像上具有我选择的半径 我尝试了 impoly 和 roipoly 当我知道图像中的要点时 不知道如
  • 在 MATLAB 中检索 spfun、cellfun、arrayfun 等中的元素索引

    有什么办法可以找回index调用函数的元素的cellfun arrayfun or spfun行为 即检索函数范围内元素的索引 为了简单起见 假设我有以下玩具示例 S spdiags 1 4 0 4 4 f spfun x 2 x S 它构
  • Matlab:如何显示数组的“真实”值?

    我有一个在脚本中计算的向量 计算后 我将值显示到命令窗口 显示如下 finalResults 1 0e 05 0 0001 0 0 0005 0 0002 0 0001 0 0027 0 0033 0 0001 0 0000 0 0000
  • 计算数组中接下来的 n 个元素的乘积

    我想计算下一个的乘积n矩阵的相邻元素 号码n要相乘的元素数应在函数的输入中给出 例如 对于此输入 我应该从第一个开始计算每 3 个连续元素的乘积 p ind max product 1 2 2 1 3 1 3 这给出了 1 2 2 2 2
  • MATLAB中如何画水平线和垂直线?

    我目前正在尝试在 MATLAB 中绘制简单的垂直线和水平线 例如 我想绘制线 y 245 我该怎么做呢 MATLAB 根据您提供的向量逐点进行绘图 因此 要创建一条水平线 您需要改变x同时保持y对于垂直线恒定 反之亦然 xh 0 10 yh
  • Matlab中转换数据类型的有效方法(double vs. im2double)

    我想将真彩色图像转换为双精度 据我所知有两种方法可以做到这一点 double rgb img im2double rgb img 哪一种效率更高 谢谢 他们都是不同的 im2double将图像的范围转换为0 1如果数据类型是uint8 or
  • MATLAB 中最有效的矩阵求逆

    在 MATLAB 中计算某个方阵 A 的逆矩阵时 使用 Ai inv A should be the same as Ai A 1 MATLAB 通常会通知我这不是最有效的求逆方法 那么什么是更有效率的呢 如果我有一个方程系统 可能会使用
  • 如何使用matlab生成不同频率的正弦波?

    对于我的项目 我需要使用 matlab 生成一个正弦波 它有 100 000 个样本 并且频率在每 10 000 个样本后随机变化 采样率和频率可以根据方便而定 matlab中有没有函数可以生成这个 好的另一个例子 生成 5 个随机频率 r
  • 如何在 Matlab 中使用谷歌翻译?

    我正在编写一个程序 使用 Matlab 列出电影字幕文件中的所有唯一单词 现在我有一个独特的单词列表 我想将其翻译成我的语言并在观看电影之前了解其含义 有谁知道如何在 Matlab 中使用 Google Translate 以便完成我的脚本
  • 使用mat2cell将MxN的矩阵划分为1xN大小的M矩阵

    我有一个大小为 MxN 的矩阵 比方说 1867x3 1867 行和 3 列 我想将其分成 1867 个大小为 1x3 的单元格 我使用了mat2cell X 1 1866 这里X是矩阵 1867x3 结果给出了两个单元格 一个单元格的大小
  • Matlab 和 Python 中的优化算法(dog-leg trust-region)

    我正在尝试使用 Matlab 和 Python 中的狗腿信赖域算法求解一组非线性方程 在Matlab中有fsolve https www mathworks com help optim ug fsolve html其中此算法是默认算法 而
  • Matlab:如何更改矩阵的存储方式?从 1x1x3 到 1x3?

    我目前有 val 1 0 7216 val 2 0 7216 val 3 0 7216 但我想要 0 7216 0 716 0 721 我可以做什么样的操作来做到这一点 The reshape函数将在这里解决问题 Arrange the e
  • 黑白随机着色的六角格子

    我正在尝试绘制一个 10 000 x 10 000 随机半黑半白的六边形格子 我不知道如何将该格子的六边形随机填充为黑色和白色 这是我真正想要从这段代码中得到的示例 但我无法做到 https i stack imgur com RkdCw
  • MATLAB - 冲浪图数据结构

    我用两种不同的方法进行了计算 对于这些计算 我改变了 2 个参数 x 和 y 最后 我计算了每种变体的两种方法之间的 误差 现在我想根据结果创建 3D 曲面图 x gt on x axis y gt on y axis Error gt o
  • 如何在文本集中创建所有字符组合?

    例如 我有这样的文本集 第 1 栏 a b 第 2 栏 l m n 第 3 栏 v w x y 我想将它们组合起来以获得如下输出 alv alw alx aly amv amw amx amy 这将输出 24 种文本组合 如果我只使用前两列
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL

随机推荐

  • WEB-小项目(关键词)

    数据库脚本 SQLyog Ultimate v12 09 64 bit MySQL 5 7 27 log 40101 SET NAMES utf8 create table keyword copy id int 32 name varch
  • 一,sdio总线简介

    sdio总线简介 一 简要 二 SDIO总线物理电气特性 1 card电压的供电范围 2 信号pin脚定义 3 Bus Speed模式 三 SDIO Card类型分类 四 SDIO Card 传输模式 一 简要 SDIO协议是由SD协议演化
  • Python爬虫爬取快代理上的免费代理

    目标网站 https www kuaidaili com free 对目标网站进行分析 发现点击下一页时 url的变化只有最后的数字在变化 因此用一个循环来遍历所有的url 定义一个函数来获取网页信息 最后用Excel表格来存储
  • 【路由带参跳转】解决带参跳转到别的页面然后刷新页面参数就会丢失问题

    使用vue做了一个路由带参跳转页面 点击然后触发handleEditDevice函数 进行路由跳转 代码如下 跳转并传参 设备详情按钮 handleEditDevice item item item 0 null item 完成页面跳转 待
  • 【2023华为OD机试题】分奖金

    题目描述 公司老板做了一笔大生意 想要给每位员工分配一些奖金 想通过游戏的方式来决定每个人分多少钱 按照员工的工号顺序 每个人随机抽取一个数字 按照工号的顺序往后排列 遇到第一个数字比自己数字大的 那么 前面的员工就可以获得 距离 数字差值
  • 阶梯网络Ladder Network

    在这里主要讲一下用于半监督学习的ladder network 网上别人分享的资料太少了 也不知道对不对 下面内容请带着怀疑的角度阅读 如有问题 欢迎指出 在讲半监督学习之前 先简单聊聊监督学习 在监督学习中 我们将原始数据通过简单的预处理
  • VSCode安装及环境配置详细教程(windows版本)

    目录 安装VSCode 安装Python 检查环境变量 检查Python是否能运行 VSCode环境配置 切换成简体中文 添加Python插件 编写代码运行 请先在官网下载Python和VSCode安装包 保存至本地 Python官网 ht
  • 触摸屏上报触摸坐标错误的原因分析

    触摸屏的坐标分布 常规情况下 产品正常摆放视角下 TP左上角为原点位 如果不确定需要拿到工程结构图纸 按照图纸标注设定 特殊情况下 有些产品的显示屏因为显示驱动的影响 产品正常摆放时LCM的原点位不在左上角 这个需要和方案确认 以上两种情况
  • 文档翻译软件哪个好?来一起探讨一下吧

    有近十个文档需要翻译 小问题 我有秘笈可以快速搞定它 作为打工人的你 还在自己辛辛苦苦地翻译文档中的外语内容吗 这样多费时啊 这种吃力不讨好的行为可不推荐 来跟我学学文档翻译技巧吧 那就是借助文档翻译软件来进行翻译操作 如果不清楚文档翻译软
  • 接口还在吗?

    突然感觉自己老了 连程序也写不动的惰性 但是 人不能被惰性打倒 人是被自己打倒的 如果一个人不能response自己的行为 那么他将什么都不能request到 人们现在已经把编程的经历都转义到接口上来了 但是 我们作为一个程序员 应该是能适
  • PyCharm单独安装PyKDL

    用于在Ubuntu下Pycharm独立使用PyKDL 不需要ros 使用Pycharm的安装器安装的PyKDL是不能使用的 引用会报错 1 把安装器安装的给卸载掉 2 去GitHub下载代码 Git下载 还有一个类似的代码hrl kdl 不
  • 服务器任务管理器详细信息,服务器任务管理器数字进程

    服务器任务管理器数字进程 内容精选 换一换 针对Windows 2012操作系统 由于安装应用系统会用到 net framework 3 5 而2012自带的 net framework 4 5版本需要卸载 但是卸载之后可能会遇到黑屏 无法
  • mysql按照一个字段分组查询_SQL如何查询一张表的所有字段并按其中一个字段进行分组...

    展开全部 1 创建测试表 create table test group cols id number value varchar2 20 remark varchar2 20 2 插入测试数据 insert into test group
  • java命令大全

    转载地址 http www cnblogs com langtianya p 4208135 html JAVA命令大全 1 java exe 运行java程序 这个相信每一位用Java的人知道了 2 javac exe 编译的Java程序
  • QT-如何使用智能指针

    QT框架提供了三种智能指针 QSharedPointer QWeakPointer和QScopedPointer 这些智能指针可以有效地管理QT对象的内存 避免内存泄漏的问题 同时还能提高代码的可读性和可维护性 QSharedPointer
  • stata的一些操作命令

    一 面板数据填充 面板数据填充 设置好第一年和最后一年 然后用如下命令 sort id year 然后按照id和year排序 xtset id year 设定面板样本和时间变量 ssc install tsfill replace 安装时间
  • 时下火热的 NFT 究竟有什么用?

    如今 NFT 正在以一股十分火热的趋势开始席卷全球 无论是个人还是企业 都开始关注起了这个由区块链技术所衍生出来的全新数字生态 我国为了防止 NFT出现投机 炒作等风险 对于 NFT 二级市场有着严格的监管和限制 使得整个市场并不如国外那般
  • AndroidKiller介绍与使用

    往期推荐 什么是虚拟机 虚拟机有那几种 APK安装流程及详细步骤 APK打包流程 APK文件结构 Android开发之数据储存 APK属于压缩文件 不可以通过直接解压的方式来获取明文内容 需要借助AndroidKiller这类的第三方的工具
  • 关卡9-面向对象三大特征

    封装概述 是面向对象三大特征之一 封装 继承 多态 是面向对象编程语言对客观世界的模拟 客观世界里成员变量都是隐藏在对象内部的 外界是无法直接操作的 封装原则 将类的某些信息隐藏在类内部 不允许外部程序直接访问 而是通过该类提供的方法来实现
  • 毫米波与太赫兹:使用matlab RF propagation进行电波仿真可视化

    使用Matlab RF propagation 工具箱进行电波传播的仿真和可视化显示 并对结果进行分析 仿真场景自定义 天线参数自定义 频率选择移动通信典型频段 或未来移动通信规划频段 课程设计报告参考标准学术期刊论文格式 设计代码1如下