Радарная симуляция сигнала и обрабатывающий для автоматизированного управления

Этот пример показывает, как смоделировать оборудование радара, обработку сигналов и среду распространения для ведущего сценария. Сначала вы разрабатываете модель радарной передачи и получаете оборудование, обработку сигналов, обнаружение и оценку с помощью Phased Array System Toolbox™. Затем вы моделируете движение автомобиля и отслеживаете синтетические обнаружения автомобиля с помощью Automated Driving Toolbox™. В этом примере вы используете эту радарную модель, чтобы отследить обнаружения в магистрали ведущий сценарий.

Этот пример требует Automated Driving Toolbox.

Введение

Можно смоделировать движение автомобиля при помощи объекта drivingScenario от Automated Driving Toolbox. Наземная истина автомобиля может затем использоваться, чтобы сгенерировать синтетические обнаружения датчика, которые можно отследить при помощи объекта multiObjectTracker. Для примера этого рабочего процесса смотрите, что Fusion Датчика Использует Синтетические Данные о Радаре и Видении в Simulink (Automated Driving Toolbox). Автомобильный радар, используемый в этом примере, использует статистическую модель, которая параметризована согласно высокоуровневым радарным спецификациям. Типичная радарная архитектура, смоделированная в этом примере, не включает определенные настройки антенны, формы волны или уникальные характеристики распространения канала. Когда разработка автомобильного радара, или когда определенная архитектура радара известна, с помощью радарной модели, которая включает эту дополнительную информацию, рекомендуется.

Phased Array System Toolbox позволяет вам оценить различную радарную архитектуру. Можно исследовать различную передачу и получить конфигурации массивов, формы волны и цепочки обработки сигналов. Можно также оценить проекты против различных моделей канала, чтобы оценить их робастность к различным условиям окружающей среды. Это моделирование помогает вам идентифицировать определенный проект что лучшие подгонки ваши требования к приложению.

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

Вычислите радарные параметры от радарных требований дальних

Радарные параметры заданы для формы волны модулируемой частотой непрерывной волны (FMCW), как описано в примере Автомобильный Адаптивный Круиз-контроль Используя Технологию FMCW. Радар действует на центральной частоте 77 ГГц. Эта частота обычно используется автомобильными радарами. Для операции дальней радар должен обнаружить автомобили в максимальной области значений 100 метров перед автомобилем, оборудованным датчиком. Радар требуется, чтобы разрешать объекты в области значений, которые на расстоянии по крайней мере в 1 метр. Поскольку это - радарное приложение по ходу движения, радар также должен обработать цели с большими скоростями сближения, целых 230 км/час.

Радар разработан, чтобы использовать форму волны FMCW. Эти формы волны распространены в автомобильных приложениях, потому что они включают оценивание дальности и радиальной скорости объектов посредством в вычислительном отношении эффективных операций FFT.

% Set random number generator for repeatable results
rng(2017);

% Compute hardware parameters from specified long-range requirements
fc = 77e9;                                  % Center frequency (Hz) 
c = physconst('LightSpeed');                % Speed of light in air (m/s)
lambda = c/fc;                              % Wavelength (m)

% Set the chirp duration to be 5 times the max range requirement
rangeMax = 100;                             % Maximum range (m)
tm = 5*range2time(rangeMax,c);              % Chirp duration (s)

% Determine the waveform bandwidth from the required range resolution
rangeRes = 1;                               % Desired range resolution (m)
bw = range2bw(rangeRes,c);                  % Corresponding bandwidth (Hz)

% Set the sampling rate to satisfy both the range and velocity requirements
% for the radar
sweepSlope = bw/tm;                           % FMCW sweep slope (Hz/s)
fbeatMax = range2beat(rangeMax,sweepSlope,c); % Maximum beat frequency (Hz)

vMax = 230*1000/3600;                    % Maximum Velocity of cars (m/s)
fdopMax = speed2dop(2*vMax,lambda);      % Maximum Doppler shift (Hz)

fifMax = fbeatMax+fdopMax;   % Maximum received IF (Hz)
fs = max(2*fifMax,bw);       % Sampling rate (Hz)

% Configure the FMCW waveform using the waveform parameters derived from
% the long-range requirements
waveform = phased.FMCWWaveform('SweepTime',tm,'SweepBandwidth',bw,...
    'SampleRate',fs);
Nsweep = 192;

Образцовое автомобильное радарное оборудование

