无线通信路径损耗模型

2023-10-12 23:40

本文主要是介绍无线通信路径损耗模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

接着上文的路径损耗模型,继续谈谈大尺度衰落中的常见模型

1.1.2 Okumura/Hata模型

在所有预测城市地区损耗的模型中,Okumura模型被采用得最多,适用于载波范围为500~1500MHz,小区半径为1~1000km,天线高度为30~1000m的移动通信系统。

Okumura模型路径损耗为

\mathrm{PL}_{\mathrm{Ok}}\left(d\right)\Big[\mathrm{dB}\Big]=\mathrm{PL}_{\mathrm{F}}+A_{\mathrm{MU}}\left(f,d\right)-G_{\mathrm{Rx}}-G_{\mathrm{Tx}}+G_{\mathrm{AREA}}

Amu(f,d)为频率f处的中等起伏衰减因子,GTx和GRx分别为接收和发射天线增益,G_AREA为具体地区环境增益,一般都可从实测得到的经验图中查找。

Hata模型是目前使用最广泛的模型,市区环境路径损耗为

\operatorname{PL}_{\operatorname{Hata},U}\left(d\right)\left[\operatorname{dB}\right]=69.55+26.16\log_{10}f_c-13.82\log_{10}h_{\operatorname{T}x}-C_{\operatorname{R}x}+\left(44.9-6.55\log_{10}h_{\operatorname{T}x}\right)\log_{10}d

对于中等范围,CRx取值为

C_{\mathrm{Rx}}=0.8+\left(1.1\log_{10}f_c-0.7\right)h_{\mathrm{Rx}}-1.56\log_{10}f_c

对于大的范围,CRx取决于载波频率

C_{\mathrm{Rx}}=\left\{\begin{array}{ll}8.29\left(\log_{10}\left(1.54h_{\mathrm{Rx}}\right)\right)-1.1, & 150MHz\leqslant f_c\leqslant200\text{MHz} \\ 3.2\left(\log_{10}\left(1.75h_{\mathrm{Rx}}\right)\right)^2-4.97, & \quad200\text{MHz}\leqslant f_c\leqslant1500\text{MHz}\end{array}\right.

郊区和开阔地,表示为

\operatorname{PL}_{\operatorname{Ha},\operatorname{SU}}\left(d\right)\left[\operatorname{dB}\right]=\operatorname{PL}_{\operatorname{Ha},\operatorname{U}}\left(d\right)-2\left(\log_{10}\frac{f_{c}}{28}\right)^{2}-5.4

\operatorname{PL}_{\operatorname{HtaxO}}\left(d\right)\left[\operatorname{dB}\right]=\operatorname{PL}_{\operatorname{flanU}}\left(d\right)-4.78\left(\log f_c\right)^2+18.33\log_{10}f_c-40.97

Hata路径损耗模型

function PL = PL_Hata(fc,d,htx,hrx,Etype)
%Hata模型
%输入
%     fc:载波频率(Hz)
%     d :基站和移动台之间的距离(m)
%     htx:发射机高度(m)
%     hrx:接收机高度(m)
%     Etype:环境类型('urban','suburban','open area')
%输出
%     PL:路径损耗(dB)
if nargin < 5Etype = 'URBAN';
end
fc = fc/(1e6);
if fc>=150 && fc<=200C_Rx = 8.29*(log10(1.54*hrx))^2-1.1;
elseif fc>200C_Rx = 3.2*(log10(11.75*hrx))^2 -4.97; %大范围,式(1.9)
else C_Rx = 0.8+(1.1*log10(fc)-0.7)*hrx-1.56*log10(fc)%中等范围,式(1.8)
end
PL = 69.55+26.16*log10(fc)-13.82*log10(htx)-C_Rx+(44.9-6.55*log10(htx))*log10(d/1000) %式(1.7)
EType = upper(Etype);
if EType(1) == 'S'PL = PL-2*(log10(fc/28))^2-5.4;
elseif EType(1) == 'O'PL =PL+(18.33-4.78*log10(fc))*log10(fc)-40.97;
end
end

设置参数,画图

% plot_PL_Hata.m
clear all
clc
fc = 1.5e9;
htx = 30;
hrx = 2;
distance = [1:2:31].^2;
y_urban = PL_Hata(fc,distance,htx,hrx,'urban');
y_suburban = PL_Hata(fc,distance,htx,hrx,'suburban');
y_open = PL_Hata(fc,distance,htx,hrx,'open');
semilogx(distance,y_urban,'k-s',distance,y_suburban,'k-o',distance,y_open,'k-^')
title(['Hata PL model,f_c=',num2str(fc/1e6),'MHz'])
xlabel('distance(m)'),ylabel('Path loss(dB)')
legend('urban','suburban','open area')
grid on,axis([1 1000 40 110])

结果图

1.1.3 IEEE802.16d 模型

IEEE802.16d 模型属于对数正态阴影路径损耗模型,

\mathrm{PL}_{802.16}\left(d\right)\big[\mathrm{dB}\big]=\mathrm{PL}_{\mathrm{F}}\left(d_0\right)+10\gamma\log_{10}\left(\frac{d}{d_0}\right)+C_{\mathrm{f}}+C_{\mathrm{Rx}},d>d_0

修正模型:

\mathrm{PL}_{\mathrm{Mo22.10}}(d)[\mathrm{dB}]=\begin{cases}20\log_{10}\left(\frac{4\pi d}{\lambda}\right),&d\le d_0'\\[6pt]20\log_{10}\left(\frac{4\pi z_0'}{\lambda}\right)+10y\log_{10}\left(\frac{d}{d_0}\right)+C_1+C_{\mathrm{max}},&d>d\le d_0'\end{cases}

