Rain attenuation model based on ITU-R P.838-3 Recommendation

조회 수: 25(최근 30일)
SAM
SAM 2022년 9월 9일
댓글: William Rose 2022년 9월 12일
I would like to plot the rain attenuation model based on ITU-R P.838-3 Recommendation as shown in the graph below:
I tried to used "rainlp" command in MATLAB but I could not get the same graph.
Any ideas how to get this graph by MATLAB?
clear all;clc
freq=[1:1000]*1e9;
Rr=[0.25, 1.25, 5, 25, 50, 100, 150];
for i=1:7
L=rainpl(10000,freq,Rr(i));
plot(freq/1e9,L)
hold on
grid
end

답변(1개)

William Rose
William Rose 2022년 9월 9일
freq=[1:1000]*1e9;
Rr=[0.25, 1.25, 5, 25, 50, 100, 150];
for i=1:7
L=rainpl(10000,freq,Rr(i));
loglog(freq/1e9,L)
ylim([0.01 Inf]);
hold on
grid
end
legend('Rr=0.25','1.25','5','25','50','100','150');
I replaced "plot" with "loglog" and I fixed the lower y axis limit at 0.01. This is similar to the graph you gave, but not identical. It seems Matlab's rainpl() has some differenrces from ITU-R P.838-3, at least at high rain rates.
Good luck.
  댓글 수: 3
William Rose
William Rose 2022년 9월 12일
@SAM, you are welcome.
What is the source for the figure you posted? I ask because the figure you posted does not appear in either of the defining documents cited by Matlab: ITU-R P.838-3 (2005) or ITU-R P.530-17 (2017). Perhaps the figure you posted is from an earlier version of the standard, which may have since changed. Is your figure for horizontal or vertical polarization, or some other angle? Matlab's rainpl() defaults to horizontal.
The plot you posted is for attenuation per km. You and I both made a mistake: we used range=10000 (m) when we should have used range=1000 m, to get attenuation for 1 km. When I implement this fix - see code and plot below - the Matlab plot is closer to your figure, but not identical. Therefore there is still an unexplained discrepancy.
freq=[1:1000]*1e9;
Rr=[0.25, 1.25, 5, 25, 50, 100, 150];
for i=1:7
L=rainpl(1000,freq,Rr(i)); %range=1 km
loglog(freq/1e9,L)
ylim([0.01 Inf]);
hold on
grid
end
legend('Rr=0.25','1.25','5','25','50','100','150');
The remaining discrepancy is due to the fact that rainpl() returns the attenuation in dB for a specified distance. It does not return the specific attenuation in dB/km. I expected that the attenuation when distance=1000 m would equal the specific attenuation, but this is not the case, to a distance adjustment factor, r, which is explained in the Matlab help and in section 2.4.1, equations 32, 33, of ITU-R P.530-17 (2017).
Good luck with your work.

댓글을 달려면 로그인하십시오.

제품


릴리스

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by