📄 hata.m
字号:
function [hL50dB] = hata(hBSef, hMS, f, d, area)
%Hata - function returns signal attenuation value based on Hata Model
%
% hL50dB = hata(hBSef, hMS, f, d, area)
%
% hL50dB - radio signal attenuation [dB]
%
% hBSef - effective base station antenna height [m]
% 30 <= hBS,ef <= 200 m
% hMS - mobile station antenna height [m]
% 1 <= hMS <= 10 m
% f - frequency [MHz]
% 150 <= f <= 1500 MHz
% d - distance between antennas [km]
% 1 <= d <= 20 km
% area - area type: {1, 2, 3, 4}
% 1 - small medium-sized city
% 2 - large city 400 <= f <= 200 MHz
% 3 - suburban area
% 4 - open area
% author: Michal Bok, PWr 2008
n = 0;
for i = (area)
n = n + 1;
if((min(f)>=150)&&(max(f)<=1500))
if((min(hBSef)>=30)&&(max(hBSef)<=200))
if((min(hMS)>=1)&&(max(hMS)<=10))
if((i==1)||(i==2)||(i==3)||(i==4))
if((min(d)>=1)&&(max(d)<=20))
if((i==1)||(i==3)||(i==4))
ahMS = (1.1 * log10(f) - 0.7) * hMS - (1.56 * log10(f) - 0.8);
end
if(i==2)
if(max(f)<=200)
ahMS = 8.29 * (log10(1.54 * hMS))^2 - 1.1;
end
if(min(f)>=400)
ahMS = 3.2 * (log10(11.75 * hMS))^2 - 4.97;
end
if((min(f)>200)&&(max(f)<400))
disp('ERROR: required frequency for large city = 400 <= f <= 200 MHz');
return;
end
end
L50dB = 69.55 + 26.16 * log10(f) - 13.82 * log10(hBSef) - ahMS + (44.9 - 6.55 * log10(hBSef)) * log10(d);
if(i==3)
L50dB = L50dB - 2 * (log10(f / 28))^2 - 5.4;
end
if(i==4)
L50dB = L50dB - 4.78 * log10(f)^2 + 18.33 * log10(f) - 40.94;
end
hL50dB(n,:) = L50dB;
else
disp('ERROR: required distance between antennas = 1 <= d <= 20 km');
return;
end
else
disp('ERROR: required area type = 1 lub 2 lub 3 lub 4');
return;
end
else
disp('ERROR: required mobile station antenna height = 1 <= hMS <= 10 m');
return;
end
else
disp('ERROR: required effective base station antenna height = 30 <= hBS,ef <= 200 m');
return;
end
else
disp('ERROR: required frequency = 150 <= f <= 1500 MHz');
return;
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -