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

使用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)

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

毫米波与太赫兹:使用matlab RF propagation进行电波仿真可视化_第1张图片

 设计代码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)

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

毫米波与太赫兹:使用matlab RF propagation进行电波仿真可视化_第2张图片

你可能感兴趣的:(毫米波与太赫兹,matlab,开发语言)