Радар использует универсальную линейную матрицу (ULA), чтобы передать и получить радарные формы волны. Используя линейную матрицу позволяет радару оценить азимутальное направление отраженной энергии, полученной от целевых автомобилей. Радар дальний должен обнаружить цели через зону охвата, которая охватывает 15 градусов перед автомобилем, оборудованным датчиком. С 6 элементами получает массив, удовлетворяет это требование путем обеспечения 16 степеням ширины луча на уровне половинной мощности. На передаче радар использует только элемент единого массива, позволение его покрыть большую область, чем на получает.

% Model the antenna element
antElmnt = phased.IsotropicAntennaElement('BackBaffled',true);

% Construct the receive array
Ne = 6;
rxArray = phased.ULA('Element',antElmnt,'NumElements',Ne,...
    'ElementSpacing',lambda/2);

% Form forward-facing beam to detect objects in front of the ego vehicle
beamformer = phased.PhaseShiftBeamformer('SensorArray',rxArray,...
    'PropagationSpeed',c,'OperatingFrequency',fc,'Direction',[0;0]);

% Half-power beamwidth of the receive array
hpbw = helperAutoDrivingRadarSigProc('Array Beamwidth',rxArray,c,fc)
hpbw = 16.3636

Оцените направление прибытия полученных сигналов с помощью корневого средства оценки MUSIC. beamscan также используется в иллюстративных целях помочь пространственно визуализировать распределение полученной энергии сигнала.

% Direction-of-arrival estimator for linear phased array signals
doaest = phased.RootMUSICEstimator(...
    'SensorArray',rxArray,...
    'PropagationSpeed',c,'OperatingFrequency',fc,...
    'NumSignalsSource','Property','NumSignals',1);

% Scan beams in front of ego vehicle for range-angle image display
angscan = -80:80;
beamscan = phased.PhaseShiftBeamformer('Direction',[angscan;0*angscan],...
    'SensorArray',rxArray,'OperatingFrequency',fc);

Смоделируйте радарный передатчик для одного канала передачи и смоделируйте предусилитель получателя для каждого, получают канал, с помощью параметров, заданных в примере Автомобильный Адаптивный Круиз-контроль Используя Технологию FMCW.

antAperture = 6.06e-4;                        % Antenna aperture (m^2)
antGain = aperture2gain(antAperture,lambda);  % Antenna gain (dB)

txPkPower = db2pow(5)*1e-3;                   % Tx peak power (W)
txGain = antGain;                             % Tx antenna gain (dB)

rxGain = antGain;                             % Rx antenna gain (dB)
rxNF = 4.5;                                   % Receiver noise figure (dB)

% Waveform transmitter
transmitter = phased.Transmitter('PeakPower',txPkPower,'Gain',txGain);

% Radiator for single transmit element
radiator = phased.Radiator('Sensor',antElmnt,'OperatingFrequency',fc);

% Collector for receive array
collector = phased.Collector('Sensor',rxArray,'OperatingFrequency',fc);

% Receiver preamplifier
receiver = phased.ReceiverPreamp('Gain',rxGain,'NoiseFigure',rxNF,...
    'SampleRate',fs);

Задайте радарную цепочку обработки сигналов

Радар собирает несколько разверток формы волны на каждом из линейных поэтапных элементов антенны массивов. Эти собранные развертки формируют куб данных, который задан в Радарном Кубе Данных. Эти развертки когерентно обрабатываются вдоль быстрого - и медленно-разовые размерности куба данных, чтобы оценить область значений и Доплера автомобилей.

Используйте объект phased.RangeDopplerResponse выполнить область значений и Доплера, обрабатывающего на радарных кубах данных. Используйте окно Хеннинга, чтобы подавить большие боковые лепестки, произведенные автомобилями, когда они будут близко к радару.

Nft = waveform.SweepTime*waveform.SampleRate; % Number of fast-time samples
Nst = Nsweep;                                 % Number of slow-time samples
Nr = 2^nextpow2(Nft);                         % Number of range samples 
Nd = 2^nextpow2(Nst);                         % Number of Doppler samples 
rngdopresp = phased.RangeDopplerResponse('RangeMethod','FFT',...
    'DopplerOutput','Speed','SweepSlope',sweepSlope,...
    'RangeFFTLengthSource','Property','RangeFFTLength',Nr,...
    'RangeWindow','Hann',...
    'DopplerFFTLengthSource','Property','DopplerFFTLength',Nd,...
    'DopplerWindow','Hann',...
    'PropagationSpeed',c,'OperatingFrequency',fc,'SampleRate',fs);