MATLAB程序:

IEEE802.16模型:

function PL = PL_IEEE80216d(fc,d,type,htx,hrx,corr_fact,mod)
% IEEE802.16d 模型
% 输入:
%      fc: 载波频率(Hz)
%      d : 基站和移动台间的距离(m)
%      type: 选择'A','B'或'C'
%      htx: 发射机高度(m)
%      hrx: 接收机高度(m)
%      corr_fact: 如果存在阴影,设置为'ATnT'或'Okumura'。否则,设置为'NO'
%      mod: 设置为'mod'来得到修正的IEEE802.16模型
% 输出:
%      PL: 路径损耗(dB)
Mod = 'UNMOD';
if nargin > 6Mod = upper(mod);
end
if nargin == 6 && corr_fact(1) == 'm'Mod = 'MOD';corr_fact = 'NO';
elseif nargin < 6corr_fact = 'NO';if nargin == 5 && hrx(1) == 'm'Mod = 'MOD';hrx = 2;elseif nargin < 5 hrx = 2;if nargin == 4 && htx(1) == 'm'Mod = 'MOD';htx = 30;elseif nargin < 4htx = 30;if nargin == 3 && type(1) == 'm'Mod = 'MOD';type = 'A';elseif nargin < 3type = 'A';endendend
end
d0 = 100;
Type = upper(type);
if Type~='A'&&Type~='B'&&Type~='C'disp('Error:The selected type is not supported');return;
end
switch upper(corr_fact)case 'ATNT'PLf = 6*log10(fc/2e9); %式(1.13)PLh = -10.8*log10(hrx/2);%式(1.14)case 'OKUMURA'PLf = 6*log10(fc/2e9); %式(1.13)if hrx <= 3C_Rx = -10*log10(hrx/3);%式(1.15)elseC_Rx = -20*log10(hrx/3)endcase 'NO'PLf = 0;PLh = 0;
end
if Type == 'A'a = 4.6; %式(1.13)b = 0.0075;c = 12.6;
elseif Type == 'B'a = 4;b = 0.0065;c = 17.1;
elsea = 3.5;b = 0.005;c = 20;
end
lamda = 3e8/fc;
gamma = a-b*htx+c/htx;%式(1.12)
d0_pr = d0;
if Mod(1) == 'M'd0_pr = d0*10^-((PLf+PLh)/(10*gamma))%式(1.17)
end
A = 20*log10(4*pi*d0_pr/lamda)+PLf+PLh;
for k = 1:length(d)if d(k) > d0_prPL(k) = A+10*gamma*log10(d(k)/d0)  %式(1.18)else PL(k) = -10*log10(lamda/(4*pi*d(k))^2);end
end
end

绘制图像:

% plot_PL_IEEE80216d.m
clear all
clc
fc = 2e9;
htx = [30 30];
hrx = [2 10];
distance = [1:1000];
for k = 1:2y_IEEE16(k,:) = PL_IEEE80216d(fc,distance,'A',htx(k),hrx(k),'atnt');y_MIEEE16(k,:) = PL_IEEE80216d(fc,distance,'A',htx(k),hrx(k),'atnt','mod')%修正模型
end
subplot(1,2,1)
semilogx(distance,y_IEEE16(1,:),'k','linewidth',1.5),hold on
semilogx(distance,y_IEEE16(2,:),'r','linewidth',1.5),hold on
title(['IEEE 802.16d Path loss Models,f_c=',num2str(fc/1e6),'MHz'])
axis([1 1000 10 150])
xlabel('Distance(m)'),ylabel('Pathloss(dB)')
legend('h_{Tx}=30m,h_{Rx}=2m','h_{Tx}=30m,h_{Tx}=10m')subplot(1,2,2)
semilogx(distance,y_MIEEE16(1,:),'k','linewidth',1.5),hold on
semilogx(distance,y_MIEEE16(2,:),'r','linewidth',1.5),hold on
title(['Modified IEEE 802.16d Path loss Models,f_c=',num2str(fc/1e6),'MHz'])
axis([1 1000 10 150])
xlabel('Distance(m)'),ylabel('Pathloss(dB)')
legend('h_{Tx}=30m,h_{Rx}=2m','h_{Tx}=30m,h_{Tx}=10m')

结果图:

 

 #博主学习MIMO-OFDM所做的学习笔记

这篇关于无线通信路径损耗模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/199266

相关文章

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

VSCode设置python SDK路径的实现步骤

《VSCode设置pythonSDK路径的实现步骤》本文主要介绍了VSCode设置pythonSDK路径的实现步骤,包括命令面板切换、settings.json配置、环境变量及虚拟环境处理,具有一定... 目录一、通过命令面板快速切换(推荐方法)二、通过 settings.json 配置(项目级/全局)三、

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)

《如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)》:本文主要介绍如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)问题,具有很好的参考价值,希望对大家有所帮助,如有... 目录先在你打算存放的地方建四个文件夹更改这四个路径就可以修改默认虚拟内存分页js文件的位置接下来从高级-

一文详解如何查看本地MySQL的安装路径

《一文详解如何查看本地MySQL的安装路径》本地安装MySQL对于初学者或者开发人员来说是一项基础技能,但在安装过程中可能会遇到各种问题,:本文主要介绍如何查看本地MySQL安装路径的相关资料,需... 目录1. 如何查看本地mysql的安装路径1.1. 方法1:通过查询本地服务1.2. 方法2:通过MyS

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA