目录

一. 一般路径损耗模型

1. 1自由环境下路径损耗

1. 2 考虑实际情况

1.3 考虑阴影衰落

二. 代码仿真与理解

(1)函数文件

(2)函数文件

(3)主运行文件

三. 运行结果及理解

3.1

3.2

3.3


一. 一般路径损耗模型

1. 1自由环境下路径损耗

根据著名的Friis公式,基站发射一个功率,用户得到的功率为:

其中,代表接收功率,代表发射功率,分别代表发射、接收天线增益,为波长,d代表基站和用户之间的距离,L代表损耗系数

天线增益:衡量天线性能的标准之一,该值越大越好;

损耗系数:系统总存在损耗,L>1。如果是自由空间L=1;

在自由空间中,路径损耗定义为发射功率与接收功率的对数比值,可得:

1. 2 考虑实际情况

如果考虑实际环境,则需要引入损耗指数n(自由空间损耗指数为2),如下:

为参考距离,因实际情况而定,比如在小区半径为1km的宏蜂窝系统,参考距离大约为100m。通过该式子可以说明,障碍物越多,损耗指数越大,路径损耗也越大

环境 损耗指数
自由空间 2
市区蜂窝 2.7~3.5
市区蜂窝阴影 3~5
建筑物内视距传输 1.6~1.8
建筑物内障碍物遮挡 4~6
工厂内障碍物阻挡 2~3

1.3 考虑阴影衰落

由于周围环境会随着接收机的实际位置不同而改变,即使发射机到接收机之间的距离相同,每条路径也会具有不同的路径损耗。因此在更加真实的环境中,对数正态阴影将更为实用。对数正态阴影衰落模型为:

其中,代表均值为0,标准差为的高斯随机变量

二. 代码仿真与理解

本节将配合代码,利用公式严格说明每行代码的意义。

(1)函数文件

%本函数文件用来构建自由空间路径损耗模型,输出PL,单位为dB
function PL=PL_free(fc,dist,Gt,Gr)
lamda=3e8/fc; %fc代表载波频率[Hz]
tmp=lamda./(4*pi*dist); %dist代表基站和用户之间的距离
if nargin>2, tmp=tmp*sqrt(Gt); %Gt代表发射机天线增益
end
if nargin>3, tmp=tmp*sqrt(Gr); %Gr代表接收机天线增益
end
PL=-20*log10(tmp);

本代码的理解如下:

(2)函数文件

%本函数用来产生正态阴影路径损耗
% 部分参数已在上一个函数文件说明
function PL=PL_logdist_or_norm(fc,d,d0,n,sigma)
lamda=3e8/fc;
PL=-20*log10(lamda/(4*pi*d0))+10*n*log10(d/d0); %n为路径损耗指数,d0为参考距离
if nargin>4PL=PL+sigma*randn(size(d)); %sigma为方差 单位dB
end

本代码的理解如下:

(3)主运行文件