Идентифицируйте обнаружения в обработанной области значений и Доплеровских данных при помощи детектора постоянного ложного сигнального уровня (CFAR). Детекторы CFAR оценивают уровень фонового шума полученных радарных данных. Обнаружения найдены в местоположениях, где степень сигнала превышает предполагаемый уровень шума определенным порогом. Низкие пороговые значения приводят к более высокому количеству ложных обнаружений, о которых сообщают, из-за экологического шума. Увеличение порога производит меньше ложных обнаружений, но также и уменьшает вероятность обнаружения фактической цели в сценарии. Для получения дополнительной информации об обнаружении CFAR смотрите Обнаружение Постоянного ложного сигнального уровня (CFAR) в качестве примера.

% Guard cell and training regions for range dimension
nGuardRng = 4;
nTrainRng = 4;
nCUTRng = 1+nGuardRng+nTrainRng;

% Guard cell and training regions for Doppler dimension
dopOver = round(Nd/Nsweep);
nGuardDop = 4*dopOver;
nTrainDop = 4*dopOver;
nCUTDop = 1+nGuardDop+nTrainDop;

cfar = phased.CFARDetector2D('GuardBandSize',[nGuardRng nGuardDop],...
    'TrainingBandSize',[nTrainRng nTrainDop],...
    'ThresholdFactor','Custom','CustomThresholdFactor',db2pow(13),...
    'NoisePowerOutputPort',true,'OutputFormat','Detection index');

