step

Системный объект: фазированный. FreeSpace
Пакет: поэтапный

Передайте сигнал из одного местоположения в другое

Синтаксис

Y = step(SFS,F,origin_pos,dest_pos,origin_vel,dest_vel)

Описание

Примечание

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

Y = step(SFS,F,origin_pos,dest_pos,origin_vel,dest_vel) возвращает результирующий сигнал Y когда узкополосный сигнал F распространяется в свободном пространстве из положения, заданного в origin_pos в положение или положения, указанные в dest_pos. Для неполяризованных сигналов либо origin_pos или dest_pos аргументы могут задавать несколько точек. Использование обоих аргументов для задания нескольких точек не разрешено. Скорость источника сигнала задана в origin_vel и скорость адресата сигнала задана в dest_vel. Размерности origin_vel и dest_vel должен согласиться с размерностями origin_pos и dest_pos, соответственно.

Примечание

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

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

расширить все

Распространитель свободного пространства, заданный как a Системный объект.

Узкополосный сигнал, заданный как вектор M-element с комплексным значением столбца, M -by N комплексно-значимой матрицы или структуры, содержащей комплексно-значимые поля.

Поляризация Структура сигнала
Не включен

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

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

Позволенный

Сигнал X является MATLAB® struct содержит три матричных поля: X.X, X.Y, и X.Z представление x, y и z компонентов поляризованных сигналов.

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

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

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

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

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

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

Y

Распространенный сигнал, возвращенный как M-element комплексно-значимый вектор-столбец, M -by N комплексно-значимую матрицу или структуру MATLAB, содержащую комплексно-значимые поля.

Если X является вектором-столбцом или матрицей, Y является также вектором-столбцом или матрицей с такими же размерностями.

Если X является struct, Y также является struct с теми же полями. Каждое поле в Y содержит результирующий сигнал соответствующего поля в X.

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

Примеры

расширить все

Вычислите амплитуду сигнала, распространяющегося в свободном пространстве от радара при (1000,0,0) к цели при (300,200,50). Предположим, что и радар, и цель являются стационарными. Частота дискретизации составляет 8000 Гц, в то время как рабочая частота радара составляет 300 МГц. Передайте пять отсчетов сигнала амплитуды модуля. Скорость распространения сигнала принимает значение по умолчанию скорости света. Исследуйте амплитуду сигнала в цели.

fs = 8e3;
fop = 3e8;
henv = phased.FreeSpace('SampleRate',fs,...
    'OperatingFrequency',fop);
pos1 = [1000;0;0];
pos2 = [300;200;50];
vel1 = [0;0;0];
vel2 = [0;0;0];

Вычислите принятый сигнал в цели.

x = ones(5,1);
y = step(henv,x,...
    pos1,...
    pos2,...
    vel1,...
    vel2);
disp(y)
   1.0e-03 *

   0.0126 - 0.1061i
   0.0129 - 0.1082i
   0.0129 - 0.1082i
   0.0129 - 0.1082i
   0.0129 - 0.1082i

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

Вручную вычислите потери по формуле

L=(4πR/λ)2

