Этот пример демонстрирует, как обработать и визуализировать эхо FMCW, полученное через Радарную Платформу Датчика Demorad с Phased Array System Toolbox™. По умолчанию выборки I/Q и рабочие параметры читаются из двоичного файла, которому предоставляют этот пример. Опционально, та же процедура может использоваться, чтобы передать, получить, и обработать отражения FMCW от живых выборок I/Q с вашим собственным Demorad путем следования инструкциям позже в примере. Получение и обработка результатов в одной среде уменьшают время разработки и упрощают быстрое прототипирование радарных систем обработки сигналов.
Этот пример требует Phased Array System Toolbox™.
Для живой обработки:
Опционально, Аналог Радарная Платформа Датчика Devices® Demorad (и драйверы)
Опционально, дополнение Phased Array System Toolbox™ для Demorad
Аналог Радарная Платформа Датчика Devices® Demorad имеет рабочую частоту 24 ГГц и максимальную пропускную способность 250 МГц. Массив на платформе состоит из 2 элементов передачи, и 4 получают элементы. Получить элементы расположены каждая полудлина волны с интервалами рабочей частоты, расположенной как линейная матрица. Элементы передачи также располагаются как линейная матрица и расположены три полудлины волн с интервалами независимо. Передача и получает элементы, видны в изображение ниже.
Установка драйверов и дополнения
Загрузите драйверы Demorad и файлы MATLAB от Карты памяти, обеспеченной Analog Devices® Demorad
Сохраните их в постоянное местоположение на вашем PC
Добавьте папку, содержащую файлы MATLAB к пути MATLAB постоянно
Включите Demorad и соединитесь с PC через Мини-USB-порт
Перейдите к Диспетчеру устройств и ищите "Устройство Объема BF707"
Щелкните правой кнопкой по "BF707 Bulk Device" и выберите "Update driver"
Выберите опцию, "Просматривают мой компьютер программное обеспечение драйвера"
Просмотрите к и выберите папку "драйверов" из Карты памяти
Установите дополнение Phased Array System Toolbox™ для Demorad из Add-On Manager MATLAB
Радарный Setup и связь
В этом разделе мы устанавливаем источник выборок I/Q как опция по умолчанию читателя двоичного файла. Также содержавшийся в этом файле параметры, которые задают переданный щебет FMCW, которые были записаны в то время, когда файл был создан. Если требуется запустить этот пример с помощью живого эха из Demorad, выполнить шаги в Установке Драйверов и Дополнения и установить флаг "usingHW" ниже на "истинный". Пример затем свяжется с Demorad, чтобы передать форму волны FMCW с радарными рабочими параметрами, заданными ниже и отправить отражения MATLAB. Метод "настройки" ниже задан объектом, представляющим Demorad. "установите" подачи и чтобы включить, и отправить параметры Demorad.
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, вниз преобразованы в основную полосу в оборудовании, десятикратно уменьшили и передали MATLAB.
Алгоритмы, используемые в цикле обработки сигналов, инициализируются в этом разделе. После получения выборок I/Q компенсатор с 3 импульсами удаляет обнаружения из стационарных объектов. Выход компенсатора с 3 импульсами затем beamformed, и используется, чтобы вычислить ответ области значений. Детектор CFAR используется в соответствии с алгоритмом ответа области значений, чтобы обнаружить любые движущиеся цели.
Компенсатор С 3 импульсами
Компенсатор с 3 импульсами, используемый после приобретения выборок I/Q, удаляет любую стационарную помеху в среде. Импульсная характеристика компенсатора с 3 импульсами дана как
Это уравнение реализовано в импульсном алгоритме компенсатора, заданном ниже.
threePulseCanceller = PulseCanceller('NumPulses',3);
Ответ области значений
Алгоритмы для вычисления ответа области значений инициализируются ниже. Для beamforming сенсорная матрица моделируется с помощью количества элементов антенны и интервала получить элементов. Модель сенсорной матрицы и рабочая частота Demorad требуются для beamforming алгоритма. Поскольку 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);
Осциллографы
Setup осциллографы, чтобы просмотреть обработанные отражения 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 до на расстоянии приблизительно в ~10 метров, затем изменяющее направление снова, чтобы попятиться к платформе. Разовый областью значений осциллограф интенсивности показывает области значений обнаружения.
Этот пример демонстрирует, как соединить интерфейсом с Аналогом с Радарной Платформой Датчика Devices® Demorad, чтобы получить, обработать и визуализировать радарные отражения из живых данных. Эта возможность включает быстрое прототипирование и тестирование радарных систем обработки сигналов в единой среде, решительно уменьшая время разработки.