CARMA C++
carma::control::LOchain Class Reference

Handles all parameters and calculations for the CARMA LO chain. More...

#include <carma/control/LOchain.h>

Public Member Functions

Harmonic getHarmonic (int rank) const
 Gets the specified harmonic. More...
 
Freq getLOfreq () const
 Get the LO frequency. More...
 
int getNumberHarmonics () const
 Gets the number of available harmonics. More...
 
Freq getOscillatorFreq () const
 Get the oscillator (Gunn) frequency. More...
 
int getOscillatorMultiplier ()
 Get the oscillator multiplier. More...
 
Harmonic getPreferredHarmonic () const
 Gets the preferred harmonic. More...
 
 LOchain (int mode)
 Constructor. More...
 
 LOchain (const Freq &freq, int mode=0)
 Constructor, with oscillator frequency specified and compute LO chain. More...
 
void setOscillatorFreq (const Freq &freq)
 Set the oscillator (Gunn) frequency and computes LO chain. More...
 
void setOscillatorMultiplier (int multiplier)
 Set the oscillator multiplier to get the LOfreq. More...
 
::std::string toString (const Harmonic &h) const
 Dump LOchain parameters for a single harmonic to a string. More...
 
::std::string toString (const ::std::vector< Harmonic > &h) const
 Dump LOchain parameters for a vector of harmonics to a string. More...
 
::std::string toString () const
 Dump LOchain parameters for the odd YIG harmonics to a string. More...
 
::std::string toStringAll () const
 Dump the LOchain parameters for all harmonics to a string. More...
 
::std::string toStringPreferred () const
 Dump the LOchain parameters for the preferred harmonics to a string. More...
 
void updateFreq (const Freq &freq)
 Update the LO frequency. More...
 

Detailed Description

Handles all parameters and calculations for the CARMA LO chain.

All harmonics are calculated when the frequency is set, either with the explicit setOscillatorFreq() method or with the constructor that takes a Freq as input. There is also a method that updates the the yig and ref frequencies while leaving the harmonics fixed. This minimizes any phase effects by avoiding large freq changes in the ref. The preferred harmonic is selected based on the highest score, which is measured by the absolute distance of the YIG from 10.5GHz. Relevant equations and ranges:

Fosc = m*Fyig + 50MHz
  with m odd
Fyig = n*Fref - 10MHz
Ranges (GHz):
  yig    = [8.0 - 12.5]
  ref    = [1.10 - 1.26] or [0.99 - 1.00] depending on mode
  osc3mm = [67 - 117]
  osc1mm = [67 - 90]

Definition at line 230 of file LOchain.h.

Constructor & Destructor Documentation

carma::control::LOchain::LOchain ( int  mode)

Constructor.

Parameters
mode- specifies a computation mode mode=0: normal mode=1: new way of selecting preferred harmonics
carma::control::LOchain::LOchain ( const Freq freq,
int  mode = 0 
)
explicit

Constructor, with oscillator frequency specified and compute LO chain.

Does not include tripling for 1mm.

Parameters
freqOscillator frequency
mode- specifies a computation mode; see above

Member Function Documentation

Harmonic carma::control::LOchain::getHarmonic ( int  rank) const

Gets the specified harmonic.


In general there are many harmonics for a given frequency and this one returns the one specified.

Parameters
whichOneSelects the harmonic, where 1 if the highest ranked, 2 is second ranked, etc.
Exceptions
ifrank is out of range
See Also
updateFreq, getNumberHarmonics
Freq carma::control::LOchain::getLOfreq ( ) const

Get the LO frequency.

int carma::control::LOchain::getNumberHarmonics ( ) const

Gets the number of available harmonics.


In general there are many harmonics for a given frequency and this one returns the one specified.

Parameters
whichOneSelects the harmonic, where 0 if the highest ranked, 1 is next, etc. Defaults to 0.
Exceptions
ifwhichOne is out of range
See Also
updateFreq, getHarmonic
Freq carma::control::LOchain::getOscillatorFreq ( ) const

Get the oscillator (Gunn) frequency.

int carma::control::LOchain::getOscillatorMultiplier ( )

Get the oscillator multiplier.

See Also
setOscillatorMultiplier
Harmonic carma::control::LOchain::getPreferredHarmonic ( ) const

Gets the preferred harmonic.


In general there are many harmonics for a given frequency and this one chooses the one with the highest score.

See Also
updateFreq
void carma::control::LOchain::setOscillatorFreq ( const Freq freq)

Set the oscillator (Gunn) frequency and computes LO chain.

Does not include tripling for 1mm.

Parameters
freqOscillator frequency
void carma::control::LOchain::setOscillatorMultiplier ( int  multiplier)

Set the oscillator multiplier to get the LOfreq.

This is usually one, except for 1mm, where it is 3.

Parameters
multiplier
::std::string carma::control::LOchain::toString ( const Harmonic h) const

Dump LOchain parameters for a single harmonic to a string.

Diagnostic.

Parameters
hharmonic to convert to string
::std::string carma::control::LOchain::toString ( const ::std::vector< Harmonic > &  h) const

Dump LOchain parameters for a vector of harmonics to a string.

Diagnostic.

Parameters
hvector of harmonic pointers to convert to string
::std::string carma::control::LOchain::toString ( ) const

Dump LOchain parameters for the odd YIG harmonics to a string.

Diagnostic.

::std::string carma::control::LOchain::toStringAll ( ) const

Dump the LOchain parameters for all harmonics to a string.

Diagnostic.

::std::string carma::control::LOchain::toStringPreferred ( ) const

Dump the LOchain parameters for the preferred harmonics to a string.

Diagnostic.

void carma::control::LOchain::updateFreq ( const Freq freq)

Update the LO frequency.

This in turn updates the oscillator (Gunn) frequency and computes ref & yig freqs. Does not change the harmonics numbers, to give continuous phase.

Parameters
freqLO frequency

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