Public Member Functions | Private Attributes

OptDemuxer Class Reference

#include <ocsOptDemuxer.hh>

List of all members.

Public Member Functions

 OptDemuxer (OptSignal *WDM_Signal2, OptFilter *TunableFilter2)
 ~OptDemuxer ()
 OptDemuxer (OptSignal *WDM_Signal2, OptFilter *TunableFilter2, OptSignal *SingleChannelSignal2)
OptSignalExtractChannel (int ChannelArrayIndex)
void DemuxChannel (int ChannelArrayIndex)
void PrepareToDemuxChannel (int ChannelArrayIndex)
void ExtractSingleChannel (int ChannelArrayIndex)
 Ivan's code. Very similar to DemuxChannel.
OptSignalExtractChannelCenterFreq (double CenterFreqOptFilter, BitString *SCBitString, bool DoFilterFlag)
bool GetDoAdditionalFiltering (void)

Private Attributes

OptSignalWDM_Signal
OptFilterTunableFilter
OptSignalSingleChannelSignal
int ChannelArrayIndex
bool DoAdditionalFilteringFlag

Constructor & Destructor Documentation

OptDemuxer::OptDemuxer ( OptSignal WDM_Signal2,
OptFilter TunableFilter2 
)
OptDemuxer::~OptDemuxer (  ) 
OptDemuxer::OptDemuxer ( OptSignal WDM_Signal2,
OptFilter TunableFilter2,
OptSignal SingleChannelSignal2 
)

Member Function Documentation

void OptDemuxer::DemuxChannel ( int  ChannelArrayIndex  ) 

Use this method to demux rather than using OptSignal& ExtractChannel(int ChannelArrayIndex). JZApril 2003 Based on void ExtractSingleChannel(int ChannelArrayIndex);

This method calls OptDemuxer::PrepareToDemuxChannel and then optically filters the signal.

To use the method make the following calls:

SingleChannelSignal = new OptSignal(*WDMSignal);

TunableOptFilter = new OptFilter(InDir + "TunableOptFilter.in", SingleChannelSignal);

oOptDemuxer = new OptDemuxer(WDMSignal,TunableOptFilter,SingleChannelSignal);

oOptDemuxer->DemuxChannel(ChannelArrayIndex);

The last call can be made multiple times throughout the code to demux the current WDMSignal, and can have different ChannelArrayIndexes for the different calls.

The method is more robust than calling OptSignal& OptDemuxer::ExtractChannel(int ChannelArrayIndex)

It is very similar to

void OptDemuxer::ExtractSingleChannel(int ChannelArrayIndex)

The main difference is that in the semianalytical receiver you want to call

void OptDemuxer::PrepareToDemuxChannel(ChannelArrayIndex)

separately from calling void OptFilter::FilterOptSignal(void)

JZ April 2003.

References OptFilter::FilterOptSignal(), PrepareToDemuxChannel(), and TunableFilter.

Referenced by ChiSquareReceiver::ReceiveNoiseFreeSignalAndRecoverClock(), ReceiverSemiAnalytical::ReceiveSignalBackToBackMonteCarlo(), GaussianReceiver::ReceiveSignalDGD_NoisePartiallyPolarized(), ReceiverSemiAnalytical::ReceiveSignalMonteCarlo(), ReceiverSemiAnalytical::ReceiveSignalSemiAnalytical(), GaussianReceiver::ReceiveSignalUnpolarizedNoise(), and GaussianReceiver::RecoverClockAndSetTimeSlices().

OptSignal & OptDemuxer::ExtractChannel ( int  ChannelArrayIndex  ) 
OptSignal & OptDemuxer::ExtractChannelCenterFreq ( double  CenterFreqOptFilter,
BitString SCBitString,
bool  DoFilterFlag 
)
void OptDemuxer::ExtractSingleChannel ( int  ChannelArrayIndex  ) 
bool OptDemuxer::GetDoAdditionalFiltering ( void   )  [inline]
void OptDemuxer::PrepareToDemuxChannel ( int  ChannelArrayIndex  ) 

Does all of DemuxChannel expcept the actual filtering Used in ReceiverSemiAnalytical. JZApril 2003

This method sets the number of channels of the SingleChannelSignal to 1, reduces the WDM BitString to a SingleChannel BitString, sets the carrier frequency of the only channel in the SingleChannel signal and sets the center frequency of the optical filter. It does not do the actual filtering since we need to do that in the semianalytical receiver

References OptSignal::GetCenterFreq(), OptSignal::GetFrequency(), OptSignal::GetNumChannels(), OptSignal::oBitString, BitString::ReduceToSingleChannelBitString(), OptSignal::SetFrequency(), OptSignal::SetNumberChannelsForDemuxer(), OptSignal::SetNumChannels(), OptFilter::SetRelativeCenterFreq(), SingleChannelSignal, TunableFilter, and WDM_Signal.

Referenced by DemuxChannel(), GaussianReceiver::GaussianReceiver(), ReceiverSemiAnalytical::GetLimaParameters(), ReceiverSemiAnalytical::ReceiverSemiAnalytical(), GaussianReceiver::ReceiveSignalDGD_NoisePartiallyPolarized(), ReceiverSemiAnalytical::ReceiveSignalSemiAnalytical(), and GaussianReceiver::ReceiveSignalUnpolarizedNoise().


Member Data Documentation

Referenced by OptDemuxer().


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