Отраженный сигнал от движущегося велосипедиста
возвращает общий отраженный сигнал, Y = reflect(bicyclist,X,ang)Y, от велосипедиста. Суммарный отраженный сигнал представляет собой сумму всех отраженных сигналов от бициклических рассеивателей. X представляет падающие сигналы на каждом рассеивателе. ang определяет направления падающего и отраженного сигналов относительно каждого рассеивателя.
Интенсивность отраженного сигнала зависит от величины сечения РЛС при угле падения. Эта упрощенная модель использует одно и то же значение для всех рассеивателей.
Вычислите сигнал РЛС обратного рассеяния от велосипедиста, движущегося по оси Х на расстоянии 5 м/с от РЛС. Предположим, что радар расположен в начале координат. Радар передает сигнал LFM на частоте 24 ГГц с шириной полосы 300 МГц. Сигнал отражается в момент, когда велосипедист начинает движение, а затем на секунду позже.
Инициализация объектов Bicyclist, Waveform и канала распространения
Инициализируйте 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 функция объекта, получение исходных положений рассеивателя, скоростей и ориентации велосипедиста. Постройте график исходного положения велосипедиста. dt аргумент move функция объекта определяет, что следующий вызов 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 - количество точечных рассеивателей на велосипедисте и определяется частично из числа спиц в каждом колесе, Nws. Колонка, представляющая падающий сигнал на каждом рассеивателе, приведена в разделе Индексы велосипедного рассеивателя.
Размер первого размера входной матрицы может изменяться для моделирования изменения длины сигнала. Изменение размера может происходить, например, в случае формы импульса с переменной частотой повторения импульса.
Типы данных: double
Поддержка комплексного номера: Да
ang - Направления сигналов происшествийНаправления падающих сигналов на бициклистские рассеиватели, определяемые как действительная матрица 2-by-N. N равно количеству столбцов в X. Каждый столбец Ang определяет направление падения сигнала на рассеиватель в виде пары азимут-отметка, [AzimingAngle; ElevationAngle]. Единицы измерения в градусах. См. раздел Индексы велосипедного рассеивателя для столбца, представляющего направление падения на каждом рассеивателе.
Типы данных: double
Y - Суммарные отраженные радиолокационные сигналыОбщее количество отраженных радиолокационных сигналов, возвращаемых в виде вектора M-by-1 столбца с комплексными значениями. M равно количеству выборок во входном сигнале, X.
Типы данных: double
Поддержка комплексного номера: Да
Индексы бициклического рассеивателя определяют, какие столбцы в матрицах положения рассеивателя или скорости содержат данные положения и скорости для конкретного рассеивателя. Например, столбец 92 bpos определяет 3-D положение одного из рассеивателей на педали.
Разбрасыватели колес поровну разделены между колесами. Общее число рассеивателей колес N можно определить путем вычитания 113 из выходного сигнала getNumScatterers функция. Количество рассеивателей на колесо Nsw = N/2.
Индексы рассеивателя велосипедистов
| Компонент Bicyclist | Индекс рассеяния велосипедистов |
|---|---|
| Рама и райдер | 1 … 90 |
| Педали | 91 … 99 |
| Ноги всадника | 100 … 113 |
| Переднее колесо | 114 … 114 + Nsw - 1 |
| Заднее колесо | 114 + Nsw... 114 + N - 1 |
Значение радиолокационного сечения (RCS) рассеивателя обычно зависит от угла падения отраженного излучения. backscatterBicyclist объект использует упрощенную модель RCS: рисунок RCS отдельного рассеивателя равен суммарному образцу бициклиста, делённому на число рассеивателей. Значение RCS вычисляется по шаблону RCS, оцениваемому в среднем по всем рассеивателям углов падения по азимуту и отметке. Поэтому значение RCS одинаково для всех рассеивателей. Шаблон RCS можно задать с помощью команды RCSPattern имущества backscatterBicyclist или используйте значение по умолчанию.
getNumScatterers | move | plot
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.