В этом примере показано, как оценить эффективность космического радара с синтезированной апертурой (SAR) и сравнивает теоретические пределы с достижимыми требованиями для системы SAR. SAR использует движение радарной антенны по целевой области, чтобы обеспечить более прекрасное разрешение азимута. Учитывая основные параметры обоих радар (e.g. рабочая частота, размер антенны и пропускная способность), и платформа это смонтировано на (e.g. высота, скорость, монтируя положение), мы определим эксплуатационные параметры, такие как место, азимут и разрешение области значений, отношение тоно-Исе сигнала (ОСШ) изображения SAR и шумовая эквивалентная отражающая способность (NER).
Мы рассматриваем радар на спутнике низкой околоземной орбиты (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
функции, чтобы вычислить депрессию и углы падения соответственно из области значений угла обзора. Используя сферическую модель Earth вместо плоской модели Earth, мы наблюдаем в областях значений выше 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
функции, чтобы вычислить синтетическую апертурную длину и ее перекрестную область значений (или азимут) разрешение. Заметьте, что разрешение области значений, которое зависит от пропускной способности сигнала передачи и угла падения, остается то же самое для действительного апертурного радара и SAR.
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"
Лучшее разрешение перекрестной области значений мы можем надеяться на использование SAR в этом сценарии, составляет 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 радара на основе спутниковой скорости и действительной размерности антенны вдоль азимута. Мы задаем постоянный фактор спада, когда запас прочности, чтобы предотвратить mainlobe возвращается из искажения в интервале PRF.
prf = sarprf(v,daz,'RollOff',1.5)
prf = 4.0385e+03
Выбранный PRF в границах PRF. Перемещение платформы SAR в импульсном интервале повторения (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';
Следующий раздел исследует различные факторы, используемые в уравнении SAR, чтобы вычислить ОСШ изображений. Мы сначала анализируем цель (или поверхность) радарное сечение (RCS) и дождь (или помеха объема) RCS.
Поверхностная шероховатость по сравнению с частотой, поляризацией и углом падения
Мы используем landreflectivity
функция, чтобы вычислить отражающую способность иначе нормированное радарное сечение (NRCS) для данного угла падения и рабочей частоты. Целевой RCS в наземной плоскости изображения вычисляется с помощью sarSurfaceRCS
и принятие во внимание радарного разрешения. В общем случае яркость области изображения SAR соответствует шероховатости поверхности, таким образом, горы будут казаться более яркими, чем равнина из-за их выше 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
функция, чтобы анализировать эффект поляризации на отражающей способности поверхности моря для различной шероховатости поверхности моря (i.e. морские состояния). Обратите внимание на то, что существует намного больше изменения моря 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)
Конкурирующее эхо из нежелательных источников, таких как дождь может вызвать ухудшение в изображениях SAR. Лейтесь дождем падение около целевой сцены создаст помехи изображению той сцены. Мы используем 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)
Уравнение SAR
Мы оцениваем отношение сигнал-шум (SNR), доступное в радарном приемнике с помощью формы ОСШ основного уравнения радиолокации. Во-первых, мы моделируем и оцениваем другие источники усиления и потери для радиолокационной системы и ее среды.
Обработка усилений
Мы используем 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
функция, чтобы сделать вычисления согласно модели Crane вместо этого.
rainLoss = rainpl(slantrng,freq,rainRate(end),grazang)
rainLoss = 0.5389
Мы используем radareqsarsnr
функция, чтобы вычислить ОСШ изображений с основным уравнением радиолокации SAR. Мы приходим к пиковой власти на 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'])
Этот пример продемонстрировал, как оценить эксплуатационные параметры, такие как покрытие, разрешение и ОСШ для космической системы SAR. Мы определили верхние и более низкие границы PRF, чтобы избежать фантомных изображений. Мы анализировали цель, и дождь создают помехи RCS для различной поляризации и углов падения. Мы затем оценили прибыли и убытки обработки в радаре и его среде. Наконец, мы использовали уравнение SAR, чтобы вычислить ОСШ изображений и шумовую эквивалентную отражающую способность (NER).
Doerry, Армин Уолтер. “Пределы эффективности для радара с синтезированной апертурой”. Национальные лаборатории Сандиа, 1 февраля 2006.
О'Доннелл, Роберт. “Разработка радиолокационных систем”. IEEE Aerospace & Electronic Systems Society и IEEE нью-гэмпширский раздел, 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