In [1]:
Copied!
"""Detailed Channel Generation tutorial."""
"""Detailed Channel Generation tutorial."""
Out[1]:
'Detailed Channel Generation tutorial.'
Detailed Channel Generation.¶
Tutorial Overview:
- Channel Parameters - Configuring channel generation
- Time Domain - Generate time-domain channel responses
- Frequency Domain (OFDM) - Generate OFDM channel responses
- Antenna Rotation - Adjust antenna orientations
Related Video: Channel Generation Video
In [2]:
Copied!
import matplotlib.pyplot as plt
import numpy as np
import deepmimo as dm
import matplotlib.pyplot as plt
import numpy as np
import deepmimo as dm
In [3]:
Copied!
# Load dataset
scen_name = "asu_campus_3p5"
dm.download(scen_name)
dataset = dm.load(scen_name)
# Load dataset
scen_name = "asu_campus_3p5"
dm.download(scen_name)
dataset = dm.load(scen_name)
Scenario "asu_campus_3p5" already exists in /home/joao/DeepMIMO/docs/tutorials/deepmimo_scenarios Loading TXRX PAIR: TXset 1 (tx_idx 0) & RXset 0 (rx_idxs 131931)
Channel Parameters¶
Configure channel generation with custom parameters.
In [4]:
Copied!
# Get help on channel parameters
dm.info("ch_params")
# Get help on channel parameters
dm.info("ch_params")
Channel Generation Parameters: ============================== bs_antenna: Base station antenna array configuration parameters. ue_antenna: User equipment antenna array configuration parameters. bs_antenna.shape: Antenna array dimensions [X, Y] or [X, Y, Z] elements Default: [1, 1] | Type: list[int] | Units: number of elements bs_antenna.spacing: Spacing between antenna elements Default: 0.5 | Type: float | Units: wavelengths bs_antenna.rotation: Rotation angles [azimuth, elevation, polarization] Default: [0, 0, 0] | Type: list[float] | Units: degrees bs_antenna.radiation_pattern: Antenna element radiation pattern Default: "isotropic" | Type: str | Options: "isotropic", "halfwave-dipole" doppler: Enable/disable Doppler effect simulation Default: False | Type: bool num_paths: Maximum number of paths to consider per user Default: 10 | Type: int | Units: number of paths freq_domain: Channel domain Default: 0 | Type: int | Options: 0 (time domain), 1 (frequency domain/OFDM) ofdm: OFDM channel configuration parameters. Used (and needed!) only if freq_domain=1. Default: None | Type: dict ofdm.bandwidth: System bandwidth Default: 10e6 | Type: float | Units: Hz ofdm.subcarriers: Total number of OFDM subcarriers Default: 512 | Type: int | Units: number of subcarriers ofdm.selected_subcarriers: Indices of subcarriers to generate Default: None (all subcarriers) | Type: list[int] | Units: subcarrier indices ofdm.rx_filter: Enable/disable receive low-pass filter / ADC filter Default: False | Type: bool
In [5]:
Copied!
# Create channel parameters
ch_params = dm.ChannelParameters()
print("Default channel parameters:")
print(ch_params)
# Create channel parameters
ch_params = dm.ChannelParameters()
print("Default channel parameters:")
print(ch_params)
Default channel parameters:
{'bs_antenna': {'radiation_pattern': 'isotropic',
'rotation': array([0, 0, 0]),
'shape': array([8, 1]),
'spacing': 0.5},
'doppler': 0,
'freq_domain': 1,
'num_paths': 25,
'ofdm': {'bandwidth': 10000000.0,
'rx_filter': 0,
'selected_subcarriers': array([0]),
'subcarriers': 512},
'ue_antenna': {'radiation_pattern': 'isotropic',
'rotation': array([0, 0, 0]),
'shape': array([1, 1]),
'spacing': 0.5}}
In [6]:
Copied!
# Customize antenna array configuration
ch_params.bs_antenna.shape = [4, 4] # 4x4 BS antenna array
ch_params.bs_antenna.spacing = 0.5 # Half-wavelength spacing
ch_params.ue_antenna.shape = [2, 1] # 2x1 UE antenna array
print(f"BS antenna shape: {ch_params.bs_antenna.shape}")
print(f"UE antenna shape: {ch_params.ue_antenna.shape}")
# Customize antenna array configuration
ch_params.bs_antenna.shape = [4, 4] # 4x4 BS antenna array
ch_params.bs_antenna.spacing = 0.5 # Half-wavelength spacing
ch_params.ue_antenna.shape = [2, 1] # 2x1 UE antenna array
print(f"BS antenna shape: {ch_params.bs_antenna.shape}")
print(f"UE antenna shape: {ch_params.ue_antenna.shape}")
BS antenna shape: [4, 4] UE antenna shape: [2, 1]
In [7]:
Copied!
# Set the number of paths to use
ch_params.num_paths = 20
print(f"Number of paths: {ch_params.num_paths}")
# Set the number of paths to use
ch_params.num_paths = 20
print(f"Number of paths: {ch_params.num_paths}")
Number of paths: 20
Time Domain¶
Generate time-domain channel responses.
In [8]:
Copied!
# Set to time domain
ch_params.freq_domain = False
# Generate time-domain channel
dataset.compute_channels(ch_params)
time_channels = dataset.channel
print(f"Time domain channel shape: {time_channels.shape}")
print("Shape: [num_rx, num_rx_ant, num_tx_ant, num_paths]")
# Set to time domain
ch_params.freq_domain = False
# Generate time-domain channel
dataset.compute_channels(ch_params)
time_channels = dataset.channel
print(f"Time domain channel shape: {time_channels.shape}")
print("Shape: [num_rx, num_rx_ant, num_tx_ant, num_paths]")
Generating channels: 0%| | 0/131931 [00:00<?, ?it/s]
Generating channels: 3%|▎ | 3964/131931 [00:00<00:03, 39637.01it/s]
Generating channels: 6%|▌ | 7928/131931 [00:00<00:04, 27808.64it/s]
Generating channels: 8%|▊ | 10914/131931 [00:00<00:05, 23895.05it/s]
Generating channels: 10%|█ | 13429/131931 [00:00<00:05, 22396.90it/s]
Generating channels: 12%|█▏ | 15731/131931 [00:00<00:05, 21521.12it/s]
Generating channels: 14%|█▎ | 17912/131931 [00:00<00:05, 21073.24it/s]
Generating channels: 15%|█▌ | 20033/131931 [00:00<00:05, 20984.65it/s]
Generating channels: 17%|█▋ | 22306/131931 [00:00<00:05, 21482.25it/s]
Generating channels: 19%|█▉ | 25241/131931 [00:01<00:04, 23762.48it/s]
Generating channels: 22%|██▏ | 28407/131931 [00:01<00:03, 26074.06it/s]
Generating channels: 24%|██▍ | 32239/131931 [00:01<00:03, 29681.96it/s]
Generating channels: 28%|██▊ | 36608/131931 [00:01<00:02, 33833.53it/s]
Generating channels: 31%|███ | 40558/131931 [00:01<00:02, 35513.98it/s]
Generating channels: 33%|███▎ | 44137/131931 [00:01<00:02, 35485.37it/s]
Generating channels: 36%|███▌ | 47705/131931 [00:01<00:02, 34219.14it/s]
Generating channels: 40%|███▉ | 52761/131931 [00:01<00:02, 38966.16it/s]
Generating channels: 43%|████▎ | 57098/131931 [00:01<00:01, 40252.56it/s]
Generating channels: 46%|████▋ | 61149/131931 [00:01<00:01, 40060.98it/s]
Generating channels: 49%|████▉ | 65173/131931 [00:02<00:01, 36042.85it/s]
Generating channels: 52%|█████▏ | 68863/131931 [00:02<00:01, 32461.42it/s]
Generating channels: 55%|█████▍ | 72221/131931 [00:02<00:01, 31338.97it/s]
Generating channels: 57%|█████▋ | 75430/131931 [00:02<00:01, 30641.24it/s]
Generating channels: 60%|█████▉ | 78986/131931 [00:02<00:01, 31953.22it/s]
Generating channels: 62%|██████▏ | 82232/131931 [00:02<00:01, 31662.60it/s]
Generating channels: 65%|██████▍ | 85467/131931 [00:02<00:01, 31851.29it/s]
Generating channels: 67%|██████▋ | 88678/131931 [00:02<00:01, 31578.51it/s]
Generating channels: 70%|██████▉ | 91853/131931 [00:03<00:01, 30610.86it/s]
Generating channels: 72%|███████▏ | 94930/131931 [00:03<00:01, 28813.29it/s]
Generating channels: 74%|███████▍ | 97837/131931 [00:03<00:01, 26408.95it/s]
Generating channels: 76%|███████▌ | 100524/131931 [00:03<00:01, 24078.93it/s]
Generating channels: 78%|███████▊ | 102987/131931 [00:03<00:01, 22249.51it/s]
Generating channels: 80%|███████▉ | 105260/131931 [00:03<00:01, 21388.53it/s]
Generating channels: 81%|████████▏ | 107428/131931 [00:03<00:01, 21021.33it/s]
Generating channels: 83%|████████▎ | 110115/131931 [00:03<00:00, 22560.26it/s]
Generating channels: 86%|████████▌ | 113287/131931 [00:03<00:00, 25064.52it/s]
Generating channels: 89%|████████▉ | 117668/131931 [00:04<00:00, 30325.35it/s]
Generating channels: 92%|█████████▏| 121368/131931 [00:04<00:00, 32232.60it/s]
Generating channels: 94%|█████████▍| 124649/131931 [00:04<00:00, 32152.69it/s]
Generating channels: 97%|█████████▋| 128081/131931 [00:04<00:00, 32783.61it/s]
Generating channels: 100%|██████████| 131931/131931 [00:04<00:00, 29545.65it/s]
Time domain channel shape: (131931, 2, 16, 10) Shape: [num_rx, num_rx_ant, num_tx_ant, num_paths]
In [9]:
Copied!
# Visualize channel impulse response for one user
user_idx = 10
cir = time_channels[user_idx, 0, 0, :] # First RX ant, first TX ant
plt.figure(figsize=(10, 5))
plt.stem(np.abs(cir))
plt.xlabel("Path Index")
plt.ylabel("|h|")
plt.title(f"Channel Impulse Response - User {user_idx}")
plt.grid(visible=True)
plt.show()
# Visualize channel impulse response for one user
user_idx = 10
cir = time_channels[user_idx, 0, 0, :] # First RX ant, first TX ant
plt.figure(figsize=(10, 5))
plt.stem(np.abs(cir))
plt.xlabel("Path Index")
plt.ylabel("|h|")
plt.title(f"Channel Impulse Response - User {user_idx}")
plt.grid(visible=True)
plt.show()
Frequency Domain (OFDM)¶
Generate OFDM channel responses.
In [10]:
Copied!
# Configure OFDM parameters
ch_params.freq_domain = True
ch_params.ofdm.bandwidth = 10e6 # 10 MHz
ch_params.ofdm.subcarriers = 512
ch_params.ofdm.selected_subcarriers = np.arange(64) # Select first 64 subcarriers
ch_params.ofdm.rx_filter = False # No low-pass filter
# Generate frequency-domain channel
dataset.compute_channels(ch_params)
freq_channels = dataset.channel
print(f"Frequency domain channel shape: {freq_channels.shape}")
print("Shape: [num_rx, num_rx_ant, num_tx_ant, num_subcarriers]")
# Configure OFDM parameters
ch_params.freq_domain = True
ch_params.ofdm.bandwidth = 10e6 # 10 MHz
ch_params.ofdm.subcarriers = 512
ch_params.ofdm.selected_subcarriers = np.arange(64) # Select first 64 subcarriers
ch_params.ofdm.rx_filter = False # No low-pass filter
# Generate frequency-domain channel
dataset.compute_channels(ch_params)
freq_channels = dataset.channel
print(f"Frequency domain channel shape: {freq_channels.shape}")
print("Shape: [num_rx, num_rx_ant, num_tx_ant, num_subcarriers]")
Generating channels: 0%| | 0/131931 [00:00<?, ?it/s]
Generating channels: 1%| | 1579/131931 [00:00<00:08, 15765.06it/s]
Generating channels: 2%|▏ | 3156/131931 [00:00<00:09, 13891.59it/s]
Generating channels: 3%|▎ | 4560/131931 [00:00<00:10, 11623.20it/s]
Generating channels: 4%|▍ | 5759/131931 [00:00<00:12, 9931.18it/s]
Generating channels: 5%|▌ | 6791/131931 [00:00<00:14, 8852.32it/s]
Generating channels: 6%|▌ | 7705/131931 [00:00<00:15, 8054.77it/s]
Generating channels: 6%|▋ | 8529/131931 [00:00<00:16, 7545.96it/s]
Generating channels: 7%|▋ | 9293/131931 [00:01<00:17, 7162.43it/s]
Generating channels: 8%|▊ | 10013/131931 [00:01<00:17, 6989.99it/s]
Generating channels: 8%|▊ | 10712/131931 [00:01<00:17, 6801.05it/s]
Generating channels: 9%|▊ | 11391/131931 [00:01<00:18, 6685.75it/s]
Generating channels: 9%|▉ | 12058/131931 [00:01<00:18, 6407.97it/s]
Generating channels: 10%|▉ | 12697/131931 [00:01<00:18, 6319.21it/s]
Generating channels: 10%|█ | 13327/131931 [00:01<00:19, 6217.90it/s]
Generating channels: 11%|█ | 13947/131931 [00:01<00:19, 6049.79it/s]
Generating channels: 11%|█ | 14551/131931 [00:01<00:19, 5889.61it/s]
Generating channels: 11%|█▏ | 15156/131931 [00:02<00:19, 5933.99it/s]
Generating channels: 12%|█▏ | 15763/131931 [00:02<00:19, 5972.13it/s]
Generating channels: 12%|█▏ | 16372/131931 [00:02<00:19, 6004.46it/s]
Generating channels: 13%|█▎ | 16973/131931 [00:02<00:19, 5980.53it/s]
Generating channels: 13%|█▎ | 17582/131931 [00:02<00:19, 6011.73it/s]
Generating channels: 14%|█▍ | 18225/131931 [00:02<00:18, 6132.74it/s]
Generating channels: 14%|█▍ | 18848/131931 [00:02<00:18, 6161.60it/s]
Generating channels: 15%|█▍ | 19503/131931 [00:02<00:17, 6273.94it/s]
Generating channels: 15%|█▌ | 20283/131931 [00:02<00:16, 6727.32it/s]
Generating channels: 16%|█▌ | 20976/131931 [00:02<00:16, 6787.13it/s]
Generating channels: 17%|█▋ | 21771/131931 [00:03<00:15, 7133.39it/s]
Generating channels: 17%|█▋ | 22576/131931 [00:03<00:14, 7406.09it/s]
Generating channels: 18%|█▊ | 23395/131931 [00:03<00:14, 7637.38it/s]
Generating channels: 18%|█▊ | 24398/131931 [00:03<00:12, 8351.25it/s]
Generating channels: 19%|█▉ | 25457/131931 [00:03<00:11, 9019.82it/s]
Generating channels: 20%|██ | 26562/131931 [00:03<00:10, 9624.72it/s]
Generating channels: 21%|██ | 27688/131931 [00:03<00:10, 10111.38it/s]
Generating channels: 22%|██▏ | 28734/131931 [00:03<00:10, 10210.86it/s]
Generating channels: 23%|██▎ | 29768/131931 [00:03<00:09, 10245.68it/s]
Generating channels: 23%|██▎ | 30793/131931 [00:03<00:09, 10196.15it/s]
Generating channels: 24%|██▍ | 32004/131931 [00:04<00:09, 10763.03it/s]
Generating channels: 25%|██▌ | 33312/131931 [00:04<00:08, 11452.36it/s]
Generating channels: 26%|██▋ | 34770/131931 [00:04<00:07, 12387.29it/s]
Generating channels: 27%|██▋ | 36113/131931 [00:04<00:07, 12696.89it/s]
Generating channels: 28%|██▊ | 37384/131931 [00:04<00:07, 12185.54it/s]
Generating channels: 29%|██▉ | 38659/131931 [00:04<00:07, 12346.51it/s]
Generating channels: 30%|███ | 40054/131931 [00:04<00:07, 12815.40it/s]
Generating channels: 31%|███▏ | 41340/131931 [00:04<00:07, 12786.39it/s]
Generating channels: 32%|███▏ | 42622/131931 [00:04<00:07, 12018.70it/s]
Generating channels: 33%|███▎ | 43835/131931 [00:04<00:07, 11549.41it/s]
Generating channels: 34%|███▍ | 45000/131931 [00:05<00:07, 11071.57it/s]
Generating channels: 35%|███▍ | 46116/131931 [00:05<00:07, 10728.79it/s]
Generating channels: 36%|███▌ | 47195/131931 [00:05<00:07, 10609.12it/s]
Generating channels: 37%|███▋ | 48474/131931 [00:05<00:07, 11220.26it/s]
Generating channels: 38%|███▊ | 50089/131931 [00:05<00:06, 12625.99it/s]
Generating channels: 39%|███▉ | 51627/131931 [00:05<00:05, 13424.06it/s]
Generating channels: 40%|████ | 53403/131931 [00:05<00:05, 14690.66it/s]
Generating channels: 42%|████▏ | 54883/131931 [00:05<00:05, 14596.56it/s]
Generating channels: 43%|████▎ | 56350/131931 [00:05<00:05, 13820.01it/s]
Generating channels: 44%|████▍ | 57745/131931 [00:06<00:05, 13229.56it/s]
Generating channels: 45%|████▍ | 59081/131931 [00:06<00:05, 13037.04it/s]
Generating channels: 46%|████▌ | 60393/131931 [00:06<00:05, 12794.07it/s]
Generating channels: 47%|████▋ | 61678/131931 [00:06<00:05, 12438.71it/s]
Generating channels: 48%|████▊ | 62927/131931 [00:06<00:06, 11176.27it/s]
Generating channels: 49%|████▊ | 64068/131931 [00:06<00:06, 10589.53it/s]
Generating channels: 49%|████▉ | 65145/131931 [00:06<00:06, 9813.81it/s]
Generating channels: 50%|█████ | 66144/131931 [00:06<00:06, 9445.46it/s]
Generating channels: 51%|█████ | 67100/131931 [00:07<00:07, 8985.58it/s]
Generating channels: 52%|█████▏ | 68006/131931 [00:07<00:07, 8686.26it/s]
Generating channels: 52%|█████▏ | 68879/131931 [00:07<00:07, 8428.23it/s]
Generating channels: 53%|█████▎ | 70013/131931 [00:07<00:06, 9205.83it/s]
Generating channels: 54%|█████▍ | 70944/131931 [00:07<00:06, 9048.43it/s]
Generating channels: 54%|█████▍ | 71856/131931 [00:07<00:06, 8761.52it/s]
Generating channels: 55%|█████▌ | 72738/131931 [00:07<00:06, 8583.38it/s]
Generating channels: 56%|█████▌ | 73675/131931 [00:07<00:06, 8801.16it/s]
Generating channels: 57%|█████▋ | 74568/131931 [00:07<00:06, 8837.49it/s]
Generating channels: 57%|█████▋ | 75577/131931 [00:07<00:06, 9198.51it/s]
Generating channels: 58%|█████▊ | 76826/131931 [00:08<00:05, 10160.77it/s]
Generating channels: 59%|█████▉ | 78034/131931 [00:08<00:05, 10725.90it/s]
Generating channels: 60%|█████▉ | 79111/131931 [00:08<00:05, 10131.80it/s]
Generating channels: 61%|██████ | 80164/131931 [00:08<00:05, 10242.64it/s]
Generating channels: 62%|██████▏ | 81196/131931 [00:08<00:05, 10029.07it/s]
Generating channels: 62%|██████▏ | 82223/131931 [00:08<00:04, 10096.15it/s]
Generating channels: 63%|██████▎ | 83237/131931 [00:08<00:04, 9893.85it/s]
Generating channels: 64%|██████▍ | 84311/131931 [00:08<00:04, 10135.47it/s]
Generating channels: 65%|██████▍ | 85328/131931 [00:08<00:04, 10127.53it/s]
Generating channels: 65%|██████▌ | 86359/131931 [00:09<00:04, 10180.79it/s]
Generating channels: 66%|██████▌ | 87379/131931 [00:09<00:04, 9951.49it/s]
Generating channels: 67%|██████▋ | 88377/131931 [00:09<00:04, 9883.57it/s]
Generating channels: 68%|██████▊ | 89367/131931 [00:09<00:04, 9530.10it/s]
Generating channels: 69%|██████▊ | 90385/131931 [00:09<00:04, 9715.93it/s]
Generating channels: 69%|██████▉ | 91360/131931 [00:09<00:04, 9301.97it/s]
Generating channels: 70%|██████▉ | 92296/131931 [00:09<00:04, 8886.44it/s]
Generating channels: 71%|███████ | 93191/131931 [00:09<00:04, 8577.81it/s]
Generating channels: 71%|███████▏ | 94054/131931 [00:09<00:04, 8284.11it/s]
Generating channels: 72%|███████▏ | 94886/131931 [00:10<00:04, 8088.88it/s]
Generating channels: 73%|███████▎ | 95698/131931 [00:10<00:04, 7926.07it/s]
Generating channels: 73%|███████▎ | 96492/131931 [00:10<00:04, 7683.75it/s]
Generating channels: 74%|███████▎ | 97262/131931 [00:10<00:04, 7260.05it/s]
Generating channels: 74%|███████▍ | 97992/131931 [00:10<00:04, 6914.29it/s]
Generating channels: 75%|███████▍ | 98687/131931 [00:10<00:04, 6685.31it/s]
Generating channels: 75%|███████▌ | 99358/131931 [00:10<00:05, 6510.27it/s]
Generating channels: 76%|███████▌ | 100010/131931 [00:10<00:04, 6389.55it/s]
Generating channels: 76%|███████▋ | 100650/131931 [00:10<00:04, 6272.89it/s]
Generating channels: 77%|███████▋ | 101278/131931 [00:11<00:04, 6210.15it/s]
Generating channels: 77%|███████▋ | 101899/131931 [00:11<00:04, 6187.25it/s]
Generating channels: 78%|███████▊ | 102518/131931 [00:11<00:04, 6165.52it/s]
Generating channels: 78%|███████▊ | 103135/131931 [00:11<00:04, 6148.43it/s]
Generating channels: 79%|███████▊ | 103750/131931 [00:11<00:04, 6133.43it/s]
Generating channels: 79%|███████▉ | 104364/131931 [00:11<00:04, 6123.44it/s]
Generating channels: 80%|███████▉ | 104978/131931 [00:11<00:04, 6125.63it/s]
Generating channels: 80%|████████ | 105591/131931 [00:11<00:04, 6120.78it/s]
Generating channels: 80%|████████ | 106203/131931 [00:11<00:04, 6109.91it/s]
Generating channels: 81%|████████ | 106814/131931 [00:11<00:04, 6102.92it/s]
Generating channels: 81%|████████▏ | 107519/131931 [00:12<00:03, 6383.37it/s]
Generating channels: 82%|████████▏ | 108243/131931 [00:12<00:03, 6638.10it/s]
Generating channels: 83%|████████▎ | 109168/131931 [00:12<00:03, 7418.23it/s]
Generating channels: 83%|████████▎ | 110021/131931 [00:12<00:02, 7749.55it/s]
Generating channels: 84%|████████▍ | 110914/131931 [00:12<00:02, 8100.93it/s]
Generating channels: 85%|████████▍ | 112056/131931 [00:12<00:02, 9090.85it/s]
Generating channels: 86%|████████▌ | 113288/131931 [00:12<00:01, 10054.89it/s]
Generating channels: 87%|████████▋ | 114647/131931 [00:12<00:01, 11114.01it/s]
Generating channels: 88%|████████▊ | 116044/131931 [00:12<00:01, 11968.89it/s]
Generating channels: 89%|████████▉ | 117380/131931 [00:12<00:01, 12384.03it/s]
Generating channels: 90%|████████▉ | 118716/131931 [00:13<00:01, 12674.37it/s]
Generating channels: 91%|█████████ | 119984/131931 [00:13<00:00, 12348.53it/s]
Generating channels: 92%|█████████▏| 121221/131931 [00:13<00:00, 11923.72it/s]
Generating channels: 93%|█████████▎| 122418/131931 [00:13<00:00, 11755.84it/s]
Generating channels: 94%|█████████▎| 123597/131931 [00:13<00:00, 11459.58it/s]
Generating channels: 95%|█████████▍| 124746/131931 [00:13<00:00, 11273.99it/s]
Generating channels: 95%|█████████▌| 125876/131931 [00:13<00:00, 11160.20it/s]
Generating channels: 96%|█████████▋| 126994/131931 [00:13<00:00, 11145.53it/s]
Generating channels: 97%|█████████▋| 128179/131931 [00:13<00:00, 11350.68it/s]
Generating channels: 98%|█████████▊| 129847/131931 [00:13<00:00, 12912.01it/s]
Generating channels: 100%|█████████▉| 131316/131931 [00:14<00:00, 13437.14it/s]
Generating channels: 100%|██████████| 131931/131931 [00:14<00:00, 9357.42it/s]
Frequency domain channel shape: (131931, 2, 16, 64) Shape: [num_rx, num_rx_ant, num_tx_ant, num_subcarriers]
In [11]:
Copied!
# Visualize frequency response for one user
user_idx = 10
freq_response = freq_channels[user_idx, 0, 0, :] # First RX ant, first TX ant
plt.figure(figsize=(10, 5))
plt.plot(np.abs(freq_response))
plt.xlabel("Subcarrier Index")
plt.ylabel("|H[k]|")
plt.title(f"Channel Frequency Response - User {user_idx}")
plt.grid(visible=True)
plt.show()
# Visualize frequency response for one user
user_idx = 10
freq_response = freq_channels[user_idx, 0, 0, :] # First RX ant, first TX ant
plt.figure(figsize=(10, 5))
plt.plot(np.abs(freq_response))
plt.xlabel("Subcarrier Index")
plt.ylabel("|H[k]|")
plt.title(f"Channel Frequency Response - User {user_idx}")
plt.grid(visible=True)
plt.show()
Sampling Subcarriers¶
You can sample only specific subcarriers for efficiency.
In [12]:
Copied!
# Sample every 4th subcarrier
ch_params.ofdm.selected_subcarriers = list(range(0, 512, 4))
dataset.compute_channels(ch_params)
freq_channels_sampled = dataset.channel
print(f"Sampled frequency domain channel shape: {freq_channels_sampled.shape}")
# Sample every 4th subcarrier
ch_params.ofdm.selected_subcarriers = list(range(0, 512, 4))
dataset.compute_channels(ch_params)
freq_channels_sampled = dataset.channel
print(f"Sampled frequency domain channel shape: {freq_channels_sampled.shape}")
Generating channels: 0%| | 0/131931 [00:00<?, ?it/s]
Generating channels: 1%| | 1167/131931 [00:00<00:11, 11660.31it/s]
Generating channels: 2%|▏ | 2334/131931 [00:00<00:11, 11091.51it/s]
Generating channels: 3%|▎ | 3446/131931 [00:00<00:13, 9186.90it/s]
Generating channels: 3%|▎ | 4396/131931 [00:00<00:15, 8385.04it/s]
Generating channels: 4%|▍ | 5256/131931 [00:00<00:17, 7394.87it/s]
Generating channels: 5%|▍ | 6018/131931 [00:00<00:18, 6710.45it/s]
Generating channels: 5%|▌ | 6706/131931 [00:00<00:21, 5903.10it/s]
Generating channels: 6%|▌ | 7314/131931 [00:01<00:22, 5532.58it/s]
Generating channels: 6%|▌ | 7877/131931 [00:01<00:23, 5302.58it/s]
Generating channels: 6%|▋ | 8412/131931 [00:01<00:24, 5080.80it/s]
Generating channels: 7%|▋ | 8922/131931 [00:01<00:24, 4922.61it/s]
Generating channels: 7%|▋ | 9414/131931 [00:01<00:25, 4839.14it/s]
Generating channels: 8%|▊ | 9897/131931 [00:01<00:25, 4814.41it/s]
Generating channels: 8%|▊ | 10378/131931 [00:01<00:25, 4755.14it/s]
Generating channels: 8%|▊ | 10853/131931 [00:01<00:25, 4714.47it/s]
Generating channels: 9%|▊ | 11324/131931 [00:01<00:25, 4705.51it/s]
Generating channels: 9%|▉ | 11794/131931 [00:02<00:26, 4595.16it/s]
Generating channels: 9%|▉ | 12254/131931 [00:02<00:26, 4510.47it/s]
Generating channels: 10%|▉ | 12705/131931 [00:02<00:26, 4462.41it/s]
Generating channels: 10%|▉ | 13151/131931 [00:02<00:26, 4402.10it/s]
Generating channels: 10%|█ | 13591/131931 [00:02<00:26, 4383.89it/s]
Generating channels: 11%|█ | 14030/131931 [00:02<00:26, 4368.28it/s]
Generating channels: 11%|█ | 14467/131931 [00:02<00:26, 4362.10it/s]
Generating channels: 11%|█▏ | 14904/131931 [00:02<00:26, 4359.70it/s]
Generating channels: 12%|█▏ | 15340/131931 [00:02<00:26, 4358.69it/s]
Generating channels: 12%|█▏ | 15776/131931 [00:02<00:27, 4160.84it/s]
Generating channels: 12%|█▏ | 16206/131931 [00:03<00:27, 4199.44it/s]
Generating channels: 13%|█▎ | 16641/131931 [00:03<00:27, 4240.99it/s]
Generating channels: 13%|█▎ | 17077/131931 [00:03<00:26, 4273.76it/s]
Generating channels: 13%|█▎ | 17520/131931 [00:03<00:26, 4318.38it/s]
Generating channels: 14%|█▎ | 17973/131931 [00:03<00:26, 4380.40it/s]
Generating channels: 14%|█▍ | 18431/131931 [00:03<00:25, 4438.09it/s]
Generating channels: 14%|█▍ | 18889/131931 [00:03<00:25, 4480.12it/s]
Generating channels: 15%|█▍ | 19352/131931 [00:03<00:24, 4522.29it/s]
Generating channels: 15%|█▌ | 19903/131931 [00:03<00:23, 4816.76it/s]
Generating channels: 15%|█▌ | 20429/131931 [00:03<00:22, 4948.19it/s]
Generating channels: 16%|█▌ | 20952/131931 [00:04<00:22, 5031.50it/s]
Generating channels: 16%|█▋ | 21574/131931 [00:04<00:20, 5385.67it/s]
Generating channels: 17%|█▋ | 22113/131931 [00:04<00:20, 5357.54it/s]
Generating channels: 17%|█▋ | 22717/131931 [00:04<00:19, 5559.66it/s]
Generating channels: 18%|█▊ | 23280/131931 [00:04<00:19, 5577.74it/s]
Generating channels: 18%|█▊ | 23838/131931 [00:04<00:19, 5563.33it/s]
Generating channels: 19%|█▊ | 24614/131931 [00:04<00:17, 6217.85it/s]
Generating channels: 19%|█▉ | 25334/131931 [00:04<00:16, 6510.45it/s]
Generating channels: 20%|█▉ | 26073/131931 [00:04<00:15, 6770.10it/s]
Generating channels: 20%|██ | 26879/131931 [00:04<00:14, 7151.77it/s]
Generating channels: 21%|██ | 27644/131931 [00:05<00:14, 7296.76it/s]
Generating channels: 22%|██▏ | 28375/131931 [00:05<00:14, 7297.86it/s]
Generating channels: 22%|██▏ | 29148/131931 [00:05<00:13, 7426.76it/s]
Generating channels: 23%|██▎ | 29961/131931 [00:05<00:13, 7634.42it/s]
Generating channels: 23%|██▎ | 30785/131931 [00:05<00:12, 7811.78it/s]
Generating channels: 24%|██▍ | 31675/131931 [00:05<00:12, 8135.35it/s]
Generating channels: 25%|██▍ | 32721/131931 [00:05<00:11, 8828.83it/s]
Generating channels: 26%|██▌ | 33718/131931 [00:05<00:10, 9167.83it/s]
Generating channels: 26%|██▋ | 34769/131931 [00:05<00:10, 9565.30it/s]
Generating channels: 27%|██▋ | 35726/131931 [00:05<00:10, 9550.07it/s]
Generating channels: 28%|██▊ | 36682/131931 [00:06<00:10, 9283.51it/s]
Generating channels: 29%|██▊ | 37682/131931 [00:06<00:09, 9489.42it/s]
Generating channels: 29%|██▉ | 38644/131931 [00:06<00:09, 9521.85it/s]
Generating channels: 30%|███ | 39599/131931 [00:06<00:09, 9523.88it/s]
Generating channels: 31%|███ | 40553/131931 [00:06<00:09, 9439.91it/s]
Generating channels: 31%|███▏ | 41498/131931 [00:06<00:10, 9038.32it/s]
Generating channels: 32%|███▏ | 42406/131931 [00:06<00:10, 8808.52it/s]
Generating channels: 33%|███▎ | 43291/131931 [00:06<00:10, 8573.31it/s]
Generating channels: 33%|███▎ | 44152/131931 [00:06<00:10, 8288.97it/s]
Generating channels: 34%|███▍ | 44984/131931 [00:07<00:10, 7951.27it/s]
Generating channels: 35%|███▍ | 45783/131931 [00:07<00:11, 7650.36it/s]
Generating channels: 35%|███▌ | 46551/131931 [00:07<00:11, 7389.61it/s]
Generating channels: 36%|███▌ | 47293/131931 [00:07<00:11, 7213.97it/s]
Generating channels: 37%|███▋ | 48275/131931 [00:07<00:10, 7936.02it/s]
Generating channels: 37%|███▋ | 49307/131931 [00:07<00:09, 8611.66it/s]
Generating channels: 38%|███▊ | 50508/131931 [00:07<00:08, 9588.74it/s]
Generating channels: 39%|███▉ | 51626/131931 [00:07<00:07, 10051.32it/s]
Generating channels: 40%|████ | 52872/131931 [00:07<00:07, 10759.12it/s]
Generating channels: 41%|████ | 54012/131931 [00:07<00:07, 10946.13it/s]
Generating channels: 42%|████▏ | 55112/131931 [00:08<00:07, 10837.51it/s]
Generating channels: 43%|████▎ | 56200/131931 [00:08<00:07, 10325.21it/s]
Generating channels: 43%|████▎ | 57240/131931 [00:08<00:07, 10197.67it/s]
Generating channels: 44%|████▍ | 58265/131931 [00:08<00:07, 9689.34it/s]
Generating channels: 45%|████▍ | 59242/131931 [00:08<00:07, 9294.45it/s]
Generating channels: 46%|████▌ | 60178/131931 [00:08<00:07, 9056.03it/s]
Generating channels: 46%|████▋ | 61088/131931 [00:08<00:08, 8644.79it/s]
Generating channels: 47%|████▋ | 61958/131931 [00:08<00:08, 8307.32it/s]
Generating channels: 48%|████▊ | 62793/131931 [00:09<00:09, 7679.70it/s]
Generating channels: 48%|████▊ | 63570/131931 [00:09<00:09, 7223.17it/s]
Generating channels: 49%|████▊ | 64300/131931 [00:09<00:09, 6868.47it/s]
Generating channels: 49%|████▉ | 64996/131931 [00:09<00:09, 6889.08it/s]
Generating channels: 50%|████▉ | 65689/131931 [00:09<00:10, 6592.54it/s]
Generating channels: 50%|█████ | 66352/131931 [00:09<00:10, 6238.18it/s]
Generating channels: 51%|█████ | 66996/131931 [00:09<00:10, 6291.54it/s]
Generating channels: 51%|█████▏ | 67629/131931 [00:09<00:10, 5896.16it/s]
Generating channels: 52%|█████▏ | 68270/131931 [00:09<00:10, 6031.55it/s]
Generating channels: 52%|█████▏ | 68879/131931 [00:10<00:10, 5766.01it/s]
Generating channels: 53%|█████▎ | 69654/131931 [00:10<00:09, 6308.67it/s]
Generating channels: 53%|█████▎ | 70431/131931 [00:10<00:09, 6716.82it/s]
Generating channels: 54%|█████▍ | 71111/131931 [00:10<00:09, 6250.79it/s]
Generating channels: 54%|█████▍ | 71748/131931 [00:10<00:09, 6256.32it/s]
Generating channels: 55%|█████▍ | 72382/131931 [00:10<00:09, 6150.91it/s]
Generating channels: 55%|█████▌ | 73003/131931 [00:10<00:09, 6140.15it/s]
Generating channels: 56%|█████▌ | 73621/131931 [00:10<00:09, 6138.33it/s]
Generating channels: 56%|█████▋ | 74305/131931 [00:10<00:09, 6338.18it/s]
Generating channels: 57%|█████▋ | 74996/131931 [00:10<00:08, 6502.52it/s]
Generating channels: 57%|█████▋ | 75774/131931 [00:11<00:08, 6876.69it/s]
Generating channels: 58%|█████▊ | 76724/131931 [00:11<00:07, 7651.48it/s]
Generating channels: 59%|█████▉ | 77691/131931 [00:11<00:06, 8251.54it/s]
Generating channels: 60%|█████▉ | 78519/131931 [00:11<00:07, 7481.02it/s]
Generating channels: 60%|██████ | 79283/131931 [00:11<00:07, 7285.25it/s]
Generating channels: 61%|██████ | 80023/131931 [00:11<00:07, 7109.59it/s]
Generating channels: 61%|██████ | 80742/131931 [00:11<00:07, 6945.02it/s]
Generating channels: 62%|██████▏ | 81481/131931 [00:11<00:07, 7065.85it/s]
Generating channels: 62%|██████▏ | 82232/131931 [00:11<00:06, 7188.47it/s]
Generating channels: 63%|██████▎ | 82968/131931 [00:12<00:06, 7234.05it/s]
Generating channels: 63%|██████▎ | 83695/131931 [00:12<00:06, 7064.46it/s]
Generating channels: 64%|██████▍ | 84404/131931 [00:12<00:06, 7053.02it/s]
Generating channels: 65%|██████▍ | 85172/131931 [00:12<00:06, 7231.38it/s]
Generating channels: 65%|██████▌ | 85953/131931 [00:12<00:06, 7400.26it/s]
Generating channels: 66%|██████▌ | 86695/131931 [00:12<00:06, 7055.35it/s]
Generating channels: 66%|██████▋ | 87405/131931 [00:12<00:06, 6915.01it/s]
Generating channels: 67%|██████▋ | 88100/131931 [00:12<00:06, 6779.56it/s]
Generating channels: 67%|██████▋ | 88830/131931 [00:12<00:06, 6927.28it/s]
Generating channels: 68%|██████▊ | 89536/131931 [00:13<00:06, 6961.53it/s]
Generating channels: 68%|██████▊ | 90234/131931 [00:13<00:06, 6772.71it/s]
Generating channels: 69%|██████▉ | 90914/131931 [00:13<00:06, 6608.04it/s]
Generating channels: 69%|██████▉ | 91577/131931 [00:13<00:06, 6462.88it/s]
Generating channels: 70%|██████▉ | 92225/131931 [00:13<00:06, 5857.25it/s]
Generating channels: 70%|███████ | 92825/131931 [00:13<00:06, 5893.73it/s]
Generating channels: 71%|███████ | 93422/131931 [00:13<00:06, 5708.73it/s]
Generating channels: 71%|███████▏ | 94027/131931 [00:13<00:06, 5802.80it/s]
Generating channels: 72%|███████▏ | 94612/131931 [00:13<00:06, 5612.65it/s]
Generating channels: 72%|███████▏ | 95210/131931 [00:13<00:06, 5713.22it/s]
Generating channels: 73%|███████▎ | 95785/131931 [00:14<00:06, 5530.16it/s]
Generating channels: 73%|███████▎ | 96341/131931 [00:14<00:06, 5424.70it/s]
Generating channels: 73%|███████▎ | 96886/131931 [00:14<00:06, 5371.12it/s]
Generating channels: 74%|███████▍ | 97425/131931 [00:14<00:06, 5021.99it/s]
Generating channels: 74%|███████▍ | 97932/131931 [00:14<00:07, 4815.59it/s]
Generating channels: 75%|███████▍ | 98418/131931 [00:14<00:07, 4679.99it/s]
Generating channels: 75%|███████▍ | 98889/131931 [00:14<00:07, 4582.80it/s]
Generating channels: 75%|███████▌ | 99349/131931 [00:14<00:07, 4517.21it/s]
Generating channels: 76%|███████▌ | 99802/131931 [00:14<00:07, 4468.05it/s]
Generating channels: 76%|███████▌ | 100250/131931 [00:15<00:07, 4425.51it/s]
Generating channels: 76%|███████▋ | 100693/131931 [00:15<00:07, 4403.97it/s]
Generating channels: 77%|███████▋ | 101134/131931 [00:15<00:07, 4397.78it/s]
Generating channels: 77%|███████▋ | 101574/131931 [00:15<00:06, 4352.89it/s]
Generating channels: 77%|███████▋ | 102010/131931 [00:15<00:06, 4291.50it/s]
Generating channels: 78%|███████▊ | 102440/131931 [00:15<00:06, 4249.71it/s]
Generating channels: 78%|███████▊ | 102866/131931 [00:15<00:06, 4251.67it/s]
Generating channels: 78%|███████▊ | 103292/131931 [00:15<00:06, 4213.56it/s]
Generating channels: 79%|███████▊ | 103714/131931 [00:15<00:06, 4183.01it/s]
Generating channels: 79%|███████▉ | 104154/131931 [00:16<00:06, 4246.34it/s]
Generating channels: 79%|███████▉ | 104589/131931 [00:16<00:06, 4275.50it/s]
Generating channels: 80%|███████▉ | 105023/131931 [00:16<00:06, 4293.88it/s]
Generating channels: 80%|███████▉ | 105458/131931 [00:16<00:06, 4310.51it/s]
Generating channels: 80%|████████ | 105890/131931 [00:16<00:06, 4310.56it/s]
Generating channels: 81%|████████ | 106330/131931 [00:16<00:05, 4335.85it/s]
Generating channels: 81%|████████ | 106773/131931 [00:16<00:05, 4361.75it/s]
Generating channels: 81%|████████▏ | 107240/131931 [00:16<00:05, 4453.09it/s]
Generating channels: 82%|████████▏ | 107724/131931 [00:16<00:05, 4567.50it/s]
Generating channels: 82%|████████▏ | 108232/131931 [00:16<00:05, 4718.70it/s]
Generating channels: 82%|████████▏ | 108839/131931 [00:17<00:04, 5122.11it/s]
Generating channels: 83%|████████▎ | 109471/131931 [00:17<00:04, 5479.85it/s]
Generating channels: 83%|████████▎ | 110114/131931 [00:17<00:03, 5761.28it/s]
Generating channels: 84%|████████▍ | 110821/131931 [00:17<00:03, 6152.59it/s]
Generating channels: 85%|████████▍ | 111502/131931 [00:17<00:03, 6347.41it/s]
Generating channels: 85%|████████▌ | 112346/131931 [00:17<00:02, 6970.74it/s]
Generating channels: 86%|████████▌ | 113177/131931 [00:17<00:02, 7371.06it/s]
Generating channels: 87%|████████▋ | 114204/131931 [00:17<00:02, 8238.69it/s]
Generating channels: 87%|████████▋ | 115192/131931 [00:17<00:01, 8727.89it/s]
Generating channels: 88%|████████▊ | 116161/131931 [00:17<00:01, 9013.16it/s]
Generating channels: 89%|████████▉ | 117136/131931 [00:18<00:01, 9228.99it/s]
Generating channels: 89%|████████▉ | 118076/131931 [00:18<00:01, 9275.38it/s]
Generating channels: 90%|█████████ | 119004/131931 [00:18<00:01, 9080.62it/s]
Generating channels: 91%|█████████ | 119913/131931 [00:18<00:01, 8851.07it/s]
Generating channels: 92%|█████████▏| 120800/131931 [00:18<00:01, 8566.68it/s]
Generating channels: 92%|█████████▏| 121660/131931 [00:18<00:01, 8332.45it/s]
Generating channels: 93%|█████████▎| 122496/131931 [00:18<00:01, 8227.65it/s]
Generating channels: 93%|█████████▎| 123321/131931 [00:18<00:01, 8123.49it/s]
Generating channels: 94%|█████████▍| 124135/131931 [00:18<00:00, 8067.20it/s]
Generating channels: 95%|█████████▍| 124947/131931 [00:18<00:00, 8078.67it/s]
Generating channels: 95%|█████████▌| 125756/131931 [00:19<00:00, 8059.32it/s]
Generating channels: 96%|█████████▌| 126563/131931 [00:19<00:00, 8059.46it/s]
Generating channels: 97%|█████████▋| 127415/131931 [00:19<00:00, 8191.91it/s]
Generating channels: 97%|█████████▋| 128235/131931 [00:19<00:00, 8174.96it/s]
Generating channels: 98%|█████████▊| 129312/131931 [00:19<00:00, 8942.10it/s]
Generating channels: 99%|█████████▉| 130536/131931 [00:19<00:00, 9924.03it/s]
Generating channels: 100%|█████████▉| 131596/131931 [00:19<00:00, 10121.52it/s]
Generating channels: 100%|██████████| 131931/131931 [00:19<00:00, 6699.66it/s]
Sampled frequency domain channel shape: (131931, 2, 16, 128)
Antenna Rotation¶
Adjust antenna orientations to simulate different deployment scenarios.
Azimuth Rotation¶
In [13]:
Copied!
# Rotate BS antennas in azimuth
ch_params.bs_antenna.rotation = [45, 0, 0] # 45° azimuth rotation
dataset.compute_channels(ch_params)
rotated_channels = dataset.channel
print(f"Channels with rotated BS antennas shape: {rotated_channels.shape}")
# Rotate BS antennas in azimuth
ch_params.bs_antenna.rotation = [45, 0, 0] # 45° azimuth rotation
dataset.compute_channels(ch_params)
rotated_channels = dataset.channel
print(f"Channels with rotated BS antennas shape: {rotated_channels.shape}")
Generating channels: 0%| | 0/131931 [00:00<?, ?it/s]
Generating channels: 1%| | 1164/131931 [00:00<00:11, 11631.83it/s]
Generating channels: 2%|▏ | 2328/131931 [00:00<00:11, 11081.73it/s]
Generating channels: 3%|▎ | 3438/131931 [00:00<00:13, 9268.46it/s]
Generating channels: 3%|▎ | 4393/131931 [00:00<00:15, 8408.26it/s]
Generating channels: 4%|▍ | 5255/131931 [00:00<00:17, 7259.10it/s]
Generating channels: 5%|▍ | 6008/131931 [00:00<00:18, 6646.35it/s]
Generating channels: 5%|▌ | 6691/131931 [00:00<00:20, 6094.03it/s]
Generating channels: 6%|▌ | 7313/131931 [00:01<00:22, 5639.17it/s]
Generating channels: 6%|▌ | 7885/131931 [00:01<00:23, 5291.49it/s]
Generating channels: 6%|▋ | 8418/131931 [00:01<00:24, 5103.88it/s]
Generating channels: 7%|▋ | 8929/131931 [00:01<00:24, 4959.96it/s]
Generating channels: 7%|▋ | 9424/131931 [00:01<00:25, 4865.67it/s]
Generating channels: 8%|▊ | 9909/131931 [00:01<00:25, 4850.95it/s]
Generating channels: 8%|▊ | 10393/131931 [00:01<00:25, 4772.66it/s]
Generating channels: 8%|▊ | 10869/131931 [00:01<00:25, 4727.08it/s]
Generating channels: 9%|▊ | 11341/131931 [00:01<00:26, 4616.06it/s]
Generating channels: 9%|▉ | 11802/131931 [00:02<00:26, 4495.85it/s]
Generating channels: 9%|▉ | 12252/131931 [00:02<00:27, 4378.78it/s]
Generating channels: 10%|▉ | 12690/131931 [00:02<00:27, 4334.26it/s]
Generating channels: 10%|▉ | 13125/131931 [00:02<00:27, 4338.30it/s]
Generating channels: 10%|█ | 13559/131931 [00:02<00:27, 4317.18it/s]
Generating channels: 11%|█ | 13993/131931 [00:02<00:27, 4323.22it/s]
Generating channels: 11%|█ | 14426/131931 [00:02<00:27, 4218.49it/s]
Generating channels: 11%|█▏ | 14849/131931 [00:02<00:27, 4220.63it/s]
Generating channels: 12%|█▏ | 15275/131931 [00:02<00:27, 4230.35it/s]
Generating channels: 12%|█▏ | 15710/131931 [00:02<00:27, 4264.94it/s]
Generating channels: 12%|█▏ | 16144/131931 [00:03<00:27, 4284.62it/s]
Generating channels: 13%|█▎ | 16573/131931 [00:03<00:27, 4268.25it/s]
Generating channels: 13%|█▎ | 17006/131931 [00:03<00:26, 4286.26it/s]
Generating channels: 13%|█▎ | 17458/131931 [00:03<00:26, 4354.37it/s]
Generating channels: 14%|█▎ | 17912/131931 [00:03<00:25, 4409.73it/s]
Generating channels: 14%|█▍ | 18370/131931 [00:03<00:25, 4457.89it/s]
Generating channels: 14%|█▍ | 18829/131931 [00:03<00:25, 4496.07it/s]
Generating channels: 15%|█▍ | 19290/131931 [00:03<00:24, 4527.98it/s]
Generating channels: 15%|█▍ | 19752/131931 [00:03<00:24, 4552.56it/s]
Generating channels: 15%|█▌ | 20361/131931 [00:03<00:22, 5010.43it/s]
Generating channels: 16%|█▌ | 20891/131931 [00:04<00:21, 5097.05it/s]
Generating channels: 16%|█▋ | 21486/131931 [00:04<00:20, 5352.00it/s]
Generating channels: 17%|█▋ | 22026/131931 [00:04<00:20, 5363.07it/s]
Generating channels: 17%|█▋ | 22568/131931 [00:04<00:20, 5378.31it/s]
Generating channels: 18%|█▊ | 23205/131931 [00:04<00:19, 5673.92it/s]
Generating channels: 18%|█▊ | 23799/131931 [00:04<00:18, 5753.64it/s]
Generating channels: 19%|█▊ | 24524/131931 [00:04<00:17, 6201.95it/s]
Generating channels: 19%|█▉ | 25257/131931 [00:04<00:16, 6535.92it/s]
Generating channels: 20%|█▉ | 26056/131931 [00:04<00:15, 6970.90it/s]
Generating channels: 20%|██ | 26866/131931 [00:04<00:14, 7307.81it/s]
Generating channels: 21%|██ | 27683/131931 [00:05<00:13, 7563.60it/s]
Generating channels: 22%|██▏ | 28440/131931 [00:05<00:14, 7391.70it/s]
Generating channels: 22%|██▏ | 29227/131931 [00:05<00:13, 7529.31it/s]
Generating channels: 23%|██▎ | 30047/131931 [00:05<00:13, 7724.71it/s]
Generating channels: 23%|██▎ | 30895/131931 [00:05<00:12, 7946.23it/s]
Generating channels: 24%|██▍ | 31900/131931 [00:05<00:11, 8567.55it/s]
Generating channels: 25%|██▍ | 32904/131931 [00:05<00:10, 9005.25it/s]
Generating channels: 26%|██▌ | 33959/131931 [00:05<00:10, 9462.89it/s]
Generating channels: 26%|██▋ | 34960/131931 [00:05<00:10, 9620.34it/s]
Generating channels: 27%|██▋ | 35931/131931 [00:05<00:09, 9645.21it/s]
Generating channels: 28%|██▊ | 36896/131931 [00:06<00:09, 9542.16it/s]
Generating channels: 29%|██▊ | 37851/131931 [00:06<00:10, 9108.98it/s]
Generating channels: 29%|██▉ | 38911/131931 [00:06<00:09, 9532.51it/s]
Generating channels: 30%|███ | 39869/131931 [00:06<00:09, 9451.37it/s]
Generating channels: 31%|███ | 40869/131931 [00:06<00:09, 9606.84it/s]
Generating channels: 32%|███▏ | 41833/131931 [00:06<00:09, 9184.13it/s]
Generating channels: 32%|███▏ | 42757/131931 [00:06<00:10, 8385.18it/s]
Generating channels: 33%|███▎ | 43611/131931 [00:06<00:11, 7992.56it/s]
Generating channels: 34%|███▎ | 44422/131931 [00:06<00:11, 7741.50it/s]
Generating channels: 34%|███▍ | 45204/131931 [00:07<00:11, 7548.03it/s]
Generating channels: 35%|███▍ | 45964/131931 [00:07<00:11, 7459.16it/s]
Generating channels: 35%|███▌ | 46723/131931 [00:07<00:11, 7491.88it/s]
Generating channels: 36%|███▌ | 47475/131931 [00:07<00:11, 7494.80it/s]
Generating channels: 37%|███▋ | 48362/131931 [00:07<00:10, 7890.81it/s]
Generating channels: 38%|███▊ | 49497/131931 [00:07<00:09, 8900.21it/s]
Generating channels: 38%|███▊ | 50584/131931 [00:07<00:08, 9477.62it/s]
Generating channels: 39%|███▉ | 51794/131931 [00:07<00:07, 10248.14it/s]
Generating channels: 40%|████ | 53035/131931 [00:07<00:07, 10889.59it/s]
Generating channels: 41%|████ | 54254/131931 [00:07<00:06, 11273.14it/s]
Generating channels: 42%|████▏ | 55384/131931 [00:08<00:07, 10479.31it/s]
Generating channels: 43%|████▎ | 56445/131931 [00:08<00:07, 10241.98it/s]
Generating channels: 44%|████▎ | 57479/131931 [00:08<00:07, 10057.61it/s]
Generating channels: 44%|████▍ | 58492/131931 [00:08<00:07, 9660.38it/s]
Generating channels: 45%|████▌ | 59465/131931 [00:08<00:07, 9277.96it/s]
Generating channels: 46%|████▌ | 60399/131931 [00:08<00:07, 8957.13it/s]
Generating channels: 46%|████▋ | 61299/131931 [00:08<00:08, 8827.50it/s]
Generating channels: 47%|████▋ | 62185/131931 [00:08<00:08, 7794.11it/s]
Generating channels: 48%|████▊ | 62985/131931 [00:09<00:09, 7393.58it/s]
Generating channels: 48%|████▊ | 63739/131931 [00:09<00:09, 7230.08it/s]
Generating channels: 49%|████▉ | 64471/131931 [00:09<00:09, 7110.28it/s]
Generating channels: 49%|████▉ | 65188/131931 [00:09<00:10, 6637.85it/s]
Generating channels: 50%|████▉ | 65859/131931 [00:09<00:10, 6509.91it/s]
Generating channels: 50%|█████ | 66514/131931 [00:09<00:10, 6360.70it/s]
Generating channels: 51%|█████ | 67153/131931 [00:09<00:10, 6100.79it/s]
Generating channels: 51%|█████▏ | 67784/131931 [00:09<00:10, 6157.38it/s]
Generating channels: 52%|█████▏ | 68402/131931 [00:09<00:10, 5870.26it/s]
Generating channels: 52%|█████▏ | 69014/131931 [00:10<00:10, 5935.65it/s]
Generating channels: 53%|█████▎ | 69720/131931 [00:10<00:09, 6252.77it/s]
Generating channels: 53%|█████▎ | 70484/131931 [00:10<00:09, 6650.88it/s]
Generating channels: 54%|█████▍ | 71154/131931 [00:10<00:09, 6403.66it/s]
Generating channels: 54%|█████▍ | 71799/131931 [00:10<00:09, 6244.06it/s]
Generating channels: 55%|█████▍ | 72456/131931 [00:10<00:09, 6335.93it/s]
Generating channels: 55%|█████▌ | 73093/131931 [00:10<00:09, 6032.48it/s]
Generating channels: 56%|█████▌ | 73757/131931 [00:10<00:09, 6200.82it/s]
Generating channels: 56%|█████▋ | 74382/131931 [00:10<00:09, 6048.49it/s]
Generating channels: 57%|█████▋ | 75090/131931 [00:11<00:08, 6341.01it/s]
Generating channels: 58%|█████▊ | 75880/131931 [00:11<00:08, 6789.78it/s]
Generating channels: 58%|█████▊ | 76832/131931 [00:11<00:07, 7585.90it/s]
Generating channels: 59%|█████▉ | 77700/131931 [00:11<00:06, 7905.88it/s]
Generating channels: 59%|█████▉ | 78495/131931 [00:11<00:07, 7520.04it/s]
Generating channels: 60%|██████ | 79254/131931 [00:11<00:07, 7420.97it/s]
Generating channels: 61%|██████ | 80001/131931 [00:11<00:07, 7141.54it/s]
Generating channels: 61%|██████ | 80720/131931 [00:11<00:07, 6996.49it/s]
Generating channels: 62%|██████▏ | 81469/131931 [00:11<00:07, 7133.38it/s]
Generating channels: 62%|██████▏ | 82220/131931 [00:11<00:06, 7237.10it/s]
Generating channels: 63%|██████▎ | 82958/131931 [00:12<00:06, 7278.09it/s]
Generating channels: 63%|██████▎ | 83688/131931 [00:12<00:06, 7085.42it/s]
Generating channels: 64%|██████▍ | 84399/131931 [00:12<00:06, 7077.37it/s]
Generating channels: 65%|██████▍ | 85176/131931 [00:12<00:06, 7278.67it/s]
Generating channels: 65%|██████▌ | 85955/131931 [00:12<00:06, 7424.50it/s]
Generating channels: 66%|██████▌ | 86699/131931 [00:12<00:06, 7222.50it/s]
Generating channels: 66%|██████▋ | 87424/131931 [00:12<00:06, 7037.29it/s]
Generating channels: 67%|██████▋ | 88130/131931 [00:12<00:06, 6820.43it/s]
Generating channels: 67%|██████▋ | 88857/131931 [00:12<00:06, 6946.85it/s]
Generating channels: 68%|██████▊ | 89560/131931 [00:12<00:06, 6967.18it/s]
Generating channels: 68%|██████▊ | 90259/131931 [00:13<00:06, 6781.55it/s]
Generating channels: 69%|██████▉ | 90939/131931 [00:13<00:06, 6455.67it/s]
Generating channels: 69%|██████▉ | 91589/131931 [00:13<00:06, 6300.67it/s]
Generating channels: 70%|██████▉ | 92222/131931 [00:13<00:06, 5885.31it/s]
Generating channels: 70%|███████ | 92819/131931 [00:13<00:06, 5908.39it/s]
Generating channels: 71%|███████ | 93414/131931 [00:13<00:06, 5719.53it/s]
Generating channels: 71%|███████▏ | 94019/131931 [00:13<00:06, 5810.98it/s]
Generating channels: 72%|███████▏ | 94604/131931 [00:13<00:06, 5553.67it/s]
Generating channels: 72%|███████▏ | 95163/131931 [00:13<00:06, 5547.07it/s]
Generating channels: 73%|███████▎ | 95721/131931 [00:14<00:06, 5445.15it/s]
Generating channels: 73%|███████▎ | 96268/131931 [00:14<00:06, 5311.04it/s]
Generating channels: 73%|███████▎ | 96801/131931 [00:14<00:06, 5230.65it/s]
Generating channels: 74%|███████▍ | 97325/131931 [00:14<00:06, 5013.16it/s]
Generating channels: 74%|███████▍ | 97828/131931 [00:14<00:07, 4810.92it/s]
Generating channels: 75%|███████▍ | 98311/131931 [00:14<00:07, 4672.66it/s]
Generating channels: 75%|███████▍ | 98780/131931 [00:14<00:07, 4581.85it/s]
Generating channels: 75%|███████▌ | 99239/131931 [00:14<00:07, 4363.13it/s]
Generating channels: 76%|███████▌ | 99677/131931 [00:14<00:07, 4349.32it/s]
Generating channels: 76%|███████▌ | 100113/131931 [00:15<00:07, 4336.29it/s]
Generating channels: 76%|███████▌ | 100548/131931 [00:15<00:07, 4272.20it/s]
Generating channels: 77%|███████▋ | 100976/131931 [00:15<00:07, 4229.14it/s]
Generating channels: 77%|███████▋ | 101410/131931 [00:15<00:07, 4260.08it/s]
Generating channels: 77%|███████▋ | 101837/131931 [00:15<00:07, 4255.11it/s]
Generating channels: 78%|███████▊ | 102263/131931 [00:15<00:06, 4254.94it/s]
Generating channels: 78%|███████▊ | 102689/131931 [00:15<00:06, 4237.51it/s]
Generating channels: 78%|███████▊ | 103121/131931 [00:15<00:06, 4259.68it/s]
Generating channels: 78%|███████▊ | 103550/131931 [00:15<00:06, 4267.48it/s]
Generating channels: 79%|███████▉ | 103977/131931 [00:15<00:06, 4261.56it/s]
Generating channels: 79%|███████▉ | 104412/131931 [00:16<00:06, 4285.51it/s]
Generating channels: 79%|███████▉ | 104844/131931 [00:16<00:06, 4294.47it/s]
Generating channels: 80%|███████▉ | 105280/131931 [00:16<00:06, 4313.89it/s]
Generating channels: 80%|████████ | 105712/131931 [00:16<00:06, 4249.33it/s]
Generating channels: 80%|████████ | 106148/131931 [00:16<00:06, 4281.41it/s]
Generating channels: 81%|████████ | 106584/131931 [00:16<00:05, 4303.45it/s]
Generating channels: 81%|████████ | 107027/131931 [00:16<00:05, 4340.88it/s]
Generating channels: 82%|████████▏ | 107544/131931 [00:16<00:05, 4586.56it/s]
Generating channels: 82%|████████▏ | 108061/131931 [00:16<00:05, 4760.79it/s]
Generating channels: 82%|████████▏ | 108657/131931 [00:17<00:04, 5117.45it/s]
Generating channels: 83%|████████▎ | 109299/131931 [00:17<00:04, 5506.86it/s]
Generating channels: 83%|████████▎ | 110004/131931 [00:17<00:03, 5968.36it/s]
Generating channels: 84%|████████▍ | 110602/131931 [00:17<00:03, 5907.75it/s]
Generating channels: 84%|████████▍ | 111230/131931 [00:17<00:03, 6016.51it/s]
Generating channels: 85%|████████▍ | 112065/131931 [00:17<00:02, 6709.19it/s]
Generating channels: 86%|████████▌ | 112982/131931 [00:17<00:02, 7443.61it/s]
Generating channels: 86%|████████▋ | 113949/131931 [00:17<00:02, 8108.55it/s]
Generating channels: 87%|████████▋ | 114916/131931 [00:17<00:01, 8575.49it/s]
Generating channels: 88%|████████▊ | 115862/131931 [00:17<00:01, 8837.33it/s]
Generating channels: 89%|████████▊ | 116850/131931 [00:18<00:01, 9145.68it/s]
Generating channels: 89%|████████▉ | 117765/131931 [00:18<00:01, 9141.21it/s]
Generating channels: 90%|████████▉ | 118728/131931 [00:18<00:01, 9286.14it/s]
Generating channels: 91%|█████████ | 119657/131931 [00:18<00:01, 9017.32it/s]
Generating channels: 91%|█████████▏| 120561/131931 [00:18<00:01, 8460.41it/s]
Generating channels: 92%|█████████▏| 121415/131931 [00:18<00:01, 8128.95it/s]
Generating channels: 93%|█████████▎| 122235/131931 [00:18<00:01, 7976.91it/s]
Generating channels: 93%|█████████▎| 123048/131931 [00:18<00:01, 8015.05it/s]
Generating channels: 94%|█████████▍| 123967/131931 [00:18<00:00, 8348.42it/s]
Generating channels: 95%|█████████▍| 124806/131931 [00:18<00:00, 8190.47it/s]
Generating channels: 95%|█████████▌| 125628/131931 [00:19<00:00, 8172.20it/s]
Generating channels: 96%|█████████▌| 126448/131931 [00:19<00:00, 8152.30it/s]
Generating channels: 96%|█████████▋| 127281/131931 [00:19<00:00, 8200.75it/s]
Generating channels: 97%|█████████▋| 128103/131931 [00:19<00:00, 8203.88it/s]
Generating channels: 98%|█████████▊| 128998/131931 [00:19<00:00, 8424.75it/s]
Generating channels: 99%|█████████▊| 130135/131931 [00:19<00:00, 9298.19it/s]
Generating channels: 99%|█████████▉| 131196/131931 [00:19<00:00, 9683.86it/s]
Generating channels: 100%|██████████| 131931/131931 [00:19<00:00, 6685.52it/s]
Channels with rotated BS antennas shape: (131931, 2, 16, 128)
In [14]:
Copied!
# Compare power before and after rotation
ch_params.bs_antenna.rotation = [0, 0, 0]
dataset.compute_channels(ch_params)
channels_no_rot = dataset.channel
ch_params.bs_antenna.rotation = [90, 0, 0]
dataset.compute_channels(ch_params)
channels_rot = dataset.channel
power_no_rot = np.mean(np.abs(channels_no_rot[0:100]) ** 2)
power_rot = np.mean(np.abs(channels_rot[0:100]) ** 2)
print(f"Average power (no rotation): {power_no_rot:.6f}")
print(f"Average power (90° rotation): {power_rot:.6f}")
# Compare power before and after rotation
ch_params.bs_antenna.rotation = [0, 0, 0]
dataset.compute_channels(ch_params)
channels_no_rot = dataset.channel
ch_params.bs_antenna.rotation = [90, 0, 0]
dataset.compute_channels(ch_params)
channels_rot = dataset.channel
power_no_rot = np.mean(np.abs(channels_no_rot[0:100]) ** 2)
power_rot = np.mean(np.abs(channels_rot[0:100]) ** 2)
print(f"Average power (no rotation): {power_no_rot:.6f}")
print(f"Average power (90° rotation): {power_rot:.6f}")
Generating channels: 0%| | 0/131931 [00:00<?, ?it/s]
Generating channels: 1%| | 1104/131931 [00:00<00:11, 11018.42it/s]
Generating channels: 2%|▏ | 2206/131931 [00:00<00:12, 10553.87it/s]
Generating channels: 2%|▏ | 3263/131931 [00:00<00:13, 9231.11it/s]
Generating channels: 3%|▎ | 4202/131931 [00:00<00:15, 8350.72it/s]
Generating channels: 4%|▍ | 5053/131931 [00:00<00:17, 7387.59it/s]
Generating channels: 4%|▍ | 5811/131931 [00:00<00:18, 6665.77it/s]
Generating channels: 5%|▍ | 6494/131931 [00:00<00:20, 6162.94it/s]
Generating channels: 5%|▌ | 7121/131931 [00:01<00:21, 5701.31it/s]
Generating channels: 6%|▌ | 7699/131931 [00:01<00:23, 5377.05it/s]
Generating channels: 6%|▌ | 8241/131931 [00:01<00:23, 5213.11it/s]
Generating channels: 7%|▋ | 8763/131931 [00:01<00:24, 5045.35it/s]
Generating channels: 7%|▋ | 9267/131931 [00:01<00:24, 4947.70it/s]
Generating channels: 7%|▋ | 9761/131931 [00:01<00:25, 4840.51it/s]
Generating channels: 8%|▊ | 10244/131931 [00:01<00:25, 4781.17it/s]
Generating channels: 8%|▊ | 10721/131931 [00:01<00:25, 4771.49it/s]
Generating channels: 8%|▊ | 11197/131931 [00:01<00:25, 4672.12it/s]
Generating channels: 9%|▉ | 11664/131931 [00:02<00:26, 4594.08it/s]
Generating channels: 9%|▉ | 12123/131931 [00:02<00:27, 4429.61it/s]
Generating channels: 10%|▉ | 12567/131931 [00:02<00:27, 4342.69it/s]
Generating channels: 10%|▉ | 13002/131931 [00:02<00:28, 4181.98it/s]
Generating channels: 10%|█ | 13435/131931 [00:02<00:28, 4223.43it/s]
Generating channels: 11%|█ | 13866/131931 [00:02<00:27, 4248.13it/s]
Generating channels: 11%|█ | 14296/131931 [00:02<00:27, 4262.06it/s]
Generating channels: 11%|█ | 14734/131931 [00:02<00:27, 4295.05it/s]
Generating channels: 11%|█▏ | 15164/131931 [00:02<00:27, 4292.12it/s]
Generating channels: 12%|█▏ | 15595/131931 [00:02<00:27, 4295.02it/s]
Generating channels: 12%|█▏ | 16029/131931 [00:03<00:26, 4307.60it/s]
Generating channels: 12%|█▏ | 16462/131931 [00:03<00:26, 4311.53it/s]
Generating channels: 13%|█▎ | 16895/131931 [00:03<00:26, 4316.47it/s]
Generating channels: 13%|█▎ | 17330/131931 [00:03<00:26, 4324.42it/s]
Generating channels: 13%|█▎ | 17784/131931 [00:03<00:26, 4387.00it/s]
Generating channels: 14%|█▍ | 18258/131931 [00:03<00:25, 4491.97it/s]
Generating channels: 14%|█▍ | 18713/131931 [00:03<00:25, 4506.58it/s]
Generating channels: 15%|█▍ | 19179/131931 [00:03<00:24, 4550.44it/s]
Generating channels: 15%|█▍ | 19638/131931 [00:03<00:24, 4559.43it/s]
Generating channels: 15%|█▌ | 20135/131931 [00:03<00:23, 4679.44it/s]
Generating channels: 16%|█▌ | 20734/131931 [00:04<00:21, 5071.61it/s]
Generating channels: 16%|█▌ | 21264/131931 [00:04<00:21, 5136.97it/s]
Generating channels: 17%|█▋ | 21795/131931 [00:04<00:21, 5186.47it/s]
Generating channels: 17%|█▋ | 22414/131931 [00:04<00:19, 5486.38it/s]
Generating channels: 17%|█▋ | 22963/131931 [00:04<00:20, 5378.47it/s]
Generating channels: 18%|█▊ | 23602/131931 [00:04<00:19, 5674.57it/s]
Generating channels: 18%|█▊ | 24239/131931 [00:04<00:18, 5878.74it/s]
Generating channels: 19%|█▉ | 25040/131931 [00:04<00:16, 6512.60it/s]
Generating channels: 20%|█▉ | 25835/131931 [00:04<00:15, 6940.27it/s]
Generating channels: 20%|██ | 26645/131931 [00:04<00:14, 7284.01it/s]
Generating channels: 21%|██ | 27405/131931 [00:05<00:14, 7376.26it/s]
Generating channels: 21%|██▏ | 28217/131931 [00:05<00:13, 7597.37it/s]
Generating channels: 22%|██▏ | 28978/131931 [00:05<00:14, 7332.31it/s]
Generating channels: 23%|██▎ | 29778/131931 [00:05<00:13, 7523.80it/s]
Generating channels: 23%|██▎ | 30669/131931 [00:05<00:12, 7927.88it/s]
Generating channels: 24%|██▍ | 31628/131931 [00:05<00:11, 8414.22it/s]
Generating channels: 25%|██▍ | 32630/131931 [00:05<00:11, 8890.12it/s]
Generating channels: 26%|██▌ | 33685/131931 [00:05<00:10, 9382.03it/s]
Generating channels: 26%|██▋ | 34688/131931 [00:05<00:10, 9570.49it/s]
Generating channels: 27%|██▋ | 35701/131931 [00:05<00:09, 9734.25it/s]
Generating channels: 28%|██▊ | 36676/131931 [00:06<00:10, 9052.68it/s]
Generating channels: 29%|██▊ | 37680/131931 [00:06<00:10, 9330.55it/s]
Generating channels: 29%|██▉ | 38637/131931 [00:06<00:09, 9395.81it/s]
Generating channels: 30%|███ | 39643/131931 [00:06<00:09, 9589.49it/s]
Generating channels: 31%|███ | 40607/131931 [00:06<00:09, 9531.15it/s]
Generating channels: 32%|███▏ | 41564/131931 [00:06<00:10, 8987.39it/s]
Generating channels: 32%|███▏ | 42471/131931 [00:06<00:10, 8767.90it/s]
Generating channels: 33%|███▎ | 43354/131931 [00:06<00:10, 8365.65it/s]
Generating channels: 34%|███▎ | 44197/131931 [00:06<00:10, 8025.12it/s]
Generating channels: 34%|███▍ | 45005/131931 [00:07<00:11, 7669.46it/s]
Generating channels: 35%|███▍ | 45777/131931 [00:07<00:11, 7568.31it/s]
Generating channels: 35%|███▌ | 46537/131931 [00:07<00:11, 7346.91it/s]
Generating channels: 36%|███▌ | 47274/131931 [00:07<00:11, 7264.71it/s]
Generating channels: 36%|███▋ | 48107/131931 [00:07<00:11, 7562.88it/s]
Generating channels: 37%|███▋ | 49285/131931 [00:07<00:09, 8770.83it/s]
Generating channels: 38%|███▊ | 50410/131931 [00:07<00:08, 9485.32it/s]
Generating channels: 39%|███▉ | 51638/131931 [00:07<00:07, 10302.57it/s]
Generating channels: 40%|████ | 52878/131931 [00:07<00:07, 10920.66it/s]
Generating channels: 41%|████ | 54097/131931 [00:07<00:06, 11289.55it/s]
Generating channels: 42%|████▏ | 55231/131931 [00:08<00:06, 11030.73it/s]
Generating channels: 43%|████▎ | 56339/131931 [00:08<00:07, 10526.82it/s]
Generating channels: 44%|████▎ | 57399/131931 [00:08<00:07, 10124.12it/s]
Generating channels: 44%|████▍ | 58419/131931 [00:08<00:07, 9954.76it/s]
Generating channels: 45%|████▌ | 59419/131931 [00:08<00:07, 9563.62it/s]
Generating channels: 46%|████▌ | 60380/131931 [00:08<00:07, 9240.92it/s]
Generating channels: 46%|████▋ | 61308/131931 [00:08<00:07, 9051.63it/s]
Generating channels: 47%|████▋ | 62216/131931 [00:08<00:08, 8071.71it/s]
Generating channels: 48%|████▊ | 63041/131931 [00:09<00:09, 7583.96it/s]
Generating channels: 48%|████▊ | 63814/131931 [00:09<00:09, 7300.36it/s]
Generating channels: 49%|████▉ | 64553/131931 [00:09<00:09, 7215.29it/s]
Generating channels: 49%|████▉ | 65280/131931 [00:09<00:09, 6941.49it/s]
Generating channels: 50%|█████ | 65978/131931 [00:09<00:10, 6365.39it/s]
Generating channels: 50%|█████ | 66623/131931 [00:09<00:10, 6293.39it/s]
Generating channels: 51%|█████ | 67258/131931 [00:09<00:10, 5980.79it/s]
Generating channels: 51%|█████▏ | 67875/131931 [00:09<00:10, 6028.28it/s]
Generating channels: 52%|█████▏ | 68482/131931 [00:09<00:11, 5761.00it/s]
Generating channels: 52%|█████▏ | 69062/131931 [00:10<00:11, 5711.06it/s]
Generating channels: 53%|█████▎ | 69831/131931 [00:10<00:09, 6258.88it/s]
Generating channels: 53%|█████▎ | 70536/131931 [00:10<00:09, 6481.15it/s]
Generating channels: 54%|█████▍ | 71190/131931 [00:10<00:09, 6454.39it/s]
Generating channels: 54%|█████▍ | 71839/131931 [00:10<00:09, 6177.15it/s]
Generating channels: 55%|█████▍ | 72487/131931 [00:10<00:09, 6262.21it/s]
Generating channels: 55%|█████▌ | 73117/131931 [00:10<00:09, 5902.89it/s]
Generating channels: 56%|█████▌ | 73827/131931 [00:10<00:09, 6237.45it/s]
Generating channels: 56%|█████▋ | 74458/131931 [00:10<00:09, 6243.04it/s]
Generating channels: 57%|█████▋ | 75106/131931 [00:11<00:09, 6308.14it/s]
Generating channels: 58%|█████▊ | 75880/131931 [00:11<00:08, 6726.30it/s]
Generating channels: 58%|█████▊ | 76843/131931 [00:11<00:07, 7580.69it/s]
Generating channels: 59%|█████▉ | 77761/131931 [00:11<00:06, 8051.70it/s]
Generating channels: 60%|█████▉ | 78570/131931 [00:11<00:06, 7660.34it/s]
Generating channels: 60%|██████ | 79343/131931 [00:11<00:07, 7441.89it/s]
Generating channels: 61%|██████ | 80093/131931 [00:11<00:07, 7319.03it/s]
Generating channels: 61%|██████▏ | 80829/131931 [00:11<00:07, 7113.16it/s]
Generating channels: 62%|██████▏ | 81544/131931 [00:11<00:07, 6688.99it/s]
Generating channels: 62%|██████▏ | 82295/131931 [00:11<00:07, 6912.87it/s]
Generating channels: 63%|██████▎ | 83054/131931 [00:12<00:06, 7101.43it/s]
Generating channels: 64%|██████▎ | 83805/131931 [00:12<00:06, 7218.55it/s]
Generating channels: 64%|██████▍ | 84532/131931 [00:12<00:06, 7110.33it/s]
Generating channels: 65%|██████▍ | 85247/131931 [00:12<00:06, 7068.58it/s]
Generating channels: 65%|██████▌ | 86028/131931 [00:12<00:06, 7281.52it/s]
Generating channels: 66%|██████▌ | 86759/131931 [00:12<00:06, 7207.81it/s]
Generating channels: 66%|██████▋ | 87482/131931 [00:12<00:06, 7061.50it/s]
Generating channels: 67%|██████▋ | 88190/131931 [00:12<00:06, 6630.35it/s]
Generating channels: 67%|██████▋ | 88859/131931 [00:12<00:06, 6563.29it/s]
Generating channels: 68%|██████▊ | 89566/131931 [00:13<00:06, 6704.18it/s]
Generating channels: 68%|██████▊ | 90240/131931 [00:13<00:06, 6675.77it/s]
Generating channels: 69%|██████▉ | 90910/131931 [00:13<00:06, 6544.26it/s]
Generating channels: 69%|██████▉ | 91567/131931 [00:13<00:06, 6440.67it/s]
Generating channels: 70%|██████▉ | 92213/131931 [00:13<00:06, 6015.62it/s]
Generating channels: 70%|███████ | 92821/131931 [00:13<00:06, 6010.49it/s]
Generating channels: 71%|███████ | 93426/131931 [00:13<00:06, 5785.70it/s]
Generating channels: 71%|███████▏ | 94031/131931 [00:13<00:06, 5856.74it/s]
Generating channels: 72%|███████▏ | 94620/131931 [00:13<00:06, 5628.36it/s]
Generating channels: 72%|███████▏ | 95219/131931 [00:13<00:06, 5727.25it/s]
Generating channels: 73%|███████▎ | 95795/131931 [00:14<00:06, 5553.47it/s]
Generating channels: 73%|███████▎ | 96353/131931 [00:14<00:06, 5463.61it/s]
Generating channels: 73%|███████▎ | 96902/131931 [00:14<00:06, 5378.15it/s]
Generating channels: 74%|███████▍ | 97441/131931 [00:14<00:06, 4993.77it/s]
Generating channels: 74%|███████▍ | 97946/131931 [00:14<00:07, 4807.88it/s]
Generating channels: 75%|███████▍ | 98431/131931 [00:14<00:07, 4588.97it/s]
Generating channels: 75%|███████▍ | 98894/131931 [00:14<00:07, 4519.32it/s]
Generating channels: 75%|███████▌ | 99348/131931 [00:14<00:07, 4313.34it/s]
Generating channels: 76%|███████▌ | 99784/131931 [00:15<00:07, 4325.66it/s]
Generating channels: 76%|███████▌ | 100219/131931 [00:15<00:07, 4330.99it/s]
Generating channels: 76%|███████▋ | 100658/131931 [00:15<00:07, 4347.13it/s]
Generating channels: 77%|███████▋ | 101094/131931 [00:15<00:07, 4343.69it/s]
Generating channels: 77%|███████▋ | 101531/131931 [00:15<00:06, 4349.55it/s]
Generating channels: 77%|███████▋ | 101967/131931 [00:15<00:07, 4182.82it/s]
Generating channels: 78%|███████▊ | 102403/131931 [00:15<00:06, 4232.10it/s]
Generating channels: 78%|███████▊ | 102840/131931 [00:15<00:06, 4270.88it/s]
Generating channels: 78%|███████▊ | 103277/131931 [00:15<00:06, 4297.46it/s]
Generating channels: 79%|███████▊ | 103708/131931 [00:15<00:06, 4299.26it/s]
Generating channels: 79%|███████▉ | 104139/131931 [00:16<00:06, 4301.64it/s]
Generating channels: 79%|███████▉ | 104578/131931 [00:16<00:06, 4327.73it/s]
Generating channels: 80%|███████▉ | 105014/131931 [00:16<00:06, 4334.51it/s]
Generating channels: 80%|███████▉ | 105448/131931 [00:16<00:06, 4305.29it/s]
Generating channels: 80%|████████ | 105887/131931 [00:16<00:06, 4328.48it/s]
Generating channels: 81%|████████ | 106325/131931 [00:16<00:05, 4341.22it/s]
Generating channels: 81%|████████ | 106766/131931 [00:16<00:05, 4360.53it/s]
Generating channels: 81%|████████▏ | 107234/131931 [00:16<00:05, 4453.95it/s]
Generating channels: 82%|████████▏ | 107711/131931 [00:16<00:05, 4545.64it/s]
Generating channels: 82%|████████▏ | 108230/131931 [00:16<00:05, 4738.11it/s]
Generating channels: 83%|████████▎ | 108852/131931 [00:17<00:04, 5180.10it/s]
Generating channels: 83%|████████▎ | 109528/131931 [00:17<00:03, 5649.77it/s]
Generating channels: 83%|████████▎ | 110094/131931 [00:17<00:03, 5612.79it/s]
Generating channels: 84%|████████▍ | 110766/131931 [00:17<00:03, 5942.55it/s]
Generating channels: 84%|████████▍ | 111480/131931 [00:17<00:03, 6300.03it/s]
Generating channels: 85%|████████▌ | 112321/131931 [00:17<00:02, 6929.48it/s]
Generating channels: 86%|████████▌ | 113141/131931 [00:17<00:02, 7306.35it/s]
Generating channels: 86%|████████▋ | 114113/131931 [00:17<00:02, 8028.35it/s]
Generating channels: 87%|████████▋ | 115100/131931 [00:17<00:01, 8579.35it/s]
Generating channels: 88%|████████▊ | 116146/131931 [00:17<00:01, 9142.67it/s]
Generating channels: 89%|████████▊ | 117074/131931 [00:18<00:01, 9183.42it/s]
Generating channels: 89%|████████▉ | 117993/131931 [00:18<00:01, 8945.06it/s]
Generating channels: 90%|█████████ | 118927/131931 [00:18<00:01, 9060.45it/s]
Generating channels: 91%|█████████ | 119835/131931 [00:18<00:01, 8781.59it/s]
Generating channels: 91%|█████████▏| 120716/131931 [00:18<00:01, 8408.71it/s]
Generating channels: 92%|█████████▏| 121562/131931 [00:18<00:01, 8332.96it/s]
Generating channels: 93%|█████████▎| 122399/131931 [00:18<00:01, 8053.90it/s]
Generating channels: 93%|█████████▎| 123208/131931 [00:18<00:01, 7964.43it/s]
Generating channels: 94%|█████████▍| 124031/131931 [00:18<00:00, 8038.16it/s]
Generating channels: 95%|█████████▍| 124840/131931 [00:18<00:00, 8047.80it/s]
Generating channels: 95%|█████████▌| 125646/131931 [00:19<00:00, 7970.69it/s]
Generating channels: 96%|█████████▌| 126470/131931 [00:19<00:00, 8045.51it/s]
Generating channels: 96%|█████████▋| 127302/131931 [00:19<00:00, 8126.16it/s]
Generating channels: 97%|█████████▋| 128137/131931 [00:19<00:00, 8188.23it/s]
Generating channels: 98%|█████████▊| 129056/131931 [00:19<00:00, 8482.62it/s]
Generating channels: 99%|█████████▉| 130346/131931 [00:19<00:00, 9793.26it/s]
Generating channels: 100%|█████████▉| 131355/131931 [00:19<00:00, 9878.19it/s]
Generating channels: 100%|██████████| 131931/131931 [00:19<00:00, 6683.02it/s]
Generating channels: 0%| | 0/131931 [00:00<?, ?it/s]
Generating channels: 1%| | 1160/131931 [00:00<00:11, 11578.45it/s]
Generating channels: 2%|▏ | 2318/131931 [00:00<00:11, 11132.03it/s]
Generating channels: 3%|▎ | 3433/131931 [00:00<00:13, 9215.44it/s]
Generating channels: 3%|▎ | 4386/131931 [00:00<00:15, 8442.99it/s]
Generating channels: 4%|▍ | 5252/131931 [00:00<00:17, 7330.33it/s]
Generating channels: 5%|▍ | 6011/131931 [00:00<00:19, 6626.36it/s]
Generating channels: 5%|▌ | 6693/131931 [00:00<00:20, 6016.51it/s]
Generating channels: 6%|▌ | 7309/131931 [00:01<00:22, 5534.02it/s]
Generating channels: 6%|▌ | 7872/131931 [00:01<00:23, 5315.86it/s]
Generating channels: 6%|▋ | 8408/131931 [00:01<00:24, 5113.02it/s]
Generating channels: 7%|▋ | 8920/131931 [00:01<00:25, 4840.81it/s]
Generating channels: 7%|▋ | 9404/131931 [00:01<00:25, 4780.37it/s]
Generating channels: 7%|▋ | 9881/131931 [00:01<00:26, 4678.24it/s]
Generating channels: 8%|▊ | 10348/131931 [00:01<00:26, 4643.13it/s]
Generating channels: 8%|▊ | 10811/131931 [00:01<00:26, 4638.45it/s]
Generating channels: 9%|▊ | 11274/131931 [00:01<00:26, 4495.26it/s]
Generating channels: 9%|▉ | 11724/131931 [00:02<00:27, 4445.60it/s]
Generating channels: 9%|▉ | 12169/131931 [00:02<00:27, 4424.51it/s]
Generating channels: 10%|▉ | 12612/131931 [00:02<00:27, 4398.26it/s]
Generating channels: 10%|▉ | 13052/131931 [00:02<00:27, 4379.97it/s]
Generating channels: 10%|█ | 13490/131931 [00:02<00:27, 4379.44it/s]
Generating channels: 11%|█ | 13928/131931 [00:02<00:27, 4364.21it/s]
Generating channels: 11%|█ | 14365/131931 [00:02<00:26, 4356.30it/s]
Generating channels: 11%|█ | 14801/131931 [00:02<00:26, 4356.79it/s]
Generating channels: 12%|█▏ | 15237/131931 [00:02<00:26, 4354.93it/s]
Generating channels: 12%|█▏ | 15673/131931 [00:02<00:26, 4345.30it/s]
Generating channels: 12%|█▏ | 16109/131931 [00:03<00:26, 4348.49it/s]
Generating channels: 13%|█▎ | 16545/131931 [00:03<00:26, 4350.38it/s]
Generating channels: 13%|█▎ | 16981/131931 [00:03<00:26, 4352.61it/s]
Generating channels: 13%|█▎ | 17417/131931 [00:03<00:26, 4326.98it/s]
Generating channels: 14%|█▎ | 17853/131931 [00:03<00:26, 4334.06it/s]
Generating channels: 14%|█▍ | 18303/131931 [00:03<00:25, 4383.17it/s]
Generating channels: 14%|█▍ | 18760/131931 [00:03<00:25, 4435.99it/s]
Generating channels: 15%|█▍ | 19223/131931 [00:03<00:25, 4492.94it/s]
Generating channels: 15%|█▍ | 19687/131931 [00:03<00:24, 4535.93it/s]
Generating channels: 15%|█▌ | 20294/131931 [00:03<00:22, 4992.96it/s]
Generating channels: 16%|█▌ | 20794/131931 [00:04<00:22, 4943.54it/s]
Generating channels: 16%|█▌ | 21326/131931 [00:04<00:21, 5053.83it/s]
Generating channels: 17%|█▋ | 21950/131931 [00:04<00:20, 5404.15it/s]
Generating channels: 17%|█▋ | 22491/131931 [00:04<00:20, 5318.40it/s]
Generating channels: 17%|█▋ | 23048/131931 [00:04<00:20, 5391.71it/s]
Generating channels: 18%|█▊ | 23681/131931 [00:04<00:19, 5669.59it/s]
Generating channels: 18%|█▊ | 24270/131931 [00:04<00:18, 5734.35it/s]
Generating channels: 19%|█▉ | 25046/131931 [00:04<00:16, 6334.56it/s]
Generating channels: 20%|█▉ | 25849/131931 [00:04<00:15, 6837.17it/s]
Generating channels: 20%|██ | 26662/131931 [00:04<00:14, 7219.06it/s]
Generating channels: 21%|██ | 27479/131931 [00:05<00:13, 7499.40it/s]
Generating channels: 21%|██▏ | 28298/131931 [00:05<00:13, 7705.44it/s]
Generating channels: 22%|██▏ | 29069/131931 [00:05<00:13, 7501.88it/s]
Generating channels: 23%|██▎ | 29861/131931 [00:05<00:13, 7621.41it/s]
Generating channels: 23%|██▎ | 30779/131931 [00:05<00:12, 8082.16it/s]
Generating channels: 24%|██▍ | 31667/131931 [00:05<00:12, 8315.84it/s]
Generating channels: 25%|██▍ | 32717/131931 [00:05<00:11, 8963.09it/s]
Generating channels: 26%|██▌ | 33728/131931 [00:05<00:10, 9299.95it/s]
Generating channels: 26%|██▋ | 34786/131931 [00:05<00:10, 9682.18it/s]
Generating channels: 27%|██▋ | 35763/131931 [00:05<00:09, 9701.99it/s]
Generating channels: 28%|██▊ | 36734/131931 [00:06<00:10, 9467.74it/s]
Generating channels: 29%|██▊ | 37687/131931 [00:06<00:09, 9485.03it/s]
Generating channels: 29%|██▉ | 38643/131931 [00:06<00:09, 9503.63it/s]
Generating channels: 30%|███ | 39647/131931 [00:06<00:09, 9661.33it/s]
Generating channels: 31%|███ | 40633/131931 [00:06<00:09, 9718.51it/s]
Generating channels: 32%|███▏ | 41606/131931 [00:06<00:09, 9286.81it/s]
Generating channels: 32%|███▏ | 42539/131931 [00:06<00:10, 8921.23it/s]
Generating channels: 33%|███▎ | 43437/131931 [00:06<00:10, 8560.85it/s]
Generating channels: 34%|███▎ | 44299/131931 [00:06<00:10, 8199.76it/s]
Generating channels: 34%|███▍ | 45124/131931 [00:07<00:10, 7904.07it/s]
Generating channels: 35%|███▍ | 45919/131931 [00:07<00:11, 7777.69it/s]
Generating channels: 35%|███▌ | 46699/131931 [00:07<00:11, 7734.41it/s]
Generating channels: 36%|███▌ | 47474/131931 [00:07<00:11, 7563.82it/s]
Generating channels: 37%|███▋ | 48449/131931 [00:07<00:10, 8180.55it/s]
Generating channels: 38%|███▊ | 49507/131931 [00:07<00:09, 8870.39it/s]
Generating channels: 38%|███▊ | 50719/131931 [00:07<00:08, 9812.69it/s]
Generating channels: 39%|███▉ | 51947/131931 [00:07<00:07, 10534.73it/s]
Generating channels: 40%|████ | 53190/131931 [00:07<00:07, 11092.02it/s]
Generating channels: 41%|████ | 54377/131931 [00:07<00:06, 11318.81it/s]
Generating channels: 42%|████▏ | 55513/131931 [00:08<00:07, 10797.43it/s]
Generating channels: 43%|████▎ | 56601/131931 [00:08<00:07, 10155.45it/s]
Generating channels: 44%|████▎ | 57628/131931 [00:08<00:07, 10115.20it/s]
Generating channels: 44%|████▍ | 58648/131931 [00:08<00:07, 9574.53it/s]
Generating channels: 45%|████▌ | 59615/131931 [00:08<00:07, 9338.40it/s]
Generating channels: 46%|████▌ | 60556/131931 [00:08<00:07, 9228.71it/s]
Generating channels: 47%|████▋ | 61483/131931 [00:08<00:07, 8983.99it/s]
Generating channels: 47%|████▋ | 62385/131931 [00:08<00:08, 8165.56it/s]
Generating channels: 48%|████▊ | 63215/131931 [00:09<00:08, 7658.46it/s]
Generating channels: 49%|████▊ | 63993/131931 [00:09<00:09, 7242.30it/s]
Generating channels: 49%|████▉ | 64727/131931 [00:09<00:09, 7012.09it/s]
Generating channels: 50%|████▉ | 65434/131931 [00:09<00:09, 6855.97it/s]
Generating channels: 50%|█████ | 66123/131931 [00:09<00:09, 6613.70it/s]
Generating channels: 51%|█████ | 66786/131931 [00:09<00:10, 6053.55it/s]
Generating channels: 51%|█████ | 67398/131931 [00:09<00:10, 6044.70it/s]
Generating channels: 52%|█████▏ | 68007/131931 [00:09<00:10, 5863.19it/s]
Generating channels: 52%|█████▏ | 68618/131931 [00:09<00:10, 5927.73it/s]
Generating channels: 52%|█████▏ | 69253/131931 [00:10<00:10, 6044.63it/s]
Generating channels: 53%|█████▎ | 70043/131931 [00:10<00:09, 6570.99it/s]
Generating channels: 54%|█████▎ | 70705/131931 [00:10<00:09, 6440.55it/s]
Generating channels: 54%|█████▍ | 71353/131931 [00:10<00:09, 6257.13it/s]
Generating channels: 55%|█████▍ | 71982/131931 [00:10<00:09, 6202.17it/s]
Generating channels: 55%|█████▌ | 72605/131931 [00:10<00:09, 6092.17it/s]
Generating channels: 55%|█████▌ | 73216/131931 [00:10<00:09, 6019.89it/s]
Generating channels: 56%|█████▌ | 73860/131931 [00:10<00:09, 6139.81it/s]
Generating channels: 57%|█████▋ | 74545/131931 [00:10<00:09, 6345.15it/s]
Generating channels: 57%|█████▋ | 75187/131931 [00:10<00:08, 6362.96it/s]
Generating channels: 58%|█████▊ | 76156/131931 [00:11<00:07, 7344.95it/s]
Generating channels: 58%|█████▊ | 77117/131931 [00:11<00:06, 8014.72it/s]
Generating channels: 59%|█████▉ | 77932/131931 [00:11<00:06, 8053.32it/s]
Generating channels: 60%|█████▉ | 78739/131931 [00:11<00:06, 7647.02it/s]
Generating channels: 60%|██████ | 79509/131931 [00:11<00:07, 7272.65it/s]
Generating channels: 61%|██████ | 80243/131931 [00:11<00:07, 7289.50it/s]
Generating channels: 61%|██████▏ | 80977/131931 [00:11<00:06, 7292.03it/s]
Generating channels: 62%|██████▏ | 81710/131931 [00:11<00:06, 7221.53it/s]
Generating channels: 62%|██████▏ | 82435/131931 [00:11<00:07, 7052.67it/s]
Generating channels: 63%|██████▎ | 83143/131931 [00:12<00:06, 7022.88it/s]
Generating channels: 64%|██████▎ | 83919/131931 [00:12<00:06, 7234.49it/s]
Generating channels: 64%|██████▍ | 84696/131931 [00:12<00:06, 7387.51it/s]
Generating channels: 65%|██████▍ | 85437/131931 [00:12<00:06, 7362.36it/s]
Generating channels: 65%|██████▌ | 86175/131931 [00:12<00:06, 6898.62it/s]
Generating channels: 66%|██████▌ | 86872/131931 [00:12<00:06, 6752.35it/s]
Generating channels: 66%|██████▋ | 87556/131931 [00:12<00:06, 6776.05it/s]
Generating channels: 67%|██████▋ | 88237/131931 [00:12<00:06, 6560.95it/s]
Generating channels: 67%|██████▋ | 88897/131931 [00:12<00:06, 6474.84it/s]
Generating channels: 68%|██████▊ | 89630/131931 [00:12<00:06, 6715.31it/s]
Generating channels: 68%|██████▊ | 90305/131931 [00:13<00:06, 6671.95it/s]
Generating channels: 69%|██████▉ | 90974/131931 [00:13<00:06, 6458.34it/s]
Generating channels: 69%|██████▉ | 91623/131931 [00:13<00:06, 6401.41it/s]
Generating channels: 70%|██████▉ | 92265/131931 [00:13<00:06, 5888.88it/s]
Generating channels: 70%|███████ | 92862/131931 [00:13<00:06, 5680.80it/s]
Generating channels: 71%|███████ | 93436/131931 [00:13<00:06, 5604.83it/s]
Generating channels: 71%|███████▏ | 94030/131931 [00:13<00:06, 5694.60it/s]
Generating channels: 72%|███████▏ | 94603/131931 [00:13<00:06, 5506.64it/s]
Generating channels: 72%|███████▏ | 95202/131931 [00:13<00:06, 5640.79it/s]
Generating channels: 73%|███████▎ | 95769/131931 [00:14<00:06, 5482.13it/s]
Generating channels: 73%|███████▎ | 96320/131931 [00:14<00:06, 5306.62it/s]
Generating channels: 73%|███████▎ | 96853/131931 [00:14<00:06, 5304.44it/s]
Generating channels: 74%|███████▍ | 97385/131931 [00:14<00:06, 4983.98it/s]
Generating channels: 74%|███████▍ | 97888/131931 [00:14<00:07, 4728.56it/s]
Generating channels: 75%|███████▍ | 98365/131931 [00:14<00:07, 4596.02it/s]
Generating channels: 75%|███████▍ | 98828/131931 [00:14<00:07, 4508.70it/s]
Generating channels: 75%|███████▌ | 99281/131931 [00:14<00:07, 4470.88it/s]
Generating channels: 76%|███████▌ | 99729/131931 [00:14<00:07, 4438.78it/s]
Generating channels: 76%|███████▌ | 100174/131931 [00:15<00:07, 4414.35it/s]
Generating channels: 76%|███████▋ | 100616/131931 [00:15<00:07, 4398.98it/s]
Generating channels: 77%|███████▋ | 101057/131931 [00:15<00:07, 4389.93it/s]
Generating channels: 77%|███████▋ | 101497/131931 [00:15<00:06, 4375.07it/s]
Generating channels: 77%|███████▋ | 101937/131931 [00:15<00:06, 4379.22it/s]
Generating channels: 78%|███████▊ | 102375/131931 [00:15<00:06, 4359.55it/s]
Generating channels: 78%|███████▊ | 102811/131931 [00:15<00:06, 4347.99it/s]
Generating channels: 78%|███████▊ | 103246/131931 [00:15<00:06, 4346.65it/s]
Generating channels: 79%|███████▊ | 103682/131931 [00:15<00:06, 4349.55it/s]
Generating channels: 79%|███████▉ | 104121/131931 [00:15<00:06, 4358.83it/s]
Generating channels: 79%|███████▉ | 104561/131931 [00:16<00:06, 4368.40it/s]
Generating channels: 80%|███████▉ | 104999/131931 [00:16<00:06, 4369.31it/s]
Generating channels: 80%|███████▉ | 105437/131931 [00:16<00:06, 4369.82it/s]
Generating channels: 80%|████████ | 105874/131931 [00:16<00:05, 4356.32it/s]
Generating channels: 81%|████████ | 106315/131931 [00:16<00:05, 4370.17it/s]
Generating channels: 81%|████████ | 106753/131931 [00:16<00:05, 4313.60it/s]
Generating channels: 81%|████████▏ | 107211/131931 [00:16<00:05, 4392.39it/s]
Generating channels: 82%|████████▏ | 107712/131931 [00:16<00:05, 4575.33it/s]
Generating channels: 82%|████████▏ | 108338/131931 [00:16<00:04, 5077.05it/s]
Generating channels: 83%|████████▎ | 108927/131931 [00:16<00:04, 5316.56it/s]
Generating channels: 83%|████████▎ | 109616/131931 [00:17<00:03, 5786.88it/s]
Generating channels: 84%|████████▎ | 110243/131931 [00:17<00:03, 5931.36it/s]
Generating channels: 84%|████████▍ | 110887/131931 [00:17<00:03, 6080.01it/s]
Generating channels: 85%|████████▍ | 111642/131931 [00:17<00:03, 6515.94it/s]
Generating channels: 85%|████████▌ | 112556/131931 [00:17<00:02, 7301.54it/s]
Generating channels: 86%|████████▌ | 113410/131931 [00:17<00:02, 7669.21it/s]
Generating channels: 87%|████████▋ | 114393/131931 [00:17<00:02, 8313.32it/s]
Generating channels: 88%|████████▊ | 115440/131931 [00:17<00:01, 8958.55it/s]
Generating channels: 88%|████████▊ | 116439/131931 [00:17<00:01, 9266.38it/s]
Generating channels: 89%|████████▉ | 117388/131931 [00:17<00:01, 9332.51it/s]
Generating channels: 90%|████████▉ | 118338/131931 [00:18<00:01, 9376.62it/s]
Generating channels: 90%|█████████ | 119276/131931 [00:18<00:01, 9325.69it/s]
Generating channels: 91%|█████████ | 120209/131931 [00:18<00:01, 8872.26it/s]
Generating channels: 92%|█████████▏| 121101/131931 [00:18<00:01, 8380.88it/s]
Generating channels: 92%|█████████▏| 121947/131931 [00:18<00:01, 8211.33it/s]
Generating channels: 93%|█████████▎| 122774/131931 [00:18<00:01, 7751.07it/s]
Generating channels: 94%|█████████▎| 123607/131931 [00:18<00:01, 7907.37it/s]
Generating channels: 94%|█████████▍| 124419/131931 [00:18<00:00, 7964.83it/s]
Generating channels: 95%|█████████▍| 125233/131931 [00:18<00:00, 8012.78it/s]
Generating channels: 96%|█████████▌| 126054/131931 [00:19<00:00, 8067.81it/s]
Generating channels: 96%|█████████▌| 126884/131931 [00:19<00:00, 8134.25it/s]
Generating channels: 97%|█████████▋| 127717/131931 [00:19<00:00, 8190.69it/s]
Generating channels: 97%|█████████▋| 128538/131931 [00:19<00:00, 8181.87it/s]
Generating channels: 98%|█████████▊| 129837/131931 [00:19<00:00, 9603.83it/s]
Generating channels: 99%|█████████▉| 130872/131931 [00:19<00:00, 9822.94it/s]
Generating channels: 100%|██████████| 131931/131931 [00:19<00:00, 6718.12it/s]
Average power (no rotation): 0.000000 Average power (90° rotation): 0.000000
Elevation Rotation¶
In [15]:
Copied!
# Rotate BS antennas in elevation
ch_params.bs_antenna.rotation = [0, 15, 0] # 15° elevation (downtilt)
dataset.compute_channels(ch_params)
tilted_channels = dataset.channel
print(f"Channels with tilted BS antennas shape: {tilted_channels.shape}")
# Rotate BS antennas in elevation
ch_params.bs_antenna.rotation = [0, 15, 0] # 15° elevation (downtilt)
dataset.compute_channels(ch_params)
tilted_channels = dataset.channel
print(f"Channels with tilted BS antennas shape: {tilted_channels.shape}")
Generating channels: 0%| | 0/131931 [00:00<?, ?it/s]
Generating channels: 1%| | 1166/131931 [00:00<00:11, 11644.80it/s]
Generating channels: 2%|▏ | 2331/131931 [00:00<00:11, 11138.46it/s]
Generating channels: 3%|▎ | 3447/131931 [00:00<00:14, 9171.09it/s]
Generating channels: 3%|▎ | 4397/131931 [00:00<00:15, 8303.58it/s]
Generating channels: 4%|▍ | 5251/131931 [00:00<00:17, 7320.35it/s]
Generating channels: 5%|▍ | 6007/131931 [00:00<00:18, 6694.73it/s]
Generating channels: 5%|▌ | 6693/131931 [00:00<00:20, 6140.50it/s]
Generating channels: 6%|▌ | 7318/131931 [00:01<00:21, 5669.34it/s]
Generating channels: 6%|▌ | 7892/131931 [00:01<00:23, 5388.31it/s]
Generating channels: 6%|▋ | 8434/131931 [00:01<00:23, 5186.14it/s]
Generating channels: 7%|▋ | 8953/131931 [00:01<00:24, 4996.95it/s]
Generating channels: 7%|▋ | 9452/131931 [00:01<00:24, 4942.49it/s]
Generating channels: 8%|▊ | 9945/131931 [00:01<00:25, 4754.02it/s]
Generating channels: 8%|▊ | 10419/131931 [00:01<00:25, 4715.82it/s]
Generating channels: 8%|▊ | 10890/131931 [00:01<00:25, 4713.55it/s]
Generating channels: 9%|▊ | 11361/131931 [00:01<00:25, 4680.09it/s]
Generating channels: 9%|▉ | 11829/131931 [00:02<00:26, 4582.98it/s]
Generating channels: 9%|▉ | 12287/131931 [00:02<00:26, 4493.23it/s]
Generating channels: 10%|▉ | 12736/131931 [00:02<00:26, 4452.49it/s]
Generating channels: 10%|▉ | 13181/131931 [00:02<00:26, 4416.37it/s]
Generating channels: 10%|█ | 13623/131931 [00:02<00:26, 4382.19it/s]
Generating channels: 11%|█ | 14061/131931 [00:02<00:26, 4366.65it/s]
Generating channels: 11%|█ | 14498/131931 [00:02<00:26, 4356.25it/s]
Generating channels: 11%|█▏ | 14934/131931 [00:02<00:26, 4352.07it/s]
Generating channels: 12%|█▏ | 15370/131931 [00:02<00:26, 4341.93it/s]
Generating channels: 12%|█▏ | 15807/131931 [00:02<00:26, 4347.34it/s]
Generating channels: 12%|█▏ | 16243/131931 [00:03<00:26, 4349.76it/s]
Generating channels: 13%|█▎ | 16678/131931 [00:03<00:26, 4315.35it/s]
Generating channels: 13%|█▎ | 17113/131931 [00:03<00:26, 4323.09it/s]
Generating channels: 13%|█▎ | 17560/131931 [00:03<00:26, 4366.65it/s]
Generating channels: 14%|█▎ | 18002/131931 [00:03<00:26, 4378.34it/s]
Generating channels: 14%|█▍ | 18459/131931 [00:03<00:25, 4434.70it/s]
Generating channels: 14%|█▍ | 18906/131931 [00:03<00:25, 4444.23it/s]
Generating channels: 15%|█▍ | 19351/131931 [00:03<00:25, 4445.86it/s]
Generating channels: 15%|█▌ | 19903/131931 [00:03<00:23, 4765.62it/s]
Generating channels: 15%|█▌ | 20429/131931 [00:03<00:22, 4911.66it/s]
Generating channels: 16%|█▌ | 20957/131931 [00:04<00:22, 5019.07it/s]
Generating channels: 16%|█▋ | 21572/131931 [00:04<00:20, 5357.33it/s]
Generating channels: 17%|█▋ | 22108/131931 [00:04<00:20, 5333.49it/s]
Generating channels: 17%|█▋ | 22714/131931 [00:04<00:19, 5548.99it/s]
Generating channels: 18%|█▊ | 23277/131931 [00:04<00:19, 5571.74it/s]
Generating channels: 18%|█▊ | 23870/131931 [00:04<00:19, 5677.25it/s]
Generating channels: 19%|█▊ | 24643/131931 [00:04<00:17, 6289.59it/s]
Generating channels: 19%|█▉ | 25444/131931 [00:04<00:15, 6800.59it/s]
Generating channels: 20%|█▉ | 26249/131931 [00:04<00:14, 7174.70it/s]
Generating channels: 21%|██ | 27058/131931 [00:04<00:14, 7448.70it/s]
Generating channels: 21%|██ | 27822/131931 [00:05<00:13, 7505.80it/s]
Generating channels: 22%|██▏ | 28589/131931 [00:05<00:13, 7553.84it/s]
Generating channels: 22%|██▏ | 29345/131931 [00:05<00:13, 7542.38it/s]
Generating channels: 23%|██▎ | 30162/131931 [00:05<00:13, 7728.22it/s]
Generating channels: 24%|██▎ | 31006/131931 [00:05<00:12, 7940.44it/s]
Generating channels: 24%|██▍ | 32041/131931 [00:05<00:11, 8660.70it/s]
Generating channels: 25%|██▌ | 33049/131931 [00:05<00:10, 9084.99it/s]
Generating channels: 26%|██▌ | 34081/131931 [00:05<00:10, 9451.57it/s]
Generating channels: 27%|██▋ | 35050/131931 [00:05<00:10, 9519.72it/s]
Generating channels: 27%|██▋ | 36026/131931 [00:05<00:10, 9588.30it/s]
Generating channels: 28%|██▊ | 36985/131931 [00:06<00:10, 9335.50it/s]
Generating channels: 29%|██▉ | 37992/131931 [00:06<00:09, 9549.37it/s]
Generating channels: 30%|██▉ | 38998/131931 [00:06<00:09, 9698.28it/s]
Generating channels: 30%|███ | 39970/131931 [00:06<00:09, 9648.45it/s]
Generating channels: 31%|███ | 40943/131931 [00:06<00:09, 9670.33it/s]
Generating channels: 32%|███▏ | 41911/131931 [00:06<00:10, 8909.65it/s]
Generating channels: 32%|███▏ | 42814/131931 [00:06<00:10, 8647.89it/s]
Generating channels: 33%|███▎ | 43688/131931 [00:06<00:10, 8433.25it/s]
Generating channels: 34%|███▍ | 44538/131931 [00:06<00:10, 8168.80it/s]
Generating channels: 34%|███▍ | 45360/131931 [00:07<00:10, 7908.16it/s]
Generating channels: 35%|███▍ | 46155/131931 [00:07<00:11, 7659.14it/s]
Generating channels: 36%|███▌ | 46924/131931 [00:07<00:11, 7483.30it/s]
Generating channels: 36%|███▌ | 47674/131931 [00:07<00:11, 7437.11it/s]
Generating channels: 37%|███▋ | 48852/131931 [00:07<00:09, 8667.69it/s]
Generating channels: 38%|███▊ | 49921/131931 [00:07<00:08, 9247.84it/s]
Generating channels: 39%|███▉ | 51136/131931 [00:07<00:08, 10090.56it/s]
Generating channels: 40%|███▉ | 52364/131931 [00:07<00:07, 10734.18it/s]
Generating channels: 41%|████ | 53547/131931 [00:07<00:07, 11057.25it/s]
Generating channels: 41%|████▏ | 54658/131931 [00:07<00:07, 11010.87it/s]
Generating channels: 42%|████▏ | 55763/131931 [00:08<00:07, 10525.39it/s]
Generating channels: 43%|████▎ | 56823/131931 [00:08<00:07, 10475.54it/s]
Generating channels: 44%|████▍ | 57876/131931 [00:08<00:07, 10020.65it/s]
Generating channels: 45%|████▍ | 58885/131931 [00:08<00:07, 9828.66it/s]
Generating channels: 45%|████▌ | 59873/131931 [00:08<00:07, 9233.68it/s]
Generating channels: 46%|████▌ | 60805/131931 [00:08<00:07, 9199.17it/s]
Generating channels: 47%|████▋ | 61731/131931 [00:08<00:08, 8760.88it/s]
Generating channels: 47%|████▋ | 62614/131931 [00:08<00:08, 7857.84it/s]
Generating channels: 48%|████▊ | 63418/131931 [00:09<00:09, 7515.39it/s]
Generating channels: 49%|████▊ | 64182/131931 [00:09<00:09, 7315.61it/s]
Generating channels: 49%|████▉ | 64921/131931 [00:09<00:09, 7157.72it/s]
Generating channels: 50%|████▉ | 65642/131931 [00:09<00:10, 6578.56it/s]
Generating channels: 50%|█████ | 66309/131931 [00:09<00:10, 6384.03it/s]
Generating channels: 51%|█████ | 66953/131931 [00:09<00:10, 6337.00it/s]
Generating channels: 51%|█████ | 67590/131931 [00:09<00:10, 6048.07it/s]
Generating channels: 52%|█████▏ | 68210/131931 [00:09<00:10, 6087.19it/s]
Generating channels: 52%|█████▏ | 68822/131931 [00:09<00:10, 5805.61it/s]
Generating channels: 53%|█████▎ | 69593/131931 [00:10<00:09, 6327.29it/s]
Generating channels: 53%|█████▎ | 70269/131931 [00:10<00:09, 6448.02it/s]
Generating channels: 54%|█████▍ | 70920/131931 [00:10<00:09, 6455.92it/s]
Generating channels: 54%|█████▍ | 71570/131931 [00:10<00:09, 6303.94it/s]
Generating channels: 55%|█████▍ | 72204/131931 [00:10<00:09, 6103.53it/s]
Generating channels: 55%|█████▌ | 72853/131931 [00:10<00:09, 6212.93it/s]
Generating channels: 56%|█████▌ | 73477/131931 [00:10<00:09, 6028.53it/s]
Generating channels: 56%|█████▌ | 74156/131931 [00:10<00:09, 6241.91it/s]
Generating channels: 57%|█████▋ | 74814/131931 [00:10<00:09, 6338.38it/s]
Generating channels: 57%|█████▋ | 75587/131931 [00:10<00:08, 6742.03it/s]
Generating channels: 58%|█████▊ | 76583/131931 [00:11<00:07, 7687.12it/s]
Generating channels: 59%|█████▉ | 77537/131931 [00:11<00:06, 8232.72it/s]
Generating channels: 59%|█████▉ | 78364/131931 [00:11<00:06, 7759.59it/s]
Generating channels: 60%|█████▉ | 79148/131931 [00:11<00:07, 7514.72it/s]
Generating channels: 61%|██████ | 79906/131931 [00:11<00:07, 7192.68it/s]
Generating channels: 61%|██████ | 80659/131931 [00:11<00:07, 7282.07it/s]
Generating channels: 62%|██████▏ | 81412/131931 [00:11<00:06, 7349.08it/s]
Generating channels: 62%|██████▏ | 82151/131931 [00:11<00:06, 7295.94it/s]
Generating channels: 63%|██████▎ | 82884/131931 [00:11<00:06, 7095.66it/s]
Generating channels: 63%|██████▎ | 83596/131931 [00:12<00:06, 6963.20it/s]
Generating channels: 64%|██████▍ | 84353/131931 [00:12<00:06, 7134.38it/s]
Generating channels: 65%|██████▍ | 85129/131931 [00:12<00:06, 7312.74it/s]
Generating channels: 65%|██████▌ | 85907/131931 [00:12<00:06, 7448.58it/s]
Generating channels: 66%|██████▌ | 86654/131931 [00:12<00:06, 7212.01it/s]
Generating channels: 66%|██████▌ | 87378/131931 [00:12<00:06, 6953.44it/s]
Generating channels: 67%|██████▋ | 88077/131931 [00:12<00:06, 6810.68it/s]
Generating channels: 67%|██████▋ | 88809/131931 [00:12<00:06, 6953.77it/s]
Generating channels: 68%|██████▊ | 89507/131931 [00:12<00:06, 6923.44it/s]
Generating channels: 68%|██████▊ | 90201/131931 [00:12<00:06, 6698.71it/s]
Generating channels: 69%|██████▉ | 90880/131931 [00:13<00:06, 6724.71it/s]
Generating channels: 69%|██████▉ | 91555/131931 [00:13<00:06, 6517.54it/s]
Generating channels: 70%|██████▉ | 92209/131931 [00:13<00:06, 6056.02it/s]
Generating channels: 70%|███████ | 92822/131931 [00:13<00:06, 5977.40it/s]
Generating channels: 71%|███████ | 93424/131931 [00:13<00:06, 5764.41it/s]
Generating channels: 71%|███████▏ | 94030/131931 [00:13<00:06, 5844.84it/s]
Generating channels: 72%|███████▏ | 94618/131931 [00:13<00:06, 5639.60it/s]
Generating channels: 72%|███████▏ | 95215/131931 [00:13<00:06, 5729.97it/s]
Generating channels: 73%|███████▎ | 95791/131931 [00:13<00:06, 5556.79it/s]
Generating channels: 73%|███████▎ | 96349/131931 [00:14<00:06, 5436.87it/s]
Generating channels: 73%|███████▎ | 96895/131931 [00:14<00:06, 5222.04it/s]
Generating channels: 74%|███████▍ | 97420/131931 [00:14<00:06, 4958.81it/s]
Generating channels: 74%|███████▍ | 97919/131931 [00:14<00:07, 4680.52it/s]
Generating channels: 75%|███████▍ | 98391/131931 [00:14<00:07, 4590.48it/s]
Generating channels: 75%|███████▍ | 98853/131931 [00:14<00:07, 4510.61it/s]
Generating channels: 75%|███████▌ | 99306/131931 [00:14<00:07, 4452.93it/s]
Generating channels: 76%|███████▌ | 99752/131931 [00:14<00:07, 4417.05it/s]
Generating channels: 76%|███████▌ | 100194/131931 [00:14<00:07, 4308.67it/s]
Generating channels: 76%|███████▋ | 100626/131931 [00:15<00:07, 4246.71it/s]
Generating channels: 77%|███████▋ | 101051/131931 [00:15<00:07, 4208.70it/s]
Generating channels: 77%|███████▋ | 101488/131931 [00:15<00:07, 4254.89it/s]
Generating channels: 77%|███████▋ | 101914/131931 [00:15<00:07, 4211.74it/s]
Generating channels: 78%|███████▊ | 102341/131931 [00:15<00:07, 4227.04it/s]
Generating channels: 78%|███████▊ | 102777/131931 [00:15<00:06, 4265.72it/s]
Generating channels: 78%|███████▊ | 103213/131931 [00:15<00:06, 4291.54it/s]
Generating channels: 79%|███████▊ | 103650/131931 [00:15<00:06, 4312.79it/s]
Generating channels: 79%|███████▉ | 104087/131931 [00:15<00:06, 4327.42it/s]
Generating channels: 79%|███████▉ | 104526/131931 [00:15<00:06, 4344.78it/s]
Generating channels: 80%|███████▉ | 104966/131931 [00:16<00:06, 4358.37it/s]
Generating channels: 80%|███████▉ | 105402/131931 [00:16<00:06, 4267.07it/s]
Generating channels: 80%|████████ | 105830/131931 [00:16<00:06, 4230.89it/s]
Generating channels: 81%|████████ | 106261/131931 [00:16<00:06, 4254.15it/s]
Generating channels: 81%|████████ | 106708/131931 [00:16<00:05, 4315.82it/s]
Generating channels: 81%|████████ | 107174/131931 [00:16<00:05, 4417.16it/s]
Generating channels: 82%|████████▏ | 107673/131931 [00:16<00:05, 4586.43it/s]
Generating channels: 82%|████████▏ | 108224/131931 [00:16<00:04, 4860.44it/s]
Generating channels: 82%|████████▏ | 108836/131931 [00:16<00:04, 5235.50it/s]
Generating channels: 83%|████████▎ | 109469/131931 [00:16<00:04, 5562.60it/s]
Generating channels: 83%|████████▎ | 110116/131931 [00:17<00:03, 5831.69it/s]
Generating channels: 84%|████████▍ | 110700/131931 [00:17<00:03, 5751.39it/s]
Generating channels: 84%|████████▍ | 111465/131931 [00:17<00:03, 6310.62it/s]
Generating channels: 85%|████████▌ | 112299/131931 [00:17<00:02, 6911.94it/s]
Generating channels: 86%|████████▌ | 113148/131931 [00:17<00:02, 7381.47it/s]
Generating channels: 86%|████████▋ | 114119/131931 [00:17<00:02, 8076.70it/s]
Generating channels: 87%|████████▋ | 115111/131931 [00:17<00:01, 8623.03it/s]
Generating channels: 88%|████████▊ | 116029/131931 [00:17<00:01, 8785.90it/s]
Generating channels: 89%|████████▊ | 116988/131931 [00:17<00:01, 9023.00it/s]
Generating channels: 89%|████████▉ | 117913/131931 [00:17<00:01, 9086.56it/s]
Generating channels: 90%|█████████ | 118840/131931 [00:18<00:01, 9141.34it/s]
Generating channels: 91%|█████████ | 119755/131931 [00:18<00:01, 8502.04it/s]
Generating channels: 91%|█████████▏| 120615/131931 [00:18<00:01, 8263.54it/s]
Generating channels: 92%|█████████▏| 121449/131931 [00:18<00:01, 7956.21it/s]
Generating channels: 93%|█████████▎| 122251/131931 [00:18<00:01, 7965.52it/s]
Generating channels: 93%|█████████▎| 123052/131931 [00:18<00:01, 7947.58it/s]
Generating channels: 94%|█████████▍| 123972/131931 [00:18<00:00, 8305.25it/s]
Generating channels: 95%|█████████▍| 124806/131931 [00:18<00:00, 8108.16it/s]
Generating channels: 95%|█████████▌| 125623/131931 [00:18<00:00, 8121.07it/s]
Generating channels: 96%|█████████▌| 126445/131931 [00:19<00:00, 8148.76it/s]
Generating channels: 96%|█████████▋| 127262/131931 [00:19<00:00, 7987.01it/s]
Generating channels: 97%|█████████▋| 128095/131931 [00:19<00:00, 8084.54it/s]
Generating channels: 98%|█████████▊| 129013/131931 [00:19<00:00, 8404.70it/s]
Generating channels: 99%|█████████▊| 130246/131931 [00:19<00:00, 9563.67it/s]
Generating channels: 100%|█████████▉| 131306/131931 [00:19<00:00, 9868.12it/s]
Generating channels: 100%|██████████| 131931/131931 [00:19<00:00, 6727.06it/s]
Channels with tilted BS antennas shape: (131931, 2, 16, 128)
Channel Comparison¶
Compare different antenna configurations.
In [16]:
Copied!
# Single antenna vs. array
ch_params_single = dm.ChannelParameters()
ch_params_single.bs_antenna.shape = [1, 1]
ch_params_single.ue_antenna.shape = [1, 1]
ch_params_array = dm.ChannelParameters()
ch_params_array.bs_antenna.shape = [8, 1]
ch_params_array.ue_antenna.shape = [4, 1]
dataset.compute_channels(ch_params_single)
channels_single = dataset.channel
dataset.compute_channels(ch_params_array)
channels_array = dataset.channel
print(f"Single antenna channel shape: {channels_single.shape}")
print(f"Array antenna channel shape: {channels_array.shape}")
# Single antenna vs. array
ch_params_single = dm.ChannelParameters()
ch_params_single.bs_antenna.shape = [1, 1]
ch_params_single.ue_antenna.shape = [1, 1]
ch_params_array = dm.ChannelParameters()
ch_params_array.bs_antenna.shape = [8, 1]
ch_params_array.ue_antenna.shape = [4, 1]
dataset.compute_channels(ch_params_single)
channels_single = dataset.channel
dataset.compute_channels(ch_params_array)
channels_array = dataset.channel
print(f"Single antenna channel shape: {channels_single.shape}")
print(f"Array antenna channel shape: {channels_array.shape}")
Generating channels: 0%| | 0/131931 [00:00<?, ?it/s]
Generating channels: 2%|▏ | 2620/131931 [00:00<00:04, 26186.48it/s]
Generating channels: 4%|▍ | 5239/131931 [00:00<00:06, 20616.58it/s]
Generating channels: 6%|▌ | 7373/131931 [00:00<00:07, 15975.08it/s]
Generating channels: 7%|▋ | 9082/131931 [00:00<00:08, 14425.29it/s]
Generating channels: 8%|▊ | 10588/131931 [00:00<00:08, 13697.21it/s]
Generating channels: 9%|▉ | 11989/131931 [00:00<00:09, 13225.72it/s]
Generating channels: 10%|█ | 13326/131931 [00:00<00:09, 12664.69it/s]
Generating channels: 11%|█ | 14598/131931 [00:01<00:09, 12088.81it/s]
Generating channels: 12%|█▏ | 15808/131931 [00:01<00:09, 11933.84it/s]
Generating channels: 13%|█▎ | 17001/131931 [00:01<00:09, 11871.80it/s]
Generating channels: 14%|█▍ | 18187/131931 [00:01<00:09, 11751.03it/s]
Generating channels: 15%|█▍ | 19393/131931 [00:01<00:09, 11838.13it/s]
Generating channels: 16%|█▌ | 20831/131931 [00:01<00:08, 12570.08it/s]
Generating channels: 17%|█▋ | 22367/131931 [00:01<00:08, 13384.26it/s]
Generating channels: 18%|█▊ | 23995/131931 [00:01<00:07, 14234.76it/s]
Generating channels: 20%|█▉ | 26033/131931 [00:01<00:06, 16052.86it/s]
Generating channels: 21%|██ | 27945/131931 [00:01<00:06, 16964.03it/s]
Generating channels: 23%|██▎ | 29853/131931 [00:02<00:05, 17594.15it/s]
Generating channels: 24%|██▍ | 32308/131931 [00:02<00:05, 19670.12it/s]
Generating channels: 27%|██▋ | 35007/131931 [00:02<00:04, 21856.48it/s]
Generating channels: 28%|██▊ | 37371/131931 [00:02<00:04, 22384.84it/s]
Generating channels: 30%|███ | 39817/131931 [00:02<00:04, 22999.66it/s]
Generating channels: 32%|███▏ | 42120/131931 [00:02<00:03, 22664.22it/s]
Generating channels: 34%|███▎ | 44389/131931 [00:02<00:04, 21706.63it/s]
Generating channels: 35%|███▌ | 46570/131931 [00:02<00:04, 20743.62it/s]
Generating channels: 37%|███▋ | 48888/131931 [00:02<00:03, 21430.94it/s]
Generating channels: 39%|███▉ | 51745/131931 [00:02<00:03, 23480.27it/s]
Generating channels: 41%|████▏ | 54646/131931 [00:03<00:03, 25084.75it/s]
Generating channels: 43%|████▎ | 57239/131931 [00:03<00:02, 25327.39it/s]
Generating channels: 45%|████▌ | 59785/131931 [00:03<00:02, 24264.16it/s]
Generating channels: 47%|████▋ | 62229/131931 [00:03<00:03, 22847.44it/s]
Generating channels: 49%|████▉ | 64540/131931 [00:03<00:03, 21263.20it/s]
Generating channels: 51%|█████ | 66699/131931 [00:03<00:03, 19318.92it/s]
Generating channels: 52%|█████▏ | 68677/131931 [00:03<00:03, 18119.50it/s]
Generating channels: 53%|█████▎ | 70524/131931 [00:03<00:03, 18119.32it/s]
Generating channels: 55%|█████▍ | 72361/131931 [00:04<00:03, 17016.99it/s]
Generating channels: 56%|█████▌ | 74085/131931 [00:04<00:03, 17016.63it/s]
Generating channels: 58%|█████▊ | 76007/131931 [00:04<00:03, 17615.01it/s]
Generating channels: 59%|█████▉ | 78059/131931 [00:04<00:02, 18424.72it/s]
Generating channels: 61%|██████ | 79919/131931 [00:04<00:02, 18182.21it/s]
Generating channels: 62%|██████▏ | 81799/131931 [00:04<00:02, 18354.98it/s]
Generating channels: 63%|██████▎ | 83644/131931 [00:04<00:02, 18122.77it/s]
Generating channels: 65%|██████▍ | 85549/131931 [00:04<00:02, 18389.43it/s]
Generating channels: 66%|██████▌ | 87394/131931 [00:04<00:02, 18063.78it/s]
Generating channels: 68%|██████▊ | 89224/131931 [00:04<00:02, 18129.07it/s]
Generating channels: 69%|██████▉ | 91041/131931 [00:05<00:02, 17795.35it/s]
Generating channels: 70%|███████ | 92824/131931 [00:05<00:02, 16965.90it/s]
Generating channels: 72%|███████▏ | 94530/131931 [00:05<00:02, 15752.06it/s]
Generating channels: 73%|███████▎ | 96125/131931 [00:05<00:02, 15208.31it/s]
Generating channels: 74%|███████▍ | 97660/131931 [00:05<00:02, 14178.08it/s]
Generating channels: 75%|███████▌ | 99095/131931 [00:05<00:02, 13439.32it/s]
Generating channels: 76%|███████▌ | 100453/131931 [00:05<00:02, 12724.66it/s]
Generating channels: 77%|███████▋ | 101737/131931 [00:05<00:02, 12289.34it/s]
Generating channels: 78%|███████▊ | 102972/131931 [00:06<00:02, 12056.09it/s]
Generating channels: 79%|███████▉ | 104181/131931 [00:06<00:02, 11830.05it/s]
Generating channels: 80%|███████▉ | 105365/131931 [00:06<00:02, 11784.18it/s]
Generating channels: 81%|████████ | 106544/131931 [00:06<00:02, 11621.62it/s]
Generating channels: 82%|████████▏ | 107710/131931 [00:06<00:02, 11632.29it/s]
Generating channels: 83%|████████▎ | 109347/131931 [00:06<00:01, 12996.73it/s]
Generating channels: 84%|████████▍ | 110883/131931 [00:06<00:01, 13684.65it/s]
Generating channels: 86%|████████▌ | 112974/131931 [00:06<00:01, 15806.83it/s]
Generating channels: 88%|████████▊ | 115470/131931 [00:06<00:00, 18511.09it/s]
Generating channels: 89%|████████▉ | 117987/131931 [00:06<00:00, 20488.61it/s]
Generating channels: 91%|█████████ | 120269/131931 [00:07<00:00, 21182.48it/s]
Generating channels: 93%|█████████▎| 122394/131931 [00:07<00:00, 21182.02it/s]
Generating channels: 94%|█████████▍| 124517/131931 [00:07<00:00, 21043.69it/s]
Generating channels: 96%|█████████▌| 126625/131931 [00:07<00:00, 20668.93it/s]
Generating channels: 98%|█████████▊| 129065/131931 [00:07<00:00, 21766.41it/s]
Generating channels: 100%|██████████| 131931/131931 [00:07<00:00, 17488.91it/s]
Generating channels: 0%| | 0/131931 [00:00<?, ?it/s]
Generating channels: 2%|▏ | 2510/131931 [00:00<00:05, 25076.71it/s]
Generating channels: 4%|▍ | 5018/131931 [00:00<00:06, 19253.39it/s]
Generating channels: 5%|▌ | 7025/131931 [00:00<00:07, 15895.89it/s]
Generating channels: 7%|▋ | 8692/131931 [00:00<00:08, 14112.76it/s]
Generating channels: 8%|▊ | 10152/131931 [00:00<00:09, 13094.87it/s]
Generating channels: 9%|▊ | 11487/131931 [00:00<00:09, 12447.70it/s]
Generating channels: 10%|▉ | 12742/131931 [00:00<00:10, 11855.61it/s]
Generating channels: 11%|█ | 13930/131931 [00:01<00:10, 11481.61it/s]
Generating channels: 11%|█▏ | 15076/131931 [00:01<00:10, 11367.66it/s]
Generating channels: 12%|█▏ | 16210/131931 [00:01<00:10, 10918.99it/s]
Generating channels: 13%|█▎ | 17324/131931 [00:01<00:10, 10978.18it/s]
Generating channels: 14%|█▍ | 18427/131931 [00:01<00:10, 10991.99it/s]
Generating channels: 15%|█▍ | 19562/131931 [00:01<00:10, 11094.65it/s]
Generating channels: 16%|█▌ | 20887/131931 [00:01<00:09, 11721.23it/s]
Generating channels: 17%|█▋ | 22362/131931 [00:01<00:08, 12609.91it/s]
Generating channels: 18%|█▊ | 23845/131931 [00:01<00:08, 13263.29it/s]
Generating channels: 20%|█▉ | 25830/131931 [00:01<00:06, 15215.53it/s]
Generating channels: 21%|██ | 27722/131931 [00:02<00:06, 16318.08it/s]
Generating channels: 22%|██▏ | 29661/131931 [00:02<00:05, 17232.44it/s]
Generating channels: 24%|██▍ | 31663/131931 [00:02<00:05, 18064.46it/s]
Generating channels: 26%|██▌ | 34259/131931 [00:02<00:04, 20423.21it/s]
Generating channels: 28%|██▊ | 36615/131931 [00:02<00:04, 21359.44it/s]
Generating channels: 30%|██▉ | 39170/131931 [00:02<00:04, 22614.60it/s]
Generating channels: 31%|███▏ | 41458/131931 [00:02<00:03, 22691.29it/s]
Generating channels: 33%|███▎ | 43729/131931 [00:02<00:04, 21627.32it/s]
Generating channels: 35%|███▍ | 45904/131931 [00:02<00:04, 20570.73it/s]
Generating channels: 36%|███▋ | 47978/131931 [00:03<00:04, 19838.60it/s]
Generating channels: 39%|███▊ | 50818/131931 [00:03<00:03, 22229.11it/s]
Generating channels: 41%|████ | 53956/131931 [00:03<00:03, 24835.05it/s]
Generating channels: 43%|████▎ | 56472/131931 [00:03<00:03, 24729.79it/s]
Generating channels: 45%|████▍ | 58968/131931 [00:03<00:02, 24334.44it/s]
Generating channels: 47%|████▋ | 61418/131931 [00:03<00:03, 22989.17it/s]
Generating channels: 48%|████▊ | 63741/131931 [00:03<00:03, 20768.25it/s]
Generating channels: 50%|████▉ | 65868/131931 [00:03<00:03, 19113.77it/s]
Generating channels: 51%|█████▏ | 67829/131931 [00:03<00:03, 17864.12it/s]
Generating channels: 53%|█████▎ | 69654/131931 [00:04<00:03, 17256.15it/s]
Generating channels: 54%|█████▍ | 71404/131931 [00:04<00:03, 16952.80it/s]
Generating channels: 55%|█████▌ | 73113/131931 [00:04<00:03, 15701.41it/s]
Generating channels: 57%|█████▋ | 74737/131931 [00:04<00:03, 15840.69it/s]
Generating channels: 58%|█████▊ | 76869/131931 [00:04<00:03, 17320.89it/s]
Generating channels: 60%|█████▉ | 78854/131931 [00:04<00:02, 18024.03it/s]
Generating channels: 61%|██████ | 80681/131931 [00:04<00:02, 17610.47it/s]
Generating channels: 63%|██████▎ | 82474/131931 [00:04<00:02, 17698.21it/s]
Generating channels: 64%|██████▍ | 84346/131931 [00:04<00:02, 17989.19it/s]
Generating channels: 65%|██████▌ | 86266/131931 [00:05<00:02, 18342.20it/s]
Generating channels: 67%|██████▋ | 88109/131931 [00:05<00:02, 17825.00it/s]
Generating channels: 68%|██████▊ | 89900/131931 [00:05<00:02, 17766.99it/s]
Generating channels: 69%|██████▉ | 91683/131931 [00:05<00:02, 17144.82it/s]
Generating channels: 71%|███████ | 93405/131931 [00:05<00:02, 15965.44it/s]
Generating channels: 72%|███████▏ | 95020/131931 [00:05<00:02, 15366.41it/s]
Generating channels: 73%|███████▎ | 96571/131931 [00:05<00:02, 14489.04it/s]
Generating channels: 74%|███████▍ | 98035/131931 [00:05<00:02, 13440.47it/s]
Generating channels: 75%|███████▌ | 99397/131931 [00:05<00:02, 12527.10it/s]
Generating channels: 76%|███████▋ | 100667/131931 [00:06<00:02, 12164.39it/s]
Generating channels: 77%|███████▋ | 101893/131931 [00:06<00:02, 11822.55it/s]
Generating channels: 78%|███████▊ | 103081/131931 [00:06<00:02, 11609.01it/s]
Generating channels: 79%|███████▉ | 104244/131931 [00:06<00:02, 11374.62it/s]
Generating channels: 80%|███████▉ | 105382/131931 [00:06<00:02, 11110.32it/s]
Generating channels: 81%|████████ | 106497/131931 [00:06<00:02, 11119.29it/s]
Generating channels: 82%|████████▏ | 107625/131931 [00:06<00:02, 11162.22it/s]
Generating channels: 83%|████████▎ | 109176/131931 [00:06<00:01, 12417.12it/s]
Generating channels: 84%|████████▍ | 110827/131931 [00:06<00:01, 13610.08it/s]
Generating channels: 86%|████████▌ | 112873/131931 [00:07<00:01, 15624.96it/s]
Generating channels: 87%|████████▋ | 115330/131931 [00:07<00:00, 18271.08it/s]
Generating channels: 89%|████████▉ | 117577/131931 [00:07<00:00, 19518.06it/s]
Generating channels: 91%|█████████ | 119854/131931 [00:07<00:00, 20482.69it/s]
Generating channels: 92%|█████████▏| 121909/131931 [00:07<00:00, 20291.97it/s]
Generating channels: 94%|█████████▍| 123943/131931 [00:07<00:00, 19849.05it/s]
Generating channels: 95%|█████████▌| 125970/131931 [00:07<00:00, 19971.60it/s]
Generating channels: 97%|█████████▋| 128064/131931 [00:07<00:00, 20253.82it/s]
Generating channels: 99%|█████████▉| 130761/131931 [00:07<00:00, 22242.32it/s]
Generating channels: 100%|██████████| 131931/131931 [00:07<00:00, 16786.33it/s]
Single antenna channel shape: (131931, 1, 1, 1) Array antenna channel shape: (131931, 4, 8, 1)
Next Steps¶
Continue with:
- Tutorial 4: User Selection and Dataset Manipulation - Learn how to filter and sample users
- Tutorial 5: Doppler and Mobility - Add time-varying effects to your channels