comm.RayTracingChannel

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

Описание

comm.RayTracingChannel Система object™ пропускает сигнал через многопутевой исчезающий канал, который задан лучами распространения. Для получения дополнительной информации смотрите раздел Channel Impulse Response.

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

  1. Создайте comm.RayTracingChannel объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?

Создание

Описание

rtchan = comm.RayTracingChannel создает трассировку лучей, исчезающую Системный объект канала, который задает лучевую среду с помощью набора лучей распространения.

rtchan = comm.RayTracingChannel(Name,Value) свойства наборов с помощью одних или нескольких аргументов name-value. Например, 'SampleRate',1e6 устанавливает частоту дискретизации на 1 МГц.

пример

rtchan = comm.RayTracingChannel(rays,tx,rx) создает трассировку лучей, исчезающую Системный объект канала, данный входные параметры rays, tx, и rx.

Когда вы используете этот синтаксис, чтобы сконфигурировать другие свойства устанавливает их значения после создания Системного объекта. Например, смотрите, Конфигурируют Частоту дискретизации для Канала Трассировки лучей.

Свойства

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

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

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

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

Распространение излучает в виде comm.Ray объект, вектор-строка из comm.Ray объекты или массив ячейки строки comm.Ray объекты. Это свойство задает лучи распространения между массивами передающей и приемной антенны. Весь заданный comm.Ray объекты должны иметь тот же Frequency установка свойства. Любой заданный comm.Ray объекты, которые имеют их PathSpecification набор свойств к 'Locations' должен иметь тот же CoordinateSystem, TransmitterLocation, и ReceiverLocation настройки свойства.

Для генерации кода, PropagationRays свойство должно быть массивом ячеек comm.Ray объекты.

Типы данных: object | cell

Опция, чтобы обеспечить нулевую минимальную задержку распространения в виде логического 1 TRUE) или 0 ложь). Установите это свойство на true вычитать минимальную задержку распространения изо всех задержек распространения лучей, чтобы обеспечить нулевую минимальную задержку. Для получения дополнительной информации смотрите раздел Tips.

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

Массив передающей антенны в виде одной из этих опций.

  • Когда вы устанавливаете TransmitArray к arrayConfig объект, можно настроить Size свойство arrayConfig объект иметь массив передачи представляет универсальный прямоугольный массив (URA), универсальную линейную матрицу (ULA) или один phased.IsotropicAntennaElement Системный объект. Настройка по умолчанию для arrayConfig объект является URA 2 на 2 с интервалом элемента 0,5 м.

  • Когда вы конфигурируете TransmitArray чтобы использовать Системный объект антенны фазированной решетки, у вас должен быть продукт Phased Array System Toolbox. Для списка этих дополнительных поддерживаемых значений смотрите раздел Phased Array Antenna Options.

Оси ориентации массива передающей антенны в виде 3х3 унитарной матрицы, указывающей на вращение от системы локальной координаты (LCS) до глобальной системы координат (GCS). Если comm.Ray объекты заданы в PropagationRays набор свойств CoordinateSystem свойство к 'Geographic', GCS является системой координат "восточного севера" (ENU) в передатчике.

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

Получите антенную решетку в виде одной из этих опций.

  • Когда вы устанавливаете ReceiveArray к arrayConfig объект, можно настроить Size свойство arrayConfig объект иметь получить массив представляет универсальный прямоугольный массив (URA), универсальную линейную матрицу (ULA) или один phased.IsotropicAntennaElement Системный объект. Настройка по умолчанию для arrayConfig объект является URA 2 на 2 с интервалом элемента 0,5 м.

  • Когда вы устанавливаете ReceiveArray к настройке Системного объекта антенны фазированной решетки у вас должен быть продукт Phased Array System Toolbox. Для списка этих дополнительных поддерживаемых значений смотрите раздел Phased Array Antenna Options.

Оси ориентации получить антенной решетки в виде 3х3 унитарной матрицы, указывающей на вращение от LCS до GCS. Если comm.Ray объекты заданы в PropagationRays набор свойств CoordinateSystem свойство к 'Geographic', GCS является системой координат "восточного севера" (ENU) в приемнике.

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

