exponenta event banner

размышлять

Отраженный сигнал от движущегося велосипедиста

Описание

пример

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)

Figure Bicyclist Trajectory contains an axes. The axes with title Bicyclist Trajectory contains an object of type line.

Получение первого отраженного сигнала

Распространить сигнал на все рассеиватели и получить суммарный отраженный обратный сигнал.

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)

Figure Bicyclist Trajectory contains an axes. The axes with title Bicyclist Trajectory contains an object of type line.

Получение второго отраженного сигнала

Распространить сигнал на все рассеиватели в их новых положениях и получить суммарный отраженный обратный сигнал.

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')

Figure Bicyclist Trajectory contains an axes. The axes contains 2 objects of type line. These objects represent 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 м, как и ожидалось, учитывая скорость велосипедиста.

Входные аргументы

свернуть все

Велосипедист, указанный как backscatterBicyclist объект.

Падающие радиолокационные сигналы на каждый бициклический рассеиватель, определяемый как комплексная матрица M-by-N. M - количество выборок в сигнале. N - количество точечных рассеивателей на велосипедисте и определяется частично из числа спиц в каждом колесе, Nws. Колонка, представляющая падающий сигнал на каждом рассеивателе, приведена в разделе Индексы велосипедного рассеивателя.

Размер первого размера входной матрицы может изменяться для моделирования изменения длины сигнала. Изменение размера может происходить, например, в случае формы импульса с переменной частотой повторения импульса.

Типы данных: double
Поддержка комплексного номера: Да

Направления падающих сигналов на бициклистские рассеиватели, определяемые как действительная матрица 2-by-N. N равно количеству столбцов в X. Каждый столбец Ang определяет направление падения сигнала на рассеиватель в виде пары азимут-отметка, [AzimingAngle; ElevationAngle]. Единицы измерения в градусах. См. раздел Индексы велосипедного рассеивателя для столбца, представляющего направление падения на каждом рассеивателе.

Типы данных: double

Выходные аргументы

свернуть все

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

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

| |

Представлен в R2021a