clear all; close all; clc;
stdCoords = 0; % СКО оценки координат UE по осям x, y, z в метрах
% число АЭ в одном измерении
Nel = 10;
% выбор типа антенной решетки
% 1 - планарная АР
% 2 - линейная АР
% 3 - круговая АР (поддержаны только режимы ДН antPattCntrl=0,1,2)
antType = 2;
% массив с номерами режимов ДО
antPattCntrlArr = [0, 1, 2, 3, 3];
win_typeArr = [0, 0, 0, 0, 2];
antPattCntrlCmt = ["Управление максимумом ДН", ...
"Управление максимумом и нулем ДН", ...
"Адаптивное управление ДН", ...
"Управление шириной ДН Гаусса", ...
"Управление шириной прямоугольной ДН"];
antTypeCmt = ["Планарная АР", "Линейная АР", "Круговая АР"];
figNumber = 0;
for aa=1:length(antPattCntrlArr)
c = physconst('LightSpeed');
anim = 0; % 1 - вкл. анимацию работы
f = 30e9; % несущая в диапазоне ММВ, Гц
lamb = c/f; % длина волны, м
da = 0.5*c/f; % расстояние между элементами АР
snrThr = 10; % пороговое отношения сигнал/помеха для отображения карты
useAntUE = 0; % использовать ДН АР на UE (только режим antPattCntrl=0)
% выбор алгоритма управления ДН на NB:
% 0 - управление максимумом ДН
% 1 - управление максимумом и нулем ДН
% 2 - адаптивное управление ДН
% 3 - управление шириной ДН
antPattCntrl = antPattCntrlArr(aa);
% выбор формы ДН для алгоритма управления шириной луча (antPattCntrl = 3)
% 0 - окно Гаусса
% 1 - окно приподнятого косинуса
% 2 - прямоугольное окно
win_type = win_typeArr(aa);
backLobe = 1; % подавление обратного лепестка ДН (логично только для URA)
% отображение ДН в 2D при выставленном флаге анимации (anim = 1)
antPlot2D = 1; % (рекомендуется выставлять в 1)
% Шаг отрисовки ДН при anim = 1
if (antPlot2D == 0)
angStep = 5;
else
angStep = 1;
end
% период процедуры диаграммообразования, с;
Ta = 0; % при Ta = 0 ДН формируется на каждом шаге расчета
antElPos = createAnt(antType, Nel, da); % формирование АР
NelFull = size(antElPos, 1); % полное число АЭ
% выбор сценария:
% 1 - gNB расположены на одной стороне относительно траектории движения UE
% 2 - gNB расположены по разные стороны относительно траектории движения UE
[gNB, ueNode, d, T, v] = createScenarion(1, 0:10);
Nd = length(d);
Nnb = length(gNB); % число gNB
Nue = length(ueNode); % число UE
% число точек расчета (число точек координат траектории UE)
N = length(ueNode(1).Trajectory(:,1));
trajArray = [ueNode.Trajectory]; % массив координат UE [N x 3*Nue]
gNBcoords = [gNB(:).Coords].'; % массив координат gNB [Nnb x 3]
if (anim == 1)
antPattScl = 7.8; % коэфф. масштабирования для отображения ДН gNB
antPattSclUe = 0.6; % коэфф. масштабирования для отображения ДН UE
fg = figure(5); fg.WindowState = 'maximized'; grid on; hold on;
% отображение ДН gNB (параметры см. в antPattPlot)
gNBptrnPlot = gobjects(1, 2);
for i=1:Nnb
[x, y, z] = antPattPlot(antElPos, f, gNB(i), ...
angStep, antPattScl, backLobe, antPlot2D);
if (antPlot2D == 0)
gNBptrnPlot(i) = surf(x+gNB(i).Coords(1),...
y+gNB(i).Coords(2),...
z+gNB(i).Coords(3), 'FaceColor', '#4DBEEE');
else
gNBptrnPlot(i) = plot(x+gNB(i).Coords(1),...
y+gNB(i).Coords(2),'Color', '#4DBEEE');
end
end
% отображение ДН UE (параметры см. в antPattPlot)
if (useAntUE == 1)
ueptrnPlot = gobjects(1, 2);
for i=1:Nue
[x, y, z] = antPattPlot(antElPos, f, ueNode(i), ...
angStep, antPattSclUe, backLobe);
ueptrnPlot(i) = surf(x+ueNode(i).Trajectory(1,1),...
y+ueNode(i).Trajectory(1,2),...
z+ueNode(i).Trajectory(1,3), ...
'FaceColor', '#4DBEEE');
end
end
% отображение положения UE
uePlot = gobjects(1, 2);
ueText = gobjects(1, 2);
for i=1:Nue
uePlot(i) = plot3(ueNode(i).Trajectory(1,1),...
ueNode(i).Trajectory(1,2),...
ueNode(i).Trajectory(1,3), '^', ...
'MarkerSize', 10);
ueText(i) = text(ueNode(i).Trajectory(1,1), ...
ueNode(i).Trajectory(1,2), ...
ueNode(i).Trajectory(1,3), ...
sprintf('UE_{%i}', i), 'FontSize', 14, ...
'Color', '#A2142F');
end
ueDirPlot = gobjects(1, 2);
ueDirPlot2 = gobjects(1, 2);
indSnoi = [2,1];
for i=1:Nnb
% отображение вектора направления от gNB на UE
ueDirPlot(i)=plot3([gNB(i).Coords(1);ueNode(i).Trajectory(1,1)],...
[gNB(i).Coords(2);ueNode(i).Trajectory(1,2)],...
[gNB(i).Coords(3);ueNode(i).Trajectory(1,3)],...
'Color', '#76AB2F');
% отображение вектора направления от gNB на соседней UE
ueDirPlot2(i) = plot3(...
[gNB(i).Coords(1);ueNode(indSnoi(i)).Trajectory(1,1)],...
[gNB(i).Coords(2);ueNode(indSnoi(i)).Trajectory(1,2)],...
[gNB(i).Coords(3);ueNode(indSnoi(i)).Trajectory(1,3)], ...
'Color', '#D95319');
end
ueDirPlot(2).LineStyle = '--';
ueDirPlot2(2).LineStyle = '--';
for i=1:Nnb
text(gNB(i).Coords(1), gNB(i).Coords(2), gNB(i).Coords(3)+5, ...
sprintf('gNB_{%i}', i), 'FontSize', 16, 'Color', '#A2142F');
end
xlabel('x, м'); ylabel('y, м'); axis equal;
axis([-5, 155, -5, 65, 0, 30]); view([0, 90]);
end
% инициализация массивов для хранения углов отправки от каждой gNB
% к каждой UE (нужно для устранении ошибки чтения несуществующего
% массива при некоторых настройках модели)
azAng = zeros(Nue, Nnb);
elAng = zeros(Nue, Nnb);
azAngUE = zeros(Nue, Nnb);
elAngUE = zeros(Nue, Nnb);
%% ЦИКЛ ПО ЧИСЛУ ТОЧЕК РАСЧЕТА
for i=1:N % цикл по числу точек расчета
% массив координат всех UE для i-й точки расчета
ueCoordsi = reshape(trajArray(i, :).', 3, Nue).';
% внесение ошибки в оценку координат UE согласно stdCoords
ueCoordsiErr = ueCoordsi;
ueCoordsiErr(:,1:2) = ueCoordsiErr(:,1:2)
没有合适的资源?快使用搜索试试~ 我知道了~
超密集毫米波无线电接入网络中位置感知波束形成期间的空间选择模型matlab代码.zip
共20个文件
m:20个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 56 浏览量
2024-03-18
16:09:15
上传
评论
收藏 49KB ZIP 举报
温馨提示
1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
资源推荐
资源详情
资源评论
收起资源包目录
超密集毫米波无线电接入网络中位置感知波束形成期间的空间选择模型matlab代码.zip (20个子文件)
超密集毫米波无线电接入网络中位置感知波束形成期间的空间选择模型matlab代码
get_prob.m 508B
lab_tunebeam_map.m 9KB
antPattPlot.m 3KB
beamshapingWeight.m 5KB
lab_spatialfilt.m 23KB
lab_spatialfilt_mse.m 4KB
createUEnode.m 2KB
getTrajectory.m 1KB
createAnt.m 2KB
getAntPatternSteer.m 1KB
createNB.m 810B
lab_spatialfilt_base.m 17KB
createScenarion.m 6KB
getAntPatternG.m 2KB
lab_spatialfilt_map.m 24KB
lab_spatialfilt_fig1_2_4.m 2KB
lab_tunebeam_antPatt.m 3KB
lab_spatialfilt_mse_scl.m 3KB
lab_tunebeam_mse_scl.m 7KB
LAB_spatial_selection-main
lab_tunebeam.m 7KB
共 20 条
- 1
资源评论
Matlab科研辅导帮
- 粉丝: 2w+
- 资源: 7666
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功