Обработка радиолокационных отражений, полученных с помощью платформы Demorad Radar Sensor

Введение

Этот пример демонстрирует, как обработать и визуализировать эхо-сигналы FMCW, полученные через платформу Demorad Radar Sensor с Phased Array System Toolbox™. По умолчанию выборки и рабочие параметры считываются из двоичного файла, который предоставляется в этом примере. Опционально та же процедура может использоваться для передачи, приема и обработки FMCW-отражений от live I/Q выборок с вашим собственным Demorad путем следования инструкциям позже в примере. Получение и обработка результатов в одном окружении уменьшает время разработки и облегчает быстрое прототипирование систем обработки радиолокационных сигналов.

Необходимое аппаратное и программное обеспечение

Этот пример требует Phased Array System Toolbox™.

Для live обработки:

Аналоговые устройства ® Demorad Radar Sensor Platform имеют рабочую частоту 24 ГГц и максимальную пропускную способность 250 МГц. Массив на платформе состоит из 2 передающих элементов и 4 приемных элементов. Приемные элементы разнесены друг от друга на полуволны рабочей частоты в виде линейного массива. Передающие элементы также расположены как линейный массив и разнесены на три половины длины волны. Передающие и приемные элементы можно увидеть на изображении ниже.

Установка драйверов и дополнения

  1. Загрузите драйверы Demorad и файлы MATLAB с USB-накопителя, предоставляемого Analog Devices ® с Demorad

  2. Сохраните их в постоянном местоположении на компьютере

  3. Добавьте папку, содержащую файлы MATLAB, в путь MATLAB постоянно

  4. Включите Demorad и подключите к ПК через порт Mini-USB

  5. Перейдите в Диспетчер устройств и найдите «BF707 Bulk Device»

  6. Щелкните правой кнопкой мыши на «BF707 Bulk Device» и выберите «Update driver»

  7. Выберите опцию «Обзор компьютера для драйвера программного обеспечения»

  8. Просмотрите, и выберите папку «drivers» из USB-накопителя

  9. Установите Phased Array System Toolbox™ Дополнения для Demorad из MATLAB Add-On Manager

Радиолокационный Setup и соединение

В этом разделе мы настраиваем источник выборок I/Q как опцию по умолчанию для устройства чтения двоичных файлов. Также в этом файле содержатся параметры, которые определяют переданный FMCW щебет, которые были записаны во время создания файла. Если вы хотите запустить этот пример с помощью live echoes из Demorad, выполните действия в разделе Установка драйверов и дополнении и установите флаг «usingHW» ниже на «true». Затем пример свяжется с Demorad, чтобы передать сигнал FMCW с рабочими параметрами радара, заданными ниже, и отправит отражения в MATLAB. Метод «setup» ниже определяется объектом, представляющим Деморад. «setup» служит для включения питания и отправки параметров Демораду.

usingHW = false;  % Set to "true" to use Demorad Radar Sensor Platform

if ~usingHW
  % Read I/Q samples from a recorded binary file
  radarSource = RadarBasebandFileReader('./DemoradExampleIQData.bb',256);
else
  % Instantiate the Demorad Platform interface
  radarSource = DemoradBoard;

  radarSource.SamplesPerFrame = 256;   % Number of samples per frame
  radarSource.AcquisitionTime = 30;    % Length of time to acquire samples (s)

  % Define operating parameters
  radarSource.RampTime = 280e-6;       % Pulse ramp time (s)
  radarSource.PRI = 300e-6;            % Pulse Repetition interval (s)
  radarSource.StartFrequency = 24e9;   % Pulse start frequency (Hz)
  radarSource.StopFrequency = 24.25e9; % Pulse stop frequency (Hz)
  radarSource.NumChirps = 1;           % Number of pulses to process

  % Establish the connection with the Demorad
  setup(radarSource);
end

Возможности радара

Исходя из рабочих параметров, определенных выше, характеристики радиолокационной системы могут быть определены для обработки и визуализации отражений. Уравнения, используемые для вычисления возможностей радиолокационной системы с этими рабочими параметрами, можно увидеть ниже:

Разрешение в области значений

Разрешение области значений (в метрах) для радара с формой волны щебета определяется уравнением

$$\Delta R = \frac{c_0}{2B}$$

где$B$ - полоса пропускания переданного импульса:

c0 = physconst('LightSpeed');
wfMetadata = radarSource.Metadata;                % Struct of waveform metadata
bandwidth = wfMetadata.StopFrequency ...
  - wfMetadata.StartFrequency;                    % Chirp bandwidth
rangeRes = c0/(2*bandwidth)                       % Range resolution (m)
rangeRes =

    0.5996

Максимальная область значений

Платформа Demorad передает импульс FMCW в виде щебета или пилообразной волны. Как таковая, теоретическая максимальная область значений действия радара (в метрах) может быть вычислена с помощью

$$R_{max} = \frac{F_sc_0}{2k_f}$$

где$k_f$ - частота щебета. Эффективная область значений на практике может варьироваться из-за факторов окружающей среды, таких как ОСШ, помехи или размер испытательного объекта.

kf = bandwidth/wfMetadata.RampTime;          % Chirp rate
maxRange = radarSource.SampleRate*c0/(2*kf)  % Maximum range (m)
maxRange =

  158.2904

Ширина луча

Эффективная лучевая ширина платы радара может быть аппроксимирована уравнением

$$\Theta\approx\frac{\lambda}{N_{elements}\Delta x_{elements}}$$

где$\lambda$ - длина волны импульса, и$\delta x_{elements}$ является интервалом между элементами.