Получите антенную решетку мгновенная скорость в GCS в m/s в виде трехэлементного вектор-столбца формы [x; y; z. Эти три элемента в этом векторе задают x - y - and z-скорость, соответственно. Если comm.Ray объекты заданы в PropagationRays набор свойств CoordinateSystem свойство к 'Geographic', GCS является системой координат "восточного севера" (ENU) в приемнике.

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

Опция, чтобы нормировать импульсные характеристики канала в виде логического 1 TRUE) или 0 ложь). Установите это свойство на true чтобы нормировать усиления CIRs к 0 дБ от каждого элемента массива передачи до каждого получают элемент массива.

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

Опция, чтобы нормировать канал выходные параметры на количество получает элементы в виде логического 1 TRUE) или 0 ложь). Установите это свойство на true чтобы нормировать канал, выведенный количеством, получают элементы массива.

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

Фильтрация канала в виде одного из этих логических значений:

  • 1 TRUE) — Канал принимает входной сигнал и производит отфильтрованный выходной сигнал.

  • 0 ложь) — Объект не принимает входной сигнал, не производит отфильтрованного выходного сигнала, и выходные параметры только образовывают канал импульсные характеристики. Необходимо задать длительность процесса исчезновения при помощи NumSamples свойство.

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

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

Настраиваемый: да

Зависимости

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

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

Выходные данные импульсной характеристики канала вводят в виде 'double' или 'single'.

Зависимости

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

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

Использование

Описание

пример

y = rtchan(x) пропускает входной сигнал через многопутевой исчезающий канал, заданный набором распространения, излучает и возвращает результат в y.

y = rtchan(x,starttime) задает время начала входного сигнала. Когда последние и текущие системы координат не непрерывны вовремя, Системный объект сбрасывает состояния фильтра канала.

[y,cir] = rtchan(___) также возвращает импульсную характеристику канала с помощью комбинации входных аргументов от любого из предшествующих синтаксисов.

cir = rtchan() возвращает импульсную характеристику канала. Чтобы включить этот синтаксис, установите ChannelFiltering свойство к false.

cir = rtchan(starttime) задает время начала для генерации импульсной характеристики канала. Чтобы включить этот синтаксис устанавливает ChannelFiltering свойство к false.

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

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

Входной сигнал в виде матрицы S-by-NT N.

  • N S является количеством отсчетов.

  • N T является количеством элементов массива передачи.

Типы данных: single | double
Поддержка комплексного числа: Да

Время начала входного сигнала в секундах в виде неотрицательного скаляра.

Когда modВремя начала/SampleRate) является ненулевым, время начала окружено к самой близкой демонстрационной позиции. Время начала должно быть больше времени окончания последнего кадра, обработанного каналом. Можно использовать info функция, чтобы получить время окончания последнего обработанного кадра.

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

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

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

Выходной сигнал, возвращенный как матрица S-by-NR N.

  • N S является количеством отсчетов.

  • N R является количеством, получают элементы массива.

y совпадающий тип данных как вход x.

