Этот пример показывает, как смоделировать гибкость частот в радиолокационных системах, системах связи и EW для противодействия эффектам интерференции.
Активные системы фазированных решеток с электронным управлением могут поддерживать несколько приложений, используя одно и то же оборудование массива. Эти приложения могут включать радиолокацию, EW и связь. Однако окружения РФ, в которых работают эти типы систем, являются сложными и иногда враждебными. Например, ретранслятор может повторить принятый радиолокационный сигнал и повторно передать его, чтобы спутать радар. В некоторой литературе это также называется спуфингом. Гибкость частот может быть эффективным методом для противодействия сигналам, генерируемым источниками помех, и помочь поддержать эффективные операции этих систем.
В этом примере мы сначала настроили сценарий со стационарным моностатическим радаром и движущейся целью самолета. Затем самолет генерирует сигнал подмены, который путает радар. Когда радар обнаруживает источник помех, могут использоваться методы гибкости частот, которые позволяют радару преодолеть помехи.
Предположим, что моностатический радар X-диапазона находится в источнике.
fc = 10e9; % Define frequency of operation for X-band Radar fs = 2e6; % Define sample rate for the systems c = 3e8; lambda = c/fc; radar_pos = [0;0;0]; radar_vel = [0;0;0];
Радиолокационный приемник, который также может функционировать как EW-приемник, является 64-элементным (8x8) URA с полуволновым интервалом.
% Array specification for the radar taper = taylorwin(8); taperURA = taper.*taper'; antenna = phased.URA('Element',phased.CosineAntennaElement,... 'Size',[8 8],'ElementSpacing',[lambda/2 lambda/2],... 'Taper',taperURA);
Диаграмма направленности массива показана на следующем рисунке.
pattern(antenna,fc,'Type','powerdb');
Радар передает линейные FM импульсы. Спецификации передатчика и приемника:
wav = phased.LinearFMWaveform('SampleRate',fs,... 'PulseWidth', 10e-5, 'SweepBandwidth', 1e5,'PRF',4000,... 'FrequencyOffsetSource','Input port'); tx = phased.Transmitter('Gain',20,'PeakPower',500); txArray = phased.WidebandRadiator('SampleRate', fs,... 'Sensor',antenna,'CarrierFrequency', fc); rxArray = phased.WidebandCollector('SampleRate', fs,... 'Sensor',antenna,'CarrierFrequency', fc); rxPreamp = phased.ReceiverPreamp('Gain',10,'NoiseFigure',5,... 'SampleRate', fs);
Окружения и цель описаны ниже. Широкополосные каналы распространения используются, чтобы позволить нам распространять формы сигналов с различными частотами несущих.
target = phased.RadarTarget('MeanRCS',100,'OperatingFrequency',fc); target_pos = [8000;1000;1000]; target_vel = [100;0;0]; % Outgoing and incoming channel envout = phased.WidebandFreeSpace('TwoWayPropagation',false,... 'SampleRate', fs,'OperatingFrequency',fc,'PropagationSpeed',c); envin = phased.WidebandFreeSpace('TwoWayPropagation',false,... 'SampleRate', fs,'OperatingFrequency',fc,'PropagationSpeed',c);
В этом примере используются два односторонних канала распространения, потому что сигнал глушения распространяется только через обратный канал.
Полученное эхо может быть моделировано как
rng(2017); [tgtRng, tgtAng] = rangeangle(target_pos, radar_pos); x = wav(0); % waveform xt = tx(x); % transmit xtarray = txArray(xt, tgtAng); % radiate yp = envout(xtarray,radar_pos,target_pos,radar_vel,target_vel); % propagate yr = target(yp); % reflect ye = envin(yr,target_pos,radar_pos,target_vel,radar_vel); % propagate yt = rxArray(ye,tgtAng); % collect yt = rxPreamp(yt); % receive
Мы можем выполнить оценку направления прибытия с помощью 2D скана луча и использовали расчетные азимут и углы возвышения, чтобы направить лучевой форматор.
estimator = phased.BeamscanEstimator2D('SensorArray',antenna,... 'DOAOutputPort',true,... 'OperatingFrequency', fc,... 'NumSignals',1,... 'AzimuthScanAngles',-40:40,... 'ElevationScanAngles',-60:60); [~,doa] = estimator(yt); beamformer = phased.SubbandPhaseShiftBeamformer('SensorArray',antenna,... 'OperatingFrequency',fc,'DirectionSource','Input port',... 'SampleRate',fs, 'WeightsOutputPort',true); [ybf,~] = beamformer(yt,doa);
Затем сигнал, сформированный лучом, может быть пропущен через согласованный фильтр и детектор.
mfcoeff1 = getMatchedFilter(wav); mf1 = phased.MatchedFilter('Coefficients',mfcoeff1); y1 = mf1(ybf); nSamples = wav.SampleRate/wav.PRF; t = ((0:nSamples-1)-(numel(mfcoeff1)-1))/fs; r = t*c/2; plot(r/1000,abs(y1),'-'); grid on; xlabel('Range (km)'); ylabel('Pulse Compressed Signal Magnitude');
Рисунок показывает, что цель создает доминирующий пик в принимаемом сигнале.
Радар очень хорошо работает в приведенном выше примере. Однако в сложном окружении помехи могут повлиять на эффективность радара. Помехи могут быть от других систем, таких как сигналы радиосвязи или сигналы глушения. Современные радиолокационные системы должны быть способны работать в таких окружениях.
Радар с фазированной решеткой может отфильтровать интерференцию с помощью пространственной обработки. Если цель и источник заклинивания не расположены тесно в угловом пространстве, формирование луча может быть эффективным способом подавления заклинивания. Более подробную информацию можно найти в примере Array Pattern Synthesis.
Этот пример фокусируется на ситуации, когда цель и интерференция тесно расположены так, что пространственная обработка не может использоваться, чтобы разделить эти два. Рассмотрим случай, когда целевой самолет может определить характеристики сигнала, переданного с радара, и используйте эту информацию, чтобы сгенерировать импульс, который запутает радиолокационный приемник. Это распространенный метод, используемый при глушении или спуфинге, чтобы отвести радар от истинной цели.
Обнаруженные характеристики сигнала отображаются ниже
pw = (pulsewidth(abs(yp), fs));
prf = round(1/pulseperiod(abs([yp;yp]), fs));
bw= obw(yp,fs,[],95);
fprintf('Waveform Characteristics:\n');
Waveform Characteristics:
fprintf('Pulse width:\t\t%f\n',pw);
Pulse width: 0.000100
fprintf('PRF:\t\t\t%f\n',prf);
PRF: 4000.000000
fprintf('Sweep bandwidth:\t%f\n',bw);
Sweep bandwidth: 112041.098255
Глушителю нужно некоторое время, чтобы сделать этот анализ и подготовиться к сигналу глушения, поэтому трудно создать эффективный сигнал спуфинга сразу, но обычно в течение нескольких интервалов импульсов сигнал помехи готов, и глушитель может поместить его в произвольное положение в импульсе, чтобы сделать спуфинг цели выглядеть ближе или ближе к отцу по сравнению с истинной целью. Также стоит отметить, что при новейшем оборудовании время, необходимое для оценки характеристик сигнала, резко уменьшается.
Предположим, что глушитель хочет поместить сигнал примерно на 5,5 км наружу, глушитель может передать сигнал глушения в нужный момент, чтобы ввести соответствующую задержку. В сложение, поскольку это одностороннее распространение от джаммера до радара, необходимая степень намного меньше. Это действительно делает глушение очень эффективным, так как это не требует большой степени, чтобы ослепить радар.
jwav = phased.LinearFMWaveform('SampleRate',fs,... 'PulseWidth',pw,'SweepBandwidth',bw,'PRF',prf); xj = jwav(); Npad = ceil(5500/(c/fs)); xj = circshift(xj,Npad); % pad zero to introduce corresponding delay txjam = phased.Transmitter('Gain',0,'PeakPower',5); xj = txjam(xj); ye = envin(yr+xj,target_pos,radar_pos,target_vel,radar_vel); yt = rxArray(ye,tgtAng); yt = rxPreamp(yt); ybfj = beamformer(yt,doa); y1j = mf1(ybfj); % Jammer plus target return plot(r/1000,abs(y1j)); grid on; xlabel('Range (km)'); ylabel('Magnitude'); title('Pulse Compressed Return From Target And Jammer');
Теперь принятый сигнал содержит как требуемый возврат цели, так и сигнал глушения. В сложение сигнал помехи оказывается ближе. Поэтому радар с большей вероятностью заблокируется на ближайшей цели, думая, что он является наиболее заметной угрозой и тратит меньше ресурса на истинную цель.
Одним из возможных подходов для смягчения эффекта помех в радиолокационном приемнике является принятие предопределенного графика скачкообразного изменения частоты. В этом случае форма волны, переданная с радара, может время от времени изменять несущую частоту. Поскольку последовательность скачкообразного изменения известна только радару, джаммер не сможет сразу следовать за изменением. Вместо этого требуется больше времени, чтобы получить правильную несущую частоту, прежде чем может быть сгенерирован новый сигнал помехи. Это также требует более совершенного оборудования на jammer, чтобы иметь возможность обрабатывать передачу сигналов в более широкой полосе пропускания. Таким образом, скачок частоты может создать временной интервал, который радар работает, не подвергаясь воздействию сигнала подмены. В сложение радар может снова заскочить, прежде чем джаммер сможет эффективно сгенерировать сигнал подмены.
В следующей ситуации примите, что переданный сигнал скачкообразно переходит на 500 кГц от исходной несущей частоты 10 ГГц. Поэтому новый сигнал формы волны становится
deltaf = fs/4;
xh = wav(deltaf); % hopped signal
Рисунок ниже показывает спектрограмму как исходного сигнала, так и скачкообразного сигнала. Обратите внимание, что скачкообразный сигнал является сдвигом в частотный диапазон по сравнению с исходным сигналом.
pspectrum(x+xh,fs,'spectrogram')
Используя аналогичный подход, описанный в более ранних разделах, эхо-сигнал радара может быть моделирован с помощью новой формы волны. Обратите внимание, что поскольку jammer не знает об этом скачке, сигнал помехи все тот же.
xth = tx(xh); xtharray = txArray(xth, tgtAng); yph = envout(xtharray,radar_pos,target_pos,radar_vel,target_vel); yrh = target(yph); yeh = envin(yrh+xj,target_pos,radar_pos,target_vel,radar_vel); yth = rxArray(yeh,tgtAng); yth = rxPreamp(yth); ybfh = beamformer(yth,doa);
Поскольку график скачкообразного изменения известен радару, алгоритм обработки сигнала может использовать эту информацию, чтобы извлечь только полосу, который вокруг текущей несущей частоты. Это помогает отклонить интерференцию в других полосах, а также улучшает ОСШ, поскольку шум от других полос подавлен. В сложение, когда форма волны переходит, согласованный фильтр нужно соответствующим образом обновить.
Теперь применим к полученному сигналу соответствующие полосно-пропускающие фильтры и согласованные фильтры.
Сначала создайте полосно-пропускающий фильтр, используя полосу пропускания сигнала.
buttercoef = butter(9,bw/fs);
Затем мы можем модулировать полученный полосно-пропускающий фильтр с несущей, чтобы получить полосно-пропускающий фильтр вокруг этой несущей частоты.
bf2 = buttercoef.*exp(1i*2*pi*deltaf*(0:numel(buttercoef)-1)/fs);
Точно так же согласованный коэффициент фильтра также должен быть модулирован.
mfcoeff2 = getMatchedFilter(wav,'FrequencyOffset',deltaf); mf2 = phased.MatchedFilter('Coefficients',mfcoeff2); % extract bands and apply matched filters yb2 = mf2(filter(bf2(:),1,ybfh)); % plot the matched filtered signal plot(r/1000,abs(yb2)); grid on; xlabel('Range (km)'); ylabel('Magnitude'); title('Pulse Compressed Signal');
Рисунок показывает, что с принятием скачкообразного изменения частоты целевое эхо и сигнал помехи могут быть разделены. Поскольку глушитель все еще находится в исходной полосе, только истинное целевое эхо появляется в новой полосе частот, где в настоящее время занимает форма волны, таким образом подавляя влияние глушителя.
Этот пример показывает, что принятие гибкости частоты может помочь противостоять эффекту глушения в комплексном радиочастотном окружении. Пример моделирует систему с формой волны скачкообразного изменения частоты и проверяет, что этот метод помогает радиолокационной системе идентифицировать истинное эхо-сигнал цели, не путая сигнал помехи.