The channel data generated by WiThRay is saved in CH. Types of UE positions determine the structure of CH.
Details of the structure of CH are explained here.
simulset.x_range and simulset.y_range determine the grid map size of UE positions. simulset.num_grid(1) is the number of grid points on the x-axis, and simulset.num_grid(2) is the number of grid poitns on the y-axis.
Different positions of UE are indexed by idx_t1. The second index of CH.BS.time is fixed as idx_t2=1 for the grid-type channel data. The grid-type data does not consider the mobility of UE. Since channel taps do not change within a channel block, it is not necessary to generate channel taps for every channel snapshot. Thus, the size of CH.BS.time.ant.time is 1x(num_tap). If you want to convert the grid-type channel data into the OFDM domain, first make the circulant channel matrix based on CH.BS.time.ant.time and use discrete Fourier transformation.Â
The trajectory-type channel data deals with UE mobility that causes the channel fading. Therefore, the channel taps can change even within the small sampling period. simulset.num_subcar+simulset.num_cycprf channel snapshots are converted to one OFDM block with simulset.num_subcar subcarriers, and consecutive simulset.num_blck OFDM blocks are created. The sampling period for obtaining (simulset.num_subcar+simulset.num_cycprf) x simulset.num_subcar channel snapshots is fixed to 1/param.freq_band [sec]. (simulset.num_subcar+simulset.num_cycprf) x simulset.num_subcar channel snapshots construct one channel sample set, and there are simulset.num_samp sample sets, which means total number of channel snapshots is (simulset.num_subcar+simulset.num_cycprf) x simulset.num_blck x simulset.num_samp. The sampling period of smaple sets is 1/simulset.period_samp [sec].
Sec2_UE_load.mlx creates (simulset.num_subcar+simulset.num_cycprf) x simulset.num_blck x simulset.num_samp UE positions for channel snapshots, where Sec2_UE_load.mlx randomly generates the trajectory of UE positions.