reflect

Отраженный сигнал от пешехода

Описание

пример

Y = reflect(pedestrian,X,ANG) возвращает отраженный сигнал, Y, от падающих сигналов, X, на пешехода. Отраженный сигнал является суммой сигналов от всех сегментов тела. ANG определяет направления падающих и отраженных сигналов относительно сегментов тела.

Примеры

свернуть все

Вычислите отраженный радиолокационный сигнал от пешехода, перемещающегося вдоль оси x от источника. Радар работает на 24 ГГц и расположен в источник. Пешехода изначально в 100 метрах от радара. Передайте линейный FM сигнал, имеющий полосу пропускания 300 МГц. Отраженный сигнал захватывается в момент начала движения пешехода и в две секунды в движение.

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

c = physconst('Lightspeed');
bw = 300.0e6;
fs = bw;
fc = 24.0e9;
wav = phased.LinearFMWaveform('SampleRate',fs,'SweepBandwidth',bw);
x = wav();
channel = phased.FreeSpace('OperatingFrequency',fc,'SampleRate',fs, ...
    'TwoWayPropagation',true);

Создайте пешеходный объект. Установите начальное положение пешехода равным 100 м на оси X с начальным курсом по положительному направлению X. Высота пешехода составляет 1,8 м, а пешехода ходят со скоростью 0,5 метра в секунду.

pedest = backscatterPedestrian( 'Height',1.8, ...
    'OperatingFrequency',fc,'InitialPosition',[100;0;0], ...
    'InitialHeading',0,'WalkingSpeed',0.5);

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

[bppos,bpvel,bpax] = move(pedest,2,0);

Передайте первый импульс пешеходу. Создать 16 реплик сигнала и распространить их в положения сегментов тела пешехода. Используйте rangeangle функция для вычисления угла прихода каждой реплики в соответствующем сегменте тела. Затем используйте reflect функция для возврата когерентной суммы всех отраженных сигналов от сегментов тела в исходном положении пешехода.

radarpos = [0;0;0];
xp = channel(repmat(x,1,16),radarpos,bppos,[0;0;0],bpvel);
[~,ang] = rangeangle(radarpos,bppos,bpax);
y0 = reflect(pedest,xp,ang);

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

[bppos,bpvel,bpax] = move(pedest,2,0);

Передайте и распространите второй импульс в новое положение пешехода.

radarpos = [0;0;0];
xp = channel(repmat(x,1,16),radarpos,bppos,[0;0;0],bpvel);
[~,ang] = rangeangle(radarpos,bppos,bpax);
y1 = reflect(pedest,xp,ang);

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

filter = phased.MatchedFilter('Coefficients',getMatchedFilter(wav));
ymf = filter([y0 y1]);
t = (0:size(ymf,1)-1)/fs;
plot(t*1e6,abs(ymf))
xlabel('Time (microsec)')
ylabel('Magnitude')
title('Match-Filtered Reflected Signals')
legend('Signal 1','Signal 2')

Figure contains an axes. The axes with title Match-Filtered Reflected Signals contains 2 objects of type line. These objects represent Signal 1, Signal 2.

Изменение масштаба и показ временных задержек для каждого сигнала.

plot(t*1e6,abs(ymf))
xlabel('Time (microsec)')
ylabel('Magnitude')
title('Matched-Filtered Reflected Signals')
axis([50.65 50.7 0 .0026])
legend('Signal 1','Signal 2')

Figure contains an axes. The axes with title Matched-Filtered Reflected Signals contains 2 objects of type line. These objects represent Signal 1, Signal 2.

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

свернуть все

Пешеходная целевая модель, заданная как backscatterPedestrian объект.

Падающие радиолокационные сигналы на каждом сегменте тела, заданные как комплексная матрица M -by-16. M - количество выборок в сигнале. Смотрите Индексы сегмента тела для столбца, представляющего сигнал падения на каждом сегменте тела.

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

Направления падающих сигналов на сегментах тела, заданные как действительная матрица 2 на 16. Каждый столбец ANG определяет направление падения сигнала на соответствующую деталь тела. Каждый столбец принимает форму пары азимут-подъем, [AzimuthAngle;ElevationAngle]. Модули указаны в степенях. Столбец, представляющий направление падения для каждого сегмента тела, см. в разделе Индексов сегмента тела.

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

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

свернуть все

Объединенные отраженные радиолокационные сигналы, возвращаемые как комплексный вектор- M-на-1 столбец. M равняется тому же количеству выборок, что и во входном сигнале, X.

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

Подробнее о

свернуть все

Индексы сегмента тела

Индексы сегментов тела определяют, какие столбцы X и ANG содержат данные для определенного сегмента тела. Для примера, столбец 3 X содержит выборочные данные для левой нижней ноги. Столбец 3 ANG содержит угол прихода сигнала в левой голени.

Индексы сегмента тела

Сегмент телаИндекс сегмента тела
левая нога1
правая нога2
левая голень3
правая голень4
левая верхняя стойка5
правая верхняя стойка6
левое бедро7
правый бедро8
левая нижняя рука9
правая нижняя рука10
левое верхнее плечо11
правый верхний рычаг12
левое плечо13
правое плечо14
шея15
голова16

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

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

.

См. также

| |

Введенный в R2019a