Diana Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
QMultiChannelDecorrelator Class Reference
Inheritance diagram for QMultiChannelDecorrelator:
QMultiChannelDecorrelatorOF

Public Member Functions

 QMultiChannelDecorrelator (const int chan, const QChannelCovariance *cov)
 ctor, by default all channels are used to decorrelate More...
 
virtual ~QMultiChannelDecorrelator ()
 dtor More...
 
void SetSideChannels (const std::vector< int > &channels)
 chose subset of channels to use for decorrelation More...
 
const std::vector< int > & GetSideChannels () const
 get subset of channels to use for decorrelation More...
 
const Diana::QVector & GetOriginalPowerSpectrum () const
 get original average power spectrum of this channel More...
 
const Diana::QVector & GetFilteredPowerSpectrum () const
 get average filtered spectrum of this channel More...
 
virtual void Filter (const Diana::QVector &input, const std::vector< const Diana::QVector * > &sideInputs, Diana::QVector &output) const
 decorrelate input QVector from this channel using sideInputs QVectors from sideChannels, ordered as they were provieded in SetSideChannels(). If sideInputs.size() is different from the expected size then output is empty
More...
 
virtual void Filter (const std::vector< const Diana::QVector * > &inputs, const std::vector< const Diana::QVector * > &sideInputs, Diana::QVector &output) const
 same of method above. inputs.size() must be equal to 1. More...
 
const std::vector< int > & GetChannels () const
 get main channels More...
 
void SetScale (double scale)
 scale power spectra and filtered samples More...
 
double GetOriginalResolution () const
 get original resolution More...
 
double GetFilteredResolution () const
 get filtered resolution More...
 

Protected Member Functions

 QMultiChannelDecorrelator (const int chan, const QChannelCovariance *cov, bool init)
 which inhibits initialization (used by inheriting classes) More...
 
 QMultiChannelDecorrelator (const std::vector< int > &channels, const QChannelCovariance *cov, bool init)
 which inhibits initialization (used by inheriting classes) More...
 
virtual void Init (const std::vector< int > &allChannels)
 init weights More...
 
std::vector< int >::iterator FindChannel (std::vector< int > &channels, const int chan)
 find if chan is contained in channels otherwise throw exception More...
 
double ComputeResolution (const Diana::QVector &powerSpectrum) const
 compute resolution More...
 

Protected Attributes

std::vector< int > fChannels
 number of this channel More...
 
const QChannelCovariancefCovarianceMatrix
 pointer to global covariance matrix More...
 
std::vector< int > fAvailableSideChannels
 all side channels available in fCovarianceMatrix (not only the selected ones) More...
 
Diana::QRealComplexFFT * fTransformer
 FFT engine. More...
 
std::vector< int > fSideChannels
 selected side channels More...
 
std::vector< Diana::QVectorC > fWeights
 coefficients used in decorrelation More...
 
Diana::QVector fOriginalPowerSpectrum
 original power spectrum of this channel More...
 
Diana::QVector fDecorrelatedPowerSpectrum
 decorrelated power spectrum of this channel More...
 
double fScale
 scale output More...
 
double fOriginalResolution
 original resolution More...
 
double fFilteredResolution
 expected filtered resolution More...
 

Private Member Functions

void Constructor (const std::vector< int > &channels, const QChannelCovariance *cov, bool init)
 perform constructor operations More...
 

Detailed Description

Definition at line 15 of file QMultiChannelDecorrelator.hh.

Constructor & Destructor Documentation

◆ QMultiChannelDecorrelator() [1/3]

QMultiChannelDecorrelator::QMultiChannelDecorrelator ( const int  chan,
const QChannelCovariance cov 
)

ctor, by default all channels are used to decorrelate

Parameters
chanChannel to be decorrlated
covmultichannel complex covariance matrix

Definition at line 6 of file QMultiChannelDecorrelator.cc.

◆ ~QMultiChannelDecorrelator()

QMultiChannelDecorrelator::~QMultiChannelDecorrelator ( )
virtual

dtor

Definition at line 61 of file QMultiChannelDecorrelator.cc.

