Постройте или вычислите пути распространения между сайтами
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
rx
- Место приемникаrxsite
объект | массив rxsite
объектыСайт приемника, заданный как rxsite
объект или массив rxsite
объекты. Если сайты передатчика заданы как массивы, то пути распространения строятся от каждого передатчика к каждому сайту приемника.
tx
- Площадка передатчикаtxsite
объект | массив txsite
объектыПлощадка передатчика, заданная как txsite
объект или массив txsite
объекты. Если узлы приемника заданы как массивы, то пути распространения строятся от каждого передатчика к каждому узлу приемника.
propmodel
- Модель распространенияpropagationModel
Модель распространения, заданная как вектор символов, строка или модель распространения трассировки лучей, созданная с propagationModel
функция. Модель распространения по умолчанию 'raytracing'
, модель распространения трассировки лучей, которая использует метод изображения.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'Type','power'
'Type'
- Тип количества на графике'power'
(по умолчанию) | 'pathloss'
Тип величины для построения графика, заданный как разделенная разделенными запятой парами, состоящая из 'Type'
и 'power'
в дБм или 'pathloss'
в дБ.
Когда вы задаете 'power'
каждый путь кодируется цветом в соответствии с мощностью приемника вдоль пути. Когда вы задаете 'pathloss'
каждый путь кодируется цветом в соответствии с потерей пути вдоль пути.
Уравнение Фрииса используется для вычисления мощности приемника:
где:
Prx
- мощность приемника вдоль пути.
Ptx
- степень передачи, заданная в tx. TransmitterPower.
Gtx
- коэффициент усиления антенны tx в направлении угла отхода (AoD).
Grx
- коэффициент усиления антенны rx в направлении угла прибытия (AoA).
L
- потери пути, вычисленные вдоль пути.
Ltx
- потеря системы передатчика, заданная в tx. SystemLoss.
Lrx
- потеря системой приемника, заданная в rx. SystemLoss.
Типы данных: char
'PropagationModel'
- Тип модели распространения для анализа трассировки лучей'raytracing'
(по умолчанию) | модель распространения трассировки лучей, созданная с propagationModel
Тип модели распространения для анализа трассировки лучей, заданный как разделенная разделенными запятой парами, состоящая из 'PropagationModel'
и 'raytracing'
или модель распространения трассировки лучей, созданная с помощью propagationModel
функция. Если вы задаете 'raytracing'
, затем raytrace
функция вычисляет пути распространения с помощью метода изображения.
Чтобы выполнить анализ трассировки лучей с помощью метода съемки и прыгающих лучей (SBR), задайте модель распространения, созданную с помощью propagationModel
функция. Этот код показывает, как создать модель распространения, которая использует метод SBR.
pm = propagationModel('raytracing','Method','sbr');
Для получения информации о различиях между изображением и методами SBR, смотрите Выбор модели распространения.
Типы данных: char
'NumReflections'
- Количество отражений для поиска в путях распространения[0 1]
(по умолчанию) | числовой вектор-строкуКоличество отражений для поиска в путях распространения с использованием трассировки лучей, заданное как разделенная разделенными запятой парами, состоящая из 'NumReflections'
и числовой вектор-строка, элементы которого 0
, 1
, или 2
.
Значение по умолчанию приводит к поиску путей распространения линии зрения и путей распространения с одним отражением.
Этот аргумент поддерживается только для моделей распространения трассировки лучей, которые используют метод изображения. Для моделей распространения трассировки лучей, которые используют метод SBR, задайте MaxNumReflections
свойство модели распространения вместо этого. Для получения дополнительной информации смотрите propagationModel
функция.
Типы данных: double
'Colormap'
- Карта цвета для путей распространения раскраски'jet'
(по умолчанию) | предопределенное имя цветовой карты | M массива RGB -by-3Карта цветов для путей распространения раскраски, заданная как разделенная разделенными запятой парами, состоящая из 'Colormap'
и предопределенное имя карты цветов или массив M -by-3 из триплетов RGB (красный, синий, зеленый), которые определяют M отдельных цветов.
Типы данных: char
| double
'ColorLimits'
- Пределы цвета для палитрыПределы цвета для палитры, заданные как разделенная разделенными запятой парами, состоящая из 'ColorLimits'
и двухэлементный числовой вектор-строка вида [min max]. Единицы модулей и значения по умолчанию для пределов цвета зависят от значения 'Type'
параметр:
'power'
- Модули указаны в дБм, и значение по умолчанию является [-120 -5]
.
'pathloss'
- Модули указаны в дБ, и значение по умолчанию является [45 160]
.
Пределы цвета указывают значения, которые сопоставлены с первым и последним цветами в палитре. Пути распространения со значениями ниже минимального предела цвета не строятся.
Типы данных: double
'ShowLegend'
- Показать легенду цвета на картеtrue
(по умолчанию) | false
Показать легенду цвета на карте, заданную как разделенная разделенными запятой парами, состоящая из 'ShowLegend'
и true
или false
.
Типы данных: logical
'Map'
- Карта для визуализации или поверхностных данныхsiteviewer
имя объекта | местностиКарта для визуализации или данных о поверхности, заданная как разделенная разделенными запятой парами, состоящая из 'Map
и одно из следующих в зависимости от системы координат:
Система координат | Допустимые значения карты | Значение карты по умолчанию |
---|---|---|
'geographic' |
|
|
'cartesian' | 'none' , объект триангуляции или имя STL- файла. | 'none' |
[a] Выравнивание контуров и меток областей является представлением функции, предоставляемой поставщиками данных, и не подразумевает одобрения MathWorks®. |
Типы данных: char
| string
rays
- Объект строения лучаСтроение луча, возвращенная как M -by - N массив ячеек, где M - количество сайтов передатчика, а N - количество сайтов приемника. Каждый элемент камеры является вектором-строкой объектов, представляющих все лучи, обнаруженные между соответствующим сайтом передатчика и приемника сайтом. массив. В каждом векторе-строке comm.Ray
объекты упорядочены путем увеличения количества отражений, и где количество отражений равно, они упорядочены путем увеличения расстояния распространения.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.