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 с комплексным знаком-by-1 вектор-столбец. M равняется тому же количеству выборок как во входном сигнале, X.

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

Больше о

свернуть все

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

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

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

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

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

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

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

| |

Введенный в R2019a