comm.Ray

Создайте луч распространения RF

Описание

comm.Ray объект является контейнерным объектом для свойств луча распространения. Объект содержит геометрическую и электромагнитную информацию распространения радиоволны от одной точки до другой точки на пробеле.

Создание

Обычно вы создаете comm.Ray объекты при помощи raytrace функция.

Описание

пример

ray = comm.Ray создает объект луча, который инициализирует свойства для луча распространения.

ray = comm.Ray(Name,Value) свойства наборов с помощью одного или нескольких аргументов пары "имя-значение". Заключите каждое имя свойства в кавычки. Например, comm.Ray('CoordinateSystem','Geographic','TransmitterLocation',[40.730610,-73.935242,0]) задает географическую систему координат и передатчик, расположенный в Нью-Йорке.

Свойства

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

Метод спецификации пути к распространению в виде одного из этих значений.

  • 'Locations' — Контур объектов луча между waypoints передается как (x, y, z) координатные точки TransmitterLocation, ReceiverLocation, и, если применимо, ReflectorLocations свойства.

  • 'Delay and angles' — Контур объектов луча между waypoints передается PropagationDelay, AngleOfDeparture, и AngleOfArrival свойства.

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

Система координат в виде 'Cartesian' или 'Geographic'. Когда вы устанавливаете CoordinateSystem свойство к 'Geographic', система координат задана относительно Наземной модели эллипсоида WGS-84, и объект задает углы относительно локальной системы координат "восточного севера" (ENU) в передатчике и приемнике.

Зависимости

Чтобы включить это свойство, установите PathSpecification свойство к 'Locations'.

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

Шкала декартовой системы координат в метрах в виде положительной скалярной величины.

Зависимости

Чтобы включить это свойство, установите PathSpecification свойство к 'Locations' и CoordinateSystem свойство к 'Cartesian'.

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

Местоположение передатчика в виде трехэлементного числового вектор-столбца координат в одной из следующих форм.

  • x, y ; z] — Эта форма применяется, когда вы устанавливаете CoordinateSystem свойство к 'Cartesian'. Объект не выполняет валидацию области значений для x, y и z.

  • [latitude; longitude; height] — Эта форма применяется, когда вы устанавливаете CoordinateSystem свойство к 'Geographic'. latitude должен быть в области значений [–90, 90]. Объект не выполняет валидацию области значений для longitude и height. на height ссылаются к эллипсоиду, заданному Мировой Геодезической Системой 1 984 (WGS84).

Зависимости

Чтобы включить это свойство, установите PathSpecification свойство к 'Locations'.

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

Местоположение приемника в виде трехэлементного числового вектор-столбца координат в одной из следующих форм.

  • x, y ; z] — Эта форма применяется, когда вы устанавливаете CoordinateSystem свойство к 'Cartesian'. Объект не выполняет валидацию области значений для x, y и z.

  • [latitude; longitude; height] — Эта форма применяется, когда вы устанавливаете CoordinateSystem свойство к 'Geographic'. latitude должен быть в области значений [–90, 90]. Объект не выполняет валидацию области значений для longitude и height. на height ссылаются к эллипсоиду, заданному Мировой Геодезической Системой 1 984 (WGS84).

Зависимости

Чтобы включить это свойство, установите PathSpecification свойство к 'Locations'.

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

Угол обзора в виде логического значения 1 TRUE) или 0 ложь) указать, является ли луч лучом угла обзора.

Зависимости

Чтобы включить это свойство, установите PathSpecification свойство к 'Locations'.

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

Поверхностные лучом взаимодействия вдоль пути к распространению в виде 1 NI структурой, содержащей эти поля. N я - количество взаимодействий.

Тип поверхностного лучом взаимодействия в виде 'Reflection' или 'Diffraction'.

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

