Okumura-Hata模型 传输损耗计算 传输距离对传输损耗的影响

根据前面介绍的Okumura-Hata模型,进行初次C语言建模,完成输入各种参数值,计算得到传输损耗。
为了分析该模型中参数对传输损耗的影响,我们可以进行一些图像分析。这里是对传输损耗L与基站到接收端距离d以及载波频率f_c之间的关系进行了绘图,使用的是MATLAB软件绘图。
1. C语言实现计算

#include #include//使用到 logdouble ahre(int area,double f_c,double h_re); //函数声明 double cell(int area,double f_c); int main() { int area; //地区 double f_c; //载波频率 double h_te; //基站天线有效高度 double h_re; //接收台天线有效高度 double d; //基站与接收台之间的水平距离 double L; //传输损耗 double a_h_re; //天线修正因子 double C_cell; //小区类型修正因子printf("请输入载波频率 (单位MHz):\n"); scanf("%lf",&f_c); printf("请输入基站有效高度 (单位m):\n"); scanf("%lf",&h_te); printf("请输入移动台天线高度 (单位m):\n"); scanf("%lf",&h_re); printf("请输入基站与移动台之间的水平距离 (单位Km):\n"); scanf("%lf",&d); printf("请输入地形 (0表示中小城市,1表示大城市,2表示郊区,3表示农村):\n"); scanf("%d",&area); a_h_re = ahre(area,f_c,h_re); C_cell = cell(area,f_c); L= 69.55+26.16*(log10(f_c))-13.82*(log10(h_te))-a_h_re+(44.9-6.55*(log10(h_te)))*(log10(d))+C_cell; printf("此时传输损耗等于%f\n",L); return 0; }double ahre(int area,double f_c,double h_re)//计算参数a_h_re { double a_h_re; if(area==0) a_h_re=(1.11*(log10(f_c))-0.7)*h_re-(1.56* log10(f_c)-0.8); else if(f_c<=300) a_h_re=8.29*(log10(1.54*h_re))*(log10(1.54*h_re))-1.1; //需要特别注意,平方项改为乘法 else a_h_re=3.2*(log10(11.75*h_re))*(log10(11.75*h_re))-4.97; return a_h_re; }double cell(int area,double f_c)//计算参数C_cell { double C_cell; switch(area) { case 0: C_cell=0; case 1: C_cell=0; break; case 2: C_cell=-2*(log10(f_c/28))*(log10(f_c/28))-5.4; break; case 3: C_cell=-4.78*(log10(f_c))*(log10(f_c))+18.33*(log10(f_c))-40.98; break; } return C_cell; }

设载波频率为900MHz,基站天线为30米,移动台天线为1米,基站与移动台之间的水平距离为20Km,计算不同地形下的传输损耗。
运行结果如下:
① 中小城市
Okumura-Hata模型 传输损耗计算 传输距离对传输损耗的影响
文章图片

② 大城市
Okumura-Hata模型 传输损耗计算 传输距离对传输损耗的影响
文章图片

③ 郊区
Okumura-Hata模型 传输损耗计算 传输距离对传输损耗的影响
文章图片

④ 农村
Okumura-Hata模型 传输损耗计算 传输距离对传输损耗的影响
文章图片

2. 绘图分析
对模型进行一些简化:
①将地区类型分为三类:城市、郊区、农村。由前面的计算可以知道,大型城市与中小型城市的传输损耗的值差距不是很大,我们这里a_h_re就以大城市的参数来进行城市传输损耗计算。
②之前在考虑区域传输损耗的时候还分为了频率大于300MHz与小于300MHz两种情况,我们作图时打算比较频率为700MHz与900MHz时传输损耗的不同,因此a_h_re就选择频率大于300MHz时的参数计算式带入计算。
我们可以得到:
城市对应的传输损耗计算方法为:
Okumura-Hata模型 传输损耗计算 传输距离对传输损耗的影响
文章图片

郊区对应的传输损耗计算方法为:
Okumura-Hata模型 传输损耗计算 传输距离对传输损耗的影响
文章图片

农村对应的传输损耗计算方法为:
Okumura-Hata模型 传输损耗计算 传输距离对传输损耗的影响
文章图片

这样,我们就可以直接使用上面的公式进行画图了,得到结果如下:
Okumura-Hata模型 传输损耗计算 传输距离对传输损耗的影响
文章图片

【Okumura-Hata模型 传输损耗计算 传输距离对传输损耗的影响】MATLAB绘图代码:
hold on%频率为900MHz的情况下,传输损耗随传输距离的变化绘图 f_c=900; h_te=30; h_re=1; d=1:1:20; L_city= 69.55+26.16*(log10(f_c))-13.82*(log10(h_te))-(3.2*(log10(11.75*h_re))*(log10(11.75*h_re))-4.97)+(44.9-6.55*(log10(h_te)))*(log10(d)); L_suburb=69.55+26.16*(log10(f_c))-13.82*(log10(h_te))-(3.2*(log10(11.75*h_re))*(log10(11.75*h_re))-4.97)+(44.9-6.55*(log10(h_te)))*(log10(d))-2*(log10(f_c/28))*(log10(f_c/28))-5.4; L_country=69.55+26.16*(log10(f_c))-13.82*(log10(h_te))-(3.2*(log10(11.75*h_re))*(log10(11.75*h_re))-4.97)+(44.9-6.55*(log10(h_te)))*(log10(d))-4.78*(log10(f_c))*(log10(f_c))+18.33*(log10(f_c))-40.98; plot(d,L_city,'ko-',d,L_suburb,'ko-',d,L_country,'ko-'); %频率为700MHz的情况下,传输损耗随传输距离的变化绘图 f_c=700; L_city= 69.55+26.16*(log10(f_c))-13.82*(log10(h_te))-(3.2*(log10(11.75*h_re))*(log10(11.75*h_re))-4.97)+(44.9-6.55*(log10(h_te)))*(log10(d)); L_suburb=69.55+26.16*(log10(f_c))-13.82*(log10(h_te))-(3.2*(log10(11.75*h_re))*(log10(11.75*h_re))-4.97)+(44.9-6.55*(log10(h_te)))*(log10(d))-2*(log10(f_c/28))*(log10(f_c/28))-5.4; L_country=69.55+26.16*(log10(f_c))-13.82*(log10(h_te))-(3.2*(log10(11.75*h_re))*(log10(11.75*h_re))-4.97)+(44.9-6.55*(log10(h_te)))*(log10(d))-4.78*(log10(f_c))*(log10(f_c))+18.33*(log10(f_c))-40.98; plot(d,L_city,'kx-',d,L_suburb,'kx-',d,L_country,'kx-'); %添加标题与横纵坐标 xlabel('基站与接收台的水平距离d(单位Km)'); ylabel('传输损耗L(单位dB)'); title('传输损耗L随距离d的变化曲线'); %添加文本框对曲线进行说明 annotation('textbox',[0.25,0.27,0.1,0.05],'LineStyle',':','String','农村'); annotation('textbox',[0.35,0.53,0.1,0.05]','LineStyle',':','String','郊区'); annotation('textbox',[0.45,0.80,0.1,0.05]','LineStyle',':','String','城市'); annotation('textbox',[0.7,0.2,0.15,0.1]','LineStyle','-','LineWidth',2,'String',strings); strings={'o--900MHz','x--700MHz'}; hold off %使用hold on与 hold off,可以将两个plot的图像都绘制出来,不会对前一个覆盖

    推荐阅读