Diffraction on five knife-edges

example from Vavilov S. A., Lytaev M. S. Modeling Equation for Multiple Knife-Edge Diffraction //IEEE Transactions on Antennas and Propagation. – 2020. – Vol. 68. – Iss. 5. – pp. 3869-3877.

[1]:
import os
os.chdir('../../')
from rwp.kediffraction import *
from rwp.antennas import *
from rwp.environment import *
from rwp.vis import *

Preparing environment

[2]:
env = Troposphere(flat=True)
env.z_max = 150
env.knife_edges = [KnifeEdge(range=100, height=25),
                   KnifeEdge(range=200, height=50),
                   KnifeEdge(range=300, height=75),
                   KnifeEdge(range=600, height=50),
                   KnifeEdge(range=800, height=125)]
antenna = GaussAntenna(freq_hz=300e6,
                       height=50,
                       beam_width=15,
                       elevation_angle=0,
                       polarz='H')

Starting calculation

[3]:
kdc = KnifeEdgeDiffractionCalculator(src=antenna,
                                     env=env,
                                     max_range_m=1000)
field = kdc.calculate()

Visualising results

[4]:
vis = FieldVisualiser(field, env=env, trans_func=lambda v: 10 * cm.log10(1e-16 + abs(v)), label='ke')
plt = vis.plot2d(min=-40, max=0)
plt.title('The intensity of the field component 10log10|u|')
plt.xlabel('Range (m)')
plt.ylabel('Height (m)')
plt.show()

plt = vis.plot_ver(175)
plt.title('x = 175 m')
plt.xlabel('Amplitude, dB')
plt.ylabel('Height, m')
plt.show()

plt = vis.plot_ver(700)
plt.title('x = 700 m')
plt.xlabel('Amplitude, dB')
plt.ylabel('Height, m')
plt.show()
../_images/notebooks_five_knife_edges_7_0.png
../_images/notebooks_five_knife_edges_7_1.png
../_images/notebooks_five_knife_edges_7_2.png
[4]: