raytrace

Отобразите или вычислите лучи распространения RF

Описание

raytrace графики функций или вычисляют пути к распространению при помощи трассировки лучей с поверхностной геометрией, заданной 'Map' свойство. На каждый нанесенный на график путь к распространению наносят цветную маркировку согласно мощности приемника (dBm) или потере на пути (дБ) вдоль пути. Анализ трассировки лучей включает поверхностные отражения, но не включает эффекты от дифракции, преломления или рассеивания. Операционная частота для этой функции от 100 МГц до 100 ГГц. Для получения дополнительной информации смотрите, Выбирают Propagation Model.

пример

raytrace(tx,rx) отображает пути к распространению от ретранслятора (tx) на сайт приемника (rx) в текущем Средстве просмотра Сайта при помощи стрельбы и возврата лучей (SBR) метод максимум с двумя отражениями.

пример

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

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

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

Примеры

свернуть все

Покажите отраженные пути к распространению в Чикаго с помощью анализа трассировки лучей с методом SBR

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

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

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

tx = txsite("Latitude",41.8800, ...
    "Longitude",-87.6295, ...
    "TransmitterFrequency",2.5e9);
show(tx)
rx = rxsite("Latitude",41.8813452, ...
    "Longitude",-87.629771, ...
    "AntennaHeight",30);
show(rx)

Покажите преграду для угла обзора.

los(tx,rx)

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

raytrace(tx,rx)

Приложение

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

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

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

pm = propagationModel("raytracing");
ssTwoReflections = sigstrength(rx,tx,pm)
ssTwoReflections = -52.4056

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

raytrace(tx,rx,pm) 

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

pm.MaxNumReflections = 5;
ssFiveReflections = sigstrength(rx,tx,pm)
ssFiveReflections = -51.8927

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

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

Постройте пути к распространению для SBR максимум с пятью отражениями.

raytrace(tx,rx,pm)

Приложение

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

Потеря на пути из-за существенного отражения и атмосферы в Гонконге. Сконфигурируйте трассировку лучей, чтобы использовать метод возвращаемых лучей стрельбы (SBR) максимум с 5 отражениями.

Средство просмотра Стартовой площадки с созданиями в Гонконге. Для получения дополнительной информации о 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);

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

pm = propagationModel("raytracing", ...
    "Method","sbr", ...
    "AngularSeparation","low", ...
    "MaxNumReflections",5, ...
    "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×15

  104.2656  104.2744  112.0095  109.3152  112.0156  112.0375  112.4436  109.3198  112.0406  112.0406  112.4444  112.4444  117.7513  117.7524  117.7638

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

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×15

  104.2656  106.2892  119.3577  121.5813  122.2841  121.4389  127.0060  122.4593  122.7023  122.6987  127.3370  127.4155  139.1007  139.6483  153.4364

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

pm = pm + propagationModel("rain") + propagationModel("gas");
raytrace(tx,rx,pm,"Type","pathloss")
raysAtmospheric = raytrace(tx,rx,pm,"Type","pathloss");
plAtmospheric = [raysAtmospheric{1}.PathLoss]
plAtmospheric = 1×15

  105.3245  107.3489  121.9430  123.4767  124.8711  124.0280  129.7238  124.3558  125.2929  125.2895  130.0563  130.1335  143.0839  143.6316  157.4224

Приложение

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

В этом примере показано, как к:

  • Масштабируйте файл STL так, чтобы модель использовала модули метров.

  • Просмотрите масштабированную модель в Средстве просмотра Сайта.

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

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

Считайте файл STL как triangulation объект. Файл моделирует небольшой конференц-зал с одной таблицей и четырьмя стульями.

TR = stlread("conferenceroom.stl");

Масштабируйте координаты и создайте новый triangulation объект. В данном примере примите, что коэффициентом преобразования от модулей STL до метров является 0.9.

scale = 0.9;
scaledPts = TR.Points * scale;
TR_scaled = triangulation(TR.ConnectivityList,scaledPts);

Просмотрите новый triangulation объект с помощью Средства просмотра Сайта. В качестве альтернативы можно сохранить новый triangulation возразите как файл STL при помощи stlwrite функция.

viewer = siteviewer('SceneModel',TR_scaled);

Создайте и отобразите ретранслятор близко к стене и сайту приемника в соответствии с таблицей. Задайте положение с помощью Декартовых координат в метрах.

tx = txsite("cartesian", ...
    "AntennaPosition",[-1.25; -1.25; 1.9], ...
    "TransmitterFrequency",2.8e9);
show(tx,"ShowAntennaHeight",false) 

rx = rxsite("cartesian", ...
    "AntennaPosition",[0.3; 0.2; 0.5]);
show(rx,"ShowAntennaHeight",false)

Панорамирование путем щелчка левой кнопкой, масштабируйте путем щелчка правой кнопкой или при помощи колесика прокрутки и вращайте визуализацию путем нажатия средней кнопки и перетаскивания или путем нажатия Ctrl и щелчка левой кнопкой и перетаскивания.

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

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

Вычислите пути к распространению и возвратите результат как comm.Ray объект. Извлеките и постройте лучи.

r = raytrace(tx,rx,pm);
r = r{1};
plot(r)

Просмотрите информацию о луче путем нажатия на него.

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

свернуть все

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

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

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

Чтобы задать модель распространения трассировки лучей, которая вычисляет различные количества отражений, создайте RayTracing объект при помощи propagationModel функция и набор MaxNumReflections свойство.

Аргументы name-value

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сопоставьте для визуализации или поверхностных данных в виде siteviewer объект, triangulation объект, строковый скаляр или вектор символов. Допустимый и значения по умолчанию зависят от системы координат.

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

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

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

  • 'gmted2010', если функция вызвана с выходом.

'cartesian'
  • 'none'.

  • siteviewer объект.

  • Имя файла STL.

  • triangulation объект.

  • 'none'.

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

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

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

свернуть все

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

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2021b

Поведение изменяется в R2021b

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

Функции

Объекты

Введенный в R2019b