exponenta event banner

шаг

Системный объект: twoRayChannel

Распространение сигнала из точки в точку с использованием двухлучевой модели

Синтаксис

prop_sig = step(channel,sig,origin_pos,dest_pos,origin_vel,dest_vel)

Описание

Примечание

Начиная с R2016b, вместо использования step для выполнения операции, определенной системным object™, можно вызвать объект с аргументами, как если бы это была функция. Например, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

prop_sig = step(channel,sig,origin_pos,dest_pos,origin_vel,dest_vel) возвращает результирующий сигнал, prop_sig, когда узкополосный сигнал, sig, распространяется по двухлучевому каналу от origin_pos положение к dest_pos позиция. Либо origin_pos или dest_pos аргументы могут иметь несколько точек, но нельзя указать оба как имеющие несколько точек. Скорость начала сигнала указана в origin_vel и скорость назначения сигнала указана в dest_vel. Размеры origin_vel и dest_vel должны согласиться с измерениями origin_pos и dest_posсоответственно.

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

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

Вы можете сохранить два сигнала в месте назначения раздельными или комбинированными - управляемыми CombinedRaysOutput собственность. Объединение означает, что сигналы в источнике распространяются раздельно по двум путям, но когерентно суммируются в месте назначения в одну величину. Чтобы использовать отдельную опцию, установите CombinedRaysOutput кому false. Для использования комбинированной опции установите CombinedRaysOutput кому true. Эта опция удобна, когда разница между усилениями датчика или матрицы в направлениях двух путей не является значительной и не должна приниматься во внимание.

Примечание

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

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

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

Двухлучевой канал, указанный как Системный объект.

Пример: twoRayChannel

  • Узкополосный неполяризованный скалярный сигнал, заданный как

    • M-на-N комплекснозначная матрица. Каждый столбец содержит общий сигнал, распространяемый как вдоль линии визирования, так и вдоль отраженной траектории. Эту форму можно использовать, если сигналы обоих трактов одинаковы.

    • M-by-2N комплекснозначная матрица. Каждая смежная пара столбцов представляет отдельный канал. Внутри каждой пары первый столбец представляет сигнал, распространяемый вдоль линии визирования, а второй столбец представляет сигнал, распространяемый вдоль отраженной траектории.

  • Узкополосный поляризованный сигнал, заданный как

    • 1-by-N struct массив, содержащий поля со сложным значением. Каждый struct содержит общий поляризованный сигнал, распространяемый как вдоль линии визирования, так и вдоль отраженного пути. Каждый структурный элемент содержит вектор M-by-1 столбца составляющих электромагнитного поля. (sig.X,sig.Y,sig.Z). Эту форму можно использовать, если сигналы обоих трактов одинаковы.

    • 1-by-2N struct массив, содержащий поля со сложным значением. Каждая смежная пара столбцов массива представляет отдельный канал. Внутри каждой пары первый столбец представляет сигнал вдоль линии визирования, а второй столбец представляет сигнал вдоль отраженной траектории. Каждый структурный элемент содержит вектор M-by-1 столбца составляющих электромагнитного поля. (sig.X,sig.Y,sig.Z).

Для неполяризованных полей величина М - количество выборок сигнала, а N - количество двухлучевых каналов. Каждый канал соответствует паре источник-место назначения.

Размер первого размера входной матрицы может изменяться для моделирования изменения длины сигнала. Изменение размера может происходить, например, в случае формы импульса с переменной частотой повторения импульса.

Для поляризованных полей struct элемент содержит три M-by-1 комплексных вектора столбцов, sig.X, sig.Y, и sig.Z. Эти векторы представляют декартовы компоненты x, y и z поляризованного сигнала.

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

Пример: [1,1;j,1;0.5,0]

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

Происхождение сигнала или сигналов, определяемое как вектор столбца с действительным значением 3 на 1 или 3-by-N матрица с действительным значением. Величина N - количество двухлучевых каналов. Если origin_pos является вектором-столбцом, он принимает вид [x;y;z]. Если origin_pos является матрицей, каждый столбец указывает различное начало сигнала и имеет вид [x;y;z]. Единицы измерения положения - метры.

origin_pos и dest_pos оба не могут быть указаны как матрицы - по крайней мере один из них должен быть вектором столбца 3 на 1.

Пример: [1000;100;500]

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

