Проект формы волны, чтобы улучшать производительность области значений существующей системы

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

Спроектируйте изменение спецификации

Моностатический импульсный радар спроектирован в примере, Симулирующем Тестовые сигналы для Радарного Приемника, чтобы достигнуть следующей цели:

  1. минимальная целевая эффективная площадь рассеивания (RCS): 1 m2, неколебание;

  2. максимальная однозначная область значений: 5 км;

  3. вероятность обнаружения: 0.9;

  4. вероятность ложного предупреждения: 1e-6.

load BasicMonostaticRadarExampleData;

Новое требование к производительности

После развертывания системы возникают два новых требования:

  1. максимальная однозначная область значений должна быть расширена к 8 км.

  2. система также должна смочь обнаружить случай Swerling 2 цели.

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

Первый затронутый параметр является импульсной частотой повторения (PRF). Это должно быть повторно вычислено на основе новой максимальной однозначной области значений.

prop_speed = radiator.PropagationSpeed;
max_range = 8000;
prf = prop_speed/(2*max_range);

По сравнению с PRF на 30 кГц существующего проекта новый PRF, 18,737 кГц, меньше. Следовательно импульсный интервал более длинен. Обратите внимание на то, что это - тривиальное изменение в радарном программном обеспечении и довольно дешево в затратах на оборудование.

waveform.PRF = prf;

Затем, потому что цель описана с помощью случая Swerling 2 модели, мы должны использовать уравнение Шнидмена, вместо уравнения Альберсхайма, чтобы вычислить необходимый ОСШ, чтобы достигнуть обозначенного Pd и PFA. Уравнение Шнидмена принимает некогерентное интегрирование и квадратичный детектор. Количество импульсов, чтобы объединяться равняется 10.

num_pulse_int = 10;
pfa = 1e-6;
snr_min = shnidman(0.9,pfa,num_pulse_int,2)
snr_min = 6.1583

Выбор формы волны

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

fc = radiator.OperatingFrequency;
lambda = prop_speed/fc;
peak_power = ((4*pi)^3*noisepow(1/waveform.PulseWidth)*max_range^4*...
    db2pow(snr_min))/(db2pow(2*transmitter.Gain)*1*lambda^2)
peak_power = 4.4821e+04

Пиковая мощность примерно в восемь раз больше, чем предыдущее требование. Это больше не тривиальная модификация потому что (1) существующее радарное оборудование спроектировано, чтобы произвести импульс с пиковой мощностью приблизительно 5 200 w. Несмотря на то, что большинство проектов оставит некоторое поле выше необходимой степени, маловероятно, что существующая система может вместить в восемь раз больше степени; (2) очень дорого заменить оборудование, чтобы вывести такую большую мощность. Поэтому текущий проект должен быть изменен, чтобы вместить новую цель при помощи более сложных методов обработки сигналов.

Линейная форма волны FM

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

Давайте исследуем детали линейной настройки формы волны FM.

Желаемое разрешение области значений определяет полосу пропускания формы волны. Для линейной формы волны FM полоса пропускания равна своей полосе пропускания развертки. Однако ширина импульса больше не ограничивается обратной величиной ширины полосы пропускания импульса, таким образом, намного более длинная ширина импульса может использоваться. Мы используем ширину импульса, которая в 20 раз более длинна и устанавливает частоту дискретизации быть дважды шириной полосы пропускания импульса.

range_res = 50; 
pulse_bw = prop_speed/(2*range_res);
pulse_width = 20/pulse_bw;
fs = 2*pulse_bw;

waveform = phased.LinearFMWaveform(...
    'SweepBandwidth',pulse_bw,...
    'PulseWidth',pulse_width,...
    'PRF',prf,...
    'SampleRate',fs);

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

peak_power = ((4*pi)^3*noisepow(1/waveform.PulseWidth)*max_range^4*...
    db2pow(snr_min))/(db2pow(2*transmitter.Gain)*1*lambda^2)
peak_power = 2.2411e+03

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

transmitter.PeakPower = peak_power;

Системная симуляция

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

Цели

Как в случае с вышеупомянутым примером, мы принимаем, что существует 3 цели в среде свободного пространства. Однако теперь целевая модель является случаем Swerling 2, целевые положения и средние эффективные площади рассеивания заданы можно следующим образом:

tgtpos = [[2024.66; 0; 0],[6518.63; 0; 0],[6845.04; 0; 0]];
tgtvel = [[0;0;0],[0;0;0],[0;0;0]];
tgtmotion = phased.Platform('InitialPosition',tgtpos,'Velocity',tgtvel);

tgtrcs = [2.2 1.1 1.05];
fc = radiator.OperatingFrequency;
target = phased.RadarTarget(...
    'Model','Swerling2',...
    'MeanRCS',tgtrcs,...
    'OperatingFrequency',fc);

Мы устанавливаем seed для генерации rcs в целях так, чтобы мы могли воспроизвести те же результаты.

target.SeedSource = 'Property';
target.Seed = 2007;

Среды распространения

Мы также настраиваем канал распространения между радаром и каждой целью.

channel = phased.FreeSpace(...
    'SampleRate',waveform.SampleRate,...
    'TwoWayPropagation',true,...
    'OperatingFrequency',fc);

Синтез сигнала

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

receiver.SeedSource = 'Property';
receiver.Seed = 2007;

fast_time_grid = unigrid(0,1/fs,1/prf,'[)');
slow_time_grid = (0:num_pulse_int-1)/prf;

rxpulses = zeros(numel(fast_time_grid),num_pulse_int); % pre-allocate 

for m = 1:num_pulse_int
    
    % Update sensor and target positions
    [sensorpos,sensorvel] = sensormotion(1/prf);
    [tgtpos,tgtvel] = tgtmotion(1/prf);

    % Calculate the target angles as seen by the sensor
    [tgtrng,tgtang] = rangeangle(tgtpos,sensorpos);
    
    % Simulate propagation of pulse in direction of targets
    pulse = waveform();
    [txsig,txstatus] = transmitter(pulse);
    txsig = radiator(txsig,tgtang);
    txsig = channel(txsig,sensorpos,tgtpos,sensorvel,tgtvel);
    
    % Reflect pulse off of targets
    tgtsig = target(txsig,true);
    
    % Receive target returns at sensor
    rxsig = collector(tgtsig,tgtang);
    rxpulses(:,m) = receiver(rxsig,~(txstatus>0));
end

Обнаружение области значений

Порог обнаружения

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

noise_bw = receiver.SampleRate/2;
npower = noisepow(noise_bw,...
    receiver.NoiseFigure,receiver.ReferenceTemperature);
threshold = npower * db2pow(npwgnthresh(pfa,num_pulse_int,'noncoherent'));

pulseplotnum = 2;
helperRadarPulsePlot(rxpulses,threshold,...
    fast_time_grid,slow_time_grid,pulseplotnum);

Figure contains 2 axes objects. Axes object 1 with title Pulse 1 contains 2 objects of type line. Axes object 2 with title Pulse 2 contains 2 objects of type line.

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

Согласованный фильтр

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

matchingcoeff = getMatchedFilter(waveform);
matchedfilter = phased.MatchedFilter(...
    'CoefficientsSource','Property',...
    'Coefficients',matchingcoeff,...
    'GainOutputPort',true);
[rxpulses, mfgain] = matchedfilter(rxpulses);
threshold = threshold * db2pow(mfgain);

Компенсируйте задержку согласованного фильтра.

matchingdelay = size(matchingcoeff,1)-1;
rxpulses = buffer(rxpulses(matchingdelay+1:end),size(rxpulses,1));

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

range_gates = prop_speed*fast_time_grid/2; 
lambda = prop_speed/fc;

tvg = phased.TimeVaryingGain(...
    'RangeLoss',2*fspl(range_gates,lambda),...
    'ReferenceLoss',2*fspl(max_range,lambda));
rxpulses = tvg(rxpulses);

Некогерентное интегрирование

Мы теперь интегрируем получить импульсы некогерентно, чтобы далее улучшить ОСШ. Эта операция также упоминается как видео интегрирование.

rxpulses = pulsint(rxpulses,'noncoherent');

helperRadarPulsePlot(rxpulses,threshold,fast_time_grid,slow_time_grid,1);

Figure contains an axes object. The axes object contains 2 objects of type line.

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

Обнаружение области значений

Наконец, пороговое обнаружение выполняется на интегрированных импульсах. Схема обнаружения идентифицирует peaks и затем переводит их положения в области значений целей.

[~,range_detect] = findpeaks(rxpulses,'MinPeakHeight',sqrt(threshold));

Истинные области значений и предполагаемые области значений

true_range = round(tgtrng)
true_range = 1×3

        2025        6519        6845

range_estimates = round(range_gates(range_detect))
range_estimates = 1×3

        2025        6525        6850

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

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

В этом примере мы использовали ЛЧМ сигнал для обнаружения области значений. При помощи формы волны щебета мы смогли уменьшить необходимую пиковую мощность передачи, таким образом достигнув большей обнаруживаемой области значений 8 км для случая Swerling 2 цели.