Этот пример демонстрирует, как обработать и визуализировать эхо-сигналы FMCW, полученные через платформу Demorad Radar Sensor с Phased Array System Toolbox™. По умолчанию выборки и рабочие параметры считываются из двоичного файла, который предоставляется в этом примере. Опционально та же процедура может использоваться для передачи, приема и обработки FMCW-отражений от live I/Q выборок с вашим собственным Demorad путем следования инструкциям позже в примере. Получение и обработка результатов в одном окружении уменьшает время разработки и облегчает быстрое прототипирование систем обработки радиолокационных сигналов.
Этот пример требует Phased Array System Toolbox™.
Для live обработки:
Опционально, аналоговые устройства ® Demorad Radar Sensor Platform (и драйверы)
Опционально, Phased Array System Toolbox™ дополнением для деморада
Аналоговые устройства ® Demorad Radar Sensor Platform имеют рабочую частоту 24 ГГц и максимальную пропускную способность 250 МГц. Массив на платформе состоит из 2 передающих элементов и 4 приемных элементов. Приемные элементы разнесены друг от друга на полуволны рабочей частоты в виде линейного массива. Передающие элементы также расположены как линейный массив и разнесены на три половины длины волны. Передающие и приемные элементы можно увидеть на изображении ниже.
Установка драйверов и дополнения
Загрузите драйверы Demorad и файлы MATLAB с USB-накопителя, предоставляемого Analog Devices ® с Demorad
Сохраните их в постоянном местоположении на компьютере
Добавьте папку, содержащую файлы MATLAB, в путь MATLAB постоянно
Включите Demorad и подключите к ПК через порт Mini-USB
Перейдите в Диспетчер устройств и найдите «BF707 Bulk Device»
Щелкните правой кнопкой мыши на «BF707 Bulk Device» и выберите «Update driver»
Выберите опцию «Обзор компьютера для драйвера программного обеспечения»
Просмотрите, и выберите папку «drivers» из USB-накопителя
Установите 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
Исходя из рабочих параметров, определенных выше, характеристики радиолокационной системы могут быть определены для обработки и визуализации отражений. Уравнения, используемые для вычисления возможностей радиолокационной системы с этими рабочими параметрами, можно увидеть ниже:
Разрешение в области значений
Разрешение области значений (в метрах) для радара с формой волны щебета определяется уравнением
где - полоса пропускания переданного импульса:
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 в виде щебета или пилообразной волны. Как таковая, теоретическая максимальная область значений действия радара (в метрах) может быть вычислена с помощью
где - частота щебета. Эффективная область значений на практике может варьироваться из-за факторов окружающей среды, таких как ОСШ, помехи или размер испытательного объекта.
kf = bandwidth/wfMetadata.RampTime; % Chirp rate maxRange = radarSource.SampleRate*c0/(2*kf) % Maximum range (m)
maxRange = 158.2904
Ширина луча
Эффективная лучевая ширина платы радара может быть аппроксимирована уравнением
где - длина волны импульса, и является интервалом между элементами.
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-импульсного компенсатора задается как
Это уравнение реализовано в алгоритме подавителя импульсов, заданном ниже.
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 для получения, обработки и визуализации радиолокационных отражений от живых данных. Эта возможность позволяет быстро прототипирование и проверка системы радиолокационной обработки сигналов за одно окружение, резко уменьшая время разработки.