reflect

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

Описание

пример

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)

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

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

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

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

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

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

свернуть все

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

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

| |

Введенный в R2021a