Позиция назначения сигнала или сигналов, заданная как вектор столбца с действительным значением 3 на 1 или 3-by-N матрица с действительным значением. Величина N представляет собой число двухлучевых каналов, распространяющихся от или до N источников сигнала. Если dest_pos является вектором столбца 3 на 1, он принимает вид [x;y;z]. Если dest_pos является матрицей, каждый столбец определяет другое назначение сигнала и принимает вид [x;y;z] Единицы измерения положения - в метрах.

Невозможно указать origin_pos и dest_pos в виде матриц. По крайней мере один из них должен быть вектором столбца 3 на 1.

Пример: [0;0;0]

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

Скорость начала сигнала, заданная как вектор столбца с действительным значением 3 на 1 или 3-by-N матрица с действительным значением. Размеры origin_vel должны соответствовать размерам origin_pos. Если origin_vel является вектором-столбцом, он принимает вид [Vx;Vy;Vz]. Если origin_vel является матрицей 3-by-N, каждый столбец задает различную начальную скорость и имеет вид [Vx;Vy;Vz]. Единицы скорости в метрах в секунду.

Пример: [10;0;5]

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

Скорость назначения сигнала, заданная как вектор столбца с действительным значением 3 на 1 или 3-by-N матрица с действительным значением. Размеры dest_vel должны соответствовать размерам dest_pos. Если dest_vel является вектором-столбцом, он принимает вид [Vx;Vy;Vz]. Если dest_vel является матрицей 3-by-N, каждый столбец задает различную целевую скорость и имеет вид [Vx;Vy;Vz] Единицы скорости в метрах в секунду.

Пример: [0;0;0]

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

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

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

  • Узкополосный неполяризованный скалярный сигнал, возвращаемый в виде:

    • M-на-N комплекснозначная матрица. Чтобы вернуть этот формат, установите CombinedRaysOutput свойство для true. Каждый столбец матрицы содержит когерентно объединенные сигналы от линии визирования и отраженной траектории.

    • M-by-2N комплекснозначная матрица. Чтобы вернуть этот формат, установите CombinedRaysOutput свойство для false. Альтернативные столбцы матрицы содержат сигналы от линии визирования и отраженного пути.

  • Узкополосный поляризованный скалярный сигнал, возвращаемый как:

    • 1-by-N struct массив, содержащий поля со сложным значением. Чтобы вернуть этот формат, установите CombinedRaysOutput свойство для true. Каждый столбец матрицы содержит когерентно объединенные сигналы от линии визирования и отраженной линии. Каждый структурный элемент содержит вектор электромагнитного поля (prop_sig.X,prop_sig.Y,prop_sig.Z).

    • 1-by-2N struct массив, содержащий поля со сложным значением. Чтобы вернуть этот формат, установите CombinedRaysOutput свойство для false. Альтернативные столбцы содержат сигналы от линии визирования и отраженной траектории. Каждый структурный элемент содержит вектор электромагнитного поля (prop_sig.X,prop_sig.Y,prop_sig.Z).

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

Примеры

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

Распространение сигнала в двухлучевой канальной среде от радара на (0,0,10) метрах до цели на (300,200,30) метрах. Предположим, что радар и цель неподвижны и что передающая антенна имеет косинусную диаграмму направленности. Сравните объединенные сигналы с двух путей с одиночным сигналом, полученным в результате распространения свободного пространства. Установите CombinedRaysOutput кому true для получения комбинированного распространенного сигнала.

Создание прямоугольной формы сигнала

Установите частоту дискретизации 2 МГц.

fs = 2e6;
waveform = phased.RectangularWaveform('SampleRate',fs);
wavfrm = waveform();

Создание передающей антенны и излучателя

Настройка phased.Radiator object™ системы для передачи с косинусной антенны

antenna = phased.CosineAntennaElement;
radiator = phased.Radiator('Sensor',antenna);

Указание координат передатчика и цели

posTx = [0;0;10];
posTgt = [300;200;30];
velTx = [0;0;0];
velTgt = [0;0;0];

Распространение свободного пространства

Вычислите направление передачи к цели для модели свободного пространства. Затем излучайте сигнал.

[~,angFS] = rangeangle(posTgt,posTx); 
wavTx = radiator(wavfrm,angFS);

Распространение сигнала на цель.

fschannel = phased.FreeSpace('SampleRate',waveform.SampleRate);
yfs = fschannel(wavTx,posTx,posTgt,velTx,velTgt);
release(radiator);

