Постройте или вычислите пути к распространению между сайтами
raytrace(
строит пути к распространению от ретранслятора (tx
,rx
)tx
) на сайт приемника (rx
). Пути к распространению найдены использованием трассировки лучей с поверхностной геометрией, заданной Map
свойство. На каждый путь к распространению наносят цветную маркировку согласно мощности приемника (dBm) или потере пути (дБ) вдоль пути, принимая деполяризированные лучи.
Примечание
Анализ трассировки лучей включает поверхностные отражения, но не включает эффекты от преломления, дифракции или рассеивания.
Операционная частота для этой функции от 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, который обеспечивает доступ к полученным толпой данным о карте во всем мире. Данные лицензируются под Открытыми Данными палата общин Открытая Лицензия Базы данных (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);
Создайте модель распространения трассировки лучей для совершенного отражения. Задайте метод трассировки лучей как стрельбу и возврат лучей (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, который обеспечивает доступ к полученным толпой данным о карте во всем мире. Данные лицензируются под Открытыми Данными палата общин Открытая Лицензия Базы данных (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 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
rx
— Сайт приемникаrxsite
возразите | массив rxsite
объектыСайт приемника в виде rxsite
возразите или массив rxsite
объекты. Если ретрансляторы заданы как массивы, то пути к распространению построены от каждого передатчика до каждого сайта приемника.
tx
— Ретрансляторtxsite
возразите | массив txsite
объектыРетранслятор в виде txsite
возразите или массив txsite
объекты. Если сайты приемника заданы как массивы, то пути к распространению построены от каждого передатчика до каждого сайта приемника.
propmodel
— Модель PropagationpropagationModel
Модель Propagation в виде вектора символов, строки или модели распространения трассировки лучей, созданной с propagationModel
функция. Моделью распространения по умолчанию является 'raytracing'
, модель распространения трассировки лучей, которая использует метод изображений.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'Type','power'
'Type'
— Тип количества, чтобы построить'power'
(значение по умолчанию) | 'pathloss'
Тип количества, чтобы построить в виде разделенной запятой пары, состоящей из 'Type'
и 'power'
в dBm или 'pathloss'
в дБ.
Когда вы задаете 'power'
, на каждый путь наносят цветную маркировку согласно мощности приемника вдоль пути. Когда вы задаете 'pathloss'
, на каждый путь наносят цветную маркировку согласно потере пути вдоль пути.
Уравнение Friis используется, чтобы вычислить мощность приемника:
где:
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, смотрите, Выбирают Propagation Model.
Типы данных: char
'NumReflections'
— Количество отражений, чтобы искать в путях к распространению
(значение по умолчанию) | числовой вектор-строкаКоличество отражений, чтобы искать в путях к распространению с помощью трассировки лучей в виде разделенной запятой пары, состоящей из 'NumReflections'
и числовой вектор-строка, элементами которого является 0
, 1, или
2
.
Значение по умолчанию приводит к поиску путей к распространению угла обзора и одно-отражательных путей к распространению.
Этот аргумент только поддерживается для моделей распространения трассировки лучей, которые используют метод изображений. Для моделей распространения трассировки лучей, которые используют метод SBR, задайте MaxNumReflections
свойство модели распространения вместо этого. Для получения дополнительной информации смотрите propagationModel
функция.
Типы данных: double
'Colormap'
— Карта цветов для окраски путей к распространению'jet'
(значение по умолчанию) | предопределенное имя карты цветов | M-by-3 массив RGBКарта цветов для окраски путей к распространению в виде разделенной запятой пары, состоящей из 'Colormap'
и предопределенное имя карты цветов или M-by-3 массив RGB (красный, синий, зеленый) триплеты, которые задают отдельные цвета M.
Типы данных: char |
double
'ColorLimits'
— Цветные пределы для палитрыЦветные пределы для палитры в виде разделенной запятой пары, состоящей из 'ColorLimits'
и двухэлементный числовой вектор-строка из формы [min макс.]. Модули и значения по умолчанию цветных пределов зависят от значения 'Type'
параметр:
'power'
– Модули находятся в dBm, и значением по умолчанию является [-120 -5]
.
'pathloss'
– Модули находятся в дБ, и значением по умолчанию является [45 160]
.
Цветные пределы указывают на значения, которые сопоставляют с первым и последним, раскрашивает палитру. Пути к распространению со значениями ниже минимального цветного предела не построены.
Типы данных: double
'ShowLegend'
— Покажите цветную легенду на картеtrue
(значение по умолчанию) | false
Покажите цветную легенду на карте в виде разделенной запятой пары, состоящей из 'ShowLegend'
и true
или false
.
Типы данных: логический
'Map'
— Сопоставьте для визуализации или поверхностных данныхsiteviewer
возразите | имя ландшафтаСопоставьте для визуализации или поверхностных данных в виде разделенной запятой пары, состоящей из 'Map
и одно из следующего в зависимости от системы координат:
Система координат | Допустимые значения карты | Значение карты по умолчанию |
---|---|---|
'geographic' |
|
|
'cartesian' | 'none' , объект триангуляции или имя файла STL. | 'none' |
Типы данных: char |
string
rays
— Излучите объект настройкиИзлучите настройку, возвращенную как M-by-N массив ячеек, где M является количеством ретрансляторов, и N является количеством сайтов приемника. Каждый элемент ячеек является вектором-строкой из comm.Ray
объекты, представляющие все лучи, найденные между соответствующим сайтом ретранслятора и приемника. массив. В каждом векторе-строке, comm.Ray
объекты упорядочены растущим числом отражений, и где количество отражений равно, им упорядочивают путем увеличения расстояния распространения.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.