lambda = c0/radarSource.CenterFrequency;               % Signal wavelength
rxElementSpacing = lambda/2;
beamwidth = rad2deg(lambda/ ...
  (radarSource.NumChannels*rxElementSpacing))          % Effective beamwidth
beamwidth =

   28.6479

С пропускной способностью передачи 250 МГц и 4-элементным приёмным массивом область значений и угловое разрешение достаточны для разрешения нескольких тесно расположенных объектов. I/Q выборки, записанные в двоичном файле, возвращаются с платформы Demorad без какой-либо дополнительной цифровой обработки. FMCW-отражения, полученные Demorad, преобразуются вниз в baseband в оборудовании, децимируются и передаются в MATLAB.

Компоненты обработки сигналов

Алгоритмы, используемые в цикле обработки сигналов, инициализированы в этом разделе. После получения выборок I/Q, 3-импульсный компенсатор удаляет обнаружения от стационарных объектов. Выход 3-импульсного компенсатора затем формируется лучом и используется, чтобы вычислить характеристику области значений. Детектор CFAR используется после алгоритма отклика области значений, чтобы обнаружить любые движущиеся цели.

3-Pulse Canceller

Трехимпульсный компенсатор, используемый после приобретения выборок I/Q, удаляет любое стационарное загромождение в окружении. Импульсная характеристика 3-импульсного компенсатора задается как

$$h(t) = -\delta(t) + 2\delta(t-T_s) - \delta(t-2T_s)$$

Это уравнение реализовано в алгоритме подавителя импульсов, заданном ниже.

threePulseCanceller = PulseCanceller('NumPulses',3);

Область значений отклика

Алгоритмы вычисления отклика области значений инициализированы ниже. Для формирования луча массив моделируется с использованием количества антенных элементов и интервалов между приемными элементами. Модель массива и рабочая частота Деморады требуются для алгоритма формирования луча. Поскольку Demorad передает сигнал FMCW, ответ области значений вычисляется с помощью БПФ.

antennaArray = phased.ULA('NumElements',radarSource.NumChannels, ...
  'ElementSpacing',rxElementSpacing);

beamFormer = phased.PhaseShiftBeamformer('SensorArray',antennaArray, ...
'Direction',[0;0],'OperatingFrequency',radarSource.CenterFrequency);

% Setup the algorithm for processing
NFFT = 4096;
rangeResp = phased.RangeResponse( ...
  'DechirpInput', false, ...
  'RangeMethod','FFT', ...
  'ReferenceRangeCentered', false, ...
  'PropagationSpeed',c0, ...
  'SampleRate',radarSource.SampleRate, ...
  'SweepSlope',kf*2, ...
  'RangeFFTLengthSource','Property', ...
  'RangeFFTLength',NFFT, ...
  'RangeWindow', 'Hann');

CFAR-детектор

Детектор постоянной скорости ложного предупреждения (CFAR) затем используется для обнаружения любых движущихся целей.

cfar = phased.CFARDetector('NumGuardCells',6,'NumTrainingCells',10);

Возможности

Установите возможности для просмотра обработанных отражений FMCW. Мы устанавливаем окно просмотра возможностей интенсивности диапазона - 15 секунд.

timespan = 15;

% The Demorad returns data every 128 pulse repetition intervals
rangeScope = phased.RTIScope( ...
  'RangeResolution',maxRange/NFFT,...
  'TimeResolution',wfMetadata.PRI*128, ...
  'TimeSpan', timespan, ...
  'IntensityUnits','power');

Симуляция и визуализация

Затем выборки получают из устройства чтения двоичных файлов, обрабатывают и показывают в возможностях. Этот цикл будет продолжаться до тех пор, пока все выборки не будут считаны из двоичного файла. При использовании Demorad цикл будет продолжаться в течение 30 секунд, что определяется свойством «AcquisitionTime» объекта, представляющего плату. Показаны только области значений от 0 до 15 метров, поскольку мы априори знаем, что цель, записанная в двоичном файле, находится в этой области значений.

while ~isDone(radarSource)
  % Retrieve samples from the I/Q sample source
  x = radarSource();

  % Cancel out any pulses from non-moving objects and beamform
  y = threePulseCanceller(x);
  y = beamFormer(y);

  % Calculate the range response and convert to power
  resp = rangeResp(y);
  rangepow = abs(resp).^2;

  % Use the CFAR detector to detect any moving targets from 0 - 15 meters
  maxViewRange = 15;
  rng_grid = linspace(0,maxRange,NFFT).';
  [~,maxViewIdx] = min(abs(rng_grid - maxViewRange));
  detIdx = false(NFFT,1);
  detIdx(1:maxViewIdx) = cfar(rangepow,1:maxViewIdx);

  % Remove non-detections and set a noise floor at 1/10 of the peak value
  rangepow = rangepow./max(rangepow(:)); % Normalize detections to 1 W
  noiseFloor = 1e-1;
  rangepow(~detIdx & (rangepow < noiseFloor)) = noiseFloor;

  % Display ranges from 0 - 15 meters in the range-time intensity scope
   rangeScope(rangepow(1:maxViewIdx));
end

Область возможностей показывает одну цель, отходящую от платформы Demorad Radar Sensor Platform примерно до ~ 10 метров, затем снова меняющую направление, чтобы двигаться назад к платформе. Возможности интенсивности в диапазоне показывают области значений обнаружения.

Сводные данные

Этот пример демонстрирует взаимодействие с платформой Analog Devices ® Demorad Radar Sensor Platform для получения, обработки и визуализации радиолокационных отражений от живых данных. Эта возможность позволяет быстро прототипирование и проверка системы радиолокационной обработки сигналов за одно окружение, резко уменьшая время разработки.