В этом примере показано, как обрабатывать и визуализировать отраженные сигналы FMCW, полученные с помощью платформы Demorad Radar Sensor Platform, с помощью Toolbox™ системы с фазированной решеткой. По умолчанию выборки I/Q и рабочие параметры считываются из двоичного файла, приведенного в этом примере. По желанию, та же процедура может быть использована для передачи, приема и обработки отражений FMCW из живых выборок I/Q с помощью собственной Demorad, следуя инструкциям, приведенным ниже в примере. Получение и обработка результатов в одной среде сокращает время разработки и облегчает быстрое создание прототипов систем обработки радиолокационных сигналов.
В этом примере требуется Toolbox™ системы фазированного массива.
Для обработки в реальном времени:
Опционально, платформа аналоговых устройств ® Demorad Radar Sensor (и драйверы)
Дополнительно, поэтапная система массива Toolbox™ надстройка для деморада
Платформа Analog Devices ® Demorad Radar Sensor имеет рабочую частоту 24 ГГц и максимальную полосу пропускания 250 МГц. Массив на платформе состоит из 2 передающих элементов и 4 приемных элементов. Приемные элементы разнесены по полуволне рабочей частоты, расположены в виде линейной матрицы. Передающие элементы также расположены в виде линейной матрицы и разнесены друг от друга на три полуволны. Элементы передачи и приема можно видеть на изображении ниже.

Установка драйверов и надстройки
Загрузите драйверы Demorad и файлы MATLAB с USB-накопителя, поставляемого Analog Devices ® с Demorad
Сохраните их в постоянном месте на компьютере
Постоянное добавление папки, содержащей файлы MATLAB, в путь MATLAB
Включите деморад и подключитесь к ПК через порт Mini-USB
Перейдите к диспетчеру устройств и найдите «BF707 Bulk Device»
Щелкните правой кнопкой мыши «BF707 Bulk Device» и выберите «Update driver» (Обновить драйвер).
Выберите параметр «Поиск драйверов на моем компьютере»
Найдите и выберите папку «drivers» на USB-накопителе
Установка поэтапной системы массива Toolbox™ надстройка для деморад из диспетчера надстроек MATLAB
Настройка и подключение радара
В этом разделе мы настроим источник выборок I/Q в качестве опции по умолчанию устройства чтения двоичных файлов. В этом файле также содержатся параметры, определяющие передаваемую чирп FMCW, которые были написаны во время создания файла. Если вы хотите запустить этот пример с помощью эхо-сигналов из деморада, выполните действия в разделе Установка драйверов и надстроек и установите флаг «usingHW» ниже в значение «true». Затем этот пример связывается с Деморадом для передачи сигнала 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 в виде чирпа или пилообразного сигнала. Как таковая теоретическая максимальная дальность РЛС (в метрах) может быть рассчитана с помощью

где
- частота чирпа. Эффективный диапазон на практике может изменяться из-за факторов окружающей среды, таких как SNR, помехи или размер испытательного устройства.
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, полученные Деморадом, преобразуются в базовую полосу аппаратно, прореживаются и передаются в MATLAB.
Алгоритмы, используемые в контуре обработки сигналов, инициализируются в этом разделе. После приема выборок I/Q 3-импульсный компенсатор удаляет обнаруженные сигналы со стационарных объектов. Выходной сигнал 3-импульсного компенсатора затем формируется лучом и используется для вычисления отклика диапазона. Детектор CFAR используется в соответствии с алгоритмом ответа дальности для обнаружения любых движущихся целей.
3-Pulse Отмена
3-импульсный компенсатор, используемый после получения 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 примерно на 10 метров, а затем снова меняющую направление, чтобы вернуться к платформе. Диапазон интенсивности по времени показывает диапазоны обнаружения.
В этом примере показано, как взаимодействовать с платформой Demorad Radar Sensor Platform Analog Devices ® для получения, обработки и визуализации радиолокационных отражений из живых данных. Эта возможность позволяет быстро создавать прототипы и тестировать системы обработки радиолокационных сигналов в единой среде, значительно сокращая время разработки.