comyx.network.ris#
Module Summary#
Classes#
Reference#
- class comyx.network.ris.RIS(id_: str, n_elements: int, position: List[float] | None = None)[source]#
Represents a reconfigurable intelligent surface (RIS).
An RIS is a surface with a large number of elements that can be electronically controlled to reflect the incoming signal in a desired direction.
Mathematically, the reflection matrix of the RIS is given by
\[\mathbf{R} = \text{diag}(\mathbf{a} \odot \exp(j \mathbf{\Phi})),\]where \(\mathbf{a}\) is the vector of amplitudes, \(\mathbf{\Phi}\) is the vector of phase shifts, and \(\odot\) is the Hadamard product.
- property amplitudes: NDArrayFloat#
Return the amplitudes of the RIS.
- property id: str#
Return the unique identifier of the RIS.
- property n_elements: int#
Return the number of elements of the RIS.
- property phase_shifts: NDArrayFloat#
Return the phase shifts of the RIS.
- property position: List[float]#
Return the position of the RIS in the environment.
- property reflection_matrix: NDArrayComplex#
Return the reflection matrix of the RIS.
The reflection matrix is a diagonal matrix with the phase shifts and amplitudes as its diagonal elements. The phase shifts and amplitudes must be set before accessing the reflection matrix.
The diagonality of the reflection matrix is due to the fact that the each element of the RIS reflects the incoming signal independently of the other elements.
- Returns:
The reflection matrix of the RIS.
- class comyx.network.ris.STAR_RIS(id_: str, n_elements: int, position: List[float] | None = None)[source]#
Represents a STAR-RIS (Simultaneously Transmitting and Reflecting RIS).
An STAR-RIS is a surface with a large number of elements that can be electronically controlled to reflect and transmit the incoming signal in a both spaces.
Mathematically, the characteristic matrices of the STAR-RIS is given by
\[\mathbf{R}^{n} = \text{diag}(\mathbf{a}^{n} \odot \exp(j \mathbf{\Phi}^{n})),\]where \(n \in \{t, r\}\) and represents the transmission and reflection mode, respectively. Furthermore, $mathbf{a}^{n}$ is the vector of amplitudes, \(\mathbf{\Phi}^{n}\) is the vector of phase shifts, and $odot$ is the Hadamard product.
Note that STAR-RIS must satisfy the law of conservation of energy, that is, \(\forall i \in \{1, \ldots, N\}\) (where \(N\) is the number of elements of the STAR-RIS), \((a^{t}_{i})^2 + (a^{r}_{i})^2 = 1\).
- property id: str#
Return the unique identifier of the STAR-RIS.
- property n_elements: int#
Return the number of antennas of the STAR-RIS.
- property position: List[float]#
Return the position of the STAR-RIS in the environment.
- property reflection_amplitudes: NDArrayFloat#
Return the reflection amplitudes of the STAR-RIS.
- property reflection_matrix: NDArrayComplex#
Return the reflection matrix of the STAR-RIS.
The reflection matrix is a diagonal matrix with the phase shifts and amplitudes as its diagonal elements. The phase shifts and amplitudes must be set before accessing the reflection matrix.
The diagonality of the reflection matrix is due to the fact that the each element of the RIS reflects the incoming signal independently of the other elements.
- Returns:
The reflection matrix of the RIS.
- property reflection_phases: NDArrayFloat#
Return the reflection phase shifts of the STAR-RIS.
- property transmission_amplitudes: NDArrayFloat#
Return the transmission amplitudes of the STAR-RIS.
- property transmission_matrix: NDArrayComplex#
Return the transmission matrix of the STAR-RIS.
The transmission matrix is a diagonal matrix with the phase shifts and amplitudes as its diagonal elements. The phase shifts and amplitudes must be set before accessing the transmission matrix.
The diagonality of the transmission matrix is due to the fact that the each element of the RIS reflects the incoming signal independently of the other elements.
- Returns:
The transmission matrix of the STAR-RIS.
- property transmission_phases: NDArrayFloat#
Return the transmission phase shifts of the STAR-RIS.