3 #ifndef CARMA_PIPELINE_DECIMATORSTAGE_H
4 #define CARMA_PIPELINE_DECIMATORSTAGE_H
6 #include "carma/monitor/PipelineCommon.h"
8 #include "carma/pipeline/pipelineUtils.h"
17 class PipelineSubsystem;
18 class PipelineMonitorInput;
21 namespace correlator {
24 class CorrelatorBaseline;
25 class CorrelatorSideband;
32 class Decimator :
public Stage {
41 const carma::monitor::PipelineMonitorInput & plmi,
42 carma::pipeline::PipelineType pipelineType );
47 virtual ~Decimator( );
52 void keepEndChannels(
bool keep );
58 void keepEndChannels(
bool keep,
int astroBandNo );
64 void decimation(
bool on );
71 void decimation(
bool on,
int astroBandNo );
77 static ::std::set< carma::util::FftwRealVector::size_type >
78 defaultFftwPlanSizes( );
83 preprocess(
const carma::correlator::lib::CorrelatorDataPtr cd);
88 carma::correlator::lib::CorrelatorDataPtr
89 postprocess( carma::correlator::lib::CorrelatorDataPtr cd );
91 void fillMonitorData( );
93 void resetDecimationBandInfo( );
95 struct DecimationBandInfo {
102 bool keepEndChannels;
104 carma::monitor::Decimation::
105 DecimateMonitorPointEnum::DECIMATE decimateType;
106 carma::monitor::Decimation::
107 WindowMonitorPointEnum::WINDOW windowType;
109 ::pthread_mutex_t mutex;
112 void calculateNewFrequencyParams(
114 DecimationBandInfo & decBand );
117 inferInputChannelCount(
119 DecimationBandInfo & decBand );
124 DecimationBandInfo & decBand );
129 DecimationBandInfo & decBand );
132 updateAdditionalSidebandParameters(
134 const DecimationBandInfo & decBand );
137 cacheHannFactorsIfNotAlready(
int numLags );
139 typedef unsigned short astroBandNo;
140 typedef ::std::map< astroBandNo,
141 DecimationBandInfo> DecimationInfoMap;
143 DecimationInfoMap decimationInfo_;
147 const carma::pipeline::PipelineType plType_;
148 const carma::monitor::PipelineMonitorInput & plmi_;
151 typedef std::map< int, std::vector< double > > HannFactorsMap;
152 HannFactorsMap hannFactors_;
158 #endif // End #ifndef CARMA_PIPELINE_DECIMATORSTAGE_H
Class to hold a Band of Correlator Data.
Tagged: Wed Jun 29 11:00:27 PDT 2005.
Facilitate the creation, storage and retrieval of FftwRealToRealPlans.
Class to hold Correlator Baseline data.
Abstract base class for retrieving pipeline monitor system components common between the spectral lin...
Declaration of FftwRealToRealPlanManager class.
Base class for Correlator Sideband data.