Импульсная характеристика канала, возвращенная как N S NP NT NR массивом.

  • N S является количеством отсчетов. Когда вы устанавливаете ChannelFiltering свойство к true, N S является длиной входа. Когда вы устанавливаете ChannelFiltering к false, N S задан NumSamples свойство.

  • N P является количеством путей (а именно, количество лучей, как обозначено длиной PropagationRays свойство.

  • N T является количеством элементов массива передачи.

  • N R является количеством, получают элементы массива.

Когда вы устанавливаете ChannelFiltering к true, тип данных для этого выхода является совпадающим типом данных как входом x. Когда вы устанавливаете ChannelFiltering к false, тип данных для этого выхода задан OutputDataType свойство.

Для получения дополнительной информации смотрите раздел Channel Impulse Response.

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

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

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

infoХарактеристическая информация о канале трассировки лучей
showProfileПостройте временные и пространственные профили канала трассировки лучей
cloneСоздайте объект дублированной системы
isLockedОпределите, используется ли Системный объект
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

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

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

sv = siteviewer("Buildings","hongkong.osm");

tx = txsite( ...
    "Latitude",22.2789, ...
    "Longitude",114.1625, ...
    "AntennaAngle",30, ...        % Azimuth angle
    "AntennaHeight",10, ...
    "TransmitterFrequency",28e9);
rx = rxsite( ...
    "Latitude",22.2799, ...
    "Longitude",114.1617, ...
    "AntennaAngle",120, ...       % Azimuth angle
    "AntennaHeight",1);

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

pm = propagationModel("raytracing", ...
    "Method","image", ...
    "MaxNumReflections",2);
rays = raytrace(tx,rx,pm);

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

rtchan = comm.RayTracingChannel(rays{1},tx,rx);
rtchan.SampleRate = 50e6;
showProfile(rtchan);

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

rtchandelayed= clone(rtchan);
rtchandelayed.MinimizePropagationDelay = false;
showProfile(rtchandelayed);

Пропустите случайным образом сгенерированные 16-QAM сигналы через модели канала. Отобразите продвижение 15 элементов y и ydelayedm, то, которые выводятся каналом трассировки лучей, возражает rtchan и rtchandelayed, соответственно. Ведущие выборки в задержанном сигнале, ydelayed, все нули. Когда вы моделируете свою систему связи, необходимо объяснить, это сигнализирует, чтобы задержка постаралась не терять запаздывание данных сигнала.

M = 16;       % Modulation order
frmLen = 1e3; % Frame length
numTx = rtchan.info.NumTransmitElements;

x = qammod(randi([0,M-1],frmLen,numTx),M);
y = rtchan(x);
numTxdelayed = rtchandelayed.info.NumTransmitElements;
x = qammod(randi([0,M-1],frmLen,numTxdelayed),M);
ydelayed = rtchandelayed(x);
y(1:15)
ans = 15×1 complex

  -0.0000 - 0.0000i
   0.0000 + 0.0000i
  -0.0000 - 0.0000i
   0.0000 + 0.0000i
  -0.0000 - 0.0000i
   0.0003 + 0.0011i
  -0.0021 - 0.0110i
   1.0170 - 0.0080i
  -1.0599 - 2.0081i
  -3.0953 + 0.0620i
      ⋮

ydelayed(1:15)
ans = 15×1

     0
     0
     0
     0
     0
     0
     0
     0
     0
     0
      ⋮

Приложение

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

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

Задайте 3-D карту для конференц-зала с одной таблицей и четырьмя стульями при помощи файла данных стандартного языка составления мозаики (STL). Задайте ретранслятор близко к стене и сайту приемника выше таблицы.

mapFileName = "conferenceroom.stl";

tx = txsite('cartesian', ...
    'AntennaPosition',[-1.45; -1.4; 2.3], ...
    'TransmitterFrequency',2.8e9);
rx = rxsite('cartesian', ...
    'AntennaPosition',[.6; .2; 1.0]);

Используйте siteviewer возразите и show возразите функции, чтобы визуализировать 3-D сценарий. Сайты передатчика и приемника раскрашены красные и синие, соответственно.

siteviewer(SceneModel=mapFileName);
show(tx,'ShowAntennaHeight',false);
show(rx,'ShowAntennaHeight',false);

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

pm = propagationModel('raytracing', ...
    'CoordinateSystem','cartesian', ...
    'Method','sbr', ...
    'MaxNumReflections',3);
rays = raytrace(tx,rx,pm,'Map',mapFileName);

Извлеките вычисленные лучи из возвращенного массива ячеек, и затем постройте лучи. Каждый луч окрашен на основе его значения потери на пути.

rays = rays{1,1};
plot(rays)

Создайте модель канала использование расчетных лучей, промежуточных сайты передатчика и приемника. Покажите временные и пространственные профили канала.

rtchan = comm.RayTracingChannel(rays,tx,rx);
showProfile(rtchan);

Figure contains 3 axes objects. Axes object 1 with title Power Delay Profile contains an object of type stem. Axes object 2 with title Angle of Departure contains 7 objects of type quiver, text. Axes object 3 with title Angle of Arrival contains 7 objects of type quiver, text.

Пропустите случайным образом сгенерированные 16-QAM сигналы через канал. С частотой дискретизации по умолчанию 10e6, частотная характеристика канала является плоской. Увеличение частоты дискретизации к 1e9 приводит к частоте выборочный канал. Покажите отфильтрованный сигнал для плоского канала частотной характеристики и частоты выборочный канал в схеме созвездия.

M = 16;       % Modulation order
frmLen = 1e3; % Frame length

numTx = rtchan.info.NumTransmitElements;
x = qammod(randi([0,M-1],frmLen,numTx),M);
y_samprate10e6 = rtchan(x);

release(rtchan);
rtchan.SampleRate = 1e9;
y_samprate1e9 = rtchan(x);
constellationdiag = comm.ConstellationDiagram( ...
    NumInputPorts=2, ...
    ChannelNames={ ...
    'Flat frequency response channel','Frequency selective channel'}, ...
    XLimits=[-5 5], ...
    YLimits=[-5 5], ...
    ReferenceConstellation=qammod(0:M-1,M));
constellationdiag(y_samprate10e6(:),y_samprate1e9);

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

Установите Частоту дискретизации при Создании Объекта Канала Трассировки лучей

Создайте модель канала трассировки лучей, задав частоту дискретизации как 20 МГц.

rtchan1 = comm.RayTracingChannel(SampleRate=2e7)
rtchan1 = 
  comm.RayTracingChannel with properties:

                      SampleRate: 20000000
                 PropagationRays: [1x1 comm.Ray]
        MinimizePropagationDelay: true
                   TransmitArray: [1x1 arrayConfig]
    TransmitArrayOrientationAxes: [3x3 double]
                    ReceiveArray: [1x1 arrayConfig]
     ReceiveArrayOrientationAxes: [3x3 double]
         ReceiverVirtualVelocity: [3x1 double]
       NormalizeImpulseResponses: true
         NormalizeChannelOutputs: true
                ChannelFiltering: true

Установите частоту дискретизации после создания объекта канала трассировки лучей

Создайте модель канала при помощи ретранслятора, сайта приемника и вычисленных лучей между сайтами. После создания объекта, набор частота дискретизации к 20 МГц.

tx = txsite( ...
    "Latitude",22.2789, ...
    "Longitude",114.1625, ...
    "AntennaAngle",30, ...        % Azimuth angle
    "AntennaHeight",10, ...
    "TransmitterFrequency",28e9);
rx = rxsite( ...
    "Latitude",22.2799, ...
    "Longitude",114.1617, ...
    "AntennaAngle",120, ...       % Azimuth angle
    "AntennaHeight",1);
pm = propagationModel("raytracing", ...
    "Method","sbr", ...
    "MaxNumReflections",3);
rays = raytrace(tx,rx,pm);

rtchan2 = comm.RayTracingChannel(rays{1},tx,rx);
rtchan2.SampleRate = 2e7
rtchan2 = 
  comm.RayTracingChannel with properties:

                      SampleRate: 20000000
                 PropagationRays: [1x2 comm.Ray]
        MinimizePropagationDelay: true
                   TransmitArray: [1x1 arrayConfig]
    TransmitArrayOrientationAxes: [3x3 double]
                    ReceiveArray: [1x1 arrayConfig]
     ReceiveArrayOrientationAxes: [3x3 double]
         ReceiverVirtualVelocity: [3x1 double]
       NormalizeImpulseResponses: true
         NormalizeChannelOutputs: true
                ChannelFiltering: true

После конфигурирования объекта канала вы обычно пропускали бы модулируемый сигнал через канал. Здесь 16-QAM сигнал передается через rtchan2 канал трассировки лучей.

modOrd = 16;
frmLen = 1e3;
numTx = rtchan2.info.NumTransmitElements;
x = qammod(randi([0,modOrd-1],frmLen,numTx),modOrd);
y = rtchan2(x);

Больше о

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

Советы

  • Когда вы устанавливаете MinimizePropagationDelay свойство к true, Системный объект переключает все пути к задержке распространения, чтобы удалить сумму задержки, которая сопоставлена с минимальным путем к задержке распространения. Сдвиг путей удаляет потенциальные начальные нули в канале выход и избавляет от необходимости с учетом задержки получать запаздывающие выборки сигнала.

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

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

Объекты

Функции

Введенный в R2020b