Морская симуляция помехи для морской радиолокационной системы

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

Обзор морских состояний

В описании морской помехи сначала важно установить физические свойства поверхности моря. В моделировании морской помехи для радара существует 3 важных параметра:

  1. σh стандартное отклонение высоты волны. Высота волны задана как вертикальное расстояние между гребнем волны и смежной канавкой волны.

  2. β0наклон волны.

  3. vwскорость ветра.

Из-за неисправности волн, физические свойства моря часто описываются в терминах морских состояний. Номер волнения моря Дугласа является широко используемой шкалой, которая представляет широкий спектр физических морских свойств, таких как высоты волны и сопоставленные скорости ветра. В нижнем конце шкалы волнение моря 0 представляет спокойное, гладкое волнение моря. Шкала затем продолжает через состояния, которые представляют все от, немного слегка колебался в 1 к бурным морям с высокими высотами волны, в море утверждают 5. Высоты волны в волнении моря 8 могут быть больше 9 м или больше.

Используя searoughness функция, постройте морские свойства для моря, утверждает 1 - 5. Отметьте медленное увеличение наклона волны β0с волнением моря. Это - результат длины волны и высоты волны, увеличивающейся со скоростью ветра, хотя с различными факторами.

% Analyze for sea states 1 through 5
ss = 1:5; % Sea states 

% Initialize outputs
numSeaStates = numel(ss);
hgtsd = zeros(1,numSeaStates);
beta0 = zeros(1,numSeaStates);
vw= zeros(1,numSeaStates);

% Obtain sea state properties
for is = 1:numSeaStates
    [hgtsd(is),beta0(is),vw(is)] = searoughness(ss(is));
end

% Plot results
helperPlotSeaRoughness(ss,hgtsd,beta0,vw);

Figure contains 3 axes. Axes 1 with title Sea Wave Roughness contains an object of type line. Axes 2 contains an object of type line. Axes 3 contains an object of type line.

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

Отражающая способность

Поверхность моря состоит из воды со средней соленостью приблизительно 35 частей на тысячу. Отражательный коэффициент морской воды близко к-1 для микроволновых частот и в низких углах падения.

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

Исследуйте отражающую способность поверхности моря по сравнению с частотой для различных морских состояний с помощью seareflectivity функция. Установите угол падения, равный 0,5 градусам, и рассмотрите частоты в области значений от 500 МГц до 35 ГГц.

grazAng = 0.5; % Grazing angle (deg)
freq = linspace(0.5e9,35e9,100); % Frequency (Hz)
pol = 'H'; % Horizontal polarization

% Initialize reflectivity output
numFreq = numel(freq);
nrcsH = zeros(numFreq,numSeaStates);

% Calculate reflectivity
for is = 1:numSeaStates
    nrcsH(:,is) = seareflectivity(ss(is),grazAng,freq,'Polarization',pol);
end

% Plot reflectivity
helperPlotSeaReflectivity(ss,grazAng,freq,nrcsH,pol);

Figure contains an axes. The axes with title Sea State Reflectivity \sigma_0 contains 5 objects of type line. These objects represent SS 1, H, SS 2, H, SS 3, H, SS 4, H, SS 5, H.

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

Эффекты поляризации

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

pol = 'V'; % Vertical polarization

% Initialize reflectivity output
numFreq = numel(freq);
nrcsV = zeros(numFreq,numSeaStates);

% Calculate reflectivity
for is = 1:numSeaStates
    nrcsV(:,is) = seareflectivity(ss(is),grazAng,freq,'Polarization',pol);
end

% Plot reflectivity
hAxes = helperPlotSeaReflectivity(ss,grazAng,freq,nrcsH,'H');
helperPlotSeaReflectivity(ss,grazAng,freq,nrcsV,'V',hAxes);

Figure contains an axes. The axes with title Sea State Reflectivity \sigma_0 contains 10 objects of type line. These objects represent SS 1, H, SS 2, H, SS 3, H, SS 4, H, SS 5, H, SS 1, V, SS 2, V, SS 3, V, SS 4, V, SS 5, V.

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

