Creating random CDL channels for a dataset

[1]:
import numpy as np
import scipy.io
import time

from neoradium import Carrier, CdlChannel, AntennaPanel, random

Create 1000 MIMO CDL channels

[3]:
# First create a carrier object with 25 PRBs and 15KHz subcarrier spacing
carrier = Carrier(startRb=0, numRbs=25, spacing=15)

# Now create the generator
chanGen = CdlChannel.getChanGen(1000, carrier.curBwp,       # Number of channels and bandwidth part
                                profiles="ABCDE",           # Randomly pick a CDL profile
                                delaySpread=(10,500),       # Uniformly sample beween 10 and 500 ns
                                ueSpeed=(5,20),             # Uniformly sample beween 5 and 20 mps
                                ueDir=[45, 135, 225, 315],  # Randomly pick one of these UE directions
                                carrierFreq=4e9,            # Carrier frequency
                                txAntenna=AntennaPanel([2,4], polarization="x"),  # 16 TX antenna
                                rxAntenna=AntennaPanel([1,2], polarization="x"),  # 4 RX antenna
                                seed=123)

# create the channel matrices
allChannels = np.stack([chan for chan in chanGen])
print(f"shape of 'allChannels': {allChannels.shape}")
shape of 'allChannels': (1000, 14, 300, 4, 16)
[ ]: