raytrace

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

Описание

пример

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

Примечание

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

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

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

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-image-method");
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);

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

pm = propagationModel("raytracing-image-method", ...
       "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.2745  112.0095

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

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.2545  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');

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

pm = propagationModel("raytracing-image-method", "CoordinateSystem", "cartesian", ...
        "SurfaceMaterial", "wood", "MaxNumReflections", 2); 

Выполните трассировку лучей и сохраните вычисленные лучи с помощью 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

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

свернуть все

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

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

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

Можно также использовать пару "имя-значение" 'PropagationModel' задавать этот параметр.

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

Задайте дополнительные разделенные запятой пары 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-image-method' или объект модели распространения трассировки лучей создал использование propagationModel.

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

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

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

Типы данных: 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 объекты, представляющие все лучи, найденные между соответствующим сайтом ретранслятора и приемника. массив. В каждом векторе-строке, comm.Ray объекты упорядочены растущим числом отражений, и где количество отражений равно, им упорядочивают путем увеличения расстояния распространения.

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

|

Введенный в R2019b