当前位置: 首页 > news >正文

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

目录

一. 一般路径损耗模型

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

1. 2 考虑实际情况

1.3 考虑阴影衰落

二. 代码仿真与理解

(1)函数文件

(2)函数文件

(3)主运行文件

三. 运行结果及理解

3.1 

3.2 

3.3


一. 一般路径损耗模型

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

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

P_r(d)=\frac{P_tG_tG_r\lambda^2}{(4\pi)^2d^2L}

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

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

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

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

PL_F(d)[dB]=10log_{10}(\frac{P_t}{P_r})=-10log_{10}(\frac{G_tG_r\lambda^2}{(4\pi)^2d^2})

1. 2 考虑实际情况

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

PL_{LD}(d)[dB]=PL_F(d_0)+10nlog_{10}(\frac{d}{d_0})

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

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

1.3 考虑阴影衰落

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

PL(d)[dB]=PL_F(d_0)+10nlog_{10}(\frac{d}{d_0})+X_\sigma

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

二. 代码仿真与理解

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

(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 文件&#xf…...

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标签注入一样&#xff0c;即使服务端有写入Cookie到域名下在该tab标签应用下也不会被保存&#xff0c;所以在发送时也无法自动携带&#xff0c;所以通过content script和<script>这种方式…...

Vue学习笔记(8)

8.1 组件自定义事件 在 Vue 中&#xff0c;组件可以通过自定义事件来实现组件之间的通信。自定义事件可以让一个组件触发一个事件&#xff0c;并向其他组件传递数据。以下是自定义事件的实现步骤&#xff1a; 在组件中定义一个事件名&#xff1a;可以在组件中使用 $emit 方法来…...

知道一个服务器IP应该怎么进入

首先我是国内&#xff0c;访问国外的网站比如谷歌等&#xff0c;访问特别慢&#xff0c;有时候甚至登录不进去。现在知道了一个台湾或者国外的服务器应该怎么登录进去呢&#xff1f;知道服务器IP之后&#xff0c;你还需要知道服务器的远程端口帐号密码才能登录的。知道上面信息…...

【计算机基础】Socket IO

一、I/O 模型 一个输入操作通常包括两个阶段&#xff1a; 等待数据准备好从内核向进程复制数据 对于一个套接字上的输入操作&#xff0c;第一步通常涉及等待数据从网络中到达。当所等待数据到达时&#xff0c;它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...