Местоположение в виде числового вектора 3 на 1, содержащего координаты одной точки столкновения на луче.

  • Когда CoordinateSystem свойство установлено в 'Cartesian', формой является [x; y; z. Объект не выполняет валидацию области значений для x, y и z.

  • Когда CoordinateSystem свойство установлено в 'Geographic', формой является [latitude; longitude; высота. latitude должен быть в области значений [–90, 90]. Объект не выполняет валидацию области значений для longitude и height. на height ссылаются к эллипсоиду, заданному Мировой Геодезической Системой 1 984 (WGS84).

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

Зависимости

Чтобы включить это свойство, установите PathSpecification свойство к 'Locations' и LineOfSight свойство к 0 ложь).

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

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

  • Когда вы устанавливаете PathSpecification свойство к 'Locations', это свойство только для чтения, и значение получено на TransmitterLocation, ReceiverLocation и, если применимо, Interactions.

  • Когда вы устанавливаете PathSpecification свойство к 'Delay and angles', это свойство конфигурируемо.

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

Это свойство доступно только для чтения.

Расстояние распространения в метрах в виде неотрицательного скаляра. Значение по умолчанию вычисляется с помощью значений по умолчанию TransmitterLocation и ReceiverLocation свойства для луча угла обзора.

  • Когда вы устанавливаете PathSpecification свойство к 'Locations', значение получено на TransmitterLocation, ReceiverLocation и, если применимо, Interactions.

  • Когда вы устанавливаете PathSpecification свойство к 'Delay and angles', значение получено на PropagationDelay.

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

Угол отъезда в градусах луча в передатчике в виде числового вектора из формы [az; el]. Угол азимута, az, измеряется от положительной оси X против часовой стрелки и должен быть в области значений (–180, 180]. Угол возвышения, el, измеряется от x-y плоскости и должен быть в области значений [–90, 90]. Значение по умолчанию вычисляется с помощью значений по умолчанию TransmitterLocation и ReceiverLocation свойства для луча угла обзора.

  • Когда вы устанавливаете PathSpecification свойство к 'Delay and angles', это свойство конфигурируемо.

  • Когда вы устанавливаете PathSpecification свойство к 'Locations', это свойство только для чтения, и значение получено на TransmitterLocation, ReceiverLocation и, если применимо, Interactions.

  • Когда CoordinateSystem установлен в 'Geographic', углы заданы со ссылкой на локальную систему координат "восточного севера" (ENU) в передатчике.

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

Угол прибытия в градусах луча в приемнике в виде числового вектора из формы [az; el]. Угол азимута, az, измеряется от положительной оси X против часовой стрелки и должен быть в области значений (–180, 180]. Угол возвышения, el, измеряется от x-y плоскости и должен быть в области значений [–90, 90]. Значение по умолчанию вычисляется с помощью значений по умолчанию TransmitterLocation и ReceiverLocation свойства для луча угла обзора.

  • Когда вы устанавливаете PathSpecification свойство к 'Delay and angles', это свойство конфигурируемо.

  • Когда вы устанавливаете PathSpecification свойство к 'Locations', это свойство только для чтения, и значение получено на TransmitterLocation, ReceiverLocation и, если применимо, Interactions.

  • Когда CoordinateSystem установлен в 'Geographic', углы заданы со ссылкой на локальную систему координат "восточного севера" (ENU) в приемнике.

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

Это свойство доступно только для чтения.

Количество поверхностных лучом взаимодействий для луча возражает от передатчика к приемнику в виде неотрицательного целого числа. Значение получено на LineOfSight и, если применимо, Interactions.

Зависимости

Чтобы включить это свойство, установите PathSpecification свойство к 'Locations'.

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

Частота сигнала в Гц в виде положительной скалярной величины.

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

Источник потери на пути в виде 'Free space model' или 'Custom'.

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

Потеря на пути в дБ в виде неотрицательного скаляра. Значение по умолчанию вычисляется с помощью значений по умолчанию TransmitterLocation и ReceiverLocation свойства для луча угла обзора.

  • Когда вы устанавливаете PathLossSource свойство к 'Free space model', PathLoss свойство только для чтения и выведено из PropagationDistance и Frequency свойства при помощи модели распространения свободного пространства.

  • Когда вы устанавливаете PathLossSource свойство к 'Custom', можно установить PathLoss свойство, независимое от геометрических свойств.

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

Фаза переключает радианы на нижний регистр в виде числового скаляра. Значение по умолчанию вычисляется с помощью значений по умолчанию TransmitterLocation и ReceiverLocation свойства для луча угла обзора.

  • Когда вы устанавливаете PathLossSource свойство к 'Free space model', PhaseShift свойство только для чтения и выведено из PropagationDistance и Frequency свойства при помощи модели распространения свободного пространства.

  • Когда вы устанавливаете PathLossSource свойство к 'Custom', можно установить PhaseShift свойство, независимое от геометрических свойств.

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

Функции объекта

plot (rays)Отобразите лучи распространения RF в Средстве просмотра Сайта

Примеры

свернуть все

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

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

viewer = siteviewer('Buildings','hongkong.osm');

Задайте сайты передатчика и приемника.

tx = txsite('Latitude',22.2789,'Longitude',114.1625, ...
    'AntennaHeight',10,'TransmitterPower',5, ...
    'TransmitterFrequency',28e9);
rx = rxsite('Latitude',22.2799,'Longitude',114.1617, ...
    'AntennaHeight',1);
show(tx);
show(rx);

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

pm = propagationModel('raytracing', ...
    'Method','sbr', ...
    'MaxNumReflections',3);

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

rays = raytrace(tx,rx,pm)
rays = 1×1 cell array
    {1×13 comm.Ray}

Отобразите свойства первого comm.Ray объект. LineOfSight значением свойства является 1, и NumInteractions значением свойства является 0. Эта комбинация указывает, что луч задает путь угла обзора.

rays{1}(1)
ans = 
  Ray with properties:

      PathSpecification: 'Locations'
       CoordinateSystem: 'Geographic'
    TransmitterLocation: [3×1 double]
       ReceiverLocation: [3×1 double]
            LineOfSight: 1
              Frequency: 2.8000e+10
         PathLossSource: 'Custom'
               PathLoss: 104.2656
             PhaseShift: 4.6406

   Read-only properties:
       PropagationDelay: 4.6442e-07
    PropagationDistance: 139.2294
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
        NumInteractions: 0

Отобразите свойства второго и трети comm.Ray объекты. LineOfSight значениями свойств является 0, и NumInteractions значения свойств больше 0. Эта комбинация указывает, что лучи задают отраженные пути.

rays{1}(2)
ans = 
  Ray with properties:

      PathSpecification: 'Locations'
       CoordinateSystem: 'Geographic'
    TransmitterLocation: [3×1 double]
       ReceiverLocation: [3×1 double]
            LineOfSight: 0
           Interactions: [1×1 struct]
              Frequency: 2.8000e+10
         PathLossSource: 'Custom'
               PathLoss: 106.2236
             PhaseShift: 0.0788

   Read-only properties:
       PropagationDelay: 4.6492e-07
    PropagationDistance: 139.3787
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
        NumInteractions: 1

rays{1}(3)
ans = 
  Ray with properties:

      PathSpecification: 'Locations'
       CoordinateSystem: 'Geographic'
    TransmitterLocation: [3×1 double]
       ReceiverLocation: [3×1 double]
            LineOfSight: 0
           Interactions: [1×1 struct]
              Frequency: 2.8000e+10
         PathLossSource: 'Custom'
               PathLoss: 120.0733
             PhaseShift: 4.9316

   Read-only properties:
       PropagationDelay: 1.1327e-06
    PropagationDistance: 339.5744
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
        NumInteractions: 1

Визуализируйте результаты трассировки лучей.

plot(rays{1});

Приложение

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

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

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

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

Создайте ретранслятор на одном создании и сайт приемника на другом создании. Используйте los функционируйте, чтобы показать путь к углу обзора между сайтами передатчика и приемника.

tx = txsite( ...
    'Latitude',41.8800, ...
    'Longitude',-87.6295, ...
    'TransmitterFrequency',2.5e9);
rx = rxsite( ...
    'Latitude',41.881352, ...
    'Longitude',-87.629771, ...
    'AntennaHeight',30);
los(tx,rx);

Выполните трассировку лучей максимум для двух отражений. Для заданной настройки трассировка лучей возвращает массив ячеек, содержащий объекты луча. Закройте карту Средства просмотра Сайта.

pm = propagationModel( ...
    'raytracing', ...
    'Method','sbr', ...
    'MaxNumReflections',2);
rays = raytrace(tx,rx,pm)
rays = 1×1 cell array
    {1×3 comm.Ray}

rays{1}(1,1)
ans = 
  Ray with properties:

      PathSpecification: 'Locations'
       CoordinateSystem: 'Geographic'
    TransmitterLocation: [3×1 double]
       ReceiverLocation: [3×1 double]
            LineOfSight: 0
           Interactions: [1×1 struct]
              Frequency: 2.5000e+09
         PathLossSource: 'Custom'
               PathLoss: 94.1067
             PhaseShift: 1.1472

   Read-only properties:
       PropagationDelay: 5.7089e-07
    PropagationDistance: 171.1479
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
        NumInteractions: 1

rays{1}(1,2)
ans = 
  Ray with properties:

      PathSpecification: 'Locations'
       CoordinateSystem: 'Geographic'
    TransmitterLocation: [3×1 double]
       ReceiverLocation: [3×1 double]
            LineOfSight: 0
           Interactions: [1×2 struct]
              Frequency: 2.5000e+09
         PathLossSource: 'Custom'
               PathLoss: 101.8769
             PhaseShift: 2.8594

   Read-only properties:
       PropagationDelay: 5.9279e-07
    PropagationDistance: 177.7143
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
        NumInteractions: 2

rays{1}(1,3)
ans = 
  Ray with properties:

      PathSpecification: 'Locations'
       CoordinateSystem: 'Geographic'
    TransmitterLocation: [3×1 double]
       ReceiverLocation: [3×1 double]
            LineOfSight: 0
           Interactions: [1×2 struct]
              Frequency: 2.5000e+09
         PathLossSource: 'Custom'
               PathLoss: 99.1597
             PhaseShift: 4.6635

   Read-only properties:
       PropagationDelay: 6.3790e-07
    PropagationDistance: 191.2388
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
        NumInteractions: 2

close(viewer);

Можно построить лучи, не выполняя трассировку лучей снова. Создайте другую карту Средства просмотра Сайта с теми же созданиями. Покажите сайты передатчика и приемника. Используя ранее возвращенный массив ячеек объектов луча, постройте отраженные лучи между ретранслятором и сайтом приемника. Функция построения графика может построить путь для объектов луча коллективно или индивидуально. Например, чтобы построить лучи для единственного второго объекта луча, задайте rays{1}(1,2). График этого рисунка все пути для всех объектов луча.

siteviewer('Buildings','chicago.osm');
los(tx,rx);
plot(rays{:},'Type','power', ...
    'TransmitterSite',tx,'ReceiverSite',rx);

Приложение

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

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

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

Ошибки, запускающиеся в R2021b

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2020a