Эффекты угла падения

Рассмотрите эффект угла падения. Вычислите морскую отражающую способность в области значений 0,1 до 60 градусов на частоте L-полосы 1,5 ГГц.

grazAng = linspace(0.1,60,100); % Grazing angle (deg)
freq = 1.5e9; % L band frequency (Hz)

% Initialize reflectivity output
numGrazAng = numel(grazAng);
nrcsH = zeros(numGrazAng,numSeaStates);
nrcsV = zeros(numGrazAng,numSeaStates);

% Calculate reflectivity
for is = 1:numSeaStates
    nrcsH(:,is) = seareflectivity(ss(is),grazAng,freq,'Polarization','H');
    nrcsV(:,is) = seareflectivity(ss(is),grazAng,freq,'Polarization','V');
end

% Plot reflectivity
hAxes = helperPlotSeaReflectivity(ss,grazAng,freq,nrcsH,'H');
helperPlotSeaReflectivity(ss,grazAng,freq,nrcsV,'V',hAxes);
ylim(hAxes,[-60 -10]);

Figure contains an axes. The axes with title Sea State Reflectivity \sigma_0 contains 10 objects of type line. These objects represent SS 1, H, SS 2, H, SS 3, H, SS 4, H, SS 5, H, SS 1, V, SS 2, V, SS 3, V, SS 4, V, SS 5, V.

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

Морской радарный пример наблюдения

Вычисление отношения помехи к шуму

Рассмотрите горизонтально поляризованную морскую радиолокационную систему наблюдения, действующую на уровне 6 ГГц (Полоса C). Задайте радиолокационную систему.

% Radar parameters 
freq = 6e9;         % C-band frequency (Hz) 
anht = 20;          % Height (m) 
ppow = 200e3;       % Peak power (W)
tau  = 200e-6;      % Pulse width (sec)
prf  = 300;         % PRF (Hz)
azbw = 10;          % Half-power azimuth beamwidth (deg)
elbw = 30;          % Half-power elevation beamwidth (deg)
Gt   = 22;          % Transmit gain (dB) 
Gr   = 10;          % Receive gain (dB)
nf   = 3;           % Noise figure (dB)
Ts   = systemp(nf); % System temperature (K)

Затем симулируйте рабочую среду, где волнение моря равняется 2. Вычислите и постройте отражающую способность поверхности моря для углов падения заданной геометрии.

% Sea parameters
ss = 2;             % Sea state    

% Calculate surface state
[hgtsd,beta0] = searoughness(ss);

% Setup geometry
anht = anht + 2*hgtsd;         % Average height above clutter (m) 
surfht = 3*hgtsd;              % Surface height (m) 

% Calculate maximum range for simulation
Rua = time2range(1/prf); % Maximum unambiguous range (m)
Rhoriz = horizonrange(anht,'SurfaceHeight',surfht); % Horizon range (m)
Rmax = min(Rua,Rhoriz); % Maximum simulation range (m)

% Generate vector of ranges for simulation
Rm = linspace(100,Rmax,1000); % Range (m)
Rkm = Rm*1e-3;                % Range (km) 

% Calculate sea clutter reflectivity
grazAng = grazingang(anht,Rm,'TargetHeight',surfht); 
nrcs = seareflectivity(ss,grazAng,freq);
helperPlotSeaReflectivity(ss,grazAng,freq,nrcs,'H');

Figure contains an axes. The axes with title Sea State Reflectivity \sigma_0 contains an object of type line. This object represents SS 2, H.

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

% Calculate clutter RCS 
rcs = clutterSurfaceRCS(nrcs,Rm,azbw,elbw,grazAng(:),tau); 
rcsdB = pow2db(rcs); % Convert to decibels for plotting
hAxes = helperPlot(Rkm,rcsdB,'RCS','Clutter RCS (dBsm)','Clutter Radar Cross Section (RCS)');
helperAddHorizLine(hAxes,Rhoriz);

Figure contains an axes. The axes with title Clutter Radar Cross Section (RCS) contains 2 objects of type line, constantline. These objects represent RCS, Horizon Range.

Вычислите отношение помехи к шуму (CNR) с помощью radareqsnr функция. Снова, отметьте понижение CNR, когда область значений симуляции приближается к радарному горизонту. Вычислите область значений, на которую помеха падает ниже шума.

% Convert frequency to wavelength
lambda = freq2wavelen(freq); 

% Calculate and plot the clutter-to-noise ratio
cnr = radareqsnr(lambda,Rm(:),ppow,tau,... 
        'gain',[Gt Gr],'rcs',rcs,'Ts',Ts); % dB
hAxes = helperPlot(Rkm,cnr,'CNR','CNR (dB)','Clutter-to-Noise Ratio (CNR)');
ylim(hAxes,[-80 100]);
helperAddHorizLine(hAxes,Rhoriz);
helperAddBelowClutterPatch(hAxes);

Figure contains an axes. The axes with title Clutter-to-Noise Ratio (CNR) contains 3 objects of type patch, line, constantline. These objects represent Clutter Below Noise, CNR, Horizon Range.

% Range when clutter falls below noise
helperFindClutterBelowNoise(Rkm,cnr);
Range at which clutter falls below noise (km) = 18.04

Рассмотрение пути к распространению

Когда путь между радаром и помехой отклоняется от условий свободного пространства, рекомендуется включать фактор распространения помехи и атмосферные потери на пути. Фактор распространения помехи может быть вычислен с помощью radarpropfactor функция.

% Calculate radar propagation factor for clutter 
Fc = radarpropfactor(Rm,freq,anht,surfht, ... 
    'SurfaceHeightStandardDeviation',hgtsd,...
    'SurfaceSlope',beta0,...
    'ElevationBeamwidth',elbw);
helperPlot(Rkm,Fc,'Propagation Factor', ...
    'Propagation Factor (dB)', ...
    'One-Way Clutter Propagation Factor F_C');

Figure contains an axes. The axes with title One-Way Clutter Propagation Factor F_C contains an object of type line. This object represents Propagation Factor.

В рамках вышеупомянутого графика отображаются 2 области распространения:

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

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

Обычно фактор распространения помехи и морская отражающая способность объединены как продукт σCFC4, потому что измерения поверхностной отражающей способности обычно являются измерениями продукта, а не только отражающей способности σC. Вычислите этот продукт и постройте результаты.

% Combine clutter reflectivity and clutter propagation factor
FcLinear = db2mag(Fc); % Convert to linear units
combinedFactor = nrcs.*FcLinear.^2;
combinedFactordB = pow2db(combinedFactor);
helperPlot(Rkm,combinedFactordB,'\sigma_CF_C', ...
    '\sigma_CF_C (dB)', ...
    'One-Way Sea Clutter Propagation Factor and Reflectivity');

Figure contains an axes. The axes with title One-Way Sea Clutter Propagation Factor and Reflectivity contains an object of type line. This object represents \sigma_CF_C.

Затем вычислите атмосферную потерю на путь с помощью наклонного пути tropopl функция. Используйте стандартную атмосферную модель по умолчанию для вычисления.

% Calculate one-way loss associated with rain
elAng = height2el(surfht,anht,Rm); % Elevation angle (deg) 
numEl = numel(elAng);
Latmos = zeros(numEl,1);
for ie = 1:numEl
    Latmos(ie,:) = tropopl(Rm(ie),freq,anht,elAng(ie));
end
helperPlot(Rkm,Latmos,'Atmospheric Loss','Loss (dB)','One-Way Atmospheric Loss');

Figure contains an axes. The axes with title One-Way Atmospheric Loss contains an object of type line. This object represents Atmospheric Loss.

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

% Re-calculate CNR including radar propagation factor 
cnr = radareqsnr(lambda,Rm(:),ppow,tau,... 
        'gain',[Gt Gr],'rcs',rcs,'Ts',Ts, ...
        'PropagationFactor',Fc,...
        'AtmosphericLoss',Latmos); % dB
