В этом примере показано, как смоделировать несколько эффектов распространения RF. Они включают потери при распространении в свободном пространстве, атмосферное затухание, должное литься, вуалировать и газ и многопутевое распространение из-за возвратов на земле. Обсуждение в этом примере основано на рекомендациях серии 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 5 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] Seybold, John S. Introduction to RF Propagation: Seybold/Introduction to RF Propagation. Hoboken, NJ, USA: John Wiley & Sons, Inc., 2005. https://doi.org/10.1002/0471743690
[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