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.

◆ 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

References mac_to_pos_map.

◆ 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_.

◆ getSpaceSampling()

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_.

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: