当前位置: 首页 > 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;它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...