backscatterPedestrian

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

Описание

backscatterPedestrian создает объект, который имитирует сигналы, отраженные от пешехода. Модель пешеходной ходьбы координирует движение 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Запуск алгоритма системного объекта
releaseОтпустите ресурсы и допустите изменения в значениях свойств системного объекта и входных характеристиках
resetСброс внутренних состояний Системного объекта

Примеры

свернуть все

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

Создайте пешеходный объект. Установите начальное положение пешехода равным 100 м на оси X с начальным курсом по положительному направлению X. Высота пешехода составляет 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] Виктор Чен, The Micro-Doppler Effect in Radar, Artech House, 2011.

[2] Ronan Boulic, Nadia Magnenat-Thalmann, Daniel Thalmann, A Global Human Walking Model With Real-time Kinematic Personification, The Visual Computer: International Journal of Computer Graphics, vics, Vol.

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

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

.
Введенный в R2019a