radarScenarioRecording

Обратная запись радиолокационного сценария

Описание

Используйте radarScenarioRecording объект для записи радиолокационного сценария.

Создание

Можно создать radarScenarioRecording объект следующими способами:

  • Создайте запись radarScenario объект при помощи record функция и определение 'RecordingFormat'аргумент имя-значение как 'Recording'.

  • Создайте запись из предварительно записанных данных сценария радара при помощи radarScenarioRecording функция, описанная здесь.

Описание

пример

recording = radarScenarioRecording(recordedData) создает radarScenarioRecording объект, использующий записанные данные. The recordedData аргумент устанавливает значение свойства RecordedData.

recording = radarScenarioRecording(recordedData,Name,Value) устанавливает одно или оба свойства CurrentTime и CurrentStep с помощью аргументов имя-значение. Заключайте каждое имя свойства в кавычки.

Свойства

расширить все

Записанные данные, сохраненные в объекте записи, заданы как структура. Задать это свойство можно только при создании объекта. Поля структуры совпадают с полями выхода файла record функция radarScenario объект.

Временная метка последних считанных данных, заданная как неотрицательный скаляр. Когда вы вызываете read функция на объекте, функция считывает записанный набор данных, который имеет SimulationTime больше, чем CurrentTime.

Шаговый индекс последних считанных данных, заданный как неотрицательное целое число. Когда вы вызываете read функция на объекте, функция считывает набор данных с индексом следующего шага.

Функции объекта

isDoneУказывает конец записи радиолокационного сценария
readСчитайте следующий шаг из записи радиолокационного сценария
resetСброс к началу записи радиолокационного сценария

Примеры

свернуть все

Загрузите предварительно записанные данные из радарного сценария. Данные сохраняются как struct с именем переменной recordedData. Создайте radarScenarioRecording объект, использующий записанные данные.

load recordedRadarScenarioData.mat
recording = radarScenarioRecording(recordedData);

Создайте график кинотеатра, чтобы отобразить записанные данные с помощью нескольких плоттеров.

tp = theaterPlot('AxesUnits',["km" "km" "km"], ...
    'XLimits',[-50 50]*1e3,'YLimits',[-50 50]*1e3,'ZLimits',[-20 20]*1e3);
to = platformPlotter(tp,'DisplayName','Tower','Marker','d');
pp = platformPlotter(tp,'DisplayName','Targets');
dp = detectionPlotter(tp,'DisplayName','Detections','MarkerFaceColor','black');
cp = coveragePlotter(tp,'DisplayName','Radar Beam');

coverage = struct('Index',1,'LookAngle',[0;-7],'FieldOfView',[1;10], ...
    'ScanLimits',[0 365;-12 -2],'Range',100e3,'Position',[0;0;-15], ...
    'Orientation',eye(3));

Запустите записанный сценарий и анимируйте результаты.

scanBuffer = {};
while ~isDone(recording)
    % Step the reader to read the next frame of data
    [simTime,poses,covcon,dets,senconfig] = read(recording);
    scanBuffer = [scanBuffer;dets]; %#ok<AGROW>
    plotPlatform(to,poses(1).Position);
    plotPlatform(pp,reshape([poses(2:4).Position]',3,[])');
    plotCoverage(cp,covcon);
    if ~isempty(dets)
        plotDetection(dp,cell2mat(cellfun(@(c) c.Measurement(:)', scanBuffer, 'UniformOutput', false)));
    end
    
    % Clear the buffer when a 360 degree scan is complete
    if senconfig.IsScanDone
        scanBuffer = {};
        dp.clearData;
    end
end

См. также

|

Введенный в R2021a