exponenta event banner

размышлять

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

Описание

пример

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

Примеры

свернуть все

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

Создайте линейный ЧМ-сигнал и канал свободного пространства для распространения сигнала.

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 м по оси Х с начальным курсом по положительному направлению х. Высота пешехода составляет 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 содержит угол прихода сигнала в левой голени.

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

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

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

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

.

См. также

| |

Представлен в R2019a