Channel State Information Model#
- class CSIT#
Type hint for channel state information.
alias of TypeVar(‘CSIT’, bound=
ChannelStateInformation
)
- class ChannelStateFormat(value)#
Bases:
Enum
Format flag for wireless transmission link states.
- IMPULSE_RESPONSE = 0#
- FREQUENCY_SELECTIVITY = 1#
- class ChannelStateDimension(value)#
Bases:
Enum
Dimension selection of channel state information.
- RECEIVE_STREAMS = 0#
- TRANSMIT_STREAMS = 1#
- SAMPLES = 2#
- INFORMATION = 3#
- class ChannelStateInformation(state_format, state=None, num_delay_taps=None, num_frequency_bins=None)#
Bases:
HDFSerializable
State of a single wireless link between a transmitting and receiving modem.
- __state_format#
The current format of the channel state information. The format may change depending on the most recent format requests.
- Type:
- __state#
The current channel state. A numpy tensor of dimension num_receive_streams`x`num_transmit_streams`x`num_samples`x`state_information.
If the state is currently in the format impulse response, num_samples is the time domain of the channel state and state_information the delay taps.
If the state is currently in frequency selectivity format, num_samples discrete frequency domain bins and state_information is of length one, containing the respective Fourier weights.
- Type:
np.ndarray
- __num_delay_taps#
Number of delay taps in impulse-response mode. Recovers the 4th matrix dimension during conversions.
- Type:
int
- __num_frequency_bins#
Number of discrete frequency bins in frequency-selectivity mode. Recovers the 4th matrix dimension during conversions.
- Type:
int
Channel State Information object initialization.
- Parameters:
state_format (ChannelStateFormat) – Format of the state from which to initialize the channel state information.
state (np.ndarray, optional) – Channel state matrix. A numpy tensor of dimension num_receive_streams`x`num_transmit_streams`x`num_samples`x`state_information.
num_delay_taps (int, optional) – Number of delay taps in impulse-response mode.
num_frequency_bins (int) – Number of discrete frequency bins in frequency-selectivity mode..
- Raises:
ValueError – If state dimensions are invalid.
- property state_format: ChannelStateFormat#
Current channel state format.
- Returns:
The current channel state format.
- Return type:
- property state: ndarray#
Current channel state tensor.
- Returns:
The current channel state tensor.
- Return type:
np.ndarray
- set_state(state_format, state=None, num_delay_taps=None, num_frequency_bins=None)#
Set a new channel state.
- Parameters:
state_format (ChannelStateFormat) – Format of the state from which to initialize the channel state information.
state (np.ndarray, optional) – Channel state matrix. A numpy tensor of dimension num_receive_streams`x`num_transmit_streams`x`num_samples`x`state_information.
num_delay_taps (int, optional) – Number of delay taps.
num_frequency_bins (int, optional) – Number of discrete frequency bins.
- Raises:
ValueError – If state dimensions are invalid.
- Return type:
None
- to_impulse_response()#
Access the channel state in time-domain.
May convert the internal state format via FFT.
- Returns:
The current channel tensor of dimensions num_receive_streams`x`num_transmit_streams`x`num_samples`x`num_delay_taps.
- Return type:
- to_frequency_selectivity(num_bins=None)#
Access the channel state in frequency-domain.
May convert the internal state format via FFT.
- Parameters:
num_bins (int, optional) – Number of discrete frequency bins. By default, this will be the number of time samples, i.e. a FFT without zero-padding will be performed.
- Returns:
The current channel tensor of dimensions num_receive_streams`x`num_transmit_streams`x`num_samples`x`num_frequency_bins.
- Return type:
- property num_receive_streams: int#
Number of receive streams within this channel state.
- Returns:
Number of receive streams.
- Return type:
int
- property num_transmit_streams: int#
Number of transmit streams within this channel state.
- Returns:
Number of transmit streams.
- Return type:
int
- property num_samples: int#
Number of time-domain samples within this channel state.
- Returns:
Number of samples.
- Return type:
int
- property num_symbols: int#
Number of symbols considered within this channel state.
- Returns:
Number of symbols.
- Return type:
int
- property num_delay_taps: int#
Number of taps within the delay response of the channel state.
- Returns:
Number of taps.
- Return type:
int
- property linear: COO#
Convert the channel state to a linear transformation tensor.
- Returns:
Sparse linear transformation tensor of dimension N_Rx x N_Tx x N_out x N_in.
- static Ideal(num_samples, num_receive_streams=1, num_transmit_streams=1)#
Initialize an ideal channel state.
- Parameters:
num_samples (int) – Number of timestamps at which the channel state has been sampled.
num_receive_streams (int, optional) – Number of emerging data streams after channel propagation.
num_transmit_streams (int, optional) – Number of data streams feeding into the channel before propagation.
- Returns:
Ideal channel state information of a non-distorting channel.
- Return type:
- received_streams()#
Iterate over the received streams slices within this channel state.
- Returns:
Generator.
- Return type:
Generator
- samples()#
Iterate over the sample slices within this channel state.
- Returns:
Generator.
- Return type:
Generator
- static concatenate(elements, dimension)#
- Return type:
- plot()#
Visualize the internal channel state information.
Plots the absolute values of all channel state weights.
- Return type:
None
- append(state, axis)#
Append a channel state slice to this channel state.
- Parameters:
state (ChannelStateInformation) – The channel state information to append along axis.
axis (int) – The dimension along which to append the linear_state.
- Return type:
None
- append_linear(linear_state, axis)#
Append a linear channel state slice to this channel state.
- Parameters:
linear_state (np.ndarray) – The linear state matrix to be appended along axis.
axis (int) – The dimension along which to append the linear_state.
- Return type:
None
- reciprocal()#
Compute the reciprocal channel state.
Returns: The reciprocal channel state information.
- Return type:
- classmethod from_HDF(group)#
De-Serialized the object state from HDF5.
Recalls the object’s state from a HDF5 group.
- Parameters:
group (Group) – The HDF5 group from which the object state is recalled.
- Return type:
TypeVar
(CSIT
, bound= ChannelStateInformation)
Returns: The object initialized from the HDF5 group state.
- to_HDF(group)#
Serialize the object state to HDF5.
Dumps the object’s state and additional information to a HDF5 group.
- Parameters:
group (Group) – The HDF5 group to which the object is serialized.
- Return type:
None