exponenta event banner

raytrace

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

Описание

пример

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

Примечание

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

  • Рабочая частота для этой функции составляет от 100 МГц до 100 ГГц.

raytrace(tx,rx,propmodel) строит графики путей распространения от узла передатчика (tx) на площадку получателя (rx) на основе указанной модели распространения. Для ввода строительных материалов и материалов рельефа местности для расчета потерь на пути создайте 'raytracing' модель распространения с использованием propagationModel и задайте свойства для задания строительных материалов.

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

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

Примеры

свернуть все

Запустить Site Viewer со зданиями в Чикаго. Для получения дополнительной информации о файле 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/.

Launch 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 + Grx L − Ltx − Lrx

где:

  • 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

  • текущий или новый обозреватель, если ни один из них не открыт.

  • 'gmted2010' при вызове с выводом.

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

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

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

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

свернуть все

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

См. также

|

Представлен в R2019b