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/18×2) =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 仿真雙徑效應內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: