基于MATLAB的无线信道的传播与衰落(附完整代码与分析)
目录
一. 一般路径损耗模型
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. 1自由环境下路径损耗 1. 2 考虑实际情况 1.3 考虑阴影衰落 二. 代码仿真与理解 (1)函数文件 (2)函数文件 (3)主运行文件 三. 运行结果及理解 3.1 3.2 3.3 一. …...
SDX62如何查看Kernel版本和Operating System Version Patch Level
Kernel版本号方法一:adb shell登录,然后执行uname -a# uname -aLinux sdxlemur 5.4.180-perf #1 PREEMPT Fri Mar 3 04:24:42 UTC 2023 armv7l GNU/Linux方法二:内核源码查看,apps_proc/src/kernel/msm-5.4/Makefile 文件…...
001+limou+HTML——(1)HTML入门知识
000、本人编写前言 前言:本笔记来源于莫振杰的书《HTML、CSS、Javascript从零到一快速上手》,经过修改制成的自学笔记,本书很适合小白学习入门web的相关知识,你也可以先看看我从中学到了什么,再考虑是否去认真学习这本…...
使用Arduino Uno构建一个巡线机器人
使用Arduino Uno构建一个巡线机器人 原文 MX 巡线机器人(**LFR)**是一种简单的自主引导机器人,它遵循在地面上绘制的线来检测白色表面上的暗线或黑暗表面上的白线。在本教程中,使用 Arduino Uno 和一些易于访问的组件构建黑线跟…...
【C++】类和对象(收尾)
文章目录成员变量初始化问题初始化列表explicit关键字static成员特性:友元友元函数友元类内部类特性匿名对象成员变量初始化问题 在创建对象时,编译器通过调用构造函数,给了对象中各个成员变量一个合适的初始值。但是这并不能够称为对对象中成…...
Linux延迟操作
一、软中断Linux内核中定义了如下几种软中断:enum {HI_SOFTIRQ0,TIMER_SOFTIRQ,NET_TX_SOFTIRQ,NET_RX_SOFTIRQ,BLOCK_SOFTIRQ,IRQ_POLL_SOFTIRQ,TASKLET_SOFTIRQ,SCHED_SOFTIRQ,HRTIMER_SOFTIRQ,RCU_SOFTIRQ, /* Preferable RCU should always be the last soft…...
np.insert()函数用法
目录insert()函数定义程序举例说明行插入列插入多数值行插入完整的程序和显示结果:insert()函数定义 insert(arr, obj, values, axisNone) 参数说明: arr : 需要插入的数组,即Input array; obj:向数组中插入值的位置…...
学习笔记-架构的演进之容器的封装-3月day06
文章目录前言封装应用的Dockerwhy Docker not LXC?附前言 当文件系统、访问、资源都可以被隔离后,容器就已经具备它降生所需要的全部前置支撑条件了。为了降低普通用户综合使用 namespaces、cgroups 这些低级特性的门槛,2008 年 Linux Kernel 2.6.24 内…...
Gorm根据关系模型中的属性查询原模型数据
type ExamResult struct {gorm.ModelExamManagementID uintExamManagement ExamManagement json:"examManagement" // 一场考试,其中有试卷,有试题,有试题答案//MarkExamPaperRecord MarkExamPaperRecord //每一场考试对应的结…...
车载技术【USB接口】—Android配件协议AOA【AOA连接】
简述 AOA协议是Google公司推出的用于实现Android设备与外围设备之间USB通信的协议。该协议拓展了Android设备USB接口的功能,为基于Android系统的智能设备应用于数据采集和设备控制领域提供了条件。介绍了Android系统下USB通信的两种模式,并给出了USB配件…...
SpringBoot的基本概念和使用
文章目录一、什么是SpringBoot二、Spring Boot优点三、Spring Boot项目创建四、Spring Boot 配置文件1. yml语法2.properties与yml关系3.多系统的配置五、Spring Boot日志文件1.日志对象2.日志级别日志级别的设置System.out.println VS 日志的两个致命缺点3.日志持久化4.更简单…...
基于计算机软件技术的化工设计特点
2.1 便利性将计算机软件技术应用于化工设计环节,最大的优点就在于提升了化工企业生产的便利性。化工设计作为化工生产的基础,在化工设计环节需要到有关化学反应和工艺流程设计等的相关问题,通过利用计算机软件技术可以为上述工作提供很好的辅…...
Nativefier把网页打包成exe
前要: 今天遇到一个需求,之前的应用都是用的h5挂载在企业微信的小应用,但是现在需要电脑运行的exe安装包! 所以需要用到nativefier导报工具:nativefier是一个使用electron将网页转换为app的插件,写这篇博客…...
STM32U5开发(1)----通过 USART1 发送数据
概述 通过 USART1 发送一些数据。 最近在弄ST和GD的课程,需要样片的可以加群申请:6_15061293。 生成例程 使用STM32CUBEMX生成例程,这里使用NUCLEO-U575ZI开发板。 选择工程的时候,先不必选择加载了TrustZone。 样品申请 h…...
20230308 Apdl lsdyna两杆撞击案例学习笔记
本次模拟使用的是ANSYS 16.0 一、设置Element type 首先打开APDL界面 添加element type 在LS-DYNA Explicit选择条件下,选择3D solid 164 二、设置材料类型 选择material models 选择Elastic-Isotropic-输入 Density:密度 EX:杨氏模量 NUXY:泊松比 三、几何模型建…...
互相关延时估计 Matlab仿真
文章目录互相关延时估计什么是互相关延时估计?原理代码实现总结互相关延时估计 互相关延时估计是一种信号处理技术,用于计算两个信号之间的时间延迟。在本篇博客中,我们将使用MATLAB来实现互相关延时估计,并提供多个例子和代码&a…...
谷歌插件Fetch在不同页面之间Cookie携带情况详解
content script 和 script inject 表现情况 在碰到content script 注入和用script标签注入一样,即使服务端有写入Cookie到域名下在该tab标签应用下也不会被保存,所以在发送时也无法自动携带,所以通过content script和<script>这种方式…...
Vue学习笔记(8)
8.1 组件自定义事件 在 Vue 中,组件可以通过自定义事件来实现组件之间的通信。自定义事件可以让一个组件触发一个事件,并向其他组件传递数据。以下是自定义事件的实现步骤: 在组件中定义一个事件名:可以在组件中使用 $emit 方法来…...
知道一个服务器IP应该怎么进入
首先我是国内,访问国外的网站比如谷歌等,访问特别慢,有时候甚至登录不进去。现在知道了一个台湾或者国外的服务器应该怎么登录进去呢?知道服务器IP之后,你还需要知道服务器的远程端口帐号密码才能登录的。知道上面信息…...
【计算机基础】Socket IO
一、I/O 模型 一个输入操作通常包括两个阶段: 等待数据准备好从内核向进程复制数据 对于一个套接字上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待数据到达时,它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
