51 friend NrRealisticBeamformingTestCase;
63 Ptr<const MatrixBasedChannelModel::ChannelMatrix>
74 RealisticBfManager::TriggerEvent event;
75 uint16_t updatePeriodicity;
92 void Install(
const Ptr<NrSpectrumPhy>& gnbSpectrumPhy,
93 const Ptr<NrSpectrumPhy>& ueSpectrumPhy,
94 const Ptr<NrMacScheduler>& scheduler);
145 void NotifySrsReport(uint16_t cellId, uint16_t rnti,
double srsReport);
150 typedef Callback<void, const Ptr<NrSpectrumPhy>&,
const Ptr<NrSpectrumPhy>&>
156 void SetUseSnrSrs(
bool v);
161 bool UseSnrSrs()
const;
168 uint8_t GetSrsSymbolsPerSlot();
207 Ptr<const MatrixBasedChannelModel::ChannelMatrix> GetChannelMatrix()
const;
220 UniformPlanarArray::ComplexVector GetEstimatedLongTermComponent(
221 const Ptr<const MatrixBasedChannelModel::ChannelMatrix>& channelMatrix,
222 const UniformPlanarArray::ComplexVector& aW,
223 const UniformPlanarArray::ComplexVector& bW,
224 Ptr<const MobilityModel> a,
225 Ptr<const MobilityModel> b,
227 Ptr<const PhasedArrayModel> aArray,
228 Ptr<const PhasedArrayModel> bArray)
const;
235 double CalculateTheEstimatedLongTermMetric(
236 const UniformPlanarArray::ComplexVector& longTermComponent)
const;
241 void RemoveUsedDelayedUpdateInfo();
243 void DoDispose()
override;
246 double m_beamSearchAngleStep{30};
248 bool m_useSnrSrs{
true};
250 double m_maxSrsSinrPerSlot{
253 std::queue<DelayedUpdateInfo>
256 uint8_t m_srsSymbolsCounter{0};
258 uint16_t m_srsPeriodicityCounter{
263 Ptr<NormalRandomVariable>
264 m_normalRandomVariable;
272 Ptr<NrGnbNetDevice> m_gnbDevice;
273 Ptr<NrUeNetDevice> m_ueDevice;
274 Ptr<NrSpectrumPhy> m_gnbSpectrumPhy;
275 Ptr<NrSpectrumPhy> m_ueSpectrumPhy;
276 Ptr<NrMacScheduler> m_scheduler;
277 Ptr<NrUePhy> m_nrUePhy;