%绘制图
clear all,clf,clc
fc=1.5e9; %载波频率为1.5✖10^9
d0=100; %参考距离为100m;
sigma=3; %标准差为3
distance=[1:2:31].^2;  %距离从1m开始,间隔2m,一直到31m(注意每个值都会平方)
%发射天线与接收天线三个增益值
Gt=[1 1 0.5];
Gr=[1 0.5 0.5];
Exp=[2 3 6];
for k=1:3y_Free(k,:)=PL_free(fc,distance,Gt(k),Gr(k)); %遍历天线增益计算路径损耗y_logdist(k,:)=PL_logdist_or_norm(fc,distance,d0,Exp(k)); %遍历损耗指数计算路径损耗y_lognorm(k,:)=PL_logdist_or_norm(fc,distance,d0,Exp(1),sigma); %自由空间下,考虑正态阴影
end%自由空间下的路径增益
figure(1)
subplot()
semilogx(distance,y_Free(1,:),'k-o',distance,y_Free(2,:),'k-^',distance,y_Free(3,:),'k-s') %横轴为对数值,可维持曲线为直线
grid on, axis([1 1000 40 110])
title(['自由空间路径损耗,载波频率=',num2str(fc/1e6),'MHz'])  %将载波频率值转换为数组显示到图上
xlabel('距离(米)'),ylabel('路径损耗[dB]')
legend('G_t=1,G_r=1','G_t=1,G_r=0.5','G_t=0.5,G_r=0.5')%考虑损耗指数的路径增益
figure(2)
subplot()
semilogx(distance,y_logdist(1,:),'k-o',distance,y_logdist(2,:),'k-^',distance,y_logdist(3,:),'k-s')
grid on, axis([1 1000 40 110]) %横轴范围1~1000,纵轴范围40~110
title(['考虑损耗指数路径损耗模型,载波频率=',num2str(fc/1e6),'MHz'])
xlabel('距离(米)'),ylabel('路径损耗[dB]')
legend('n=2','n=3','n=6')%考虑阴影衰落的路径损耗
figure(3)
subplot()
semilogx(distance,y_lognorm(1,:),'k-o',distance,y_lognorm(2,:),'k-^',distance,y_lognorm(3,:),'k-s')
grid on, axis([1 1000 40 110])
title(['考虑高斯阴影衰落的路径损耗模型,载波频率=',num2str(fc/1e6),'MHz,','\sigma=',num2str(sigma),'dB']) %此处sigma显示Latex格式
xlabel('距离(米)'),ylabel('路径损耗[dB]')
legend('路径1','路径2','路径3')

三. 运行结果及理解

本仿真一共有三个文件,两个函数文件,一个主运行文件。主运行文件会产生三个图。此处分别解释:

3.1

(1)因为将距离转换为了对数值,所以路径损耗关于距离形成的是一条直线;

(2)随着距离的增大,路径损耗也在变大;

(3)天线增益减小,路径损耗增大,接收功率变小;

(4)三个图形的载波频率均为1500MHz

3.2

(1)纵轴是从40dB开始的,所以导致直线有一部分被截断;

(2)随着距离的增大,路径损耗也在变大;

