raytrace

Постройте или вычислите пути к распространению между сайтами

Описание

пример

raytrace(tx,rx) строит пути к распространению от ретранслятора (tx) на сайт приемника (rx). Пути к распространению найдены использованием трассировки лучей с поверхностной геометрией, заданной Map свойство. На каждый путь к распространению наносят цветную маркировку согласно мощности приемника (dBm) или потере пути (дБ) вдоль пути, принимая деполяризированные лучи.

Примечание

  • Анализ трассировки лучей включает поверхностные отражения, но не включает эффекты от преломления, дифракции или рассеивания.

  • Операционная частота для этой функции от 100 МГц до 100 ГГц.

raytrace(tx,rx,propmodel) строит пути к распространению от ретранслятора (tx) на сайт приемника (rx) на основе заданной модели распространения. Чтобы ввести создание и материалы ландшафта, чтобы вычислить потерю пути, создайте 'raytracing' модель распространения использование propagationModel функция и набор свойства задать строительные материалы.

raytrace(___,Name,Value) пути к распространению графиков с дополнительными опциями, заданными одной или несколькими парами "имя-значение".

rays = raytrace(___) возвращает пути к распространению в rays.

Примеры

свернуть все

Средство просмотра Стартовой площадки с созданиями в Чикаго. Для получения дополнительной информации о osm файле, см. [1].

viewer = siteviewer("Buildings","chicago.osm");

Создайте ретранслятор на создании.

tx = txsite('Latitude',41.8800, ...
    'Longitude',-87.6295, ...
    'TransmitterFrequency',2.5e9);

Создайте сайт приемника около другого создания.

rx = rxsite('Latitude',41.881352, ...
    'Longitude',-87.629771, ...
    'AntennaHeight',30);

Вычислите силу сигнала при помощи модели распространения трассировки лучей. По умолчанию модель трассировки лучей использует метод изображений и выполняет угол обзора и одно-отражательный анализ.

pm = propagationModel("raytracing");
ssOneReflection = sigstrength(rx,tx,pm)
ssOneReflection = -54.0915

Вычислите силу сигнала с анализом до двух отражений, где общая мощность приемника является совокупной степенью всех путей к распространению

pm.MaxNumReflections = 2;
ssTwoReflections = sigstrength(rx,tx,pm)
ssTwoReflections = -52.3890

Наблюдайте эффект материала, заменяя конкретный материал по умолчанию на совершенный отражатель.

pm.BuildingsMaterial = 'perfect-reflector';
ssPerfect = sigstrength(rx,tx,pm)
ssPerfect = -41.9927

Постройте пути к распространению.

raytrace(tx, rx, pm) 

Приложение

[1] osm файл загружается с https://www.openstreetmap.org, который обеспечивает доступ к полученным толпой данным о карте во всем мире. Данные лицензируются под Открытыми Данными палата общин Открытая Лицензия Базы данных (ODbL), https://opendatacommons.org/licenses/odbl/.

Средство просмотра Стартовой площадки с созданиями в Гонконге. Для получения дополнительной информации о osm файле, см. [1].

viewer = siteviewer("Buildings","hongkong.osm");

Задайте сайты передатчика и приемника, чтобы смоделировать маленький сценарий ячейки в плотной городской среде.

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);

Создайте модель распространения трассировки лучей для совершенного отражения. Задайте метод трассировки лучей как стрельбу и возврат лучей (SBR).

pm = propagationModel("raytracing", ...
    "Method","sbr", ...
    "BuildingsMaterial","perfect-reflector", ...
    "TerrainMaterial","perfect-reflector");

Визуализируйте пути к распространению и вычислите соответствующие потери пути.

raytrace(tx,rx,pm,"Type","pathloss")
raysPerfect = raytrace(tx,rx,pm,"Type","pathloss");
plPerfect = [raysPerfect{1}.PathLoss]
plPerfect = 1×3

  104.2656  104.2744  112.0094

Повторно вычислите с материальной отражательной потерей путем установки материального типа на модели распространения. Первое значение неизменно, потому что оно соответствует пути к распространению угла обзора.

