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

26 ビュー (過去 30 日間)
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 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 件のコメント表示非表示 2 件の古いコメント
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).

サインインしてコメントする。

### カテゴリ

Find more on Propagation and Channel Models in Help Center and File Exchange

R2022a

### Community Treasure Hunt

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

Start Hunting!

Translated by