Отраженный сигнал от движущегося велосипедиста
возвращает полный отраженный сигнал, Y
= reflect(bicyclist
,X
,ang
)Y
, от велосипедиста. Полный отраженный сигнал является суммой всех отраженных сигналов от бициклистских рассеивателей. X
представляет сигналы падения на каждом рассеивателе. ang
определяет направления падающего и отраженных сигналов относительно каждого рассеивателя.
Сила отраженного сигнала зависит от значения поперечного сечения радара при падающем угле. Эта упрощенная модель использует одно и то же значение для всех рассеивателей.
Вычислите сигнал обратного рассеяния радара от бициклиста, перемещающегося вдоль оси X на 5 м/с от радара. Предположим, что радар расположен в источник. Радар передает сигнал LFM на 24 ГГц с пропускной способностью 300 МГц. Сигнал отражается в момент начала движения велосипедиста и затем на одну секунду позже.
Инициализация объектов канала бициклиста, формы волны и распространения
Инициализируйте backscatterBicyclist
, phased.LinearFMWaveform
, и phased.FreeSpace
объекты. Примите частоту дискретизации 300 МГц. Начальное положение велосипедиста лежит на оси X в 30 метрах от радара.
bw = 300e6; fs = bw; fc = 24e9; radarpos = [0;0;0]; bpos = [30;0;0]; bicyclist = backscatterBicyclist( ... 'OperatingFrequency',fc,'NumWheelSpokes',15, ... 'InitialPosition',bpos,'Speed',5.0, ... 'InitialHeading',0.0); lfmwav = phased.LinearFMWaveform( ... 'SampleRate',fs, ... 'SweepBandwidth',bw); sig = lfmwav(); chan = phased.FreeSpace( ... 'OperatingFrequency',fc, ... 'SampleRate',fs, ... 'TwoWayPropagation',true);
Постройте начальное положение бициклиста
Использование move
функция объекта, получают начальные положения рассеивателя, скорости и ориентацию велосипедиста. Постройте график начального положения велосипедиста. The dt
аргумент move
функция object определяет, что следующий вызов move
возвращает состояние движения велосипедиста dt
секунд спустя.
dt = 1.0; [bpos,bvel,bax] = move(bicyclist,dt,0); plot(bicyclist)
Получите первый отраженный сигнал
Распространите сигнал на все рассеиватели и получите совокупный отраженный обратный сигнал.
N = getNumScatterers(bicyclist); sigtrns = chan(repmat(sig,1,N),radarpos,bpos,[0;0;0],bvel); [rngs,ang] = rangeangle(radarpos,bpos,bax); y0 = reflect(bicyclist,sigtrns,ang);
Постройте график положения бициклиста после обновления положения
После того, как велосипедист переместится, получите позиции и скорости рассеяния и затем переместите велосипед по его траектории еще на секунду.
[bpos,bvel,bax] = move(bicyclist,dt,0); plot(bicyclist)
Получите второй отраженный сигнал
Распространите сигнал на все рассеиватели в их новых положениях и получите совокупный отраженный обратный сигнал.
sigtrns = chan(repmat(sig,1,N),radarpos,bpos,[0;0;0],bvel); [~,ang] = rangeangle(radarpos,bpos,bax); y1 = reflect(bicyclist,sigtrns,ang);
Соответствие отраженных сигналов фильтра
Соответствие фильтрации отраженных сигналов и построение графика.
mfsig = getMatchedFilter(lfmwav); nsamp = length(mfsig); mf = phased.MatchedFilter('Coefficients',mfsig); ymf = mf([y0 y1]); fdelay = (nsamp-1)/fs; t = (0:size(ymf,1)-1)/fs - fdelay; c = physconst('LightSpeed'); plot(c*t/2,mag2db(abs(ymf))) ylim([-200 -50]) xlabel('Range (m)') ylabel('Magnitude (dB)') ax = axis; axis([0,100,ax(3),ax(4)]) grid legend('First pulse','Second pulse')
Вычислите различие в области значений между максимумами двух импульсов.
[maxy,idx] = max(abs(ymf)); dpeaks = t(1,idx(2)) - t(1,idx(1)); drng = c*dpeaks/2
drng = 4.9965
Область значений различия составляет 5 м, как и ожидалось с учетом скорости бициклиста.
bicyclist
- Бициклистская мишеньbackscatterBicyclist
объектВелосипедист, указанный как backscatterBicyclist
объект.
X
- Падающие радиолокационные сигналыПадающие радиолокационные сигналы на каждом бициклистическом рассеивателе, заданные как комплексная матрица M -by N. M - количество выборок в сигнале. N - количество точечных рассеивателей на бициклисте и определяется частично из числа спиц в каждом колесе, N ws. Столбец, представляющий падающий сигнал на каждом рассеивателе, см. в разделе Индексы рассеяния велосипедов.
Размер первой размерности матрицы входа может варьироваться, чтобы симулировать изменяющуюся длину сигнала. Изменение размера может произойти, например, в случае импульсного сигнала с переменной частотой повторения импульса.
Типы данных: double
Поддержка комплексного числа: Да
ang
- Направления падающих сигналовНаправления падающих сигналов на бициклистических рассеивателях, заданные как действительная матрица 2- N. N равняется количеству столбцов в X
. Каждый столбец Ang
задает направление падения сигнала на рассеиватель, принимающий форму пары азимут-подъем, [AzimuthAngle; ElevationAngle]. Модули указаны в степенях. Столбец, представляющий направление происшествия на каждом рассеивателе, см. в разделе Индексы рассеяния велосипедов.
Типы данных: double
Y
- Всего отраженных радиолокационных сигналовВсего отраженных радиолокационных сигналов, возвращаемых как комплексный вектор- M-на-1 столбец. M равняется количеству выборок во входном сигнале, X
.
Типы данных: double
Поддержка комплексного числа: Да
Индексы бициклиста-рассеивателя определяют, какие столбцы в матрицах положения или скорости рассеивателя содержат данные о положении и скорости для определенного рассеивателя. Для примера, столбец 92 bpos
задает 3-D положение одного из рассеивателей на педали.
Рассеиватели колес разделены поровну между колесами. Можно определить общее количество рассеивателей колес, N, путем вычитания 113 из выхода getNumScatterers
функция. Количество рассеивателей на колесо N sw = N/2.
Индексы бициклиста-рассеивателя
Компонент велосипедиста | Индекс бициклиста-рассеивателя |
---|---|
Система координат и всадник | 1 … 90 |
Педали | 91 … 99 |
Ноги всадника | 100 … 113 |
Переднее колесо | 114 … 114 + N sw - 1 |
Заднее колесо | 114 + N sw... 114 + N - 1 |
Значение радиолокационного поперечного сечения (RCS) рассеивателя обычно зависит от угла падения отраженного излучения. The backscatterBicyclist
объект использует упрощенную модель RCS: RCS-шаблон отдельного рассеивателя равен общему бициклистическому шаблону, деленному на количество рассеивателей. Значение RCS вычисляется из шаблона RCS, оцениваемого в среднем по всем рассеивателям углов падения азимута и повышения. Поэтому значение RCS является одинаковым для всех рассеивателей. Вы можете задать шаблон RCS, используя RCSPattern
свойство backscatterBicyclist
объект или использовать значение по умолчанию.
getNumScatterers
| move
| plot
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.