pm.BuildingsMaterial = "glass";
pm.TerrainMaterial = "concrete";
raytrace(tx,rx,pm,"Type","pathloss")
raysMtrls = raytrace(tx,rx,pm,"Type","pathloss");
plMtrls = [raysMtrls{1}.PathLoss]
plMtrls = 1×3

  104.2656  106.2236  119.3577

Приложение

[1] osm файл загружается с https://www.openstreetmap.org, который обеспечивает доступ к полученным толпой данным о карте во всем мире. Данные лицензируются под Открытыми Данными палата общин Открытая Лицензия Базы данных (ODbL), https://opendatacommons.org/licenses/odbl/.

Задайте 3-D карту для конференц-зала с одной таблицей и четырьмя стульями.

mapFileName = "conferenceroom.stl";

Визуализируйте 3-D карту.

figure; view(3);
trisurf(stlread(mapFileName), 'FaceAlpha', 0.3, 'EdgeColor', 'none'); 
hold on; axis equal; grid off;
xlabel('x'); ylabel('y'); zlabel('z');

Задайте ретранслятор близко к стенке и сайту приемника в соответствии с таблицей.

    tx = txsite("cartesian",  "AntennaPosition", [-1.45; -1.45; 1.5],"TransmitterFrequency", 2.8e9);
    rx = rxsite("cartesian","AntennaPosition", [.3; .2; .5]);

Постройте ретранслятор красного цвета и сайт приемника синего цвета.

scatter3(tx.AntennaPosition(1,:), tx.AntennaPosition(2,:), tx.AntennaPosition(3,:), 'sr', 'filled');
scatter3(rx.AntennaPosition(1,:), rx.AntennaPosition(2,:),rx.AntennaPosition(3,:), 'sb', 'filled');

Создайте модель распространения трассировки лучей для Декартовых координат. Задайте метод трассировки лучей как стрельбу и возврат лучей (SBR). Установите поверхностный материал на древесину.

pm = propagationModel("raytracing","CoordinateSystem","cartesian", ...
    "Method","sbr","MaxNumReflections",2,"SurfaceMaterial","wood"); 

Выполните трассировку лучей и сохраните вычисленные лучи с помощью comm.Ray object

rays = raytrace(tx, rx, pm, 'Map', mapFileName); 
rays = rays{1};

Визуализируйте лучи в 3D карте.

for i = 1:length(rays)
    if rays(i).LineOfSight
        propPath = [rays(i).TransmitterLocation, ...
                    rays(i).ReceiverLocation];
    else
        propPath = [rays(i).TransmitterLocation, ...
                rays(i).ReflectionLocations, ...
                    rays(i).ReceiverLocation];
    end
  
    line(propPath(1,:), propPath(2,:), propPath(3,:), 'Color', 'cyan');
end

Figure contains an axes. The axes contains 12 objects of type patch, scatter, line.

Входные параметры

свернуть все

Сайт приемника в виде rxsite возразите или массив rxsite объекты. Если ретрансляторы заданы как массивы, то пути к распространению построены от каждого передатчика до каждого сайта приемника.

Ретранслятор в виде txsite возразите или массив txsite объекты. Если сайты приемника заданы как массивы, то пути к распространению построены от каждого передатчика до каждого сайта приемника.

Модель Propagation в виде вектора символов, строки или модели распространения трассировки лучей, созданной с propagationModel функция. Моделью распространения по умолчанию является 'raytracing', модель распространения трассировки лучей, которая использует метод изображений.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Type','power'

Тип количества, чтобы построить в виде разделенной запятой пары, состоящей из 'Type' и 'power' в dBm или 'pathloss' в дБ.

Когда вы задаете 'power', на каждый путь наносят цветную маркировку согласно мощности приемника вдоль пути. Когда вы задаете 'pathloss', на каждый путь наносят цветную маркировку согласно потере пути вдоль пути.

Уравнение Friis используется, чтобы вычислить мощность приемника:

Prx=Ptx+Gtx+GrxLLtxLrx