% Perform CFAR processing over all of the range and Doppler cells
freqs = ((0:Nr-1)'/Nr-0.5)*fs;
rnggrid = beat2range(freqs,sweepSlope);
iRngCUT = find(rnggrid>0);
iRngCUT = iRngCUT(iRngCUT<=Nr-nCUTRng+1);
iDopCUT = nCUTDop:(Nd-nCUTDop+1);
[iRng,iDop] = meshgrid(iRngCUT,iDopCUT);
idxCFAR = [iRng(:) iDop(:)]';

phased.RangeEstimator и объекты phased.DopplerEstimator преобразовывают местоположения обнаружений, найденных в данных Доплера области значений в измерения и их соответствующие отклонения измерения. Эти средства оценки соответствуют квадратичным кривым к данным Доплера области значений, чтобы оценить пиковое местоположение каждого обнаружения. Получившиеся разрешения измерения являются частью области значений и Доплеровской выборкой данных.

Среднеквадратичное (RMS) разрешение области значений переданной формы волны необходимо, чтобы вычислить отклонение измерений области значений. Разрешение области значений Рейли для радара дальнего было задано ранее как 1 метр. Разрешение Рейли является минимальным разделением, при котором могут быть разрешены две уникальных цели. Это значение задает расстояние между ячейками разрешения области значений для радара. Однако отклонение цели в ячейке разрешения определяется разрешением RMS формы волны. Для формы волны щебета LFM, отношения между разрешением Рейли и разрешением RMS дан [1].

σRMS=12ΔRayleigh

где σRMS разрешение области значений RMS и ΔRayleigh разрешение области значений Рейли.

Отклонение Доплеровских измерений зависит от количества обработанных разверток.

Теперь, создайте объекты оценивания дальности и радиальной скорости объектов с помощью параметров, ранее заданных.

rmsRng = sqrt(12)*rangeRes;
rngestimator = phased.RangeEstimator('ClusterInputPort',true,...
    'VarianceOutputPort',true,'NoisePowerSource','Input port',...
    'RMSResolution',rmsRng);

dopestimator = phased.DopplerEstimator('ClusterInputPort',true,...
    'VarianceOutputPort',true,'NoisePowerSource','Input port',...
    'NumPulses',Nsweep);

Чтобы далее улучшить точность предполагаемых местоположений автомобиля, передайте обнаружения радара средству отслеживания. Сконфигурируйте дорожку, чтобы использовать расширенный фильтр Калмана (EKF), который преобразовывает сферические радарные измерения в кадр Декартовой координаты автомобиля, оборудованного датчиком. Также сконфигурируйте средство отслеживания, чтобы использовать постоянную скоростную динамику для обнаруженных автомобилей. Путем сравнения обнаружений автомобиля по нескольким временным интервалам измерения средство отслеживания далее улучшает точность положений автомобиля и обеспечивает оценки автомобиля скорости.

tracker = multiObjectTracker('FilterInitializationFcn',@initcvekf,...
    'AssignmentThreshold',50);

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

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

channel = phased.FreeSpace('PropagationSpeed',c,'OperatingFrequency',fc,...
    'SampleRate',fs,'TwoWayPropagation',true);

В модели свободного пространства радарная энергия распространяет вдоль прямого угла обзора между радаром и целевыми автомобилями, как показано на следующем рисунке.

Моделируйте ведущий сценарий

Создайте магистраль ведущий сценарий с тремя автомобилями, перемещающимися около автомобиля, оборудованного датчиком. Автомобили моделируются, когда точка предназначается, и имейте различные скорости и положения, заданные в ведущем сценарии. Автомобиль, оборудованный датчиком перемещается со скоростью 80 км/час, и другие три автомобиля перемещаются в 110 км/час, 100 км/час и 130 км/час соответственно. Для получения дополнительной информации при моделировании ведущего сценария смотрите, что пример Создает Траектории Агента и Автомобиля (Automated Driving Toolbox). Радарный датчик смонтирован на передней стороне автомобиля, оборудованного датчиком.

Чтобы создать ведущий сценарий, используйте функцию helperAutoDrivingRadarSigProc. Чтобы исследовать содержимое этой функции, используйте команду edit('helperAutoDrivingRadarSigProc').

% Create driving scenario
[scenario,egoCar,radarParams,pointTgts] = ...
    helperAutoDrivingRadarSigProc('Setup Scenario',c,fc);

Следующий цикл использует объект drivingScenario усовершенствовать автомобили в сценарии. На каждом шаге времени симуляции радарный куб данных собран путем сбора 192 разверток радарной формы волны. Собранный куб данных затем обрабатывается в области значений и Доплере. Область значений и обработанные данные Доплера затем beamformed, и обнаружение CFAR выполняется на beamformed данных. Расположитесь, радиальная скорость, и направление измерений прибытия оценивается для обнаружений CFAR. Эти обнаружения затем собраны в объекты objectDetection, которые затем обрабатываются объектом multiObjectTracker.

% Initialize display for driving scenario example
helperAutoDrivingRadarSigProc('Initialize Display',egoCar,radarParams,...
    rxArray,fc,vMax,rangeMax);

tgtProfiles = actorProfiles(scenario);
tgtProfiles = tgtProfiles(2:end);
tgtHeight = [tgtProfiles.Height];

% Run the simulation loop
sweepTime = waveform.SweepTime;
while advance(scenario)
    
    % Get the current scenario time
    time = scenario.SimulationTime;
    
    % Get current target poses in ego vehicle's reference frame
    tgtPoses = targetPoses(egoCar);
    tgtPos = reshape([tgtPoses.Position],3,[]);
    % Position point targets at half of each target's height
    tgtPos(3,:) = tgtPos(3,:)+0.5*tgtHeight; 
    tgtVel = reshape([tgtPoses.Velocity],3,[]);
    
    % Assemble data cube at current scenario time
    Xcube = zeros(Nft,Ne,Nsweep);
    for m = 1:Nsweep
        
        % Calculate angles of the targets viewed by the radar
        tgtAngs = NaN(2,numel(tgtPoses));
        for iTgt = 1:numel(tgtPoses)
            tgtAxes = rotz(tgtPoses(iTgt).Yaw)*...
                roty(tgtPoses(iTgt).Pitch)*rotx(tgtPoses(iTgt).Roll);
            [~,tgtAngs(:,iTgt)] = rangeangle(radarParams.OriginPosition,...
                tgtPos(:,iTgt),tgtAxes);
        end
        
        % Transmit FMCW waveform
        sig = waveform();
        [~,txang] = rangeangle(tgtPos,radarParams.OriginPosition,...
            radarParams.Orientation);
        txsig = transmitter(sig);
        txsig = radiator(txsig,txang);
        txsig = channel(txsig,radarParams.OriginPosition,tgtPos,...
            radarParams.OriginVelocity,tgtVel);
        
        % Propagate the signal and reflect off the target
        tgtsig = pointTgts(txsig,tgtAngs);
        
        % Collect received target echos
        rxsig = collector(tgtsig,txang);
        rxsig = receiver(rxsig);
        
        % Dechirp the received signal
        rxsig = dechirp(rxsig,sig);
        
        % Save sweep to data cube
        Xcube(:,:,m) = rxsig;
        
        % Move targets forward in time for next sweep
        tgtPos = tgtPos+tgtVel*sweepTime;
    end
    
    % Calculate the range-Doppler response
    [Xrngdop,rnggrid,dopgrid] = rngdopresp(Xcube);
    
    % Beamform received data
    Xbf = permute(Xrngdop,[1 3 2]);
    Xbf = reshape(Xbf,Nr*Nd,Ne);
    Xbf = beamformer(Xbf);
    Xbf = reshape(Xbf,Nr,Nd);
    
    % Detect targets
    Xpow = abs(Xbf).^2;
    [detidx,noisepwr] = cfar(Xpow,idxCFAR);
    
    % Cluster detections
    clusterIDs = helperAutoDrivingRadarSigProc('Cluster Detections',detidx);
    
    % Estimate azimuth, range, and radial speed measurements
    [azest,azvar,snrdB] = ...
        helperAutoDrivingRadarSigProc('Estimate Angle',doaest,...
        conj(Xrngdop),Xbf,detidx,noisepwr,clusterIDs);
    azvar = azvar+radarParams.RMSBias(1)^2;
    
    [rngest,rngvar] = rngestimator(Xbf,rnggrid,detidx,noisepwr,clusterIDs);
    rngvar = rngvar+radarParams.RMSBias(2)^2;
    
    [rsest,rsvar] = dopestimator(Xbf,dopgrid,detidx,noisepwr,clusterIDs);
    
    % Convert radial speed to range rate for use by the tracker
    rrest = -rsest;
    rrvar = rsvar;
    rrvar = rrvar+radarParams.RMSBias(3)^2;
    
    % Assemble object detections for use by tracker
    numDets = numel(rngest);
    dets = cell(numDets,1);
    for iDet = 1:numDets
        dets{iDet} = objectDetection(time,...
            [azest(iDet) rngest(iDet) rrest(iDet)]',...
            'MeasurementNoise',diag([azvar(iDet) rngvar(iDet) rrvar(iDet)]),...
            'MeasurementParameters',{radarParams},...
            'ObjectAttributes',{struct('SNR',snrdB(iDet))});
    end
    
    % Track detections
    tracks = tracker(dets,time);
    
    % Update displays
    helperAutoDrivingRadarSigProc('Update Display',egoCar,dets,tracks,...
        dopgrid,rnggrid,Xbf,beamscan,Xrngdop);
    
    % Publish snapshot
    helperAutoDrivingRadarSigProc('Publish Snapshot',time>=1.1);
    
    % Collect free space channel metrics
    metricsFS = helperAutoDrivingRadarSigProc('Collect Metrics',...
        radarParams,tgtPos,tgtVel,dets);
end

Предыдущие данные показывают радарные обнаружения и дорожки для 3 целевых автомобилей в 1,1 секунды времени симуляции. График на верхней левой стороне показывает поле зрения камеры преследования ведущего сценария с точки зрения автомобиля, оборудованного датчиком (отображенный синим). Для ссылки автомобиль, оборудованный датчиком перемещается на уровне 80 км/час, и другие три автомобиля перемещаются на уровне 110 км/час (оранжевый автомобиль), 100 км/час (желтый автомобиль) и 130 км/час (фиолетовый автомобиль).

Правая сторона фигуры показывает видимый с большого расстояния график, который представляет "верхнюю часть вниз" перспектива сценария. Все автомобили, обнаружения и дорожки показывают в координатном ссылочном кадре автомобиля, оборудованного датчиком. Предполагаемое отношение сигнал-шум (SNR) для каждого радарного измерения распечатано рядом с каждым обнаружением. Местоположение автомобиля, оцененное средством отслеживания, показывают в графике с помощью черных квадратов с текстом рядом с ними указывающий на ID каждой дорожки. Предполагаемая скорость средства отслеживания для каждого автомобиля показывается черной линией, указывающей в направлении скорости автомобиля. Длина строки соответствует предполагаемой скорости с более длинными строками, обозначающими автомобили с более высокими скоростями относительно автомобиля, оборудованного датчиком. Дорожка фиолетового автомобиля (ID2) имеет самую длинную строку, в то время как дорожка желтого автомобиля (ID1) имеет самую короткую строку. Отслеженные скорости сопоставимы со смоделированными скоростями автомобиля, ранее перечисленными.

Два графика на нижней левой стороне показывают радарные изображения, сгенерированные обработкой сигналов. Верхний график показывает, как полученный радар echos от целевых автомобилей распределяется в области значений и радиальной скорости. Здесь, все три автомобиля наблюдаются. Измеренные радиальные скорости соответствуют скоростям, оцененным средством отслеживания, как показано в видимом с большого расстояния графике. Более низкий график показывает, как полученная цель echos пространственно распределяется в области значений и углу. Снова, все три цели присутствуют, и их соответствие местоположений, что показывают в видимом с большого расстояния графике.

Из-за его непосредственной близости от радара, оранжевый автомобиль может все еще быть обнаружен несмотря на большие beamforming потери из-за его положения хорошо за пределами ширины луча луча на 3 дБ. Эти обнаружения сгенерировали дорожку (ID3) для оранжевого автомобиля.

Смоделируйте многопутевой канал

Предыдущая ведущая симуляция сценария использовала распространение свободного пространства. Это - простая модель что модели только прямое распространение угла обзора между радаром и каждой из целей. В действительности радарное распространение сигнала является намного более комплексными, включающими отражениями от нескольких препятствий прежде, чем достигнуть каждой цели и возвратиться назад к радару. Это явление известно как многопутевое распространение. Следующий рисунок показывает один такой случай многопутевого распространения, куда сигнал, посягающий цель, прибывает из двух направлений: угол обзора и один возврат от дорожного покрытия.

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

Замените модель канала свободного пространства на модель канала 2D луча, чтобы продемонстрировать среду распространения, показанную на предыдущем рисунке. Снова используйте остающиеся параметры в ведущем сценарии и радарной модели, и запустите симуляцию снова.

% Reset the driving scenario
[scenario,egoCar,radarParams,pointTgts] = ...
    helperAutoDrivingRadarSigProc('Setup Scenario',c,fc);

% Create two-ray propagation channels. One channel is used for the transmit
% path and a different channel is used for the receive path.
txchannel = phased.TwoRayChannel('PropagationSpeed',c,...
    'OperatingFrequency',fc,'SampleRate',fs);
rxchannel = phased.TwoRayChannel('PropagationSpeed',c,...
    'OperatingFrequency',fc,'SampleRate',fs);

% Run the simulation again, now using the two-ray channel model
metrics2Ray = helperAutoDrivingRadarSigProc('Run Simulation',...
    c,fc,rangeMax,vMax,waveform,Nsweep,...           % Waveform parameters
    transmitter,radiator,collector,receiver,...      % Hardware models
    rngdopresp,beamformer,cfar,idxCFAR,...           % Signal processing
    rngestimator,dopestimator,doaest,beamscan,tracker,...   % Estimation
    txchannel,rxchannel);                      % Propagation channel models

Предыдущие данные показывают график преследования, видимый с большого расстояния график и радарные изображения в 1,1 секунды времени симуляции, как был показан для сценария распространения канала свободного пространства. Сравнивая эти две фигуры, заметьте, что для канала 2D луча, никакое обнаружение не присутствует для фиолетового автомобиля в этом времени симуляции. Эта потеря обнаружения - то, потому что различия в длине пути для этого автомобиля пагубно вмешиваются в этой области значений, приводя к общей сумме убытков обнаружения.

Постройте оценки ОСШ, сгенерированные от обработки CFAR против оценок диапазона фиолетового автомобиля от свободного пространства, и 2D излучите симуляции канала.

helperAutoDrivingRadarSigProc('Plot Channels',metricsFS,metrics2Ray);

Когда автомобиль приближается к области значений 72 метров от радара, большая потеря в предполагаемом ОСШ от канала 2D луча наблюдается относительно канала свободного пространства. Именно около этой области значений многопутевая интерференция объединяется пагубно, приводя к потере в обнаружениях сигнала. Однако заметьте, что средство отслеживания может курсировать дорожка в течение этих времен потери сигнала и обеспечить предсказанное положение и скорость для фиолетового автомобиля.

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

Этот пример продемонстрировал, как смоделировать оборудование автомобильного радара и обработку сигналов с помощью Phased Array System Toolbox. Вы также изучили, как интегрировать эту радарную модель с Automated Driving Toolbox ведущая симуляция сценария. Сначала вы сгенерировали синтетические радарные обнаружения. Затем вы обработали эти обнаружения далее при помощи средства отслеживания, чтобы сгенерировать точные оценки положения и скорости в координатном кадре автомобиля, оборудованного датчиком. Наконец, вы изучили, как моделировать многопутевые эффекты распространения при помощи модели phased.TwoRayChannel, предоставленной в Phased Array System Toolbox.

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

Ссылка

[1] Ричардс, Марк. Основные принципы радарной обработки сигналов. Нью-Йорк: Макгроу Хилл, 2005.

Для просмотра документации необходимо авторизоваться на сайте