作者:懒羊羊
时间:2020.9.16 19:24 耗时2h30min原创
Lanzhou University of Technology
‘’个人代码备忘录‘’
-
✪实验目的
-
1、熟悉MATLAB程序编辑与开发环境,掌握使用该软件解决移动通信问题的具体方法;
-
2、掌握无线电波传播损耗计算的基本知识;
-
3、掌握运用Hata-Okumura模型预测的方法实现大城市、中小城市、郊区、开阔农村地带的无线传播损耗预测系统;
-
4、通过无线传播损耗预测仿真加深对Hata-Okumura无线传播损耗预测模型的理解。
-
✪详细代码如下(复制粘贴即可):
clc;clear;
%“author:<十三月凉>”
%“time:2020.9.16”
%“Lanzhou University of Technology”
%Hata-Okumura模型
%% 公式说明
%f:中心频率; hb:基站天线有效高度; hm:移动台天线有效高度,单位:m; d:通信距离,单位:km; a_hm:移动台天线高度校正;
%市区传播公式损耗公式:L=69.55+26.16*log10(f)-13.82*log10(hb)+(44.9-6.55*log10(hb))*log10(d)-a_hm;
% 其中高度校正a_hm: 1.大城市:a_hm=8.29*(log10(1.54*hm))^2-1.1; f<=200MHz
% a_hm=3.2*(log10(11.75*hm))^2-4.97; f>=400MHz
% 2.中小城市:a_hm=(1.1*log10(f)-0.7)*hm-(1.56*log10(f)-0.8);
%郊区:Lj=L-2*(log10(f/28))^2-5.4;
%开阔农村地带:Ln=L-4.78*(log10(f))^2-18.33*log10(f)-40.98;
hm=3;
hb=200;d1=1:0.1:10;
figure()
subplot(221);
for f1=300:200:1500
a_hm=3.2*(log10(11.75*hm))^2-4.97; Ld1=69.55+26.16*log10(f1)-13.82*log10(hb)+(44.9-6.55*log10(hb))*log10(d1)-a_hm;
plot(d1,Ld1,'rx-');hold on;
end
xlabel('传播距离(单位km)');ylabel('传输损耗L(单位dB)');
title('(大城市)传输损耗随传播距离的变化曲线');
hold off;subplot(222);
for f1=300:200:1500
a_hm=(1.1*log10(f1)-0.7)*hm-(1.56*log10(f1)-0.8);Lx1=69.55+26.16*log10(f1)-13.82*log10(hb)+(44.9-6.55*log10(hb))*log10(d1)-a_hm;
plot(d1,Lx1,'yx-');hold on;end
xlabel('传播距离(单位km)');
ylabel('传输损耗L(单位dB)');title('(中小城市)传输损耗随传播距离的变化曲线');hold off;
subplot(223);
for f1=300:200:1500
a_hm=3.2*(log10(11.75*hm))^2-4.97;
Ld=69.55+26.16*log10(f1)-13.82*log10(hb)+(44.9-6.55*log10(hb))*log10(d1)-a_hm;
Lj1=Ld-2*(log10(f1/28))^2-5.4;plot(d1,Lj1,'bx-');hold on;
end
xlabel('传播距离(单位km)');ylabel('传输损耗L(单位dB)');
title('(郊区)传输损耗随传播距离的变化曲线');
hold off;
subplot(224);
for f1=300:200:1500
a_hm=3.2*(log10(11.75*hm))^2-4.97;
Ld=69.55+26.16*log10(f1)-13.82*log10(hb)+(44.9-6.55*log10(hb))*log10(d1)-a_hm;
Ln1=Ld-4.78*(log10(f1))^2-18.33*log10(f1)-40.98;plot(d1,Ln1,'cx-');hold on;
end
xlabel('传播距离(单位km)');ylabel('传输损耗L(单位dB)');title('(开阔农村地带)传输损耗随传播距离的变化曲线');
hold off;
hm=3;hb=200;
f2=300:10:1500;
figure()
subplot(221);
for d2=1:0.5:10
a_hm=3.2*(log10(11.75*hm))^2-4.97;
Ld2=69.55+26.16*log10(f2)-13.82*log10(hb)+(44.9-6.55*log10(hb))*log10(d2)-a_hm; plot(f2,Ld2,'rx-');hold on;
end
xlabel('工作频率(单位Hz)');ylabel('传输损耗L(单位dB)');title('(大城市)传输损耗随工作频率的变化曲线');
hold off;subplot(222);for d2=1:0.5:10
a_hm=(1.1*log10(f2)-0.7)*hm-(1.56*log10(f2)-0.8); Lx2=69.55+26.16*log10(f2)-13.82*log10(hb)+(44.9-6.55*log10(hb))*log10(d2)-a_hm;
plot(f2,Lx2,'yx-');hold on;end
xlabel('工作频率(单位Hz)');
ylabel('传输损耗L(单位dB)');title('(中小城市)传输损耗随工作频率的变化曲线');
hold off;subplot(223);
for d2=1:0.5:10
a_hm=3.2*(log10(11.75*hm))^2-4.97;
Ld=69.55+26.16*log10(f2)-13.82*log10(hb)+(44.9-6.55*log10(hb))*log10(d2)-a_hm;Lj2=Ld-2*(log10(f2/28)).^2-5.4;
plot(f2,Lj2,'bx-');hold on;
end
xlabel('工作频率(单位Hz)');ylabel('传输损耗L(单位dB)');title('(郊区)传输损耗随工作频率的变化曲线');
hold off;subplot(224);
for d2=1:0.5:10
a_hm=3.2*(log10(11.75*hm))^2-4.97;Ld=69.55+26.16*log10(f2)-13.82*log10(hb)+(44.9-6.55*log10(hb))*log10(d2)-a_hm;Ln2=Ld-4.78*(log10(f2)).^2-18.33*log10(f2)-40.98; plot(f2,Ln2,'cx-');hold on;
end;
xlabel('工作频率(单位Hz)');ylabel('传输损耗L(单位dB)');
title('(开阔农村地带)传输损耗随工作频率的变化曲线');
hold off;
✪需要注意的一点是subplot语句必须要放在循环之前,否则绘图会出现错误!
✪仿真结果如下:
and
✪一点其他的改进想法:
✪以上代码还可以进行优化,代码优化思路如下:
1.利用case选择语句进行模型选择,即将循环嵌套进判断语句里;
2. 利用position语句进行图注
以对代码行数进行压缩