大尺度衰落下的路径损耗问题(3)

        今天是大尺度衰落下的路径损耗问题的最后一节,这一节主要介绍书中的IEEE 802.16d模型。

        本科期间学习专业课当中,大家也经常会听到IEEE 802.**模型这个名词,但一直不知道这个具体是个什么东西。IEEE 802 指IEEE标准中关于局域网和城域网的一系列标准。更确切的说,IEEE 802标准仅限定在传输可变大小数据包的网络。其中最广泛使用的有以太网、令牌环、无线局域网等。这一系列标准中的每一个子标准都由委员会中的一个专门工作组负责。大家听到的最多就是IEEE 802.11(无线局域网)。IEEE 802中定义的服务和协议限定在OSI七层模型中的最低两层(即物理层和数据链路层)。以下是IEEE802的全部标准,有兴趣的可以看一下。(转自维基百科)

        回归正题,IEEE802.16d模型属于对数正态阴影路径损耗模型,在第一节已经提到了一些关于对数正态阴影路径损耗模型的相关内容。IEEE802.16d也会涉及到自由空间以及不同环境下的一个路径损耗。在《MIMO-OFDM无线通信技术及MATLAB实现》中根据郊区宏蜂窝中发射机以及接收机之间障碍物的密度,分为三个类型。具体公式以及分类可以参照原书。下面是IEEE802.16d路径损耗模型的函数。

function PL=PL_IEEE80216d(fc,d,type,htx,hrx,corr_fact,mod)
% IEEE 802.16d model
% Input - fc       : carrier frequency
%         d        : between base and terminal
%         type     : selects 'A', 'B', or 'C' 
%         htx      : height of transmitter
%         hrx      : height of receiver
%         corr_fact: if shadowing exists, set to 'ATnT' or 'Okumura'. Otherwise, 'NO'
%         mod      : set to 'mod' to get the modified IEEE 802.16d model
% output - PL      : path loss [dB]
Mod='UNMOD';
if nargin>6
    Mod=upper(mod);%字符串的所有小写字母转换成大写字母
end
if nargin==6&&corr_fact(1)=='m'
    Mod='MOD';
    corr_fact='NO';  
elseif nargin<6
    corr_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<4
            htx=30;
            if nargin==3&&type(1)=='m'
                Mod='MOD'; 
                type='A';         
            elseif nargin<3
                type='A';   
            end
        end
    end
end
d0 = 100;
Type = upper(type);
%不符合A,B,C中任意一种情况
if Type~='A'&& Type~='B'&&Type~='C'
  disp('Error: The selected type is not supported');
  return;
end
%阴影衰落情况进行讨论
switch upper(corr_fact)
  case 'ATNT'
      Cf=6*log10(fc/2e9); 
      C_Rx=-10.8*log10(hrx/2);
  case 'OKUMURA'
      Cf=6*log10(fc/2e9);
      if hrx<=3
          C_Rx=-10*log10(hrx/3);  
      else
          C_Rx=-20*log10(hrx/3);
      end
  case 'NO'
      Cf=0; 
      C_Rx=0;
end
%对A,B,C三种模型进行讨论
if Type=='A'
    a=4.6; 
    b=0.0075;
    c=12.6;
elseif Type=='B'
    a=4;
    b=0.0065;
    c=17.1;
else
    a=3.6; 
    b=0.005; 
    c=20;
end
lamda=3e8/fc;
gamma=a-b*htx+c/htx; 
d0_pr=d0;
if Mod(1)=='M'
    d0_pr=d0*10^-((Cf+C_Rx)/(10*gamma)); 
end
A = 20*log10(4*pi*d0_pr/lamda) + Cf + C_Rx;
for k=1:length(d)
   if d(k)>d0_pr
       PL(k) = A + 10*gamma*log10(d(k)/d0);
   else
       PL(k) = -10*log10((lamda/(4*pi*d(k)))^2);
   end
end

        这个函数代码相对较为复杂,主要输入参量也进行了一部分的调整。相对于之前的大尺度衰落模型更加复杂一点,但也可以面对更多挑战。代码变量涉及修正后的未修正的模型。(主要增加了一个参考距离)。下面是最终的一个仿真图。

为了方便对比,我将两幅图放在了一个figure下,可以更加直观的观察出,修正后的模型不连续的现象消失了。对比修正前有着更好的环境建模。

提前预告一下,对于小尺度衰落这里我想和OFDM系统进行一个串讲,让大家可以更清晰的理解。很多人也都会做OFDM相关毕设。希望我的文章可以帮助大家更好的学习OFDM知识,希望大家多多关注。(会有惊喜)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天下第一关lennon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值