(3)天线增益固定为1,参考距离设定为100米(通常小区半径为1km的宏蜂窝系统,参考 距离大约就为100米;

(4)n=2对应自由空间,n=3通常为市区蜂窝,n=6通常为建筑物内障碍物遮挡;

(4)障碍物增多,损耗指数n变大,路径损耗增大;

3.3

(1)引入高斯随机量后,曲线非单一直线;

(2)由于随机量每次产生略有不同,图形可能会发生略微差异,但影响不大;

(3)整体上,随着距离的增大,路径损耗也在变大。但由于高斯阴影的影响,部分位置会出现距离增大,但路径损耗减小的现象;

(4)在确定性的对数路径损耗模型上叠加了阴影产生的随机效应(在图2上叠加随机量)

基于MATLAB的无线信道的传播与衰落(附完整代码与分析)相关推荐

  1. 基于MATLAB的逆矩阵、相似矩阵、正交矩阵(附完整代码)

    一. 符号多项式与数值多项式的转换 向量,可以利用MATLAB将此向量转换为多项式表示,格式如下: f=poly2sym(P) 当然,反过来也可以将符号多项式转换为向量,格式如下: P=sym2pol ...

  2. 基于MATLAB的数论运算与编写函数(附完整代码)

    目录 一. 基本数论运算 例题1 例题2 例题3 例题4 二. 循环结构 2.1 for 结构 2.2 while结构 例题5 例题6 例题7 三. 转移结构 例题8 四. 开关结构与试探结构 4.1 ...

  3. 无线信道:传播与衰落

    在传播过程中,无线电波主要受到三种物理现象的影响:反射.绕射和散射. 无线信道的一个典型特征是"衰落"现象,即信号幅度在时间和频率上的波动.衰落现象大致可以分为两种类型:大尺度衰落 ...

  4. 基于MATLAB的MIMO信道估计(附完整代码与分析)

    目录 一. 介绍 二. MATLAB代码 三. 运行结果与分析 3.1 均方误差(MSE)与训练功率(dB)的关系 3.2 不同信道估计方法性能对比 一. 介绍 本篇将在MATLAB的仿真环境中对比M ...

  5. 基于MATLAB计算MIMO信道容量(附完整代码与分析)

    目录 一.介绍 二. 代码 三. 运行结果及分析 3.1  MIMO信道容量:固定发射天线数为4 3.2 MIMO信道容量:固定接收天线数为4 3.3 AWGN信道与瑞利信道容量 四. 总结 一.介绍 ...

  6. Matlab计算波形的总谐波失真--THD(附完整代码)

    一.实现功能 1.读取ADC采集的数字量,显示时域波形. 2.计算波形总谐波失真. 二.代码 废话少说,直接上代码(博主使用的是Matlab 2014b): %author:Meng %date:20 ...

  7. 基于卷积神经网络的数字手势识别APP(安卓) 毕业设计 附完整代码

    项目简介 这是一个基于卷积神经网络的数字手势识别 APP(安卓),主要功能为:通过手机摄像头识别做出的数字手势,能够识别数字 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 对应的手 ...

  8. 38. 实战:基于selenium的某宝秒杀抢购系统(附完整代码)

    目录 前言 目的 思路 代码实现 1. 自动打开浏览器,并配置选项 2. 实现扫码登陆 3. 进入购物车选择秒杀商品(本例勾选全选) 4. 获取当前时间,大于设定时间时下单 5. 下单成功后语音提示用 ...

  9. 基于stm32、spi协议的Fatfs文件系统移植(附完整代码下载)

    开发环境:Window 7 32bit 开发工具:Keil uVision4 硬件:stm32f103vct6 目录 1.硬件设计: 2.软件设计 1.SPI收发数据 2.向SD卡发送的命令格式: 3 ...

最新文章

  1. oracle11g资源过低,Sun Cluster3.3+Oracle11g配置数据库资源问题
  2. linux下修改主机名
  3. 代码中特殊的注释技术——TODO、FIXME和XXX的用处
  4. 什么是进程控制块,他有什么用?
  5. VMM系列之VMM角色介绍以及创建运行方式账户
  6. Dell R710服务器磁盘恢复数据库一例(记录)
  7. LuckyDraw app使用CosmosDB的成本分析
  8. 在树莓派4上安装 .NET Core 3.0 运行时及 SDK
  9. C和指针之数组编程练习3(判断矩阵是否为单位矩阵)
  10. MySQL学习笔记之MySQL安装详解
  11. Python精通-Python字符串格式化操作
  12. 计算机老年学校讲义,天津老年大学计算机类教学大纲
  13. Lenovo 320-15IKB DG421 DG521 DG721 NM-B241 REV1.0笔记本点位图
  14. html5刮刮卡,canvas 实现刮刮卡
  15. word文档保存文件时出错_保存时如何自动创建Word文档的备份副本
  16. 与智能汽车相见恨晚的SOA到底是什么?
  17. python输入一个三位整数、输出三位数之和_编写程序,从键盘输入一个3位的正整数,输出它的百位数,十位数和个位数,并且计算它的和...
  18. 生存类html5小游戏,紧张绝望!刺激爽爆!盘点最好玩的PC生存类游戏(中)
  19. python爬取微博用户信息(四)—— 爬取用户信息的功能函数
  20. “10类”电子劳动合同签署工具:节约时间、高效签署

热门文章

  1. Java 线程池作用及类型
  2. 松下A5伺服器调试软件 松下A系,A4伺服器调试软件
  3. 积分商城怎么搭建?搭建过程要注意哪些方面?
  4. 【诗视野文学社】五一特刊|本期诗人:胭脂茉莉 李本 薛宏 文爱艺 唐根金 王宁 迪夫 东楠灵
  5. 网上流行的欢乐病毒源码
  6. 关于谷歌浏览器网页加载速度慢的问题
  7. Mastercam9.1三四五轴编程后处理视频教程100讲
  8. 实战三十七:基于HMM模型实现中文分词
  9. 【maven】将本地jar导入本地maven仓库
  10. 全渠道下新零售行业如何进行会员管理和会员营销