raytrace

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

Описание

пример

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

Примечание

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

  • Рабочая частота для этой функции от 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, что обеспечивает доступ к данным карты, полученной из толпы, по всему миру. Данные лицензированы под лицензией Open Data Commons Open Database License (ODbL), https://opendatacommons.org/licenses/odbl/.

Запуск Site Viewer со созданиями в Гонконге. Для получения дополнительной информации о файле 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, что обеспечивает доступ к данным карты, полученной из толпы, по всему миру. Данные лицензированы под лицензией Open Data Commons Open Database License (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

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 объекты. Если узлы приемника заданы как массивы, то пути распространения строятся от каждого передатчика к каждому узлу приемника.

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

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

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

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

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

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

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

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, смотрите Выбор модели распространения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Карта для визуализации или данных о поверхности, заданная как разделенная разделенными запятой парами, состоящая из '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