где:

  • Prx мощность приемника вдоль пути.

  • Ptx степень передачи, заданная в tx.TransmitterPower.

  • Gtx усиление антенны tx в направлении угла отъезда (AoD).

  • Grx усиление антенны rx в направлении угла прибытия (AoA).

  • L потеря пути, вычисленная вдоль пути.

  • Ltx системная потеря передатчика, заданного в tx.SystemLoss.

  • Lrx системная потеря приемника, заданного в rx.SystemLoss.

Типы данных: char

Тип модели распространения для анализа трассировки лучей в виде разделенной запятой пары, состоящей из 'PropagationModel' и 'raytracing' или модель распространения трассировки лучей, созданная с propagationModel функция. Если вы задаете 'raytracing', затем raytrace функция вычисляет пути к распространению при помощи метода изображений.

Чтобы выполнить анализ трассировки лучей с помощью стрельбы и возврата лучей (SBR) метод вместо этого, укажите, что модель распространения создала использование propagationModel функция. Этот код показывает, как создать модель распространения, которая использует метод SBR.

pm = propagationModel('raytracing','Method','sbr');

Для получения информации о различиях между изображением и методами SBR, смотрите, Выбирают Propagation Model.

Типы данных: char

Количество отражений, чтобы искать в путях к распространению с помощью трассировки лучей в виде разделенной запятой пары, состоящей из 'NumReflections' и числовой вектор-строка, элементами которого является 0, 1, или 2.

Значение по умолчанию приводит к поиску путей к распространению угла обзора и одно-отражательных путей к распространению.

Этот аргумент только поддерживается для моделей распространения трассировки лучей, которые используют метод изображений. Для моделей распространения трассировки лучей, которые используют метод SBR, задайте MaxNumReflections свойство модели распространения вместо этого. Для получения дополнительной информации смотрите propagationModel функция.

Типы данных: double

Карта цветов для окраски путей к распространению в виде разделенной запятой пары, состоящей из 'Colormap' и предопределенное имя карты цветов или M-by-3 массив RGB (красный, синий, зеленый) триплеты, которые задают отдельные цвета M.

Типы данных: char | double

Цветные пределы для палитры в виде разделенной запятой пары, состоящей из 'ColorLimits' и двухэлементный числовой вектор-строка из формы [min макс.]. Модули и значения по умолчанию цветных пределов зависят от значения 'Type' параметр:

  • 'power'– Модули находятся в dBm, и значением по умолчанию является [-120 -5].

  • 'pathloss'– Модули находятся в дБ, и значением по умолчанию является [45 160].

Цветные пределы указывают на значения, которые сопоставляют с первым и последним, раскрашивает палитру. Пути к распространению со значениями ниже минимального цветного предела не построены.

Типы данных: double

Покажите цветную легенду на карте в виде разделенной запятой пары, состоящей из 'ShowLegend' и true или false.

Типы данных: логический

Сопоставьте для визуализации или поверхностных данных в виде разделенной запятой пары, состоящей из 'Map и одно из следующего в зависимости от системы координат:

Система координатДопустимые значения картыЗначение карты по умолчанию
'geographic'
  • siteviewer[a]

  • Имя ландшафта может быть задано, если функция вызвана с выходным аргументом. Допустимыми именами ландшафта является 'none', 'gmted2010', или имя пользовательских данных о ландшафте, добавленных с помощью addCustomTerrain

  • текущий siteviewer или новый siteviewer, если ни один не открыт.

  • 'gmted2010' если названо выходом.

'cartesian''none', объект триангуляции или имя файла STL.'none'

[a]  Выравнивание контуров и меток области является представлением функции, обеспеченной по условию поставщики, и не подразумевает подтверждение MathWorks®.

Типы данных: char | string

Выходные аргументы

свернуть все

Излучите настройку, возвращенную как M-by-N массив ячеек, где M является количеством ретрансляторов, и N является количеством сайтов приемника. Каждый элемент ячеек является вектором-строкой из объектов, представляющих все лучи, найденные между соответствующим сайтом ретранслятора и приемника. массив. В каждом векторе-строке, comm.Ray объекты упорядочены растущим числом отражений, и где количество отражений равно, им упорядочивают путем увеличения расстояния распространения.

Смотрите также

|

Введенный в R2019b