Python实现仿真双径效应的方法

 更新时间:2021年05月14日 09:03:41   作者:死线  
双径模型是一种很好的近似,能够准确地反映信号的传播特性。这篇文章主要介绍了Python实现仿真双径效应的方法,感兴趣的小伙伴们可以参考一下

多径效应

多径效应(multipath effect):指电磁波经不同路径传播后,各分量场到达接收端时间不同,按各自相位相互叠加而造成干扰,使得原来的信号失真,或者产生错误。比如电磁波沿不同的两条路径传播,而两条路径的长度正好相差半个波长,那么两路信号到达终点时正好相互抵消了(波峰与波谷重合)。通常采用一些近似方法来描述信号的传播特性,其中最常见的一种近似方法是射线跟踪计算。射线跟踪模型将波前近似为简单粒子,进而确定出反射和折射对波前的影响。最简单的射线跟踪模型是双径模型,指发射机和接收机之间只存在一条直射路径和一条反射路径的情况。双径模型中的反射信号一般为地面反射,对于高速公路以及乡村道路和水面上的信号传播来说,双径模型是一种很好的近似,能够准确地反映信号的传播特性。

双径模型

双径模型用在单一的地面反射波在多径效应中起主导作用的情形,如下图所示是双径模型的示意图。接收信号由两部分组成:经自由空间达到接收端的直射分量和经过地面反射到达接收端的反射分量。

在这里插入图片描述

双径模型中的接收信号为:

在这里插入图片描述

Pt为发射功率,Gt为自射天线增益乘积GaGb,Gr为反射路径天线增益乘积GcGd,l为直射的路径,x0+x1为反射的路径,△φ为反射路径和直射路径的相位差,△φ=2Π(x0+ x1-l)/λ,反射系数R≈0.9。

模型分析

假设通信频率为2000MHz,基站高度1m,手持终端高度为1m,l=18m,此时θ=actan(1/18x2) =6.353°,x0=x1=1/sin(6.353°)=9.0373m,△φ=360°x(x0 +x1-l)/λ=179°。入射波和反射波相差接近180°相位,相互抵消,这时候接收功率就出现了极小值。

按照上述的设定值,绘制4m-150m的接收功率图如下:

在这里插入图片描述

双径模型仿真程序

import numpy as np
import matplotlib.pyplot as plt

def Radiation( theta, kt=0.2):
    theta = theta+np.pi/2
    pi = np.pi
    gmax_t = (np.cos(2 * pi * kt * np.cos(pi / 2)) - np.cos(2 * pi * kt)) / np.sin(pi / 2)
    gain = (np.cos(2 * pi * kt * np.cos(theta)) - np.cos(2 * pi * kt)) / np.sin(theta) / gmax_t
    return gain**2
def multipath_effect():
    h_j = 1
    h_c = 1
    f = 2
    lamda = 0.3 / f
    x = []
    y = []
    for i in range(20, 1500):
        l = i / 10
        x.append(l)
        l_c = h_c / (h_j + h_c) * l
        l_j = h_j / (h_j + h_c) * l
        lx = (h_c ** 2 + l_c ** 2) ** 0.5 + (h_j ** 2 + l_j ** 2) ** 0.5
        ly = (l ** 2 + (h_c - h_j) ** 2) ** 0.5
        l_d = lx - ly
        phase = l_d / lamda * 2 * np.pi
        theta_z = np.arctan(abs(h_j - h_c) / l)
        theta_f = np.arctan(h_j / l_j)
        tmp = Radiation(theta_z) * Radiation(theta_z) / ly ** 2 + Radiation(theta_f) * Radiation(theta_f) / lx ** 2 * np.sin(phase)
        y.append(20 * np.log10(tmp))
    plt.plot(x, y, 'r-')
    plt.show()
multipath_effect()

到此这篇关于Python实现仿真双径效应的方法的文章就介绍到这了,更多相关Python 仿真双径效应内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python的os包与os.path模块的用法详情

    Python的os包与os.path模块的用法详情

    这篇文章主要介绍了Python的os包与os.path模块,主要介绍os常用方法和os.path 常用方法展开相关资料,需要的小伙伴可以参考一下,希望对你的工作或学习有所帮助
    2022-03-03
  • Python3调用百度AI识别图片中的文字功能示例【测试可用】

    Python3调用百度AI识别图片中的文字功能示例【测试可用】

    这篇文章主要介绍了Python3调用百度AI识别图片中的文字功能,结合实例形式分析了Python3安装及使用百度AI接口的相关操作技巧,并附带说明了百度官方AI平台的注册及接口调用操作方法,需要的朋友可以参考下
    2019-03-03
  • python实现斐波那契数列的方法示例

    python实现斐波那契数列的方法示例

    每个码农大概都会用自己擅长的语言写出一个斐波那契数列出来,斐波那契数列简单地说,起始两项为0和1,此后的项分别为它的前两项之后。下面这篇文章就给大家详细介绍了python实现斐波那契数列的方法,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • python 实现提取log文件中的关键句子,并进行统计分析

    python 实现提取log文件中的关键句子,并进行统计分析

    今天小编就为大家分享一篇python 实现提取log文件中的关键句子,并进行统计分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python+matplotlib实现量场图的绘制

    Python+matplotlib实现量场图的绘制

    matplotlib是基于Python语言的开源项目,pyplot提供一系列绘制2D图形的方法。本文将带大家学习matplotlib.pyplot.quiver()相关方法属性并通过其绘制量场图
    2021-12-12
  • Python 3.3实现计算两个日期间隔秒数/天数的方法示例

    Python 3.3实现计算两个日期间隔秒数/天数的方法示例

    这篇文章主要介绍了Python 3.3实现计算两个日期间隔秒数/天数的方法,结合实例形式较为详细的分析了基于Python3.3的日期时间转换与运算相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • Python测试网络连通性示例【基于ping】

    Python测试网络连通性示例【基于ping】

    这篇文章主要介绍了Python测试网络连通性,结合实例形式分析了Python通过发送ping请求测试网络连通性相关操作技巧,需要的朋友可以参考下
    2018-08-08
  • 教你如何用Python实现人脸识别(含源代码)

    教你如何用Python实现人脸识别(含源代码)

    Python可以从图像或视频中检测和识别你的脸.人脸检测与识别是计算机视觉领域的研究热点之一.人脸识别的应用包括人脸解锁、安全防护等,医生和医务人员利用人脸识别来获取病历和病史,更好地诊断疾病,需要的朋友可以参考下
    2021-06-06
  • 14个用Python实现的Excel常用操作总结

    14个用Python实现的Excel常用操作总结

    自从学了Python后就逼迫自己不用Excel,所有操作用Python实现。目的是巩固Python,与增强数据处理能力。本文为大家总结了14个用Python实现的Excel常用操作,需要的可以参考一下
    2022-06-06
  • 详解Python如何精确控制asyncio并发运行多个任务

    详解Python如何精确控制asyncio并发运行多个任务

    这篇文章主要为大家详细介绍了Python如何精确控制asyncio并发运行多个任务,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-10-10

最新评论