plot

Отображение расположения рассеивателей на велосипедисте

Описание

пример

plot(bicyclist) отображает положения всех рассеивателей на bicyclist в текущий момент времени. Чтобы отобразить текущее положение бициклиста, вызовите plot функцию объекта после вызова move функция объекта. Вызов plot перед любым вызовом на move отображает бициклист в источник.

fhndl = plot(bicyclist) возвращает указатель на рисунок окна отображения.

fhndl = plot(bicyclist,'Parent',ax) также задает оси графика для бициклистского графика.

Примеры

свернуть все

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

Постройте графики осей в виде указателя на оси.

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

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

свернуть все

Фигура окна графика.

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

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

.

См. также

| |

Введенный в R2019b