Отраженный сигнал от пешехода
возвращает отраженный сигнал, Y
= reflect(pedestrian
,X
,ANG
)Y
, от падающих сигналов, X
, на пешехода. Отраженный сигнал является суммой сигналов от всех сегментов тела. ANG
определяет направления падающих и отраженных сигналов относительно сегментов тела.
Вычислите отраженный радиолокационный сигнал от пешехода, перемещающегося вдоль оси 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
объект.
X
- Падающие радиолокационные сигналыПадающие радиолокационные сигналы на каждом сегменте тела, заданные как комплексная матрица M -by-16. M - количество выборок в сигнале. Смотрите Индексы сегмента тела для столбца, представляющего сигнал падения на каждом сегменте тела.
Типы данных: double
Поддержка комплексного числа: Да
ANG
- Направления падающих сигналовНаправления падающих сигналов на сегментах тела, заданные как действительная матрица 2 на 16. Каждый столбец ANG
определяет направление падения сигнала на соответствующую деталь тела. Каждый столбец принимает форму пары азимут-подъем, [AzimuthAngle;ElevationAngle]
. Модули указаны в степенях. Столбец, представляющий направление падения для каждого сегмента тела, см. в разделе Индексов сегмента тела.
Типы данных: double
Y
- Объединенные отраженные радиолокационные сигналыОбъединенные отраженные радиолокационные сигналы, возвращаемые как комплексный вектор- M-на-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 |
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.