5#ifndef NR_MIMO_MATRICES_H
6#define NR_MIMO_MATRICES_H
8#include "ns3/matrix-array.h"
9#include "ns3/spectrum-value.h"
14class NrIntfNormChanMat;
26 : ComplexMatrixArray(arr){};
47 virtual NrIntfNormChanMat CalcIntfNormChannelMimo(
const ComplexMatrixArray& chanMat)
const;
68 : ComplexMatrixArray(arr){};
111 virtual ComplexMatrixArray ComputeMse(
const ComplexMatrixArray& precMats)
const;
117 virtual ComplexMatrixArray ComputeMseMimo(
const ComplexMatrixArray& precMats)
const;
126 : DoubleMatrixArray(arr){};
128 : DoubleMatrixArray(values){};
130 : DoubleMatrixArray(rank, nRbs){};
132 uint8_t GetRank()
const;
133 size_t GetNumRbs()
const;
virtual NrIntfNormChanMat CalcIntfNormChannel(const ComplexMatrixArray &chanMat) const
Calculate the interference-normalized channel matrix for SISO and MIMO. See NrIntfNormChanMat for det...
virtual void SubtractInterferenceSignal(const ComplexMatrixArray &rhs)
virtual void AddInterferenceSignal(const ComplexMatrixArray &rhs)
virtual uint8_t GetWaterfillingWidebandRank(uint8_t maxRank, double thr) const
GetWaterfillingWidebandRank extracts the rank from an input channel matrix using the waterfilling tec...
virtual NrSinrMatrix ComputeSinrForPrecoding(const ComplexMatrixArray &precMats) const
Compute the MIMO SINR when a specific precoder is applied.
virtual ComplexMatrixArray ExtractOptimalPrecodingMatrices(uint8_t rank) const
ExtractOptimalPrecodingMatrices extracts optimal precoding matrices for a given rank.
virtual NrIntfNormChanMat GetWidebandChannel() const
Compute the average received signal parameters (channel and interference matrix) between the differen...
virtual std::vector< uint8_t > GetEigenSubbandRanks(double thr) const
GetEigenSubbandRanks extracts the rank from an input channel matrix.
virtual uint8_t GetSasaokaWidebandRank() const
GetSasaokaWidebandRank extracts the rank from an input channel matrix using Sasaoka's increment of ca...
virtual uint8_t GetEigenWidebandRank(double thr) const
GetEigenWidebandRank extracts the rank from an input channel matrix.
NrSinrMatrix stores the MIMO SINR matrix, with dimension rank x nRbs.
SpectrumValue GetVectorizedSpecVal() const
Linearize a 2D matrix into a vector, and convert that vector to a SpectrumValue Matches layer-to-code...