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

В этом примере показано, как тип формы волны влияет на радарную производительность обнаружения. Пример рассматривает ситуацию, где новая цель производительности устанавливается для существующей разработки радарных систем. Поскольку старый проект больше не может достигать желаемой производительности, новая форма волны принята. Пример также показывает, как к целям модели 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 модели, мы должны использовать уравнение Шнидмена, вместо уравнения Альберсхайма, чтобы вычислить необходимый ОСШ, чтобы достигнуть обозначенного Фунта и 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 = radareqpow(lambda,max_range,snr_min,waveform.PulseWidth,...
    'RCS',1,'Gain',transmitter.Gain)
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 = radareqpow(lambda,max_range,snr_min,pulse_width,...
    'RCS',1,'Gain',transmitter.Gain)
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);

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

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

Как в случае прямоугольной формы волны, полученные импульсы сначала передаются через согласованный фильтр, чтобы улучшить ОСШ. Согласованный фильтр предлагает усиление обработки, которое далее улучшает порог обнаружения. Кроме того, дополнительное преимущество согласованного фильтра линейной формы волны 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);

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

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

Наконец, пороговое обнаружение выполняется на интегрированных импульсах. Схема обнаружения идентифицирует 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 цели.