В этом примере обсуждается коэффициент улучшения индикации движущейся цели (MTI) и исследуются эффекты следующего на эффективность MTI:
Частота
Частота повторения импульсов (PRF)
Количество импульсов
Когерентная и некогерентная обработка
Этот пример также представляет источники ошибок, которые ограничивают отмену MTI. Наконец, пример демонстрирует улучшение отношения загромождения к шуму (CNR) для наземной радиолокационной системы MTI.
На высоком уровне существует два типа обработки индикации движущейся цели (MTI), когерентной и некогерентной. Когерентный MTI относится к случаю, в котором передатчик когерентен по количеству импульсов, используемых в компенсаторе MTI, или когда когерентный генератор системного приемника заблокирован на импульсе передатчика, который также известен как когерентная система приема. Некогерентная система MTI использует выборки загромождения, чтобы установить фазу ссылки, на которой обнаруживаются цель и загромождение.
Коэффициент улучшения MTI определяется как
,
где - загроможденная степень в приемник и - загромождение, степень после обработки MTI.
Исследуйте эффект частоты на эффективность MTI с помощью mtifactor
функция. Используйте частоту повторения импульсов (PRF) 500 Гц и анализируйте на 1-3-задержки MTI для когерентных и некогерентных случаев.
% Setup parameters m = 2:4; % Number of pulses in (m-1) delay canceler freq = linspace(1e9,10e9,1000); % Frequency (Hz) prf = 500; % Pulse repetition frequency (Hz) % Initialize outputs numM = numel(m); numFreq = numel(freq); ImCoherent = zeros(numFreq,numM); ImNoncoherent = zeros(numFreq,numM); % Calculate MTI improvement factor versus frequency for im = 1:numM % Coherent MTI ImCoherent(:,im) = mtifactor(m(im),freq,prf,'IsCoherent',true); % Noncoherent MTI ImNoncoherent(:,im) = mtifactor(m(im),freq,prf,'IsCoherent',false); end % Plot results helperPlotLogMTI(m,freq,ImCoherent,ImNoncoherent);
Существует несколько извлечений из результатов. Во-первых, различие между когерентными и некогерентными результатами уменьшается с увеличением частоты для тех же m для случаев m = 3 и 4. Результаты для случая m = 2 показывают, что коэффициент улучшения очень похож на более низких частотах, но эффективность отличается на более высоких частотах. Во-вторых, увеличение m улучшает подавление загромождения как для когерентного, так и для некогерентного MTI. В-третьих, когда PRF остается постоянным, коэффициент улучшения MTI уменьшается с увеличением частоты. Наконец, для m = 3 и 4 когерентная эффективность лучше, чем некогерентная эффективность.
Затем рассмотрим эффект PRF на эффективность фильтра MTI. Вычислите результаты для частоты L-диапазона на 1,5 ГГц.
% Set parameters m = 2:4; % Number of pulses in (m-1) delay canceler freq = 1.5e9; % Frequency (Hz) prf = linspace(100,1000,1000); % Pulse repetition frequency (Hz) % Calculate MTI improvement factor versus PRF for im = 1:numM ImCoherent(:,im) = mtifactor(m(im),freq,prf,'IsCoherent',true); ImNoncoherent(:,im) = mtifactor(m(im),freq,prf,'IsCoherent',false); end % Plot results helperPlotMTI(m,prf,ImCoherent,ImNoncoherent,'Pulse Repetition Frequency (Hz)','PRF versus MTI Improvement');
Когда частота поддерживается постоянной, существует несколько результатов, которые следует отметить. Во-первых, различие между когерентным и некогерентным факторами улучшения увеличивается для увеличения частоты для того же m для случаев m = 3 и 4. Результаты для случая m = 2 показывают, что коэффициент улучшения очень похож по сравнению с большинством исследованных PRF. Во-вторых, эффективность MTI повышается с увеличением PRF. Наконец, для m = 3 и 4 когерентная эффективность лучше, чем некогерентная эффективность.
Затем рассмотрим комбинированные эффекты частоты и PRF на коэффициент улучшения MTI. Это позволит системному аналитику лучше понять все пространство анализа. Выполните вычисление для когерентной системы MTI с помощью средства подавления с 3 задержками.
% Set parameters m = 4; % Number of pulses in (m-1) delay canceler freq = linspace(1e9,10e9,100); % Frequency (Hz) prf = linspace(100,1000,100); % Pulse repetition frequency (Hz) % Initialize numFreq = numel(freq); numPRF = numel(prf); ImCoherentMatrix = zeros(numPRF,numFreq); % Calculate coherent MTI improvement factor over a range of PRFs and % frequencies for ip = 1:numPRF ImCoherentMatrix(ip,:) = mtifactor(m,freq,prf(ip),'IsCoherent',true); end % Plot results helpPlotMTImatrix(m,freq,prf,ImCoherentMatrix);
Обратите внимание, что здесь демонстрируется то же поведение, что и ранее отмечалось.
Эффективность MTI повышается с увеличением PRF
Эффективность MTI уменьшается с увеличением частоты
Обработка MTI основана на требовании стационарности цели и загромождения в окне приема. Когда последующие возвраты получаются и вычитаются друг из друга, загромождение отменяется. Любой эффект, внутренний или внешний по отношению к радару, который препятствует стационарности в окне приема, приведет к несовершенной отмене.
Большое разнообразие эффектов может снизить эффективность отмены MTI. Примеры включают, но не ограничиваются:
Нестабильность частоты передатчика
Интервал повторения импульса (PRI) дрожание
Дрожание ширины импульса
Шум квантования
Некомпенсированное движение либо в радиолокационной платформе, либо в загромождении
В следующих двух разделах будут рассмотрены эффекты ошибок нулевой скорости и распространения спектра загромождения.
Эффективность MTI снижается, когда скорость загромождения не сосредоточена на нулевой скорости. Эффект этих ошибок нулевой скорости приводит к снижению фактора улучшения MTI, поскольку за пределами фильтра MTI существует более загроможденная энергия.
Рассмотрим случай радара, работающего в окружении с дождем. Загромождение дождя имеет ненулевое среднее значение Допплер, когда загромождение приближается или выходит из радиолокационной системы. Если движение мусора дождя не будет обнаружено и компенсировано, отмена фильтрации MTI будет хуже.
В этом примере примите нулевую скорость с центром 0 Доплер. Исследуйте эффекты по коэффициенту улучшения, заданные скорости загромождения в область значений от -20 до 20 м/с для когерентного случая обработки MTI.
% Setup parameters m = 2:4; % Number of pulses in (m-1) delay canceler clutterVels = linspace(-20,20,100); % MTI null velocity (m/s) nullVel = 0; % True clutter velocity (m/s) freq = 1.5e9; % Frequency (Hz) prf = 500; % Pulse repetition frequency (Hz) % Initialize numM = numel(m); numVels = numel(clutterVels); ImCoherent = zeros(numVels,numM); ImNoncoherent = nan(numVels,numM); % Compute MTI improvement factor for im = 1:numM for iv = 1:numVels ImCoherent(iv,im) = mtifactor(m(im),freq,prf,'IsCoherent',true,'ClutterVelocity',clutterVels(iv),'NullVelocity',nullVel); end end % Plot results nullError = (clutterVels - nullVel).'; helperPlotMTI(m,nullError,ImCoherent,ImNoncoherent,'Null Error (m/s)','MTI Improvement with Null Velocity Errors');
Когерентный MTI испытывает быстрое уменьшение улучшения с увеличением нулевой ошибки. Скорость, с которой страдает улучшение, увеличивается с увеличением количества импульсов в (m-1) подавителе задержки. В случае, когда m = 4, только небольшое смещение 1,1 м/с приводит к потере коэффициента улучшения 3 дБ.
Более широкое распространение загромождения приводит к более загроможденной энергии за пределами MTI-фильтра и, таким образом, приводит к менее загроможденной отмене. Хотя распространение загромождения частично связано с неотъемлемым движением рассеивателей загромождения, другие источники распространения загромождения могут быть вызваны
Дрожание фазы из-за дискретизации
Дрейф фазы, который может быть вызван нестабильностью в когерентных локальных генераторах
Некомпенсированное движение радиолокационной платформы
Рассмотрим эффект разброса загромождения на коэффициент улучшения MTI.
% Setup parameters m = 2:4; % Number of pulses in (m-1) delay canceler sigmav = linspace(0.1,10,100); % Standard Deviation of Clutter Spread (m/s) freq = 1.5e9; % Frequency (Hz) prf = 500; % Pulse repetition frequency (Hz) % Calculate MTI improvement numSigma = numel(sigmav); for im = 1:numM for is = 1:numSigma ImCoherent(is,im) = mtifactor(m(im),freq,prf,'IsCoherent',true,'ClutterStandardDeviation',sigmav(is)); ImNoncoherent(is,im) = mtifactor(m(im),freq,prf,'IsCoherent',false,'ClutterStandardDeviation',sigmav(is)); end end % Plot results helperPlotMTI(m,sigmav,ImCoherent,ImNoncoherent,'Standard Deviation of Clutter Spread (m/s)','MTI Improvement versus Clutter Spread');
Как видно из рисунка, стандартное отклонение разброса загромождения является большим ограничивающим фактором коэффициента улучшения MTI независимо от того, является ли MTI когерентным или некогерентным. Когда стандартное отклонение разброса загромождения увеличивается, коэффициент улучшения MTI значительно уменьшается до тех пор, пока улучшение не упадет ниже 5 дБ для всех значений m как в когерентных, так и в некогерентных случаях.
Рассмотрим наземную радиолокационную систему MTI. Вычислите отношение загромождения к шуму с обработкой MTI и без нее.
Сначала установите параметры radar и MTI.
% Radar properties freq = 1.5e9; % L-band frequency (Hz) anht = 15; % Height (m) ppow = 100e3; % Peak power (W) tau = 1.5e-6; % Pulse width (sec) prf = 500; % PRF (Hz) Gtxrx = 45; % Tx/Rx gain (dB) Ts = 450; % Noise figure (dB) Ntx = 20; % Number of transmitted pulses % MTI settings nullVel = 0; % Null velocity (m/s) m = 4; % Number of pulses in the (m-1) delay canceler N = Ntx - m; % Number of coherently integrated pulses
Рассмотрим рабочее окружение лесистых холмов с распространением загромождения 1 м/с и средней скоростью загромождения 0 м/с. Вычислите и постройте график отражения поверхности земли для углов выпаса заданной геометрии. Используйте landroughness
и landreflectivity
функции для вычисления свойств физической поверхности и отражательной способности, соответственно.
% Clutter properties sigmav = 1; % Standard Deviation of Clutter Spread (m/s) clutterVel = 0; % Clutter velocity (m/s) landType = 'Wooded Hills'; % Get the surface standard deviation of height (m), surface slope (deg), % and vegetation type [surfht,beta0,vegType] = landroughness(landType); % Calculate maximum range for simulation Rua = time2range(1/prf); % Maximum unambiguous range (m) Rhoriz = horizonrange(anht,'SurfaceHeight',surfht); % Horizon range (m) RhorizKm = Rhoriz.*1e-3; % Horizon range (km) Rmax = min(Rua,Rhoriz); % Maximum range (m) % Generate vector of ranges for simulation Rm = linspace(100,Rmax,1000); % Range (m) Rkm = Rm*1e-3; % Range (km) % Calculate land clutter reflectivity grazAng = grazingang(anht,Rm,'TargetHeight',surfht); nrcs = landreflectivity(landType,grazAng,freq); nrcsdB = pow2db(nrcs); helperPlot(grazAng,nrcsdB,'NRCS','NRCS (dB)','Reflectivity \sigma_0 (dB)','Land Reflectivity \sigma_0');
Затем вычислите радиолокационное сечение (RCS) загромождения с помощью clutterSurfaceRCS
функция. Обратите внимание на падение загромождения RCS при достижении области значений горизонта.
% Calculate azimuth and elevation beamwidth azbw = sqrt(32400 / db2pow(Gtxrx)); elbw = azbw; % Calculate clutter RCS rcs = clutterSurfaceRCS(nrcs,Rm,azbw,elbw,grazAng(:),tau); % Plot clutter RCS including horizon line rcsdB = pow2db(rcs); % Convert to decibels for plotting hAxes = helperPlot(Rkm,rcsdB,'RCS','Range (km)','Clutter RCS (dBsm)','Clutter Radar Cross Section (RCS)'); helperAddHorizLine(hAxes,RhorizKm);
Поскольку путь распространения отклоняется от свободного пространства, включите в расчет коэффициент распространения загромождения и атмосферные потери.
Вычисление диэлектрической проницаемости по умолчанию, лежащее в основе radarpropfactor
функция является моделью морской воды. В порядок для более точного моделирования пути распространения по суше вычислите диэлектрическую проницаемость для растительности с помощью earthSurfacePermittivity
функция.
% Calculate land surface permittivity for vegetation temp = 20; % Ambient temperature (C) wc = 0.5; % Gravimetric water contnt epsc = earthSurfacePermittivity('vegetation',freq,temp,wc);
Вычислите коэффициент распространения загромождения с помощью radarpropfactor
функция. Включите тип растительности в расчет. На более высоких частотах наличие растительности может вызвать дополнительные потери.
% Calculate clutter propagation factor Fc = radarpropfactor(Rm,freq,anht,surfht, ... 'SurfaceHeightStandardDeviation',surfht, ... 'SurfaceSlope',beta0, ... 'VegetationType',vegType, ... 'SurfaceRelativePermittivity',epsc, ... 'ElevationBeamwidth',elbw); helperPlot(Rkm,Fc,'Clutter Propagation Factor','Range (km)', ... 'Propagation Factor (dB)', ... 'One-Way Clutter Propagation Factor F_C');
Затем вычислите атмосферные потери в этой симуляции. Примите стандартную атмосферу по умолчанию. Выполните расчет с помощью tropopl
функция.
% Calculate the atmospheric loss due to water and oxygen attenuation elAng = height2el(surfht,anht,Rm); % Elevation angle (deg) numEl = numel(elAng); Latmos = zeros(numEl,1); Llens = zeros(numEl,1); for ie = 1:numEl Latmos(ie,:) = tropopl(Rm(ie),freq,anht,elAng(ie)); end hAxes = helperPlot(Rkm,Latmos,'Atmospheric Loss','Range (km)','Loss (dB)','One-Way Atmospheric Losses'); ylim(hAxes,[0 0.1]);
Вычислите CNR с помощью radareqsnr
функция и построение графиков результатов с MTI и без. Снова обратите внимание на падение CNR, когда область значений симуляции приближается к радиолокационному горизонту.
% Calculate CNR lambda = freq2wavelen(freq); cnr = radareqsnr(lambda,Rm(:),ppow,tau, ... 'gain',Gtxrx,'rcs',rcs,'Ts',Ts, ... 'PropagationFactor',Fc, ... 'AtmosphericLoss',Latmos); coherentGain = pow2db(N); cnr = cnr + coherentGain; hAxes = helperPlot(Rkm,cnr,'CNR','Range (km)','CNR (dB)','CNR Clutter-to-Noise Ratio'); helperAddHorizLine(hAxes,RhorizKm); % Calculate CNR with MTI Im = mtifactor(m,freq,prf,'IsCoherent',true,... 'ClutterVelocity',clutterVel, ... 'ClutterStandardDeviation',sigmav, ... 'NullVelocity',nullVel)
Im = 55.3986
cnrMTI = cnr - Im;
helperAddPlot(Rkm,cnrMTI,'CNR + MTI',hAxes);
Наконец, вычислите коэффициент улучшения MTI, принимая, что нулевая ошибка существует из-за истинной скорости загромождения 3 м/с, в то время как нулевая скорость остается с центром 0 м/с.
% Calculate CNR with null velocity error trueClutterVel = 3; % Clutter velocity (m/s) nullError = trueClutterVel - nullVel; % Null error (m/s) ImNullError = mtifactor(m,freq,prf,'IsCoherent',true,... 'ClutterVelocity',trueClutterVel, ... 'ClutterStandardDeviation',sigmav, ... 'NullVelocity',nullVel)
ImNullError = 33.6499
cnrMTINullError = cnr - ImNullError; helperAddPlot(Rkm,cnrMTINullError, ... sprintf('CNR + MTI with %.1f (m/s) Null Error',nullError), ... hAxes);
ImLoss = Im - ImNullError
ImLoss = 21.7488
Обратите внимание на резкое уменьшение CNR из-за обработки MTI. Когда нулевая скорость устанавливается на скорость загромождения, улучшение составляет 55 дБ. Когда происходит некомпенсированное движение, отмена уменьшается до 34 дБ. Это потеря 21 дБ отмены. Это демонстрирует необходимость правильно компенсировать движение или направить ядро к соответствующей скорости.
В этом примере обсуждается коэффициент улучшения индикации движущейся цели (MTI) и исследуется множество эффектов на эффективность MTI. Использование mtifactor
функция, мы увидели, что эффективность MTI:
Улучшается с увеличением PRF
Уменьшается с увеличением частоты
Улучшается с увеличением количества импульсов в (m-1) -гашителе делая
Кроме того, мы увидели, что эффективность когерентного MTI в целом лучше, чем некогерентный MTI.
Наконец, мы исследовали ограничения эффективности MTI в контексте наземной радиолокационной системы MTI, демонстрируя необходимость правильной компенсации неожиданных загроможденных скоростей.
Бартон, Дэвид К. Основные уравнения радиолокации для современного радара. 1-е издание. Norwood, MA: Artech House, 2013.
Ричардс, М. А., Джим Шеер и Уильям А. Холм. Принципы современного радара. Raleigh, NC: SciTech Pub., 2010.
function helperPlotLogMTI(m,freq,ImCoherent,ImNonCoherent) % Used for the MTI plots that have a logarithmic x axis hFig = figure; hAxes = axes(hFig); lineStyles = {'-','--','-.'}; numM = numel(m); for im = 1:numM semilogx(hAxes,freq.*1e-9,ImCoherent(:,im),'LineWidth',1.5, ... 'LineStyle',lineStyles{im}, 'Color',[0 0.4470 0.7410], ... 'DisplayName',sprintf('Coherent, m = %d',m(im))) hold(hAxes,'on') semilogx(hAxes,freq.*1e-9,ImNonCoherent(:,im),'LineWidth',1.5, ... 'LineStyle',lineStyles{im}, 'Color',[0.8500 0.3250 0.0980], ... 'DisplayName',sprintf('Noncoherent, m = %d',m(im))) end grid(hAxes,'on'); xlabel(hAxes,'Frequency (GHz)') ylabel(hAxes,'MTI Improvement Factor (dB)') title('Frequency versus MTI Improvement') legend(hAxes,'Location','Best') end function helperPlotMTI(m,x,ImCoherent,ImNonCoherent,xLabelStr,titleName) % Used for the MTI plots that have an x-axis in linear units hFig = figure; hAxes = axes(hFig); lineStyles = {'-','--','-.'}; numM = numel(m); for im = 1:numM plot(hAxes,x,ImCoherent(:,im),'LineWidth',1.5, ... 'LineStyle',lineStyles{im}, 'Color',[0 0.4470 0.7410], ... 'DisplayName',sprintf('Coherent, m = %d',m(im))) hold(hAxes,'on') if any(~isnan(ImNonCoherent)) % Don't plot if NaN plot(hAxes,x,ImNonCoherent(:,im),'LineWidth',1.5, ... 'LineStyle',lineStyles{im}, 'Color',[0.8500 0.3250 0.0980], ... 'DisplayName',sprintf('Noncoherent, m = %d',m(im))) end end grid(hAxes,'on'); xlabel(hAxes,xLabelStr) ylabel(hAxes,'MTI Improvement Factor (dB)') title(titleName) legend(hAxes,'Location','Best') end function helpPlotMTImatrix(m,freq,prf,ImMat) % Creates image of MTI improvement factor with Frequency on the x-axis and % PRF on the y-axis hFig = figure; hAxes = axes(hFig); hP = pcolor(hAxes,freq.*1e-9,prf,ImMat); hP.EdgeColor = 'none'; xlabel(hAxes,'Frequency (GHz)') ylabel(hAxes,'PRF (Hz)') title(sprintf('Coherent MTI Improvement, m = %d',m)) hC = colorbar; hC.Label.String = '(dB)'; end function varargout = helperPlot(x,y,displayName,xlabelStr,ylabelStr,titleName) % Used for CNR analysis % Create new figure hFig = figure; hAxes = axes(hFig); % Plot plot(hAxes,x,y,'LineWidth',1.5,'DisplayName',displayName); grid(hAxes,'on'); hold(hAxes,'on'); xlabel(hAxes,xlabelStr) ylabel(hAxes,ylabelStr); title(hAxes,titleName); ylims = get(hAxes,'Ylim'); set(hAxes,'Ylim',[-100 ylims(2)]); % Add legend legend(hAxes,'Location','Best') % Output axes if nargout ~= 0 varargout{1} = hAxes; end end function helperAddPlot(x,y,displayName,hAxes) % Add additional CNR plots plot(hAxes,x,y,'LineWidth',1.5,'DisplayName',displayName); end function helperAddHorizLine(hAxes,val) % Add vertical line indicating horizon range xline(hAxes,val,'--','DisplayName','Horizon Range','LineWidth',1.5); end