шаг

Системный объект: поэтапный. TwoRayChannel
Пакет: поэтапный

Распространите сигнал от точки до точки с помощью модели канала 2D луча

Синтаксис

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, распространяет через канал 2D луча от положения origin_pos до положения dest_pos. Любой аргументы origin_pos или dest_pos могут иметь несколько точек, но вы не можете задать обоих как имеющий несколько точек. Скорость источника сигнала задана в origin_vel, и скорость места назначения сигнала задана в dest_vel. Размерности origin_vel и dest_vel должны согласиться с размерностями origin_pos и dest_pos, соответственно.

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

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

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

Примечание

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

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

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

2D излучите канал, заданный как Системный объект.

Пример: phased.TwoRayChannel

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

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

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

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

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

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

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

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

Для поляризованных полей элемент 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 N матрицей с действительным знаком. Количество N является количеством каналов 2D луча. Если origin_pos является вектор-столбцом, он принимает форму [x;y;z]. Если origin_pos является матрицей, каждый столбец задает различный источник сигнала и имеет форму [x;y;z]. Модули положения являются метрами.

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

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

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

Целевое положение сигнала или сигналов, заданных как вектор-столбец с действительным знаком 3 на 1 или 3 N матрицей с действительным знаком. Количество N является количеством распространения каналов 2D луча от или до источников сигнала 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 N матрицей с действительным знаком. Размерности origin_vel должны совпадать с размерностями origin_pos. Если origin_vel является вектор-столбцом, он принимает форму [Vx;Vy;Vz]. Если origin_vel является 3 N матрицей, каждый столбец задает различную скорость источника и имеет форму [Vx;Vy;Vz]. Скоростные единицы исчисляются в метрах в секунду.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

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

Распространите сигнал в среде канала 2D луча от радара в (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);

2D излучите распространение

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

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

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

tworaychannel = phased.TwoRayChannel('SampleRate',waveform.SampleRate,...
    'CombinedRaysOutput',true);
y2ray = tworaychannel(wavTwoRay,posTx,posTgt,velTx,velTgt);

Постройте распространенные сигналы

Постройте объединенный сигнал против сигнала свободного пространства

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

Создайте поляризованное электромагнитное поле, состоящее из линейных импульсов формы волны FM. Распространите поле из стационарного источника с элементом антенны пересеченного диполя к стационарному получателю на расстоянии приблизительно в 10 км. Антенна передачи составляет 100 метров над землей. Антенна получения составляет 150 м над землей. Антенна получения является также пересеченным диполем. Постройте полученный сигнал.

Установите радарные параметры формы волны

Примите, что ширина импульса 10μs и уровень выборки составляет 10 МГц. Пропускная способность импульса составляет 1 МГц. Примите 50%-й рабочий цикл, в котором ширина импульса является половиной импульсного интервала повторения. Создайте 2D импульсный train волны. Примите несущую частоту 100 МГц.

c = physconst('LightSpeed');
fs = 10e6;
pw = 10e-6;
pri = 2*pw;
PRF = 1/pri;
fc = 100e6;
bw = 1e6;
lambda = c/fc;

Настройте необходимые системные объекты

Используйте GroundRelativePermittivity 10.

waveform = phased.LinearFMWaveform('SampleRate',fs,'PulseWidth',pw,...
    'PRF',PRF,'OutputFormat','Pulses','NumPulses',2,'SweepBandwidth',bw,...
    'SweepDirection','Up','Envelope','Rectangular','SweepInterval',...
    'Positive');
antenna = phased.CrossedDipoleAntennaElement(...
    'FrequencyRange',[50,200]*1e6);
radiator = phased.Radiator('Sensor',antenna,'OperatingFrequency',fc,...
    'Polarization','Combined');
channel = phased.TwoRayChannel('SampleRate',fs,...
    'OperatingFrequency',fc,'CombinedRaysOutput',false,...
    'EnablePolarization',true,'GroundRelativePermittivity',10);
collector = phased.Collector('Sensor',antenna,'OperatingFrequency',fc,...
    'Polarization','Combined');

Настройте геометрию сцены

Задайте положения передатчика и получателя, скорости и ориентации. Поместите источник и получатель на расстоянии приблизительно в 1 000 м горизонтально и на расстоянии приблизительно в 50 м вертикально.

posTx = [0;100;100];
posRx = [1000;0;150];
velTx = [0;0;0];
velRx = [0;0;0];
laxRx = rotz(180);
laxTx = rotx(1)*eye(3);

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

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

[rng,angsTx] = rangeangle(posRx,posTx,laxTx,'two-ray');
wav = waveform();

Постройте переданную Форму волны

n = size(wav,1);
plot([0:(n-1)]/fs*1000000,real(wav))
xlabel('Time ({\mu}sec)')
ylabel('Waveform')

sig = radiator(wav,angsTx,laxTx);

Распространите сигналы к получателю через канал 2D луча

prop_sig = channel(sig,posTx,posRx,velTx,velRx);

Получите распространенный сигнал

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

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

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

y = collector(prop_sig,angsRx,laxRx);

Постройте полученную форму волны

plot([0:(n-1)]/fs*1000000,real(y))
xlabel('Time ({\mu}sec)')
ylabel('Received Waveform')

Распространите линейный сигнал FM в канале 2D луча. Сигнал распространяет от передатчика, расположенного на уровне метров (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 = phased.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);

Распространите сигналы к получателю через канал 2D луча.

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')

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

Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным синтаксисом step. Например, замените myObject(x) на step(myObject,x).

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

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

waveform = phased.LinearFMWaveform('SampleRate',1000000,...
    'OutputFormat','Pulses','NumPulses',2);
antenna = phased.CosineAntennaElement;
radiator = phased.Radiator('Sensor',antenna);
collector = phased.Collector('Sensor',antenna);
tworaychannel = phased.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];

Задайте передачу и получение радарных ориентаций антенны относительно глобальных координат. Антенна передачи указывает вперед +x-direction и точки антенны получения близко к - x-направление.

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

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

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

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

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

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

Распространите сигналы к получателю через канал 2D луча.

wavrcv = tworaychannel(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] Proakis, J. Цифровая связь. Нью-Йорк: McGraw-Hill, 2001.

[2] Skolnik, M. Введение в радиолокационные системы, 3-го Эда. Нью-Йорк: McGraw-Hill

[3] Саакян, основные принципы распространения волны A.Radio. Норвуд, MA: дом Artech, 2011.

[4] Balanis, электромагнетизм разработки C.Advanced. Нью-Йорк: Wiley & Sons, 1989.

[5] Rappaport, коммуникации T.Wireless: принципы и практика, 2-й Эд Нью-Йорк: Prentice Hall, 2002.

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

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

Введенный в R2015b

Для просмотра документации необходимо авторизоваться на сайте