◆ QMultiChannelDecorrelator() [2/3]

QMultiChannelDecorrelator::QMultiChannelDecorrelator ( const int  chan,
const QChannelCovariance cov,
bool  init 
)
protected

which inhibits initialization (used by inheriting classes)

Definition at line 13 of file QMultiChannelDecorrelator.cc.

◆ QMultiChannelDecorrelator() [3/3]

QMultiChannelDecorrelator::QMultiChannelDecorrelator ( const std::vector< int > &  channels,
const QChannelCovariance cov,
bool  init 
)
protected

which inhibits initialization (used by inheriting classes)

Definition at line 20 of file QMultiChannelDecorrelator.cc.

Member Function Documentation

◆ ComputeResolution()

double QMultiChannelDecorrelator::ComputeResolution ( const Diana::QVector &  powerSpectrum) const
protected

compute resolution

Definition at line 110 of file QMultiChannelDecorrelator.cc.

Referenced by QMultiChannelDecorrelatorOF::Init().

◆ Constructor()

void QMultiChannelDecorrelator::Constructor ( const std::vector< int > &  channels,
const QChannelCovariance cov,
bool  init 
)
private

perform constructor operations

Definition at line 26 of file QMultiChannelDecorrelator.cc.

References DianaThrow, err, Q_DOUBLE_DEFAULT, and QERR_UNKNOWN_ERR.

◆ Filter() [1/2]

void QMultiChannelDecorrelator::Filter ( const Diana::QVector &  input,
const std::vector< const Diana::QVector * > &  sideInputs,
Diana::QVector &  output 
) const
virtual

decorrelate input QVector from this channel using sideInputs QVectors from sideChannels, ordered as they were provieded in SetSideChannels(). If sideInputs.size() is different from the expected size then output is empty

Definition at line 121 of file QMultiChannelDecorrelator.cc.

Referenced by MDecorrelator::Do().

◆ Filter() [2/2]

void QMultiChannelDecorrelator::Filter ( const std::vector< const Diana::QVector * > &  inputs,
const std::vector< const Diana::QVector * > &  sideInputs,
Diana::QVector &  output 
) const
virtual

same of method above. inputs.size() must be equal to 1.

Reimplemented in QMultiChannelDecorrelatorOF.

Definition at line 139 of file QMultiChannelDecorrelator.cc.

References DianaThrow, err, and QERR_SIZE_NOT_MATCH.

◆ FindChannel()

std::vector< int >::iterator QMultiChannelDecorrelator::FindChannel ( std::vector< int > &  channels,
const int  chan 
)
protected

find if chan is contained in channels otherwise throw exception

Definition at line 152 of file QMultiChannelDecorrelator.cc.

References DianaThrow, err, and QERR_OUT_OF_RANGE.

◆ GetChannels()

const std::vector<int>& QMultiChannelDecorrelator::GetChannels ( ) const
inline

get main channels

Definition at line 44 of file QMultiChannelDecorrelator.hh.

References fChannels.

Referenced by MDecorrelator::Do().

◆ GetFilteredPowerSpectrum()

const Diana::QVector& QMultiChannelDecorrelator::GetFilteredPowerSpectrum ( ) const
inline

get average filtered spectrum of this channel

Definition at line 36 of file QMultiChannelDecorrelator.hh.

References fDecorrelatedPowerSpectrum.

◆ GetFilteredResolution()

double QMultiChannelDecorrelator::GetFilteredResolution ( ) const
inline

get filtered resolution

Definition at line 53 of file QMultiChannelDecorrelator.hh.

References fFilteredResolution.

Referenced by MDecorrelator::Do().

◆ GetOriginalPowerSpectrum()

const Diana::QVector& QMultiChannelDecorrelator::GetOriginalPowerSpectrum ( ) const
inline

get original average power spectrum of this channel

Definition at line 33 of file QMultiChannelDecorrelator.hh.

References fOriginalPowerSpectrum.

◆ GetOriginalResolution()

double QMultiChannelDecorrelator::GetOriginalResolution ( ) const
inline

get original resolution

Definition at line 50 of file QMultiChannelDecorrelator.hh.

