Этот пример показывает, как оценить эффективность радара с синтезированной апертурой космоса (SAR) и сравнивает теоретические пределы с достижимыми требованиями для системы РСА. РСА использует движение антенны радара над областью цели, чтобы обеспечить более мелкое разрешение азимута. Учитывая основные параметры как радара (например, рабочую частоту, размер антенны и полосу пропускания), так и платформы, на которой она установлена (например, высота, скорость, монтажное положение), мы определим параметры эффективности, такие как площадь, азимут и разрешение области значений, отношение сигнал/шум (ОСШ) изображения РСА и эквивалентная шуму отражательная способность
Рассмотрим радар на спутнике с низкой околоземной орбитой (LEO), работающем в C-диапазоне на частоте 5,5 ГГц с шириной полосы пропускания импульса 500 МГц. Спутник находится на высоте 565 км и движется со скоростью 7,0 км/с. Размерности радиолокационной антенны составляют 5,2 м (по азимуту) на 1,1 м в высоту. Мы предполагаем, что возвраты обрабатываются в течение 0,8 секунд и что угол косоглазия составляет 90 степени.
% Platform configuration v = 7e3; % Velocity (m/s) h = 565e3; % Altitude (m) % Radar signal configuration freq = 5.5e9; % Radar frequency (Hz) lambda = freq2wavelen(freq); % Wavelength (m) bw = 500e6; % Bandwidth (Hz) proctime = 0.8; % Processing time (sec) % Antenna dimensions daz = 5.2; % Along azimuth (m) del = 1.1; % Along height (m)
Реальная лучевая ширина и коэффициент усиления антенны
Используем ap2beamwidth
функция для вычисления действительной ширины луча антенны.
realAntBeamwidth = ap2beamwidth([daz del],lambda) % [Az El] (deg)
realAntBeamwidth = 2×1
0.6006
2.8391
Используем aperture2gain
функция для вычисления усиления антенны.
antGain = aperture2gain(daz*del, lambda) % dBi
antGain = 43.8369
Ориентация антенны
Куда следует направлять антенну? Угол впадины часто используется, чтобы задать направление указания антенны.
Эффекты кривизны Земли
Типичным предположением для многих радиолокационных систем является то, что Земля является достаточно плоской, так что угол впадины совпадает с углом выпаса, представленным на рисунке выше.
depang_flat = (45:85)';
grazang_flat = depang_flat;
losrng = h./sind(depang_flat); % Line-of-sight range (m)
Используем depressionang
и grazingang
функции для вычисления углов углубления и выпаса соответственно из области значений. Используя сферическую модель Земли вместо плоской модели Земли, мы наблюдаем, что в областях значений выше 660 км коррекция угла депрессии больше, чем половина ширины луча, поэтому важно учитывать кривизну Земли в этом сценарии.
Rearth = physconst('earthradius'); depang_sph = depressionang(h,losrng,'Curved',Rearth); grazang_sph = grazingang(h,losrng,'Curved',Rearth); plot(losrng/1e3,[depang_sph-depang_flat grazang_flat-grazang_sph],'Linewidth',1.5) grid on; yline(realAntBeamwidth(2)/2,'--') % Half-beam width (Elevation) xlabel('Line-of-sight Range (km)') ylabel('Angle Correction (deg)') legend('Depression angle','Grazing angle','Half Beamwidth (El)','Location','southeast') title(['Correction due to Earth Curvature - Radar at ',num2str(h/1e3),' km Altitude'])
Распространение без линии визирования
Радиолокационная энергия преломляется атмосферой и изгибается к Земле, позволяя радару видеть за пределами горизонта. Используем effearthradius
функция для моделирования эффекта тропосферной преломления с помощью метода среднего радиуса кривизны. Поскольку эффективный радиус Земли равен фактическому радиусу Земли, мы заключаем, что тропосферная преломление незначительна в этом сценарии. Ионосферная рефракция проигнорирована в этом исследовании.
tgtHeight = 0; % Smooth Earth NS = 313; % Reference atmosphere N-Units Re = effearthradius(min(losrng),h,tgtHeight,'SurfaceRefractivity',NS); % Effective Earth radius (m) Re/Rearth
ans = 1
Для остального этого примера мы выбираем угол впадины 68,96 степеней, который соответствует углу выпаса 67 степеней и наклонной области значений 609,4 км.
depang = depang_sph(24)
depang = 68.9629
grazang = grazang_sph(24)
grazang = 66.9953
slantrng = losrng(24)
slantrng = 6.0937e+05
Радиолокационный компоновочный образ
Далее вычисляем компоновочный образ антенны с помощью aperture2swath
функция. Компоновочный образ определяется расстоянием между swath области значений (или расстоянием, пройденным в направлении области значений) и перекрестная область значений swath (или расстоянием, пройденным в направлении перекрестной области значений).
[rangeswath, crngswath] = aperture2swath(slantrng,lambda,[del daz],grazang); ['Real antenna range footprint: ', num2str(round(engunits(rangeswath),1)), ' km']
ans = 'Real antenna range footprint: 32.8 km'
['Real antenna cross range footprint: ', num2str(round(engunits(crngswath),1)), ' km']
ans = 'Real antenna cross range footprint: 6.4 km'
Вычисляем расстояние от наземного пути (или надира спутника) до центра радиолокационного луча на земле. Заметьте, что хотя кривизна Земли оказывает небольшой эффект на размер посадочного места, она смещает положение центра балки на 9,5 км в направлении вдоль области значений для заданной области наклона 609,4 км.
distgrndtrack_flat = h/tand(grazang_flat(24)); % Flat Earth Model ['Distance from nadir to center of the footprint (Flat Earth Model): ', num2str(round(engunits(distgrndtrack_flat),1)), ' km']
ans = 'Distance from nadir to center of the footprint (Flat Earth Model): 228.3 km'
distgrndtrack = Re*deg2rad(depang-grazang); % Taking Earth curvature into account ['Distance from nadir to center of the footprint: ', num2str(round(engunits(distgrndtrack),1)), ' km']
ans = 'Distance from nadir to center of the footprint: 218.8 km'
Чувствительность компоновочного образа к частотным и угловым изменениям
Мы анализируем чувствительность антенны к изменениям частоты. Мы наблюдаем, что увеличение рабочей частоты радара уменьшает площадь антенны.
f = [freq/2 3/4*freq freq 4/3*freq]'; % Operating frequencies (Hz) within C-band lambdav = freq2wavelen(f); % Wavelengths (m) [rangeswathv,crngswathv] = aperture2swath(slantrng,lambdav,[del daz],grazang); clf; plotAntennaFootprintVsFreq(freq,f,rangeswathv,crngswathv);
Затем мы фиксируем рабочую частоту до 5,5 ГГц и анализируем чувствительность участка антенны к изменениям угла выпаса. Мы также строим график расстояния от центра радиолокационного следа до наземного пути спутника (a.k.a. наземная область значений) как функция углов обзора. Как и ожидалось, площадь балки и расстояние между центром балки и надиром уменьшаются, когда угол выпаса увеличивается.
grazv = grazang_sph(8:8:end); % Grazing angles (degrees) depangv = depang_sph(8:8:end); slantrngv = losrng(8:8:end); % Slant range to the ground rangeswathv = zeros(1,numel(grazv)); crngswathv = zeros(1,numel(grazv)); distgrndtrackv = Re*deg2rad(depangv-grazv); for i=1:numel(grazv) [rangeswathv(i),crngswathv(i)] = aperture2swath(slantrngv(i),lambda,[del daz],grazv(i)); end clf; plotAntennaFootprintVsGrazAng(grazv,distgrndtrackv,rangeswathv,crngswathv,grazang);
Реальное разрешение антенны
Разрешение области значений на земле является расстоянием, ниже которого две точечные цели не могут быть разделены на конечном изображении. Используйте bw2rangeres
функция для вычисления наклонного разрешения области значений действительной антенны, которое определяется шириной полосы пропускания сигнала.
slantrngres = bw2rangeres(bw)
slantrngres = 0.2998
Проецируйте разрешение наклонной области значений на плоскость земли для заданного угла выпаса. Разрешение наземной области значений всегда хуже, чем разрешение наклонной области значений. Значение различия между эти два увеличений при увеличении угла выпаса. Заметьте, что разрешение в перекрестной области значений совпадает с разрешением в перекрестной области значений, поскольку обработка сигналов для улучшения разрешения не выполняется. Этого междугороднего разрешения явно недостаточно.
rngres = slant2grndrangeres(slantrngres,grazang); disp(['Real antenna ground range resolution: ', num2str(round(rngres,2)), ' m'])
Real antenna ground range resolution: 0.77 m
crngres = crngswath; disp(['Real antenna cross-range resolution: ', num2str(round(engunits(crngres),1)), ' km'])
Real antenna cross-range resolution: 6.4 km
Затем мы анализируем чувствительность разрешения наземной области значений к изменениям угла выпаса для нескольких полос пропускания сигнала. Лучшее разрешение области значений достигается с высокой пропускной способностью сигнала и низким углом выпаса. Для заданной полосы пропускания разрешение области значений ухудшается, когда угол выпаса увеличивается. На 500 МГц разрешение области варьируется от 42 см при угле выпаса 45 степеней до 1,73 м при угле выпаса 80 степеней.
bwv = [100e6 200e6 500e6 1e9]; % Signal bandwidths rngresv = zeros(numel(grazang_sph),numel(bwv)); for j=1:numel(grazang_sph) slantrngresv = bw2rangeres(bwv); rngresv(j,:) = slant2grndrangeres(slantrngresv,grazang_sph(j)); end clf; l = semilogy(grazang_sph,rngresv); set(l(3),'LineWidth',2) grid on xline(grazang,'-.',{[num2str(round(grazang,2)),' deg']}); % Selected grazing angle xlabel('Grazing Angle (deg)') ylabel('Ground Range Resolution (m)') title('Real Antenna Range Resolution vs. Grazing Angles') legend('100 MHz BW', '200 MHz BW', '500 MHz BW', '1.0 GHz BW','Location','southeast')
Идеальное и эффективное разрешение синтетической антенны
Приведенный выше раздел охватывал область значений и разрешение в перекрестной области значений радара с реальной апертурой, следующим шагом является использование sarlen
и sarazres
функции для вычисления длины синтетической апертуры и ее перекрестной области значений (или азимуте). Заметьте, что разрешение области значений, которое зависит от полосы пропускания передающего сигнала и угла выпаса, остается неизменным для радара с реальной апертурой и РСА.
idealSyntheticApertureLength = sarlen(slantrng,lambda,daz); % Synthetic aperture length (m) azResolution = sarazres(lambda,slantrng,idealSyntheticApertureLength); % Cross-range (azimuth) resolution (m) integrationTime = sarinttime(idealSyntheticApertureLength,v); % Ideal integration time (sec) Parameters = ["Synthetic Aperture Length";"Range Resolution";"Cross Range Resolution";"Integration Time"]; IdealSAR = [round(idealSyntheticApertureLength/1e3,1);rngres;round(azResolution,1);round(integrationTime*1e3,1)]; Units = ["km";"m";"m";"ms"]; idealSAR = table(Parameters,IdealSAR,Units)
idealSAR=4×3 table
Parameters IdealSAR Units
___________________________ ________ _____
"Synthetic Aperture Length" 6.4 "km"
"Range Resolution" 0.76711 "m"
"Cross Range Resolution" 2.6 "m"
"Integration Time" 1095.9 "ms"
Лучшее разрешение между перекрестными областями значений, которое мы можем надеяться на использование РСА в этом сценарии, составляет 2,6 м. Это значительное улучшение по сравнению с 6,4 км разрешением между перекрестными областями значений реальной антенны. Однако, чтобы достичь этой эффективности, импульсы должны быть интегрированы более 1,1 сек. Система, которую мы анализируем, определяет время интегрирования только 800 мс. Как это влияет на эффективное разрешение перекрестной области значений радара?
effSyntheticApertureLength = sarlen(v,proctime); % Take processing time constraint into account effAzResolution = sarazres(lambda,slantrng,effSyntheticApertureLength); % Effective azimuth resolution (m) RealAntenna = [NaN; rngres; round(crngres); NaN]; EffectiveSAR = [round(effSyntheticApertureLength/1e3,1);rngres;round(effAzResolution,1);round(proctime*1e3,1)]; sar = table(Parameters,RealAntenna,IdealSAR,EffectiveSAR,Units)
sar=4×5 table
Parameters RealAntenna IdealSAR EffectiveSAR Units
___________________________ ___________ ________ ____________ _____
"Synthetic Aperture Length" NaN 6.4 5.6 "km"
"Range Resolution" 0.76711 0.76711 0.76711 "m"
"Cross Range Resolution" 6388 2.6 3 "m"
"Integration Time" NaN 1095.9 800 "ms"
Путем интегрирования импульсов всего на 800 мс, длина синтетической апертуры уменьшается на 800 м по сравнению с идеальным случаем, а разрешение в перекрестной области значений уменьшается на 0,4 м до 3,0 м. Поскольку данные обрабатываются менее чем за 1,11 с, радар может удерживать цель в пределах площади луча для длины расчета.
Затем мы анализируем чувствительность разрешения поперек перекрестной области значений к частотным изменениям. Разрешение в перекрестной области значений улучшается на более высоких частотах.
azresv = sarazres(lambdav,slantrng,idealSyntheticApertureLength); effazresv = sarazres(lambdav,slantrng,effSyntheticApertureLength); plot([f f]/1e9,[azresv(:) effazresv(:)]) grid on legend('Ideal SAR','Effective SAR') xlabel('Frequency (GHz)') ylabel('Cross-range Resolution (m)') title('Cross Range Resolution vs. Operating Frequency')
Покрытие (swath) и разрешение не могут быть выбраны независимо, так как они оба накладывают ограничения на частоту повторения импульса (PRF). Если PRF установлен слишком низко, радар будет страдать от лепестков решетки и неоднозначностей Доплера (или перекрестной области значений). Если PRF установлен слишком высоким, измерения области значений будут неоднозначными. Угол выпаса также влияет на выбор PRF, когда он влияет на площадь антенны, как показано в предыдущем разделе.
Верхняя и нижняя границы PRF
Используем sarprfbounds
функция для определения минимальных и максимальных значений PRF для различных покрытий области значений (компоновочный образ) и разрешений перекрестной области значений с учетом скорости спутника и угла выпаса.
desiredCRngRes = (0.5:0.2:5); % m desiredRngCov = (16e3:5e3:100e3); % m [prfminv, prfmaxv] = sarprfbounds(v,desiredCRngRes,desiredRngCov,grazang); clf plotPRFbounds(prfminv,desiredCRngRes,prfmaxv,desiredRngCov);
Выбор PRF, чтобы избежать изображений
PRF обычно программируется и может быть оптимизирован для каждой миссии. Используем sarprf
функция для вычисления PRF радара на основе скорости спутника и действительной размерности антенны по азимуту. Зададим коэффициент постоянного схода в качестве запаса прочности, чтобы предотвратить сглаживание основных возвратов в интервале PRF.
prf = sarprf(v,daz,'RollOff',1.5)
prf = 4.0385e+03
Выбранный PRF находится в границах PRF. Движение платформы РСА в пределах интервала повторения импульсов (PRI) составляет 1,73 м.
t = 1/prf;
distpri = sarlen(v,t) % Distance moved by satellite in one PRI
distpri = 1.7333
Анализ лепестков решетки
Теперь мы можем смоделировать синтетический массив с phased.ula
используя эффективную длину апертуры и расстояние между элементами, которые мы только что вычислили.
sarArray = phased.ULA('NumElements',ceil(effSyntheticApertureLength/distpri)+1,'ElementSpacing',distpri); distpri/lambda
ans = 31.7998
Заметьте, что интервал между элементами превышает 31,8 x длины волны, поэтому радар имеет лепестки решетки. Напомним, что реальная азимутальная лучевая ширина антенны составляет 0,6 степени. Мы моделируем ответ антенны как сильно направленный косинусоидальный шаблон с той же шириной луча.
realAnt = phased.CosineAntennaElement('FrequencyRange',[freq-bw/2 freq+bw/2],'CosinePower',26e3); realAntBeamwidth(1)
ans = 0.6006
b = beamwidth(realAnt,freq)
b = 0.6000
Мы строим диаграмму направленности как синтетического массива, так и действительной антенны, чтобы убедиться, что первый решетчатый лепесток массива расположен в нулевом значении действительного шаблона антенны, так что радар не испытывает негативного влияния лепестков решётки.
clf plotResponse(sarArray,freq,physconst('LightSpeed'),'RespCut','Az','AzimuthAngles',(-3:0.005:3)); hold on plotResponse(realAnt,freq,'RespCut','Az','AzimuthAngles',(-3:0.005:3)); hold off legend('Synthetic array response','Real antenna response','Location','northwest') title('') % Annotations xl = xline(1.8,'-.',{'First grating lobe'}); xl.LabelVerticalAlignment = 'top'; xl.LabelHorizontalAlignment = 'left';
В следующем разделе рассматриваются различные факторы, используемые в уравнении РСА, для вычисления ОСШ изображения. Сначала мы анализируем радарное сечение цели (или поверхность) (RCS) и дождевое (или объемное загромождение) RCS.
Шероховатость поверхности по сравнению с частотой, поляризацией и углом выпаса
Используем landreflectivity
функция для вычисления отражательной способности a.k.a. нормированное радиолокационное сечение (NRCS) для заданного угла выпаса и рабочей частоты. Целевая RCS в плоскости наземного изображения вычисляется с помощью sarSurfaceRCS
и принимая во внимание разрешение радара. В целом яркость области изображения РСА соответствует шероховатости поверхности, поэтому горы будут выглядеть ярче, чем плоские земли, из-за их более высокой RCS. Шероховатость измеряется относительно длины волны, поэтому поверхность может выглядеть грубой с одной частотой и гладкой с другой. Также заметьте, что RCS увеличивается, когда угол выпаса увеличивается.
fsub = [2.5e9 5.5e9 7.5e9]; % Hz grazv = 10:5:85; % degrees landtype = ["Mountains","Flatland"]; tgtrcsv = zeros(numel(grazv),numel(fsub),numel(landtype)); for k=1:numel(landtype) % Land types with different roughness for j=1:numel(fsub) % Frequencies for u =1:numel(grazv) % Grazing angles nrcsv = landreflectivity(landtype(k),grazv(u),fsub(j)); tgtrcsv(u,j,k) = sarSurfaceRCS(nrcsv,[slantrngres effAzResolution],grazv(u)); end end end plotTargetRCSvsGrazAng(grazv,tgtrcsv,landtype,fsub)
RCS также зависит от поляризации радара. Используем seareflectivity
функция для анализа поляризационного эффекта на отражательную способность поверхности моря для различной шероховатости поверхности моря (т.е. состояния моря). Обратите внимание, что существует гораздо больше изменений в морской RCS при низких углах выпаса и что RCS для горизонтально поляризованных сигналов ниже, чем вертикально поляризованные сигналы для того же состояния моря для углов выпаса ниже 60 градусов. Рисунок ниже также показывает, что различие между поляризациями уменьшается, когда угол выпаса увеличивается с 10 до 60 степеней.
pol = ["H","V"]; seaStates = [1 3 5]; grazvpol = linspace(0.1,70,100); % Grazing angle (deg) tgtrcsv = zeros(numel(grazvpol),numel(pol),numel(seaStates)); for n=1:numel(seaStates) % Sea states for j=1:numel(pol) % Polarizations for u =1:numel(grazvpol) % Grazing angles nrcsv = seareflectivity(seaStates(n),grazvpol(u),freq,'Polarization',pol(j)); % Calculate normalized RCS tgtrcsv(u,j,n) = sarSurfaceRCS(nrcsv,[slantrngres effAzResolution],grazvpol(u)); end end end plotTargetRCSvsPol(grazvpol,tgtrcsv,seaStates,pol,freq)
Отражательная способность дождя и отношение сигнал/загромождение (SCR)
Конкурирующие эхо-сигналы из нежелательных источников, таких как дождь, могут вызвать деградацию в изображениях РСА. Дождь, падающий в районе целевой сцены, загромождает изображение этой сцены. Используем rainreflectivity
функция для анализа отражательной способности дождя при меняющихся скоростях дождя и поляризации. Мы наблюдаем, что отражательная способность дождя выше для линейной поляризации, чем круговая поляризация, и что она увеличивается со скоростью дождя.
rainRate = [0.25 1 2 4 8 16]; pol = ["HH","HV","RCPRCP"]; rainrefl = zeros(numel(rainRate),numel(pol)); for i=1:numel(pol) rainrefl(:,i) = rainreflectivity(freq,rainRate,pol(i)); % 5.5 GHz operating frequency end plot(rainRate,pow2db(rainrefl),'LineWidth',1.5) grid on xlabel('Rain rate (mm/Hr)') ylabel('Rain Reflectivity (dB/m)') title('Polarization Effects on Rain Reflectivity') legend('HH Polarization','HV Polarization','Circular Polarization','Location','southeast');
Далее мы используем clutterVolumeRCS
и rainscr
функции для вычисления RCS дождя, который определяется камерой разрешения 3D радара (наклонная область значений, азимут и разрешение по повышению), и отношение энергии сигнала от камеры разрешения целевой сцены к энергии от дождя возвращается обработанный в камеру того же разрешения целевой сцены (или дождя SCR). Мы проверяем, что отношение сигнал/загромождение остается выше 20 дБ для всех скоростей дождя и для всех целей, включая таковые со слабой RCS, такой как гладкая земля. Поэтому мы не ожидаем, что дождь будет ограничивающим фактором для этого радара в этом строении.
elbeamw = realAntBeamwidth(2); % Radar elevation beamwidth maxRainHeight = 4000; % m rhoe = rainelres(slantrng,elbeamw,grazang,maxRainHeight); % Elevation resolution res = [slantrngres effAzResolution rhoe]; rrcs = clutterVolumeRCS(rainrefl(:,1),res); % Rain RCS for HH polarization landType = ["Wooded Hills","Farm","Smooth"]; scr = zeros(numel(rainRate),numel(landType)); tgtrcs = zeros(numel(landType),1); for j=1:numel(landType) nrcsv(j) = landreflectivity(landType(j),grazang,freq); % Calculate normalized RCS of smooth land with no vegetation tgtrcs(j) = sarSurfaceRCS(nrcsv(j),[slantrngres effAzResolution],grazang); scr(:,j) = rainscr(lambda,rrcs,tgtrcs(j),proctime)'; % Signal to rain clutter ratio end plotRainSCR(rainRate,rrcs,scr,landType)
РСА
Мы оцениваем отношение сигнал/шум (ОСШ), доступное в радиолокационном приемнике, используя форму ОСШ основного уравнения радиолокации. Во-первых, мы моделируем и оцениваем различные источники прибыли и потерь для радиолокационной системы и ее окружения.
Обработка коэффициентов усиления
Используем matchinggain
функция для вычисления усиления обработки области значений из-за уменьшения шумовой полосы после согласованного фильтра.
d = 0.1; % 10 percent duty cycle pw = (1/prf)*d; % Effective pulse width (sec) rnggain = matchinggain(pw,bw) % Range processing gain (dB)
rnggain = 40.9275
Используем sarazgain
функция для вычисления коэффициента усиления обработки азимута из-за когерентного интегрирования импульсов.
azgain = sarazgain(slantrng,lambda,v,effAzResolution,prf) % Az processing gain (dB)
azgain = 35.0931
Потери и коэффициент шума
Используем noisefigure
функция для оценки шумового рисунка каскадных каскадов приемника. Мы принимаем 7 этапов со следующими значениями:
Stage 1 LNA: Noise Figure = 1.0 dB, Gain = 15.0
Stage 2 RF Filter: Noise Figure = 0.5 dB, Gain = -0.5
Stage 3 Mixer: Noise Figure = 5.0 dB, Gain = -7.0
Stage 4 IF Filter: Noise Figure = 1.0 dB, Gain = -1.0
Stage 5 IF Preamplifier: Noise Figure = 0.6 dB, Gain = 15.0
Stage 6 IF Stages: Noise Figure = 1.0 dB, Gain = 20.0
Stage 7 Phase Detectors: Noise Figure = 6.0 dB, Gain = -5.0
nf = [1.0, 0.5, 5.0, 1.0, 0.6, 1.0, 6.0]; % dB g = [15.0, -0.5, -7.0, -1.0, 15.0, 20.0, -5.0]; % dB cnf = noisefigure(nf, g)
cnf = 1.5252
Используем radarpropfactor
функция для вычисления одностороннего коэффициента распространения радара по гладкой местности.
[hgtsd, beta0, vegType] = landroughness('Smooth'); tgtheight = hgtsd; Re = effearthradius(slantrng,h,tgtheight); propf = radarpropfactor(slantrng,freq,h,tgtheight,'EffectiveEarthradius',Re,'TiltAngle',grazang,'ElevationBeamwidth',elbeamw,... 'SurfaceHeightStandardDeviation',hgtsd,'SurfaceSlope',beta0,'VegetationType',vegType)
propf = -5.3980e-05
Используем tropopl
функция для вычисления потерь от атмосферного газового поглощения.
atmoLoss = tropopl(slantrng,freq,tgtheight,grazang)
atmoLoss = 0.0439
Используем rainpl
функция для вычисления потерь из-за дождя по модели ITU. Кроме того, можно использовать cranerainpl
вместо этого функция для вычисления согласно модели Крана.
rainLoss = rainpl(slantrng,freq,rainRate(end),grazang)
rainLoss = 0.5389
Используем radareqsarsnr
функция для вычисления ОСШ изображения с РСА основного уравнения радиолокации. Мы принимаем пиковую степень 5 кВт. Могут быть указаны дополнительные потери и факторы, включая потери формы луча азимута, потери окна, потери передачи и потери линии приема. Мы оцениваем потери формы луча с beamloss
функция и мы используем 5 дБ для всех других фиксированных потерь вместе взятых. Для этого анализа мы используем (самую слабую) «Гладкую» наземную цель. Минимальный ОСШ изображения 10 дБ обычно рассматривается как достаточный для обеспечения хорошего качества изображения, поэтому при 35,9 дБ для этой цели наша система имеет достаточно полей.
Lb = beamloss; customLoss = 5; % dB Pt = 5e3; % Peak power (W) sntemp = systemp(cnf); % Noise Temperature imgsnr = radareqsarsnr(slantrng,lambda,Pt,pw,rnggain,azgain,'Gain',antGain,'RCS',tgtrcs(3),... 'AtmosphericLoss',atmoLoss,'Loss',cnf+rainLoss,'PropagationFactor',propf,... 'Ts',sntemp,'CustomFactor',-Lb-customLoss)
imgsnr = 35.9554
Отражательная способность эквивалентного шума (NER или NEZ0)
Наконец, мы используем sarnoiserefl
функция для вычисления NER радара и мы анализируем как его чувствительность к изменениям частоты. NER является наименьшим распределенным загромождением, которое можно увидеть в присутствии шума приемника для заданной поверхностной отражательной способности. Это мера чувствительности радара к пространственно распределенному шуму. Для гладкой местности, которую мы использовали в этом расчете, NER составляет -62,6 дБ в 5.5.GHz, и он увеличивается с частотой.
neq = sarnoiserefl(f,freq,imgsnr,nrcsv(3)); clf; plot(f/1e9,neq,'LineWidth',1.5) grid on xline(5.5,'--') xlabel('Frequency (GHz)') ylabel('Noise Equivalent Reflectivity (dB)') title(['Smooth Terrain - ', num2str(round(effAzResolution,1)), ' m Resolution'])
Этот пример продемонстрировал, как оценить параметры эффективности, такие как покрытие, разрешение и ОСШ для космической системы РСА. Мы определили верхние и более низкие границы PRF, чтобы избежать изображений. Мы проанализировали целевую и дождевую загроможденность RCS на различные поляризации и углы выпаса. Затем мы оценили усиления и потери обработки в радаре и его окружении. Наконец, мы использовали уравнение РСА, чтобы вычислить ОСШ изображения и эквивалентную шуму отражательную способность (NER).
Дурри, Армин Уолтер. «Эффективность Пределов для Радара с синтезированной апертурой». Sandia National Laboratories, 1 февраля 2006 года.
О'Доннелл, Роберт. «Проектирование радиолокационных систем». IEEE Aerospace & Electronic Systems Society и IEEE New Hampshire Section, 2013.
Вспомогательные функции
slant2grndrangeres
function grndres = slant2grndrangeres(slres, grazang) % slant2grndrangeres Convert slant range resolution to ground range resolution grndres = slres./cosd(grazang); end
plotAntennaFootprintVsFreq
function t = plotAntennaFootprintVsFreq(freq,f,rangeswathv,crngswathv) t = tiledlayout(1,2); nexttile % Plot cross-range vs. range theta_grid = linspace(0,2*pi)'; semix = 0.5*rangeswathv/1e3; % km semiy = 0.5*crngswathv/1e3; % km l = plot(cos(theta_grid)*semix,sin(theta_grid)*semiy); set(l(3),'LineWidth',1.5) ylim(xlim) grid on xlabel('Range Swath (km)') ylabel('Cross-Range Swath (km)') legend([num2str(round(f(1)/1e9,1)) ' GHz'],[num2str(round(f(2)/1e9,1)) ' GHz'], ... [num2str(round(f(3)/1e9,1)) ' GHz'],[num2str(round(f(4)/1e9,1)) ' GHz']) nexttile % Plot Swath length vs. operating frequencies plot([f f]/1e9,[rangeswathv(:) crngswathv(:)]/1e3) xl = xline(freq/1e9,'-.',{[num2str(freq/1e9),' GHz']},'Color',l(3).Color); % Annotation xl.LabelVerticalAlignment = 'top'; xl.LabelHorizontalAlignment = 'left'; xl.LineWidth = 1.5; grid on xlabel('Frequency (GHz)') ylabel('Swath Length (km)') legend('Along range','Cross range') title(t,'Real Antenna Footprint vs. Operating Frequencies') end
plotAntennaFootprintVsGrazAng
function t = plotAntennaFootprintVsGrazAng(grazv,distgrndtrackv,rangeswathv,crngswathv,grazang) t = tiledlayout(1,2); nexttile % Plot footprint and beam center distance to ground track theta_grid = linspace(0,2*pi)'; semix = 0.5*rangeswathv/1e3; % km semiy = 0.5*crngswathv/1e3; % km l = plot(cos(theta_grid)*semix,1e-3*distgrndtrackv(:)'+sin(theta_grid)*semiy); set(l(3),'LineWidth',1.5) grid on xlabel('Range Swath (km)') ylabel('Ground Range (km)') legend([num2str(round(grazv(1),2)) ' deg Grazing Angle'], ... [num2str(round(grazv(2),2)) ' deg Grazing Angle'], ... [num2str(round(grazv(3),2)) ' deg Grazing Angle'], ... [num2str(round(grazv(4),2)) ' deg Grazing Angle'], ... [num2str(round(grazv(5),2)) ' deg Grazing Angle'], ... 'Location', "northoutside") axis padded nexttile % Plot beam center distance to ground track vs. grazing angles plot(grazv,distgrndtrackv/1e3) xl = xline(grazang,'-.',{[num2str(round(grazang,2)),' deg']},'Color',l(3).Color); % Annotation xl.LabelVerticalAlignment = 'top'; xl.LabelHorizontalAlignment = 'left'; xl.LineWidth = 1.5; grid on xlabel('Grazing Angle (deg)') ylabel('Ground Range (km)') subtitle('Beam Center Distance to Nadir') title(t,'Real Antenna Footprint vs. Grazing Angles') end
plotPRFbounds
function plotPRFbounds(prfminv,desiredCRngRes,prfmaxv,desiredRngCov) yyaxis left fill([prfminv(1)/1e3;prfminv(:)/1e3;prfminv(end)/1e3],[0;desiredCRngRes(:);0],[0 0.4470 0.7410]) grid on xlabel('PRF (kHz)') ylabel('Cross-Range resolution (m)') yyaxis right fill([prfmaxv(1)/1e3;prfmaxv(:)/1e3;prfmaxv(end)/1e3],[100;desiredRngCov(:)/1e3;100],[0.8500 0.3250 0.0980]) xlim([prfminv(end)/1e3 prfminv(1)/1e3]) ylabel('Range coverage (km)') legend('Cross-Range ambiguities','Range ambiguities') title('Upper and Lower PRF Bounds') end
plotTargetRCSvsGrazAng
function plotTargetRCSvsGrazAng(grazv,tgtrcsv,landtype,fsub) plot(grazv,pow2db(tgtrcsv(:,:,1)),'LineWidth',1.5) set(gca,'ColorOrderIndex',1) hold on plot(grazv,pow2db(tgtrcsv(:,:,2)),'--','LineWidth',1.5) hold off grid on axis padded xlabel('Grazing Angle (degrees)') ylabel('Target RCS (dBsm)') title('Surface Roughness Scattering') legend([char(landtype(1)) ' @ ' num2str(round(fsub(1)/1e9,1)) ' GHz'],... [char(landtype(1)) ' @ ' num2str(round(fsub(2)/1e9,1)) ' GHz'],[char(landtype(1)) ' @ ' num2str(round(fsub(3)/1e9,1)) ' GHz'],... [char(landtype(2)) ' @ ' num2str(round(fsub(1)/1e9,1)) ' GHz'],[char(landtype(2)) ' @ ' num2str(round(fsub(2)/1e9,1)) ' GHz'],... [char(landtype(2)) ' @ ' num2str(round(fsub(3)/1e9,1)) ' GHz'],'Location','northwest') end
plotTargetRCSvsPol
function plotTargetRCSvsPol(grazvpol,tgtrcsv,seaStates,pol,freq) plot(grazvpol,pow2db(squeeze(tgtrcsv(:,1,:))),'LineWidth',1.5) set(gca,'ColorOrderIndex',1) hold on plot(grazvpol,pow2db(squeeze(tgtrcsv(:,2,:))),'--','LineWidth',1.5) hold off grid on xlabel('Grazing Angle (degrees)') ylabel('Target RCS (dBsm)') title(['Surface Roughness Scattering @ ' num2str(round(freq/1e9,1)) ' GHz vs. Polarization']) legend(['Sea State ' num2str(seaStates(1)) ' - ' char(pol(1)) ' pol'],... ['Sea State ' num2str(seaStates(2)) ' - ' char(pol(1)) ' pol'],... ['Sea State ' num2str(seaStates(3)) ' - ' char(pol(1)) ' pol'],... ['Sea State ' num2str(seaStates(1)) ' - ' char(pol(2)) ' pol'],... ['Sea State ' num2str(seaStates(2)) ' - ' char(pol(2)) ' pol'],... ['Sea State ' num2str(seaStates(3)) ' - ' char(pol(2)) ' pol'],'Location','southeast') end
plotRainSCR
function plotRainSCR(rainRate,rrcs,scr,landType) t = tiledlayout(1,2); nexttile % Plot rain RCS vs rain rate plot(rainRate,pow2db(rrcs),'LineWidth',1.5) grid on xlabel('Rain rate (mm/Hr)') ylabel('Rain RCS (dBsm)') legend('HH polarization') nexttile % Plot signal-to-clutter ratio (SCR) vs. rain rate plot(rainRate,scr,'LineWidth',1.5) grid on xlabel('Rain rate (mm/Hr)') ylabel('Signal-to-Clutter ratio (dB)') legend(landType(1),landType(2),landType(3)) title(t, 'Rain Clutter') end