exponenta event banner

backscatterPedestrian

Радиолокационные сигналы обратного рассеяния от пешехода

Описание

backscatterPedan создает объект, имитирующий сигналы, отраженные от пешехода. Модель пешеходной ходьбы координирует движение 16 сегментов тела для имитации естественного движения. Модель также моделирует радиолокационную отражательную способность каждого сегмента тела. Из этой модели можно получить положение и скорость каждого сегмента и общее обратное рассеяние излучения при движении тела.

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

Создание

Синтаксис

pedestrian = backscatterPedestrian
pedestrian = backscatterPedestrian(Name,Value,...)

Описание

pedestrian = backscatterPedestrian создает объект пешеходной целевой модели, pedestrian. Пешеходная модель включает 16 сегментов тела - левую и правую ноги, левую и правую нижние ноги, левую и правую верхние ноги, левое и правое бедро, левую и правую нижние руки, левую и правую верхние руки, левую и правую плечи, шею и голову.

pedestrian = backscatterPedestrian(Name,Value,...) создает пешеходный объект, pedestrian, с каждым указанным свойством Name установить в указанное значение Value. Можно указать дополнительные аргументы пары имя-значение в любом порядке как (Name1,Value1,...,NameN,ValueN). Все неопределенные свойства принимают значения по умолчанию. Например,

pedestrian = backscatterPedestrian( ...
              'Height',2,'WalkingSpeed',0.5, ...
              'InitialPosition',[0;0;0],'InitialHeading',90);
моделирует двухметрового роста женщину или мужчину, движущихся вдоль положительной оси Y со скоростью полметра в секунду.

Свойства

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

Высота пешехода, заданная как положительный скаляр. Единицы в метрах.

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

Скорость ходьбы пешехода, заданная как неотрицательный скаляр. Модель движения ограничивает скорость ходьбы до 1,4-кратной высоты пешехода, установленной в Height собственность. Единицы измерения в метрах в секунду.

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

Скорость распространения сигнала, заданная как положительный скаляр. Единицы измерения в метрах в секунду. Скорость распространения по умолчанию - это значение, возвращаемое physconst('LightSpeed'). Посмотрите physconst для получения дополнительной информации.

Пример: 3e8

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

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

Пример: 1e9

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

Исходное положение пешехода, определяемое как действительный вектор 3 на 1 в виде [x;y;z]. Единицы в метрах.

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

Начальный курс пешехода, указанный как скаляр. Измеряют курс в плоскости xy от оси x к оси y. Единицы измерения в градусах.

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

Функции объекта

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

moveПоложение и скорость пешехода
reflectОтраженный сигнал от пешехода
plotИзображение на дисплее, показывающее положение всех сегментов кузова пешехода
stepЗапустить алгоритм объекта System
releaseДеблокирование ресурсов и разрешение изменений значений свойств объекта системы и входных признаков
resetСброс внутренних состояний объекта System

Примеры

свернуть все

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

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

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

Получение и построение графика детального движения правого и левого нижних плеч пешехода путем фиксации их положения каждые 1/10 секунды.

blla = zeros(3,100);
brla = blla;
t = zeros(1,100);
T = .1;
for k = 1:100
    [bppos,bpvel,bpax] = move(pedest,T,0);
    blla(:,k) = bppos(:,9);
    brla(:,k) = bppos(:,10);
    t(k) = T*(k-1);
end
plot(t,brla(1,:),t,blla(1,:))
title('Pedestrian Arm Motion')
xlabel('Time (sec)')
ylabel('Distance (m)')
legend('Right Lower Arm','Left Lower Arm')

Figure contains an axes. The axes with title Pedestrian Arm Motion contains 2 objects of type line. These objects represent Right Lower Arm, Left Lower Arm.

Отображение движения пешехода, идущего по квадратной дорожке. Создание пешехода с помощью backscatterPedestrian объект со значениями по умолчанию, за исключением высоты 1,7 метра. Опередите и отобразите положение пешехода каждые 3 миллисекунды. Сначала пешеход перемещается вдоль положительной оси x, затем вдоль положительной оси y, вдоль отрицательной оси x и, наконец, вдоль отрицательной оси y, чтобы вернуться к начальной точке.

ped = backscatterPedestrian('Height',1.7);
dt = 0.003;
N = 3600;
for m = 1:N
    if (m < N/4)
        angstep = 0.0;
    end
    if (m >= N/4)
        angstep = 90.0;
    end
    if (m >= N/2)
        angstep = 180.0;
    end
    if (m >= 3*N/4)
        angstep = 270.0;
    end
    move(ped,dt,angstep);
    plot(ped)
end

Figure Pedestrian Trajectory contains an axes. The axes with title Pedestrian Trajectory contains 2 objects of type line.

Ссылки

[1] Виктор Чен, микро-доплеровский эффект в радаре, Artech House, 2011.

[2] Ронан Булич, Надя Магненат-Тальманн, Даниэль Тальманн, Глобальная модель ходьбы человека с кинематической персонификацией в реальном времени, Визуальный компьютер: Международный журнал компьютерной графики, том 6, выпуск 6, декабрь 1990 года.

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

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

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