поэтапный. BackscatterPedestrian

Радарное поперечное сечение обратного рассеяния пешехода

Описание

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

Создание

Синтаксис

pedestrian = phased.BackscatterPedestrian
pedestrian = phased.BackscatterPedestrian(Name,Value,...)

Описание

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

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

pedestrian = phased.BackscatterPedestrian( ...
              'Height',2,'WalkingSpeed',0.5, ...
              'InitialPosition',[0;0;0],'InitialHeading',90);
модели женщина один 2D метр высотой или человек, проходящий положительный 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Отраженный сигнал от обхода пешехода
cloneСоздайте одинаковый объект
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 = phased.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')

Увеличьте масштаб и покажите задержки каждого сигнала.

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')

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

fc = 24.0e9;
pedest = phased.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')

Ссылки

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

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

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

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

Введенный в R2019a

Для просмотра документации необходимо авторизоваться на сайте