Двухлучевое распространение

Вычислите два угла передачи к цели для траектории линии визирования (LOS) и отраженных траекторий. Вычислите направления передачи к цели для двух лучей. Затем излучайте сигналы.

[~,angTwoRay] = rangeangle(posTgt,posTx,'two-ray');
wavTwoRay = radiator(wavfrm,angTwoRay);

Распространение сигналов на цель.

channel = twoRayChannel('SampleRate',waveform.SampleRate,...
    'CombinedRaysOutput',true);
y2ray = channel(wavTwoRay,posTx,posTgt,velTx,velTgt);

Постройте график распространяемых сигналов

Постройте график комбинированного сигнала по сигналу свободного пространства

plot(abs([y2ray yfs]))
legend('Two-ray','Free space')
xlabel('Samples')
ylabel('Signal Magnitude')

Распространение сигнала в двухлучевой канальной среде от радара на (0,0,10) метрах до цели на (300,200,30) метрах. Предположим, что радар и цель неподвижны и что передающая антенна имеет косинусную диаграмму направленности. Сравните объединенные сигналы с двух путей с одиночным сигналом, полученным в результате распространения свободного пространства. Установите CombinedRaysOutput кому true для получения комбинированного распространенного сигнала.

Создание прямоугольной формы сигнала

Установите частоту дискретизации 2 МГц.

fs = 2e6;
waveform = phased.RectangularWaveform('SampleRate',fs);
wavfrm = waveform();

Создание передающей антенны и излучателя

Настройка phased.Radiator object™ системы для передачи с косинусной антенны

antenna = phased.CosineAntennaElement;
radiator = phased.Radiator('Sensor',antenna);

Указание координат передатчика и цели

posTx = [0;0;10];
posTgt = [300;200;30];
velTx = [0;0;0];
velTgt = [0;0;0];

Распространение свободного пространства

Вычислите направление передачи к цели для модели свободного пространства. Затем излучайте сигнал.

[~,angFS] = rangeangle(posTgt,posTx); 
wavTx = radiator(wavfrm,angFS);

Распространение сигнала на цель.

fschannel = phased.FreeSpace('SampleRate',waveform.SampleRate);
yfs = fschannel(wavTx,posTx,posTgt,velTx,velTgt);
release(radiator);

Двухлучевое распространение

Вычислите два угла передачи к цели для траектории линии визирования (LOS) и отраженных траекторий. Вычислите направления передачи к цели для двух лучей. Затем излучайте сигналы.

[~,angTwoRay] = rangeangle(posTgt,posTx,'two-ray');
wavTwoRay = radiator(wavfrm,angTwoRay);

Распространение сигналов на цель.

channel = twoRayChannel('SampleRate',waveform.SampleRate,...
    'CombinedRaysOutput',true);
y2ray = channel(wavTwoRay,posTx,posTgt,velTx,velTgt);

Постройте график распространяемых сигналов

Постройте график комбинированного сигнала по сигналу свободного пространства

plot(abs([y2ray yfs]))
legend('Two-ray','Free space')
xlabel('Samples')
ylabel('Signal Magnitude')

Распространение линейного ЧМ-сигнала в двухлучевом канале. Сигнал распространяется от передатчика, расположенного в (1000,10,10) измеряет в глобальной системе координат до приемника в (10000,200,30) метров. Предположим, что передатчик и приемник неподвижны и что они оба имеют косинусные диаграммы направленности антенн. Постройте график принятого сигнала.

Настройте сценарий радара. Сначала создайте требуемые системные объекты.

waveform = phased.LinearFMWaveform('SampleRate',1000000,...
    'OutputFormat','Pulses','NumPulses',2);
fs = waveform.SampleRate;
antenna = phased.CosineAntennaElement;
radiator = phased.Radiator('Sensor',antenna);
collector = phased.Collector('Sensor',antenna);
channel = twoRayChannel('SampleRate',fs,...
    'CombinedRaysOutput',false,'GroundReflectionCoefficient',0.95);

Настройте геометрию сцены. Укажите положения и скорости передатчика и приемника. Передатчик и приемник неподвижны.

posTx = [1000;10;10];
posRx = [10000;200;30];
velTx = [0;0;0];
velRx = [0;0;0];

Указание ориентации передающей и приемной радиолокационной антенны относительно глобальных координат. Передающие антенные точки в направлении + x и приемные антенные точки вблизи, но не непосредственно в направлении -x.

