grid_of_beams_dft_ula#
- sionna.phy.mimo.grid_of_beams_dft_ula(num_ant: int, oversmpl: int = 1, precision: Literal['single', 'double'] | None = None, device: str | None = None) torch.Tensor[source]#
Computes the Discrete Fourier Transform (DFT) Grid of Beam (GoB) coefficients for a uniform linear array (ULA).
The coefficient applied to antenna \(n\) for beam \(m\) is expressed as:
\[c_n^m = \frac{1}{\sqrt{N}}e^{j\frac{2\pi n m}{N O}}, \quad n=0,\dots,N-1,\quad m=0,\dots,NO-1\]where \(N\) is the number of antennas
num_antand \(O\) is the oversampling factoroversmpl.For a half-wavelength-spaced ULA, define the wrapped spatial frequency \(\nu_m=m/(NO)\) for \(m\le\lfloor NO/2\rfloor\) and \(\nu_m=(m-NO)/(NO)\) otherwise. With positive phase progression corresponding to positive azimuth, the main lobe points towards \(\theta_m=\arcsin(2\nu_m)\), where \(\theta_m=0\) is perpendicular to the antenna array.
- Parameters:
- Outputs:
gob – [num_ant x oversmpl, num_ant], torch.complex. The \(m\)-th row contains the num_ant antenna coefficients for the \(m\)-th DFT beam.
Examples
gob = grid_of_beams_dft_ula(num_ant=8, oversmpl=2) # gob.shape = torch.Size([16, 8])