Jammer Mitigation
Several jammer mitigation algorithms are implemented here. Usage varies by algorithm, consult the documentation for each. Every algorithm is integrated into the simulation code.
Projection onto Orthogonal Subspace (POS)
Projection onto Orthogonal Space (orthonal to jammer subspace)
- class pyjama.mitigation.POS.OrthogonalSubspaceProjector(*args, **kwargs)[source]
Mitigates jammer interference by projecting onto the orthogonal subspace of the jammer subspace. Jammer subspace has to be set before calling the layer. This can be done by either calling set_jammer_frequency_response or set_jammer_covariance.
This layer should be called on the received signal and, if the unmapped channel frequency response is used, on it before equalization.
- Parameters
dimensionality (int) – Rank of the jammer subspace which is “subtracted”. If None, the maximum dimensionality is assumed (i.e. the rank of the jammer covariance matrix).
dtype (tf.Dtype) – Defines the datatype for internal calculations and the output dtype. Defaults to tf.complex64.
- Input
y ([batch_size, num_rx, num_rx_ant, num_tx, num_tx_ant, num_ofdm_symbols, fft_size], tf.complex (frequency response) or ([batch_size, num_rx, num_rx_ant, num_ofdm_symbols, fft_size], tf.complex) (signal)) – Input. Might be e.g. signal (including jammer interference), or channel frequency response (to be mapped to subspace).
- Output
y_proj (Same shape as
y
, dtype) – y projected onto the orthogonal subspace.
- set_jammer_covariance(jammer_covariance)[source]
- Input
jammer_covariance ([batch_size, num_rx, num_ofdm_symbols, fft_size, num_rx_ant, num_rx_ant], tf.complex) – Covariance matrix of jammer signal.
.. deprecated:: 0.1.0 – Use set_jammer_signals instead.
- set_jammer_frequency_response(j)[source]
Given the jammer channel frequency response j, precompute the projection matrix which maps the signal onto the orthogonal subspace of the jammer subspace.
- Input
j ([batch_size, num_rx, num_rx_ant, num_jammer, num_jammer_ant, num_ofdm_symbols, fft_size], tf.complex) – Jammer channel frequency response
LMMSE treating Interference as Noise (IAN)
LMMSE treating Interference as Noise (IAN)
- class pyjama.mitigation.IAN.IanLMMSEEqualizer(*args, **kwargs)[source]
LMMSE Equalizer mitigating jammer interference by treating it as noise. To be used instead of ~sionna.ofdm.LMMSEEqualizer to equalize and supress jammer at the same time.
One of set_jammer or set_jammer_covariance must be called before calling this layer.
- Parameters
resource_grid (ResourceGrid) – Instance of
ResourceGrid
stream_management (StreamManagement) – Instance of
StreamManagement
whiten_interference (bool) – If True (default), the interference is first whitened before equalization. In this case, an alternative expression for the receive filter is used which can be numerically more stable.
dtype (tf.Dtype) – Datatype for internal calculations and the output dtype. Defaults to tf.complex64.
- Input
(y, h_hat, err_var, no) – Tuple:
y ([batch_size, num_rx, num_rx_ant, num_ofdm_symbols, fft_size], tf.complex) – Received OFDM resource grid after cyclic prefix removal and FFT
h_hat ([batch_size, num_rx, num_rx_ant, num_tx, num_streams_per_tx, num_ofdm_symbols, num_effective_subcarriers], tf.complex) – Channel estimates for all streams from all transmitters
err_var ([Broadcastable to shape of
h_hat
], tf.float) – Variance of the channel estimation errorno ([batch_size, num_rx, num_rx_ant] (or only the first n dims), tf.float) – Variance of the AWGN
- Output
x_hat ([batch_size, num_tx, num_streams, num_data_symbols], tf.complex) – Estimated symbols with jammer interference removed
no_eff ([batch_size, num_tx, num_streams, num_data_symbols], tf.float) – Effective noise variance for each estimated symbol (including jammer interference)
- set_jammer(j, rho)[source]
Set the jammer covariance matrix from the frequency response of the jammer channel.
- Input
j ([batch_size, num_rx, num_rx_ant, num_jammer, num_jammer_ant, num_ofdm_symbols, fft_size], tf.complex, frequency response of jammer channel)
rho (broadcastable to j.shape.) – Jammer power.