laxTx = eye(3);
laxRx = rotx(5)*rotz(170);

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

[~,angTx] = rangeangle(posRx,posTx,laxTx,'two-ray');

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

wavfrm = waveform();
wavtrans = radiator(wavfrm,angTx);

Распространение сигналов на приемник по двухлучевому каналу.

wavrcv = channel(wavtrans,posTx,posRx,velTx,velRx);

Сбор сигналов в приемнике. Вычислите угол, под которым два луча, идущие от передатчика, прибывают к приемнику. phased.Collector Система object™ использует эти углы для применения отдельных коэффициентов усиления антенны к двум сигналам.

[~,angRcv] = rangeangle(posTx,posRx,laxRx,'two-ray');

Соберите и объедините два полученных луча.

yR = collector(wavrcv,angRcv);

Постройте график принятых сигналов.

dt = 1/fs;
n = size(yR,1);
plot((0:(n-1))*dt*1000000,real(yR))
xlabel('Time ({\mu}sec)')
ylabel('Signal Magnitude')

Распространение линейного ЧМ-сигнала в двухлучевом канале. Предположим, что имеется потеря сигнала, вызванная атмосферными газами и дождем. Сигнал распространяется от передатчика, расположенного в (0,0,0) измеряет в глобальной системе координат до приемника в (10000,200,30) метров. Предположим, что передатчик и приемник неподвижны и что они оба имеют косинусные диаграммы направленности антенн. Постройте график принятого сигнала. Установите давление сухого воздуха 102,0 Па и скорость дождя 5 мм/ч.

Настройка сценария радара

Создайте требуемые системные объекты.

waveform = phased.LinearFMWaveform('SampleRate',1000000,...
    'OutputFormat','Pulses','NumPulses',2);
antenna = phased.CosineAntennaElement;
radiator = phased.Radiator('Sensor',antenna);
collector = phased.Collector('Sensor',antenna);
channel = twoRayChannel('SampleRate',waveform.SampleRate,...
    'CombinedRaysOutput',false,'GroundReflectionCoefficient',0.95,...
    'SpecifyAtmosphere',true,'Temperature',20,...
    'DryAirPressure',102.5,'RainRate',5.0);

Настройте геометрию сцены. Укажите положения и скорости передатчика и приемника. Передатчик и приемник неподвижны.

posTx = [0;0;0];
posRx = [10000;200;30];
velTx = [0;0;0];
velRx = [0;0;0];

Указание ориентации передающей и приемной радиолокационной антенны относительно глобальных координат. Передающие антенные точки вдоль направления + х и приемные антенные точки вблизи направления -х.

laxTx = eye(3);
laxRx = rotx(5)*rotz(170);

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

[~,angTx] = rangeangle(posRx,posTx,laxTx,'two-ray');

Создание и излучение сигналов от передатчика

Излучайте сигналы вдоль направлений передачи.

wavfrm = waveform();
wavtrans = radiator(wavfrm,angTx);

Распространение сигналов на приемник по двухлучевому каналу.

wavrcv = channel(wavtrans,posTx,posRx,velTx,velRx);

Сбор сигнала в приемнике

Вычислите угол, под которым два луча, идущие от передатчика, прибывают к приемнику. phased.Collector Система object™ использует эти углы для применения отдельных коэффициентов усиления антенны к двум сигналам.

[~,angRcv] = rangeangle(posTx,posRx,laxRx,'two-ray');

Соберите и объедините два полученных луча.

yR = collector(wavrcv,angRcv);

График принятого сигнала

dt = 1/waveform.SampleRate;
n = size(yR,1);
plot((0:(n-1))*dt*1000000,real(yR))
xlabel('Time ({\mu}sec)')
ylabel('Signal Magnitude')

Ссылки

[1] Проакис, J. Digital Communications. Нью-Йорк: Макгроу-Хилл, 2001.

[2] Скольник, М. Введение в радиолокационные системы, 3-й ред. Нью-Йорк: Макгро-Хилл

[3] Саакян, основы распространения волн А. Радио. Норвуд, Массачусетс: Artech House, 2011.

[4] Balanis, C.Advanced Engineering Electromagnetics. Нью-Йорк: Wiley & Sons, 1989.

[5] Раппапорт, T.Wireless Communications: Principles and Practice, 2nd Ed New York: Prentice Hall, 2002.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2021a