You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I'm working on a project that requires a channel matrix that depends on the transmitter and receiver location. I used sionna.rt.load_scene() to do this.
I want to know how sionna calculates the values in the channel matrix I output and what type of channel it is (TDL, TCL, etc.).
Attaching the function that generates the channel. Thank you!
defGenerateH(num_tx_ant: int, num_rx_ant: int, location_tr: list, location_rec: list):
""" Generate a location channel according to BS & EU locations """# Define parametersx1, y1, z1=location_tr# Location of the transmitterx2, y2, z2=location_rec# Location of the receiverresolution= [480, 320]
# Create an empty scenescene=load_scene()
my_cam=Camera("my_cam", position=[x1, y1, z1+450], look_at=[x1, y1, z1])
scene.add(my_cam)
# Render scene with new camera*scene.render("my_cam", resolution=resolution, num_samples=512)
# Define the transmitter's antenna arrayscene.tx_array=PlanarArray(
num_rows=1,
num_cols=num_tx_ant,
vertical_spacing=0.5,
horizontal_spacing=0.5,
pattern="dipole",
polarization="V"
)
# Define the receiver's antenna arrayscene.rx_array=PlanarArray(
num_rows=1,
num_cols=num_rx_ant,
vertical_spacing=0.5,
horizontal_spacing=0.5,
pattern="dipole",
polarization="V"
)
# Create the transmitter objecttx=Transmitter(
name='tx',
position=[x1, y1, z1],
power_dbm=30,
orientation=[0, 0, 0]
)
scene.add(tx)
# Create the receiver objectrx=Receiver(
name='rx',
position=[x2, y2, z2],
orientation=[0, 0, 0]
)
scene.add(rx)
# Compute propagation pathspaths=scene.compute_paths(max_depth=5,
method="exhaustive",
num_samples=1e6)
scene.render("my_cam", paths=paths, show_devices=True, show_paths=True, resolution=resolution)
### paths.a = [batch?, num_of_rx, num_of_rx_antennas, num_of_tx, num_of_tx_antennas, paths, Doppler shifts] ###H=paths.a[0, 0, :, 0, :, 0, 0].numpy()
H=tf.cast(H/tf.norm(H), tf.complex64) # tf.cast(tf.eye(H.shape[0], H.shape[1]), tf.complex64)returnH
Ray tracing is an alternative to stochastic channel models like TDL, CDL, UMI, etc.
The EM Primer explains in great detail how channel impulse response are generated.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hi, I'm working on a project that requires a channel matrix that depends on the transmitter and receiver location. I used sionna.rt.load_scene() to do this.
I want to know how sionna calculates the values in the channel matrix I output and what type of channel it is (TDL, TCL, etc.).
Attaching the function that generates the channel. Thank you!
Beta Was this translation helpful? Give feedback.
All reactions