В этом примере показано, как смоделировать несколько эффектов распространения RF. Они включают потери при распространении в свободном пространстве, атмосферное затухание, должное литься, вуалировать и газ и многопутевое распространение из-за возвратов на земле. Это обсуждение основано на рекомендациях серии International Telecommunication Union's ITU-R P. ITU-R является сектором радиосвязи организации и особым вниманием серии P на распространении радиоволны.
Чтобы правильно оценить эффективность радара и систем радиосвязи, очень важно изучить среду распространения. Полученная степень сигнала моностатического радара дана радарным уравнением области значений:
где переданная степень, является усилением антенны, является целевым радарным сечением (RCS), является длиной волны и является расстоянием распространения. Все потери распространения кроме потерь при распространении в свободном пространстве включены в термин. Остальная часть примера показывает, как оценить этот термин в различных сценариях.
Потери при распространении в свободном пространстве вычисляются в зависимости от расстояния распространения и частоты. В свободном пространстве сигналы RF распространяют со скоростью света во всех направлениях. На достаточно далеком расстоянии исходящий источник похож на точку на пробеле, и фронт импульса формирует сферу, радиус которой равен. Плотность энергии во фронте импульса обратно пропорциональна:
где переданная степень сигнала. Для моностатического радара, куда сигнал должен переместиться оба направления (от источника до цели и назад), зависимость на самом деле обратно пропорциональна, как показано ранее в основном уравнении радиолокации. Потеря, связанная с этим механизмом распространения, упоминается как потери при распространении в свободном пространстве, иногда также названные распространяющейся потерей. Количественно, потери при распространении в свободном пространстве также функция частоты, данной [5]:
Как соглашение, потери распространения часто описываются в дБ. Это соглашение делает намного легче вывести двухсторонние потери при распространении в свободном пространстве путем простого удвоения односторонней потери свободного пространства.
Используйте fspl
вычислить потерю пути свободного пространства и построить потерю для частот между 1 и 1 000 ГГц, для различных областей значений.
c = physconst('lightspeed'); R0 = [100 1e3 10e3]; freq = (1:1000).'*1e9; apathloss = fspl(R0,c./freq); loglog(freq/1e9,apathloss); grid on; ylim([90 200]); legend('Range: 100 m', 'Range: 1 km', 'Range: 10 km','Location','northwest'); xlabel('Frequency (GHz)'); ylabel('Path Loss (dB)'); title('Free Space Path Loss');
Фигура иллюстрирует, что потеря распространения увеличивается с областью значений и частотой.
В действительности сигналы не всегда перемещаются в вакууме, таким образом, потери при распространении в свободном пространстве описывают только часть затухания сигнала. Сигналы взаимодействуют с частицами в воздухе и теряют энергию вдоль пути к распространению. Потеря меняется в зависимости от различных факторов, таких как давление, температура и водная плотность.
Потеря, подлежащая выплате литься дождем и пойти снег
Дождь может быть главным ограничивающим фактором для радиолокационные системы, особенно при работе выше 5 ГГц. В модели ITU в [2], дождь характеризуется уровнем дождя (в мм/ч). Согласно [6], уровень дождя может лежать в диапазоне меньше чем от 0,25 мм/ч для очень небольшого дождя к более чем 50 мм/ч для экстремальных дождей. Кроме того, из-за формы отбрасывания дождя и ее относительного размера по сравнению с длиной волны сигнала RF, потеря распространения, подлежащая выплате литься дождем, является также функцией поляризации сигнала. В общем случае горизонтальная поляризация представляет худший случай за потерю распространения, подлежащую выплате литься дождем.
Функции rainpl
и cranerainpl
могут быть использованные для расчета потери, подлежащие выплате литься дождем согласно моделям ITU и Crane, соответственно. Обе модели допустимы между 1 ГГц и 1 ТГц. Позвольте поляризации быть горизонталью, таким образом, угол наклона 0, и позвольте сигналу распространить параллельный земле, таким образом, угол возвышения 0. Постройте потери, вычисленные с обеими моделями, и сравните.
R0 = 5e3; % 5 km range rainrate = [1 4 20]; % rain rate in mm/h el = 0; % 0 degree elevation tau = 0; % horizontal polarization for m = 1:numel(rainrate) rainloss_itu(:,m) = rainpl(R0,freq,rainrate(m),el,tau)'; rainloss_crane(:,m) = cranerainpl(R0,freq,rainrate(m),el,tau)'; end loglog(freq/1e9,rainloss_itu); hold on; set(gca,'ColorOrderIndex',1); % reset color index for better comparison loglog(freq/1e9,rainloss_crane,'--'); hold off; grid on; legend('Light Rain (ITU)','Moderate Rain (ITU)','Heavy Rain (ITU)',... 'Light Rain (Crane)','Moderate Rain (Crane)','Heavy Rain (Crane)', ... 'Location','SouthEast'); xlabel('Frequency (GHz)'); ylabel('Attenuation at 1 km (dB)') title('Rain Attenuation for Horizontal Polarization');
Потери, вычисленные с моделью Крейна, в основном больше, чем потери, вычисленные с моделью ITU в этой области значений распространения. В меньших областях значений распространения и более низких частотах, модель ITU может вывести меньшее значение затухания, чем Крейн. Обратите внимание на то, что модели отличаются значительно достаточно на более высоких частотах, "легкий" ливень для одной модели может иметь то же затухание как "умеренный" ливень для другой модели.
Подобно ливню снег может также оказать значительное влияние на распространение сигналов RF. Установившаяся практика должна обработать снег как ливень и вычислить потерю распространения на основе модели дождя, даже при том, что этот подход имеет тенденцию переоценивать потерю немного. Затухание из-за распространения через снег не рассматривается зависящим от поляризации, но очень зависит от частоты. Модель за потери из-за снега параметрируется эквивалентным жидким содержимым вместо объема. Для данного содержания воды снег требует приблизительно в 10 раз больше объема, чем дождь.
Используйте snowpl
вычислить потери из-за снега и построить потери против частоты. По умолчанию эта функция использует Gunn-восточную модель затухания, которая обычно рассматривается допустимой приблизительно до 20 ГГц.
freq = (1:20)*1e9; R0 = 1e3; % 1 km range snowrate = [0.1 1.5 4]; % equivalent liquid water content in mm/h for m = 1:numel(snowrate) snowloss(:,m) = snowpl(R0,freq,snowrate(m)); end loglog(freq/1e9,snowloss); grid on; legend('Light Snow','Moderate Snow','Heavy Snow', ... 'Location','SouthEast'); xlabel('Frequency (GHz)'); ylabel('Attenuation at 1 km (dB)') title('Snow Attenuation');
Потеря, подлежащая выплате вуалировать и объединяться в облако
Вуаль и облако формируются с водными капельками также, несмотря на то, что намного меньший выдержал сравнение с отбрасываниями дождя. Размер капелек вуали обычно меньше 0,01 см. Вуаль часто характеризуется жидкой водной плотностью. Средняя вуаль с видимостью примерно 300 метров, имеет жидкую водную плотность 0,05 г/м^3. Для тяжелой вуали, где спады видимости до 50 метров, жидкая водная плотность составляет приблизительно 0,5 г/м^3. Температура атмосферы (в Цельсия) также присутствует в модели ITU за потерю распространения, подлежащую выплате вуалировать и объединяться в облако [3].
Используйте fogpl
вычислить потери, подлежащие выплате вуалировать, и строить потери против частоты. Модель ITU для затухания, должного вуалировать, допустима между 10 ГГц и 1 ТГц.
freq = (10:1000)*1e9; T = 15; % 15 degree Celsius waterdensity = [0.01 0.05 0.5]; % liquid water density in g/m^3 for m = 1: numel(waterdensity) fogloss(:,m) = fogpl(R0,freq,T,waterdensity(m))'; end loglog(freq/1e9,fogloss); grid on; legend('Light Fog','Medium Fog','Heavy Fog','Location','southeast'); xlabel('Frequency (GHz)'); ylabel('Attenuation at 1 km (dB)') title('Fog Attenuation');
Обратите внимание на то, что в общей вуали не присутствует, когда идет дождь.
Потеря из-за Atmospheric Absorption и Lensing
Даже когда нет никакой вуали или дождя, атмосфера полна газов, которые все еще влияют на распространение сигнала. Модель [4] ITU описывает атмосферное газовое затухание и в зависимости от сухого давления воздуха, как кислород, измеренный в hPa, и в зависимости от плотности водяного пара, измеренной в g/m^3.
Используйте tropopl
вычислить потери из-за атмосферного поглощения и построить потери против частоты. По умолчанию эта функция использует модель Mean Annual Global Reference Atmosphere (MAGRA), чтобы получить типичные значения температуры, давления и плотности водяного пара для данной высоты. Мы можем также задать модель широты, чтобы использовать модель, адаптированную для определенной области значений широт. Некоторые модели широты также допускают спецификацию сезона. Позвольте нашей высоте составить 2 км (обратите внимание, что тропосфера, для которой эта модель допустима, расширяет до 10 км), и наш путь к распространению быть подавленным 5 градусами. Эта функция возвратит общую сумму убытков из-за атмосферного поглощения по наклонному пути к распространению, но не включает рассеяние из-за преломления (lensing). Мы сравним потери между минимумом, серединой и высокими моделями широты.
height = 2e3; el = -5; % elevation angle atmloss_low = tropopl(R0,freq,height,el,'LatitudeModel','Low'); atmloss_mid = tropopl(R0,freq,height,el,'LatitudeModel','Mid'); atmloss_high = tropopl(R0,freq,height,el,'LatitudeModel','High'); loglog(freq/1e9,atmloss_low); hold on; loglog(freq/1e9,atmloss_mid); loglog(freq/1e9,atmloss_high); hold off; grid on; legend('Low Latitudes','Mid Latitudes','High Latitudes','Location','northwest'); xlabel('Frequency (GHz)'); ylabel('Attenuation at 1 km (dB)') title('Atmospheric Gas Attenuation');
График предполагает, что существует сильное поглощение из-за атмосферных газов на уровне приблизительно 60 ГГц.
Другой источник потерь из-за атмосферы от атмосферного lensing. Это - явление, посредством чего угловая степень передачи увеличена с областью значений из-за градиента явления преломления. Это распространение энергии уменьшает плотность энергии вдоль номинального (прямого) пути к распространению, независимого от частоты.
Атмосферное давление, и таким образом явление преломления, изменяются с высотой. Таким образом для данной высоты, угла возвышения пути к распространению достаточно, чтобы определить потери, подлежащие выплате с этой целью.
Используйте lenspl
вычислить эти потери и график против частоты. Поскольку эта потеря независима от частоты, мы построим потерю против области значений распространения для набора высот. Используйте угол возвышения 0,05 градусов для наклонного пути к распространению.
R = 1e3:1e3:100e3; % propagation range el = 0.05; % elevation angle heights = [10 100 200]; % radar platform heights for m = 1:numel(heights) lenloss(:,m) = lenspl(R,heights(m),el); end semilogy(R/1e3,lenloss); grid on; legend('Height: 10 m','Height: 100 m','Height: 200 m','Location',... 'southeast'); xlabel('Propagation Range (km)'); ylabel('Attenuation (dB)') title('Atmospheric Lensing Attenuation');
Затухание из-за уменьшений lensing как высота увеличивается. Для удобства затухание из-за lensing также обеспечивается как вторичный выход от tropopl
.
Потеря из-за несоответствия поляризации
Некоторые типы потери распространения зависят от поляризации переданного излучения, такой как с потерей дождя. Это - результат химических и структурных свойств носителя. Однако даже в свободном пространстве могут быть потери из-за несоответствия распространенного вектора поляризации и поляризации приемной антенны. Например, если бы распространенный вектор поляризации является ортогональным к поляризации приемной антенны, никакая прямая энергия сигнала не была бы получена. Обратите внимание на то, что "распространенный вектор поляризации" не является в целом тем же самым как переданным вектором поляризации, когда направление распространения должно быть учтено. Обратите внимание также, что другие функции потерь, которые берут поляризацию в качестве входа, не вычисляют потери из-за этого несоответствия. Зависимые поляризацией потери из-за свойств носителя распространения могут быть обработаны отдельно от потерь из-за несоответствия поляризации, когда последний в большой степени зависит от ориентации передатчика/приемника.
Используйте polloss
чтобы вычислить потерю из-за несоответствия поляризации для данного передают/получают поляризацию, положения платформы и ориентации платформы. Поместите платформу передачи в начале координат без вращения от инерционного. Поместите получить платформу вдоль оси X и вычислите потерю поляризации для области значений углов вращения. Позвольте поляризации антенны оба быть вертикальной.
poltx = [0;1]; % [H;V] polarization polrx = [0;1]; postx = [0;0;0]; posrx = [100;0;0]; frmtx = eye(3); % transmit frame aligned with inertial rolls = 0:180; for m = 1:numel(rolls) frm_r = rotx(rolls(m)); rho(m) = polloss(poltx,polrx,posrx,frm_r,postx,frmtx); end semilogy(rolls,rho); grid on; xlabel('Roll Angle (deg)'); ylabel('Attenuation (dB)'); title('Attenuation Due to Polarization Mismatch');
Затухание приближается к бесконечности в 90 углах вращения степени.
Когда передача по широкому углу или от антенны рядом с землей, многопутевой от наземного возврата, наряду с преломлением от атмосферы, дает к диаграмме направленности в данной области значений, которая может очень отличаться от номинального шаблона передачи. Это получено радарным фактором распространения, который является отношением фактической полевой силы относительно того, чем полевая сила была бы в свободном пространстве. Фактор распространения может варьироваться значительно как относительная фаза между прямыми и косвенными изменениями сигналов пути.
Вертикальная схема покрытия (график Блэйка) является компактным способом отобразить контуры фиксированной энергии сигнала (такие как минимальная степень сигнала для обнаружения) в зависимости от области значений распространения и угла возвышения. Только вертикальная плоскость, в которой и прямые и косвенные сигналы пути распространяют потребности, которые будут рассмотрены.
Функциональный radarvcd
берет диапазон ссылки в качестве входа и возвращает область значений, в которой мощность приемника в лучевой среде равняется тому, чем это было бы в свободном пространстве. Эта "эффективная" область значений построена на графике угла высоты области значений. Это может быстро дать, например, фактическую область значений обнаружения, учитывая область значений обнаружения свободного пространства, в зависимости от области значений, высоты или угла возвышения.
Мы будем использовать область значений обнаружения свободного пространства 100 км, частоты передачи в L-полосе и C-полосе и высоте антенны 12 м. По умолчанию шаблон передачи sinc используется.
freq = [1.06 5.7]*1e9; % L-Band and C-Band transmit frequencies (Hz) antht = 12; % height of antenna (m) rngfs = 100; % free-space detection range (km) for m = 1:numel(freq) [vcp{m}, vcpang{m}] = radarvcd(freq(m),rngfs,antht); end
blakechart
берет эти области значений обнаружения и углы, наряду с дополнительными атмосферными свойствами создать график Блэйка. Используйте refractiveidx
и вычислите соответствующую экспоненту преломления для входа к blakechart
.
[~,N] = refractiveidx(0); % atmospheric refractivity at the surface
helperPlotBlakeChart(vcp,vcpang,N)
Интерференция наземного возврата доминирует над фактором распространения для более коротких областей значений, "интерференционная область", но в более длинных областях значений и низких углах возвышения фактор распространения становится во власти дифракции по горизонту, "дифракционная область". Мы можем использовать radarpropfactor
вычислить фактор распространения для интервала областей значений и наблюдать различие между этими двумя областями.
Вычислите фактор распространения для фиксированной высоты выше поверхности 1 км и областей значений распространения между 50 и 200 км. Установите поверхностный наклон и стандартное отклонение высоты к 0 представлять сглаженную поверхность. Выполните анализ для этих двух диапазонов частот.
tgtht = 1e3; % target height (m) R = (50:200)*1e3; % propagation range (m) Re = effearthradius; % effective Earth radius (m) Rd = sqrt(2*Re)*(sqrt(antht) + sqrt(tgtht)); % diffraction range F = zeros(numel(freq),numel(R)); for m = 1:numel(freq) F(m,:) = radarpropfactor(R,freq(m),antht,tgtht,'SurfaceHeightStandardDeviation',0,'SurfaceSlope',0); end helperPlotPropagationFactor(R,F,Rd)
Фактор распространения колеблется в интерференционной области, затем уменьшается быстро в дифракционной области.
Объедините наземный возврат интерференционные и атмосферные потери поглощения. Примите в этом вычислении, что радар надводного судна S-полосы на 3,3 ГГц на 20 м выше воды и имеет ширину луча вертикального изменения 30 градусов.
freq = 3.3e9; % Frequency (Hz) elbw = 30; % Elevation beamwidth (deg) Rkm = 1:0.1:120; % Range (km) R = Rkm.*1e3; % Range (m) [htsd,beta0] = searoughness(1); % Sea surface anht = 20 + 2*htsd; % Radar height (m) tgtht = (anht+1):1:300; % Target height (m) % Calculate combined environment losses for different heights and ranges [PLdB, PLdBNorm] = helperCombineEnvLosses(R,freq,anht,tgtht,htsd,beta0,elbw); % Plot combined losses for different heights and ranges helperPlotCombinedEnvLosses(Rkm,freq,anht,tgtht,PLdBNorm)
Как мы видели, сигналы не могут всегда распространять вдоль угла обзора, но прибывать к месту назначения через различные пути и могут сложить или конструктивно или пагубно. Этот многопутевой эффект может вызвать значительные колебания полученной степени сигнала.
Функции, упомянутые выше за вычислительные потери распространения, полезны, чтобы установить бюджетные ссылки, но симулировать распространение произвольных сигналов, мы также должны применить зависимые областью значений задержки, усиления и сдвиги фазы. Различные объекты канала доступны, чтобы смоделировать многопутевое распространение. Для простого пути угла обзора, phased.LOSChannel
может использоваться, чтобы смоделировать распространение, удовлетворяющее любому из типов потерь, описанных выше.
Наземное отражение является общим явлением для многих системы радиосвязи или радар. Например, когда наземный или на морском основанный радар освещает цель, сигнал не только распространяет вдоль прямой линии вида, но и также отражается от земли. twoRayChannel
может использоваться, чтобы смоделировать комбинацию прямого пути и пути одно возврата, такой что касается наземного отражения.
Задержки и эффекты Доплера
Во-первых, задайте переданный сигнал. Прямоугольная форма волны будет использоваться в этом случае.
waveform = phased.RectangularWaveform('PRF',250);
wav = waveform();
Примите L-полосу рабочая частота 1,9 ГГц. Смоделируйте канал с
fc = 1.9e9; channel = twoRayChannel('PropagationSpeed',c,'OperatingFrequency',fc);
Примите, что целевой модуль составляет 1,65 км над землей, радарная антенна составляет 12 метров над землей на 50-километровом расстоянии. Симулируйте сигнал, когда он достигает цели.
pos_radar = [0;0;12]; pos_target = [50e3;0;1.65e3]; vel_radar = [0;0;0]; vel_target = [-200;0;0]; y2ray = channel(wav,pos_radar,pos_target,vel_radar,vel_target);
Визуализируйте переданный и распространенный импульс и их нормированный спектр. Канал ввел задержку 167, который соответствует 50-километровой области значений цели, разделенной на скорость света.
[delay, dop] = helperPlotDelayAndDopplerShift(wav,y2ray,waveform.SampleRate);
estRange = delay*c*1e-3 % km
estRange = 49.9954
Канал также применил эффект Доплера, который соответствует уровню области значений цели. Сравните ориентировочную стоимость с основной истиной на-200 м/с с помощью dop2speed
и freq2wavelen
.
estRangeRate = -dop2speed(dop,freq2wavelen(fc)) % m/s
estRangeRate = -201.9038
Многопутевое исчезновение
Потеря сигнала, понесенная в этом канале, может быть вычислена как
L_2ray = pow2db(bandpower(wav))-pow2db(bandpower(y2ray))
L_2ray = 151.5888
Потерями при распространении в свободном пространстве дают
L_ref = fspl(norm(pos_target-pos_radar),c/fc)
L_ref = 132.0069
Результат предполагает, что в этой настройке, канал вводит дополнительную потерю на 19,6 дБ для полученного сигнала по сравнению со случаем свободного пространства. Теперь примите, что цель летит немного выше на уровне 1,8 км над землей. Повторение симуляции выше предполагает, что на этот раз наземное отражение на самом деле обеспечивает 6 усилений дБ! Несмотря на то, что потери при распространении в свободном пространстве являются по существу тем же самым в этих двух сценариях, перемещение на 150 м вызвало колебание на 25,6 дБ степени сигнала.
pos_target = [50e3;0;1.8e3]; y2ray = channel(wav,pos_radar,pos_target,vel_radar,vel_target); L_2ray = pow2db(bandpower(wav))-pow2db(bandpower(y2ray)) L_ref = fspl(norm(pos_target-pos_radar),c/fc)
L_2ray = 126.0374 L_ref = 132.0078
Увеличение пропускной способности системы увеличивает способность своего канала. Это включает более высокие скорости передачи данных в системах связи и более прекрасные разрешения области значений для радиолокационных систем. Увеличенная пропускная способность может также улучшить робастность до многопутевого исчезновения для обеих систем.
Как правило, широкополосные системы действуют с пропускной способностью больших, чем 5% их центральной частоты. В отличие от этого узкополосные системы действуют с пропускной способностью 1% или меньшим количеством центральной частоты системы.
Узкополосный канал в предыдущем разделе, как показывали, был очень чувствителен к многопутевому исчезновению. Небольшие изменения в высоте цели привели к значительным потерям сигнала. Исчезающие характеристики канала могут быть построены путем варьирования высоты цели через промежуток операционных высот для этой радиолокационной системы. Промежуток высот от 1 км до 3 км выбран.
% Simulate the signal fading at the target for heights from 1 km to 3 km
hTarget = linspace(1e3,3e3);
pos_target = repmat([50e3;0;1.6e3],[1 numel(hTarget)]);
pos_target(3,:) = hTarget;
vel_target = repmat(vel_target,[1 numel(hTarget)]);
release(channel);
y2ray = channel(repmat(wav,[1 numel(hTarget)]),pos_radar,pos_target,vel_radar,vel_target);
Потеря сигнала, наблюдаемая в цели для узкополосной системы, может теперь быть построена.
L2ray = pow2db(bandpower(wav))-pow2db(bandpower(y2ray)); clf; plot(hTarget,L2ray); xlabel('Target Height (m)'); ylabel('One-Way Propagation Loss (dB)'); title('Multipath Fading Observed at the Target'); grid on;
Чувствительность потери канала для высоты цели для этой узкополосной системы ясна. Глубокий сигнал исчезает, происходят на высотах, которые, вероятно, будут в области наблюдения радара.
Увеличение пропускной способности канала может улучшиться, робастность к ним многопутевым исчезает. Для этого широкополосная форма волны задана с пропускной способностью 8% центральной частоты ссылки.
bw = 0.08*fc; pulse_width = 1/bw; fs = 2*bw; waveform = phased.RectangularWaveform('SampleRate',fs,'PRF',2000,'PulseWidth',pulse_width); wav = waveform();
Широкополосная версия этой модели канала, widebandTwoRayChannel
, может использоваться, чтобы симулировать многопутевые отражения этого широкополосного сигнала прочь земли между радаром и целью и вычислить соответствующую потерю канала.
channel = widebandTwoRayChannel('PropagationSpeed',c,'OperatingFrequency',fc,'SampleRate',fs);
Сигнал в цели для различных операционных высот может теперь быть симулирован для этой широкополосной системы.
y2ray_wb = channel(repmat(wav,[1 numel(hTarget)]),pos_radar,pos_target,vel_radar,vel_target); L2ray_wb = pow2db(bandpower(wav))-pow2db(bandpower(y2ray_wb)); hold on; plot(hTarget,L2ray_wb); hold off; legend('Narrowband','Wideband');
Как ожидалось широкополосный канал обеспечивает намного лучшую эффективность через широкий спектр высот для цели. На самом деле, как высота целевых увеличений, почти полностью исчезает удар многопутевого исчезновения. Это вызвано тем, что различие в задержке распространения между прямым и сигналами пути к возврату увеличивается, уменьшая сумму когерентности между двумя сигналами, когда получено в цели.
Этот пример предоставляет обзор потерь распространения RF из-за погодных эффектов и атмосферного. Это также вводит многопутевые колебания сигнала, должные основать возвраты. Это подсветило функции и возражает, чтобы симулировать потери затухания для узкополосных и широкополосных каналов одно возврата.
[1] John Seybold, Introduction to RF Propagation, Wiley, 2005
[2] Recommendation ITU-R P.838-3, 2005
[3] Recommendation ITU-R P.840-3, 2013
[4] Recommendation ITU-R P.676-10, 2013
[5] Recommendation ITU-R P.525-2, 1994
[6] Rain, A Water Resource (Pamphlet), U.S. Geological Survey, 1988
helperPlotPropagationFactor
function helperPlotPropagationFactor(R,F,Rd) % Plot interference and diffraction region patches [minF, maxF] = bounds(F(:)); maxF = ceil((maxF+10)/10)*10; minF = floor((minF-10)/10)*10; yPatch = [minF minF maxF maxF]; c1 = [0.3010 0.7450 0.9330]; c2 = [0 0.4470 0.7410]; clf % clear current figure fill([R(1) Rd Rd R(1)]/1e3,yPatch,c1,'EdgeColor','none','FaceAlpha',0.25) hold on fill([Rd R(end) R(end) Rd]/1e3,yPatch,c2,'EdgeColor','none','FaceAlpha',0.25) % Plot one-way propagation factor set(gca,'ColorOrderIndex',1); % reset color index plot(R/1e3,F); ylim([minF maxF]) grid on; xlabel('Range (km)'); ylabel('Propagation Factor (dB)'); title('One-Way Propagation Factor at 1 km above Surface'); legend('Interference Region', 'Diffraction Region',... 'L-Band (1.06 GHz)', 'C-Band (5.7 GHZ)',... 'Location','SouthWest') hold off end
helperPlotBlakeChart
function helperPlotBlakeChart(vcp,vcpang,N) % Calculate refraction exponent DelN = -7.32*exp(0.005577*N); rexp = log(N./(N + DelN)); subplot(211) blakechart(vcp{1},vcpang{1},'SurfaceRefractivity',N,'RefractionExponent',rexp); legend('L-Band (1.06 GHz)') xlabel('') title ('Blake Chart - Antenna Height: 12 m') subplot(212) blakechart(vcp{2},vcpang{2},'SurfaceRefractivity',N,'RefractionExponent',rexp); allc = get(gca,'Children'); set(allc(11),'Color',[0.8500 0.3250 0.0980]) % Change line color title('') legend('C-Band (5.7 GHz)') end
helperPlotDelayAndDopplerShift
function [delay, dop] = helperPlotDelayAndDopplerShift(wav,y2ray,Fs) % Plot transmitted and propagated pulse t = 1e6*(0:numel(wav)-1)'/Fs; subplot(211) yyaxis left plot(t,abs(wav)) ylabel('Magnitude') yyaxis right plot(t,abs(y2ray)) grid on axis padded xlim([0 300]) xlabel(['Time (' char(0x00B5) 's)']) ylabel('Magnitude') title('Transmitted and Propagated Pulse') % Annotation delay = midcross(abs(y2ray),t/1e6,'MidPercentReferenceLevel',80); % seconds delay = delay(1); xl = xline(1e6*delay,'-.',... % Annotation {[num2str(round(1e6*delay)),' ',char(0x00B5) 's delay']},'Color',[0.8500 0.3250 0.0980]); xl.LabelVerticalAlignment = 'middle'; xl.LabelHorizontalAlignment = 'left'; xl.LineWidth = 2; % Plot power spectrum subplot(212) [p,f] = pspectrum([wav y2ray],Fs,'FrequencyLimits',[-20e3 20e3]); p = abs(p); plot(1e-3*f,rescale(p,'InputMin',min(p),'InputMax',max(p))); axis padded grid on [~,idx]=max(p); dop = f(idx(2))-f(idx(1)); % Hz xlabel('Frequency (kHz)') ylabel('Magnitude') title('Normalized Spectrum') xl = xline(1e-3*dop,'-.',... % Annotation {'Doppler shift',[num2str(round(dop)*1e-3) ' kHz']},'Color',[0.8500 0.3250 0.0980]); xl.LabelVerticalAlignment = 'bottom'; xl.LineWidth = 2; legend('Transmitted','Propagated') end
helperCombineEnvLosses
function [PLdB, PLdBNorm] = helperCombineEnvLosses(R,freq,anht,tgtht,htsd,beta0,elbw) % Calculate the combined environment losses numHt = numel(tgtht); numR = numel(R); F = zeros(numHt,numR); for ih = 1:numHt F(ih,:) = radarpropfactor(R, freq, anht, tgtht(ih),... 'SurfaceHeightStandardDeviation',htsd,'SurfaceSlope',beta0,... 'ElevationBeamwidth', elbw); end % Free space spreading loss Lspl_dB = 2*fspl(R,freq2wavelen(freq)); % Factor of 2 for two-way % Perform tropospheric losses calculation for a subset of elevation angles, % since the ray refracting can take a long time. numEl = 10; minEl = height2el(tgtht(1),anht,R(end)); % Min elevation angle (deg) maxEl = height2el(tgtht(end),anht,R(1)); % Max elevation angle (deg) elSubset = linspace(minEl,maxEl,numEl); LtropoSubset = zeros(numEl,numR); for ie = 1:numEl LtropoSubset(ie,:) = tropopl(R,freq,anht,elSubset(ie)); end % Interpolate tropospheric losses for all elevation angles of interest Ltropo = zeros(numHt,numR); for ir = 1:numR el = height2el(tgtht,anht,R(ir)); Ltropo(:,ir) = interp1(elSubset,LtropoSubset(:,ir),el); end PLdB = 2*F - Lspl_dB - Ltropo; % Factor of 2 for two-way PLdBNorm = PLdB - max(PLdB(:)); end
helperPlotCombinedEnvLosses
function helperPlotCombinedEnvLosses(Rkm,freq,anht,tgtht,PLdBNorm) % Plot combined losses for different heights and ranges hP = pcolor(Rkm,tgtht,PLdBNorm); set(hP, 'EdgeColor', 'none'); title([num2str(freq/1e9) ' GHz S-Band Radar']) subtitle([num2str(round(anht)) ' m above water']) xlabel('Range (km)') ylabel('Height (m)') colormap('jet'); caxis([-150 0]) hC = colorbar; hC.Label.String = 'Normalized Two-Way Propagation Loss (dB)'; end