Base Station (Detailed Documentation)¶
This page provides the complete documentation of the base station class.
- class BaseStation(Pt: float, B: float, K: int, Nt: int, configs: BaseStationConfig, c_configs: ConstConfig)[source]¶
Represents the base station (BS) in a MU-MIMO downlink system.
- __init__(Pt: float, B: float, K: int, Nt: int, configs: BaseStationConfig, c_configs: ConstConfig)[source]¶
Initialize a base station.
- Parameters:
Pt (float) – The total transmit power at the BS.
B (float) – The bandwidth of the system.
K (int) – The number of user terminals (UTs) in the system.
Nt (int) – The number of transmit antennas at the BS.
configs (BaseStationConfig) – The configuration of the processing components (bit allocator, mapper, power allocator and precoder) in the BS.
c_configs (ConstConfig) – The constellation configuration settings for each UT.
- reset_state() None[source]¶
Resets the state of the BS.
It clears the precoder F, the power allocation P, the information bit rates ibr, the number of data streams for each UT Ns and the combining matrices G for each UT in case of coordinated beamforming from the previous channel realization and SNR.
- transmit_pilots() TransmitPilotMessage[source]¶
Transmits pilot signals from the BS through the channel.
- Returns:
pilot_msg – The pilot messages transmitted by the BS.
- Return type:
- receive_feedback(rx_fb_msg: ReceiveFeedbackMessage) None[source]¶
Receive and process the feedback messages from the UTs.
The feedback message contains the current CSI, which is used to compute the precoder matrix, the power allocation, and the information bit rate for the current channel realization and SNR, according to the specific algorithms implemented in the processing components of the BS. In case of non-coordinated beamforming, the effective channel matrix (part of the CSI) equals the channel matrix H followed by the compound combining matrix G.
- Parameters:
rx_fb_msg (ReceiveFeedbackMessage) – The compound feedback message.
- transmit_feedforward() TransmitFeedforwardMessage[source]¶
Transmits the feedforward messages from the BS through the channel.
The feedforward message contains the constellation type, the power allocation, the information bit rates and the number of data streams for each UT and the combining matrices for each UT in case of coordinated beamforming for the current channel realization and SNR.
- Returns:
tx_ff_msg – The feedforward messages.
- Return type:
- transmit(M: int) tuple[list[list[ndarray[tuple[Any, ...], dtype[integer]]]], ndarray[tuple[Any, ...], dtype[complexfloating]]][source]¶
Simulate the transmit processing chain of the BS to obtain the transmitted signal x.
The processing chain consists of the following steps:
Bit Allocation - generate the bitstreams b_s for each data stream s based on the information bit rates ibr and the number of symbols to be transmitted M.
Mapping - convert the bitstreams b_s to the corresponding data symbol streams a_s based on the modulation scheme (determined by the information bit rates ibr).
Precoding - apply the precoding matrix F to the symbol streams a_s to obtain the transmitted signal x.
- Parameters:
M (int) – The number of symbol vector transmissions for this channel realization and SNR.
- Returns:
tx_bits_list (list[list[BitArray]], shape (K, Ns_k, ibr_k_s * M)) – The list of bitstreams for each UT k and each data stream s.
x (ComplexArray, shape (Nt, M)) – The transmitted signal.