References fOriginalResolution.

Referenced by MDecorrelator::Do().

◆ GetSideChannels()

const std::vector<int>& QMultiChannelDecorrelator::GetSideChannels ( ) const
inline

get subset of channels to use for decorrelation

Definition at line 31 of file QMultiChannelDecorrelator.hh.

References fSideChannels.

Referenced by MDecorrelator::Do().

◆ Init()

void QMultiChannelDecorrelator::Init ( const std::vector< int > &  allChannels)
protectedvirtual

init weights

Reimplemented in QMultiChannelDecorrelatorOF.

Definition at line 87 of file QMultiChannelDecorrelator.cc.

References QChannelCovariance::GetCovariance().

◆ SetScale()

void QMultiChannelDecorrelator::SetScale ( double  scale)
inline

scale power spectra and filtered samples

Definition at line 47 of file QMultiChannelDecorrelator.hh.

References fScale.

Referenced by MDecorrelator::Do().

◆ SetSideChannels()

void QMultiChannelDecorrelator::SetSideChannels ( const std::vector< int > &  channels)

chose subset of channels to use for decorrelation

Definition at line 67 of file QMultiChannelDecorrelator.cc.

Referenced by MDecorrelator::Do(), and QMultiChannelDecorrelatorOF::QMultiChannelDecorrelatorOF().

Member Data Documentation

◆ fAvailableSideChannels

std::vector<int> QMultiChannelDecorrelator::fAvailableSideChannels
protected

all side channels available in fCovarianceMatrix (not only the selected ones)

Definition at line 72 of file QMultiChannelDecorrelator.hh.

◆ fChannels

std::vector<int> QMultiChannelDecorrelator::fChannels
protected

◆ fCovarianceMatrix

const QChannelCovariance* QMultiChannelDecorrelator::fCovarianceMatrix
protected

pointer to global covariance matrix

Definition at line 70 of file QMultiChannelDecorrelator.hh.

Referenced by QMultiChannelDecorrelatorOF::Filter(), and QMultiChannelDecorrelatorOF::Init().

◆ fDecorrelatedPowerSpectrum

Diana::QVector QMultiChannelDecorrelator::fDecorrelatedPowerSpectrum
protected

decorrelated power spectrum of this channel

Definition at line 83 of file QMultiChannelDecorrelator.hh.

Referenced by GetFilteredPowerSpectrum(), and QMultiChannelDecorrelatorOF::Init().

◆ fFilteredResolution

double QMultiChannelDecorrelator::fFilteredResolution
protected

expected filtered resolution

Definition at line 89 of file QMultiChannelDecorrelator.hh.

Referenced by GetFilteredResolution(), and QMultiChannelDecorrelatorOF::Init().

◆ fOriginalPowerSpectrum

Diana::QVector QMultiChannelDecorrelator::fOriginalPowerSpectrum
protected

original power spectrum of this channel

Definition at line 81 of file QMultiChannelDecorrelator.hh.

Referenced by GetOriginalPowerSpectrum(), and QMultiChannelDecorrelatorOF::Init().

◆ fOriginalResolution

double QMultiChannelDecorrelator::fOriginalResolution
protected

original resolution

Definition at line 87 of file QMultiChannelDecorrelator.hh.

Referenced by GetOriginalResolution(), and QMultiChannelDecorrelatorOF::Init().

◆ fScale

double QMultiChannelDecorrelator::fScale
protected

◆ fSideChannels

std::vector<int> QMultiChannelDecorrelator::fSideChannels
protected

selected side channels

Definition at line 77 of file QMultiChannelDecorrelator.hh.

Referenced by GetSideChannels().

◆ fTransformer

Diana::QRealComplexFFT* QMultiChannelDecorrelator::fTransformer
protected

◆ fWeights

std::vector<Diana::QVectorC> QMultiChannelDecorrelator::fWeights
protected

coefficients used in decorrelation

Definition at line 79 of file QMultiChannelDecorrelator.hh.

Referenced by QMultiChannelDecorrelatorOF::Filter(), and QMultiChannelDecorrelatorOF::Init().


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