Положение и скорость обхода пешехода
Вычислите отраженный радарный сигнал от пешехода, проходящего ось 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')
Увеличьте масштаб и покажите задержки каждого сигнала.
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')
pedestrian
— Пешеходная цельbackscatterPedestrian
объектПешеходная целевая модель в виде backscatterPedestrian
объект.
T
— Длительность следующего интервала обходаДлительность следующего интервала обхода в виде положительной скалярной величины. Величина в секундах.
Пример: 0.75
Типы данных: double
ANGH
— Пешеходный заголовокЗаголовок пешехода в виде скаляра. Заголовок измеряется в xy - плоскости от x - оси к y - ось. Модули в градусах.
Пример: -34
Типы данных: double
BPPOS
— Положения сегментов телаПоложения сегментов тела, возвращенных как с действительным знаком 3 16 матрица. Каждый столбец представляет Декартово положение, [x;y;z]
, из одного из 16 сегментов тела. Величины в метрах. Смотрите индексы Сегмента Тела для столбца, представляющего положение каждого сегмента тела.
Типы данных: double
BPVEL
— Скорость сегментов телаСкорость сегментов тела, возвращенных как с действительным знаком 3 16 матрица. Каждый столбец представляет Декартов вектор скорости, [vx;vy;vz]
, из одного из 16 сегментов тела. Модули исчисляются в метрах в секунду. Смотрите индексы Сегмента Тела для столбца, представляющего скорость каждого сегмента тела.
Типы данных: double
BPAX
— Ориентация сегментов телаОси ориентации сегментов тела, возвращенных как 3 с действительным знаком 3 16 массивами. Каждая страница представляет 3х3 оси ориентации одного из 16 сегментов тела. Модули являются безразмерными. Смотрите индексы Сегмента Тела для страницы, представляющей ориентацию каждого сегмента тела.
Типы данных: double
Индексы сегмента тела задают который столбцы в BPPOS
и BPVEL
содержите данные о положении и скорости для определенного сегмента тела. Индексы также указывают на страницу BPAX
содержа матрицу ориентации для определенного сегмента тела. Например, столбец три из BPPOS
содержит 3-D положение левой голени. Страница три из BPAX
содержит матрицу ориентации левой голени.
Сегмент тела | Индекс | |
---|---|---|
Левая нога | 1 | |
Правая нога | 2 | |
Оставленная голень | 3 | |
Правая голень | 4 | |
Оставленное бедро | 5 | |
Правое бедро | 6 | |
Оставленное бедро | 7 | |
Правое бедро | 8 | |
Оставленное предплечье | 9 | |
Правое предплечье | 10 | |
Оставленное плечо | 11 | |
Правое плечо | 12 | |
Оставленное плечо | 13 | |
Правое плечо | 14 | |
Голова | 15 | |
Туловище | 16 |
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.