R = sqrt( (pos1-pos2)'*(pos1-pos2));
lambda = physconst('Lightspeed')/fop;
L = (4*pi*R/lambda)^2
L = 8.4205e+07

Поскольку переданная амплитуда является единицей, квадрат сигнала в цели равен обратной потере.

disp(1/abs(y(2))^2)
   8.4205e+07

Вычислите результат распространения сигнала в свободном пространстве от радара на (1000,0,0) к цели на (300,200,50). Предположим, что радар перемещается со скоростью 10 м/с вдоль оси X, в то время как цель перемещается со скоростью 15 м/с вдоль оси Y. Частота дискретизации составляет 8000 Гц, в то время как рабочая частота радара составляет 300 МГц. Скорость распространения сигнала принимает значение по умолчанию скорости света. Передайте пять выборок единичного амплитудного сигнала и исследуйте амплитуду сигнала в цели.

fs = 8000;
fop = 3e8;
sProp = phased.FreeSpace('SampleRate',fs,...
    'OperatingFrequency',fop);
pos1 = [1000;0;0];
pos2 = [300;200;50];
vel1 = [10;0;0];
vel2 = [0;15;0];
y = step(sProp,ones(5,1),...
    pos1,...
    pos2,...
    vel1,...
    vel2);
disp(y)
   1.0e-03 *

   0.0126 - 0.1061i
   0.0117 - 0.1083i
   0.0105 - 0.1085i
   0.0094 - 0.1086i
   0.0082 - 0.1087i

Поскольку переданная амплитуда является единицей, квадрат сигнала в цели равен обратной потере.

disp(1/abs(y(2))^2)
   8.4206e+07

Создайте равномерный линейный массив (ULA), состоящую из четырёх короткодипольных антенных элементов, которые поддерживают поляризацию. Установите ориентацию каждого диполя в z-направлении. Установите рабочую частоту 300 МГц, а интервал между элементами массива - 0,4 метра. В то время как антенный элемент поддерживает поляризацию, вы должны явно включить поляризацию в объекте Radiator System.

Создайте антенный элемент short-dipole, массива ULA и излучателя Системных объектов. Установите CombineRadiatedSignals свойство к true когерентно объединить излучаемые сигналы от всех антенн и Polarization свойство для 'Combined' для обработки поляризованных волн.

freq = 300e6;
nsensors = 4;
c = physconst('LightSpeed');
antenna = phased.ShortDipoleAntennaElement('FrequencyRange',[100e6 900e6],...
    'AxisDirection','Z');
array = phased.ULA('Element',antenna,...
    'NumElements',nsensors,...
    'ElementSpacing',0.4);
radiator = phased.Radiator('Sensor',array,...
    'PropagationSpeed',c,...
    'OperatingFrequency',freq,...
    'CombineRadiatedSignals',true,...
    'Polarization','Combined',...
    'WeightsInputPort',true);

Создайте сигнал, который будет излучен. В этом случае сигнал состоит из одного цикла синусоиды 4 кГц. Установите амплитуду сигнала в единицу. Установите частоту дискретизации 8 кГц. Выберите углы излучения 0 степеней азимута и 20 степеней повышения. поляризация, необходимо задать локальную ось - в этом случае выбранную так, чтобы она совпадала с глобальными осями. Установите равномерные веса для элементов массива.

fsig = 4000;
fs = 8000;
A = 1;
t = [0:0.01:2]/fs;
signal = A*sin(2*pi*fsig*t');
radiatingAngles = [0;20];
laxes = ones(3,3);
y = radiator(signal,radiatingAngles,laxes,[1,1,1,1].');
disp(y)
    X: [201x1 double]
    Y: [201x1 double]
    Z: [201x1 double]

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

Использование FreeSpace Системный объект для распространения поля от источника координат до места назначения.

propagator = phased.FreeSpace('PropagationSpeed',c,...
    'OperatingFrequency',freq,...
    'TwoWayPropagation',false,...
    'SampleRate',fs);

Установите источник сигнала, скорость источника сигнала, пункт назначения сигнала и скорость назначения сигнала.

origin_pos = [0; 0; 0];
dest_pos = [500; 200; 50];
origin_vel = [10; 0; 0];
dest_vel = [0; 15; 0];

Вызовите объект FreeSpace, чтобы распространить сигналы.

yprop = propagator(y,origin_pos,dest_pos,...
    origin_vel,dest_vel);

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

figure
plot(1000*t,real(yprop.X))
xlabel('Time (millisec)')

Figure contains an axes. The axes contains an object of type line.

Создайте объект FreeSpace System, чтобы распространить сигнал из одной точки в несколько точек пространства. Начните с определения источника сигнала и трех точек назначения, все в разных областях значений.

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

pos1 = [0,0,0]';
vel1 = [0,0,0]';
pos2 = [[700;700;100],[1400;1400;200],2*[2100;2100;400]];
vel2 = zeros(size(pos2));
[rngs,radiatingAngles] = rangeangle(pos2,pos1);

Создайте антенный элемент косинуса, массива ULA и Излучателя Системных объектов.

fs = 8000;
freq = 300e6;
nsensors = 4;
sAnt = phased.CosineAntennaElement;
sArray = phased.ULA('Element',sAnt,'NumElements',nsensors);
sRad = phased.Radiator('Sensor',sArray,...
    'OperatingFrequency',freq,...
    'CombineRadiatedSignals',true,'WeightsInputPort',true);

Создайте сигнал, чтобы быть одним циклом синусоиды амплитуды один и имеющий частоту 4 кГц.

fsig = 4000;
t = [0:0.01:2]'/fs;
signal = sin(2*pi*fsig*t);

Излучайте сигналы в направлениях назначения. Примените равномерное взвешивание к массиву.

y = step(sRad,signal,radiatingAngles,[1,1,1,1].');

Передайте сигналы в точки назначения.

sFSp = phased.FreeSpace('OperatingFrequency',freq,'SampleRate',fs);
yprop = step(sFSp,y,pos1,pos2,vel1,vel2);

Постройте график величин распространенного сигнала для каждой области значений.

figure
plot(1000*t,abs(yprop(:,1)),1000*t,abs(yprop(:,2)),1000*t,abs(yprop(:,3)))
ylabel('Signal Magnitude')
xlabel('Time (millisec)')

Figure contains an axes. The axes contains 3 objects of type line.

Алгоритмы

Когда источник и пункт назначения стационарны относительно друг друга, можно записать выходной сигнал канала свободного пространства как Y(t) = x(t-τ)/Lfsp. Величина τ является задержкой сигнала, и Lfsp является потерями при распространении в свободном пространстве. τ задержки задается R/c, где R - расстояние распространения, а c - скорость распространения. Это потери при распространении в свободном пространстве задаются как

Lfsp=(4πR)2λ2,

her- длина волны сигнала.

Эта формула принимает, что цель находится в дальнем поле передающего элемента или массива. В ближнем поле формула потерь при распространении в свободном пространстве не действительна и может привести к потере меньше единицы, эквивалентной усилению сигнала. Поэтому потеря устанавливается равной единице для значений области значений, R ≤ λ/4π.

Когда источник и назначение имеют относительное движение, обработка также вводит доплеровский сдвиг частоты. Сдвиг частоты v/λ для одностороннего распространения и 2v/λ для двухстороннего распространения. Количественная v является относительной скоростью места назначения относительно источника.

Для получения дополнительной информации см. раздел [2].

Ссылки

[1] Proakis, J. Digital Communications. Нью-Йорк: McGraw-Hill, 2001.

[2] Skolnik, M. Introduction to Радиолокационные Системы, 3rd Ed. New York: McGraw-Hill, 2001.

См. также

| (Radar Toolbox)