World Ocean Simulation System (WOSS) library
ChannelEstimator Class Reference

Class for channel estimation and averaging. More...

#include <uw-woss-channel-estimator.h>

Inheritance diagram for ChannelEstimator:
Inheritance graph
Collaboration diagram for ChannelEstimator:
Collaboration graph

Public Types

using RxMap = std::map< woss::CoordZ, std::unique_ptr< woss::TimeArr >, woss::CoordComparator< ChannelEstimator, woss::CoordZ > >
 
using RxMIter = RxMap::iterator
 
using RxMCIter = RxMap::const_iterator
 
using RxMRIter = RxMap::reverse_iterator
 
using ChannelMap = std::map< woss::CoordZ, RxMap, woss::CoordComparator< ChannelEstimator, woss::CoordZ > >
 
using ChMapIter = ChannelMap::iterator
 
using ChMapRIter = ChannelMap::reverse_iterator
 
using MacToPosMap = std::map< int, WossPosition * >
 
using MacMapIter = MacToPosMap::iterator
 
using MacMapRIter = MacToPosMap::reverse_iterator
 

Public Member Functions

 ChannelEstimator ()
 
virtual ~ChannelEstimator () override=default
 
virtual int command (int argc, const char *const *argv) override
 
virtual void updateEstimation (const woss::CoordZ &tx, const woss::CoordZ &rx, const woss::TimeArr &curr_channel)
 
std::unique_ptr< woss::TimeArrgetEstimation (const woss::CoordZ &tx, const woss::CoordZ &rx)
 
void addMacAddress (int addr, WossPosition *pos)
 
virtual WossPositionfindMacAddress (int addr)
 
virtual bool resetEstimator ()
 

Static Public Member Functions

static double getSpaceSampling ()
 

Protected Attributes

ChannelMap channel_map
 
MacToPosMap mac_to_pos_map
 
double debug_
 
double avg_coeff
 

Static Protected Attributes

static double space_sampling = 0.0
 

Detailed Description

Class for channel estimation and averaging.

ChannelEstimator provides extensible estimation and averaging methods.

Member Typedef Documentation

◆ ChannelMap

◆ ChMapIter

using ChannelEstimator::ChMapIter = ChannelMap::iterator

◆ ChMapRIter

using ChannelEstimator::ChMapRIter = ChannelMap::reverse_iterator

◆ MacMapIter

using ChannelEstimator::MacMapIter = MacToPosMap::iterator

◆ MacMapRIter

using ChannelEstimator::MacMapRIter = MacToPosMap::reverse_iterator

◆ MacToPosMap

using ChannelEstimator::MacToPosMap = std::map< int, WossPosition* >

◆ RxMap

◆ RxMCIter

using ChannelEstimator::RxMCIter = RxMap::const_iterator

◆ RxMIter

using ChannelEstimator::RxMIter = RxMap::iterator

◆ RxMRIter

using ChannelEstimator::RxMRIter = RxMap::reverse_iterator

Constructor & Destructor Documentation

◆ ChannelEstimator()

ChannelEstimator::ChannelEstimator ( )

References avg_coeff, debug_, and space_sampling.

◆ ~ChannelEstimator()

virtual ChannelEstimator::~ChannelEstimator ( )
overridevirtualdefault

Member Function Documentation

◆ addMacAddress()

void ChannelEstimator::addMacAddress ( int  addr,
WossPosition pos 
)
inline

References mac_to_pos_map.

Referenced by ChEstimatorPlugIn::command().

◆ command()

int ChannelEstimator::command ( int  argc,
const char *const *  argv 
)
overridevirtual

References resetEstimator().

Here is the call graph for this function:

◆ findMacAddress()

WossPosition * ChannelEstimator::findMacAddress ( int  addr)
virtual

◆ getEstimation()

std::unique_ptr< woss::TimeArr > ChannelEstimator::getEstimation ( const woss::CoordZ tx,
const woss::CoordZ rx 
)

Returns channel estimation for the given tx-rx couple

Parameters
txns address type of transmitter node
rxns address type of receiver node
Returns
pointer to a heap-allocated woss::TimeArr channel

References channel_map, and debug_.

Referenced by ChEstimatorPlugIn::recvSyncClMsg().

◆ getSpaceSampling()

static double ChannelEstimator::getSpaceSampling ( )
inlinestatic

References space_sampling.

◆ resetEstimator()

bool ChannelEstimator::resetEstimator ( )
virtual

References channel_map.

Referenced by command().

◆ updateEstimation()

void ChannelEstimator::updateEstimation ( const woss::CoordZ tx,
const woss::CoordZ rx,
const woss::TimeArr curr_channel 
)
virtual

Updates channel estimation for the given tx-rx couple

Parameters
txns address type of transmitter node
rxns address type of receiver node
curr_channelpointer to new channel value

References avg_coeff, channel_map, woss::TimeArr::clone(), and debug_.

Referenced by WossChannelModule::checkTimeArrVector(), and ChEstimatorPlugIn::recvSyncClMsg().

Here is the call graph for this function:

Member Data Documentation

◆ avg_coeff

double ChannelEstimator::avg_coeff
protected

◆ channel_map

ChannelMap ChannelEstimator::channel_map
protected

◆ debug_

double ChannelEstimator::debug_
protected

◆ mac_to_pos_map

MacToPosMap ChannelEstimator::mac_to_pos_map
protected

Referenced by addMacAddress(), and findMacAddress().

◆ space_sampling

double ChannelEstimator::space_sampling = 0.0
staticprotected

The documentation for this class was generated from the following files: