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

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

Проект проектных спецификаций

Моностатический импульсный радар разработан в примере Simulation Test Signals для радарного приемника, чтобы достичь следующей цели:

  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);

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

waveform.PRF = prf;

Далее, поскольку цель описывается с помощью модели Swerling case 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) существующее аппаратное оборудование радара спроектированы, чтобы выдать импульс с пиковой степенью около 5200 Вт. Хотя большинство проектов оставят некоторый запас выше необходимой степени, маловероятно, что существующая система может вместить в восемь раз больше степени; (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. Axes 1 with title Pulse 1 contains 2 objects of type line. Axes 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. The axes 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 цели.