helperAddPlot(Rkm,cnr,'CNR + Propagation Factor + Atmospheric Loss',hAxes);

Figure contains an axes. The axes with title Clutter-to-Noise Ratio (CNR) contains 4 objects of type patch, line, constantline. These objects represent Clutter Below Noise, CNR, Horizon Range, CNR + Propagation Factor + Atmospheric Loss.

% Range when clutter falls below noise
helperFindClutterBelowNoise(Rkm,cnr);
Range at which clutter falls below noise (km) = 10.44

Понимание погодных эффектов

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

% Calculate one-way loss associated with rain
rr = 50;                           % Rain rate (mm/h)
polAng = 0;                        % Polarization tilt angle (0 degrees for horizontal) 
elAng = height2el(surfht,anht,Rm); % Elevation angle (deg) 
numEl = numel(elAng);
Lrain = zeros(numEl,1);
for ie = 1:numEl
    Lrain(ie,:) = cranerainpl(Rm(ie),freq,rr,elAng(ie),polAng);
end
helperPlot(Rkm,Lrain,'Rain Loss','Loss (dB)','One-Way Rain Loss');

Figure contains an axes. The axes with title One-Way Rain Loss contains an object of type line. This object represents Rain Loss.

Повторно вычислите CNR. Включайте путь к распространению и потерю дождя. Обратите внимание на то, что существует только небольшое уменьшение в CNR из-за присутствия дождя.

% Re-calculate CNR including radar propagation factor and rain loss
cnr = radareqsnr(lambda,Rm(:),ppow,tau,... 
        'gain',[Gt Gr],'rcs',rcs,'Ts',Ts, ...
        'PropagationFactor',Fc, ...
        'AtmosphericLoss',Latmos + Lrain); % dB
helperAddPlot(Rkm,cnr,'CNR + Propagation Factor + Atmospheric Loss + Rain',hAxes);

Figure contains an axes. The axes with title Clutter-to-Noise Ratio (CNR) contains 5 objects of type patch, line, constantline. These objects represent Clutter Below Noise, CNR, Horizon Range, CNR + Propagation Factor + Atmospheric Loss, CNR + Propagation Factor + Atmospheric Loss + Rain.

% Range when clutter falls below noise
helperFindClutterBelowNoise(Rkm,cnr);
Range at which clutter falls below noise (km) = 9.61

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

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

  • Сильная зависимость от волнения моря,

  • Пропорциональная зависимость от частоты,

  • Зависимость от поляризации, которая уменьшается с увеличивающейся частотой, и

  • Сильная зависимость от угла падения в низких углах падения

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

Ссылки

  1. Бартон, Основные уравнения радиолокации Дэвида К. для современного Радара. 1-й выпуск. Норвуд, MA: Дом Artech, 2013.

  2. Блэйк, L.V. Графический вывод машины радарных схем покрытия Вертикальной Плоскости. Военно-морской отчет 7098, 1970 научно-исследовательской лаборатории.

  3. Греджерс-Хансен, V. и Миттал, R. "Улучшенная эмпирическая модель для радарной морской отражающей способности помехи". NRL/MR/5310-12-9346, 27 апреля 2012.

  4. Ричардс, M. A. Джим Шир и Уильям А. Холм. Принципы современного радара. Роли, NC: паб SciTech., 2010.

function helperPlotSeaRoughness(ss,hgtsd,beta0,vw)
% Creates 3x1 plot of sea roughness outputs 

% Create figure
figure

% Plot standard deviation of sea wave height
subplot(3,1,1)
plot(ss,hgtsd,'-o','LineWidth',1.5)
ylabel([sprintf('Wave\nHeight') '\sigma (m)'])
title('Sea Wave Roughness')
grid on; 

% Plot sea wave slope
subplot(3,1,2)
plot(ss,beta0,'-o','LineWidth',1.5)
ylabel(sprintf('Wave\nSlope (deg)'))
grid on; 

