⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hata.m

📁 Matlab file for famous HATA model
💻 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 + -