В этом примере показано, как использовать трассировку лучей, чтобы анализировать линию связи в городской среде. Данные о созданиях импортированы в Средство просмотра Сайта из файла OpenStreetMap, соответствующего Гонконгу. Передатчик и сайты получателя помещаются в город, и трассировка лучей используется, чтобы построить несколько путей к распространению. Результаты трассировки лучей используются, чтобы задать модель канала для фильтрации сигнала.
Импортируйте OpenStreetMap (.osm) файл, соответствующий Гонконгу. Файл был загружен с https://www.openstreetmap.org, который обеспечивает доступ к полученным толпой данным о карте во всем мире. Информация о созданиях, содержавшая в файле OpenStreetMap, импортируется и визуализируется в Средстве просмотра Сайта.
viewer = siteviewer("Buildings","hongkong.osm");
Масштабируйте и вращайте карту, чтобы просмотреть создания и ландшафт.
Задайте сайты передатчика и получателя, чтобы смоделировать маленький сценарий ячейки в плотной городской среде. Ретранслятор представляет базовую станцию, которая помещается в полюс около дороги, и сайт получателя помещается вдоль дороги. Передатчик действует в несущей частоте 28 ГГц с 5 Вт степени. Сайты передатчика и получателя используют изотропную антенну по умолчанию, которая исходит однородно во всех направлениях.
tx = txsite("Name","Small cell transmitter", ... "Latitude",22.2789, ... "Longitude",114.1625, ... "AntennaHeight",10, ... "TransmitterPower",5, ... "TransmitterFrequency",28e9); rx = rxsite("Name","Small cell receiver", ... "Latitude",22.2799, ... "Longitude",114.1617, ... "AntennaHeight",1);
Постройте пути к распространению между сайтами передатчика и получателя, включая пути максимум с двумя отражениями. Пути к распространению вычисляются с помощью анализа трассировки лучей, который полагает, что создания и геометрия ландшафта вокруг сайтов определяют угол обзора или отраженные пути. Материалы для созданий и ландшафта оба конкретны по умолчанию. Каждый путь может быть выбран, чтобы просмотреть соответствующие характеристики распространения, включая мощность приемника, фазовый переход, расстояние и углы отъезда и прибытия.
pm = propagationModel("raytracing-image-method", ... "MaxNumReflections", 2); raytrace(tx,rx,pm);
Создайте модель распространения трассировки лучей с набором материалов к совершенным отражателям. Постройте пути к распространению и сравните с предыдущим графиком визуализировать эффекты материальной отражательной потери.
pmPerfect = propagationModel("raytracing-image-method", ... 'MaxNumReflections', 2, ... "BuildingsMaterial","perfect-reflector", ... "TerrainMaterial","perfect-reflector"); raytrace(tx,rx,pmPerfect);
Вычислите общую мощность приемника с помощью обеих моделей распространения. Общая мощность приемника является суммой мощности приемника от всех путей к распространению.
ssPerfect = sigstrength(rx,tx,pmPerfect); ssConcrete = sigstrength(rx,tx,pm); disp("Received power using perfect reflection: " + ssPerfect + " dBm")
Received power using perfect reflection: -62.5545 dBm
disp("Received power using concrete materials: " + ssConcrete + " dBm")
Received power using concrete materials: -65.1106 dBm
Результаты трассировки лучей могут быть сохранены, чтобы излучить объекты, которые содержат потерю пути и информацию о задержке для каждого луча. Существует семь лучей с передатчика на получатель, приводящий к многопутевому каналу. Создайте основанный на трассировке лучей объект модели канала с помощью лучей, ретранслятора и информации о сайте получателя. Чтобы смоделировать эффекты получателя в движении, задайте мгновенную скорость, которая приводит к Доплеровскому сдвигу частоты для каждого луча. График импульсной характеристики канала (CIR) от объекта модели канала показывает, что семь лучей прибывают в четыре кластера.
rays = raytrace(tx,rx,pm);
RTChan = RayTracingChannel(rays{1}, tx, rx);
RTChan.SampleRate = 122.88e6;
RTChan.ReceiveArrayVelocity = [2; 2; 2];
% Plot CIR
RTChan.plotCIR;
Случайным образом сгенерируйте систему координат 64-QAM сигналов, передайте ее через канал и постройте выход в схеме созвездия. Полученный сигнал высоко искажен из-за значительной интерференции межсимвола (ISI), вызванный многопутевым каналом на широкополосном сигнале.
M = 64; frmLen = 30720; constDiagram = comm.ConstellationDiagram( ... "XLimits", [-15 15], ... "YLimits", [-15 15], ... "ReferenceConstellation", qammod(0:M-1, M)); % Observe the channel-impaired signal in the constellation diagram txSig = qammod(randi([0 M-1], frmLen, 1), M); rxSig = RTChan(txSig); constDiagram(rxSig);