% Plot wind velocity 
subplot(3,1,3)
plot(ss,vw,'-o','LineWidth',1.5)
xlabel('Sea State')
ylabel(sprintf('Wind\nVelocity (m/s)'))
grid on; 
end

function hAxes = helperPlotSeaReflectivity(ss,grazAng,freq,nrcs,pol,hAxes)
% Plot sea reflectivities 

% Create figure and new axes if axes are not passed in
newFigure = false; 
if nargin < 6
    figure();
    hAxes = gca; 
    newFigure = true;
end

% Get polarization string
switch lower(pol)
    case 'h'
        lineStyle = '-';
    otherwise
        lineStyle = '--';
end

% Plot
if numel(grazAng) == 1
    hLine = semilogx(hAxes,freq(:).*1e-9,pow2db(nrcs),lineStyle,'LineWidth',1.5);
    xlabel('Frequency (GHz)')
else
    hLine = plot(hAxes,grazAng(:),pow2db(nrcs),lineStyle,'LineWidth',1.5);
    xlabel('Grazing Angle (deg)')
end

% Set display names
numLines = size(nrcs,2);
for ii = 1:numLines
    hLine(ii).DisplayName = sprintf('SS %d, %s',ss(ii),pol);
    if newFigure
        hLine(ii).Color = brighten(hLine(ii).Color,0.5);
    end
end

% Update labels and axes 
ylabel('Reflectivity \sigma_0 (dB)')
title('Sea State Reflectivity \sigma_0')
grid on
axis tight
hold on; 

% Add legend
legend('Location','southoutside','NumColumns',5,'Orientation','Horizontal');
end

function varargout = helperPlot(Rkm,y,displayName,ylabelStr,titleName)
% Used in CNR analysis

% Create figure 
hFig = figure;
hAxes = axes(hFig); 

% Plot
plot(hAxes,Rkm,y,'LineWidth',1.5,'DisplayName',displayName);
grid(hAxes,'on');
hold(hAxes,'on');
xlabel(hAxes,'Range (km)')
ylabel(hAxes,ylabelStr);
title(hAxes,titleName);
axis(hAxes,'tight');

% Add legend
legend(hAxes,'Location','Best')

% Output axes
if nargout ~= 0 
    varargout{1} = hAxes;
end
end

function helperAddPlot(Rkm,y,displayName,hAxes)
% Used in CNR analysis

% Plot
ylimsIn = get(hAxes,'Ylim');
plot(hAxes,Rkm,y,'LineWidth',1.5,'DisplayName',displayName);
axis(hAxes,'tight');
ylimsNew = get(hAxes,'Ylim');
set(hAxes,'Ylim',[ylimsIn(1) ylimsNew(2)]); 
end

function helperAddHorizLine(hAxes,Rhoriz)
% Add vertical line indication horizon range

xline(Rhoriz.*1e-3,'--','DisplayName','Horizon Range','LineWidth',1.5);
xlims = get(hAxes,'XLim');
xlim([xlims(1) Rhoriz.*1e-3*(1.05)]);
end

function helperAddBelowClutterPatch(hAxes)
% Add patch indicating when clutter falls below the noise

xlims = get(hAxes,'Xlim');
ylims = get(hAxes,'Ylim');
x = [xlims(1) xlims(1) xlims(2) xlims(2) xlims(1)];
y = [ylims(1) 0 0 ylims(1) ylims(1)];
hP = patch(hAxes,x,y,[0.8 0.8 0.8], ...
    'FaceAlpha',0.3,'EdgeColor','none','DisplayName','Clutter Below Noise');
uistack(hP,'bottom');
end

function helperFindClutterBelowNoise(Rkm,cnr)
% Find the point at which the clutter falls below the noise
idxNotNegInf = ~isinf(cnr); 
Rclutterbelow = interp1(cnr(idxNotNegInf),Rkm(idxNotNegInf),0); 
fprintf('Range at which clutter falls below noise (km) = %.2f\n',Rclutterbelow)
end
Для просмотра документации необходимо авторизоваться на сайте