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

Увеличьте изображение и покажите временные задержки для каждого сигнала.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.