CARMA C++
|
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... | |
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]
carma::control::LOchain::LOchain | ( | int | mode | ) |
Constructor.
mode | - specifies a computation mode mode=0: normal mode=1: new way of selecting preferred harmonics |
|
explicit |
Constructor, with oscillator frequency specified and compute LO chain.
Does not include tripling for 1mm.
freq | Oscillator frequency |
mode | - specifies a computation mode; see above |
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.
whichOne | Selects the harmonic, where 1 if the highest ranked, 2 is second ranked, etc. |
if | rank is out of range |
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.
whichOne | Selects the harmonic, where 0 if the highest ranked, 1 is next, etc. Defaults to 0. |
if | whichOne is out of range |
Freq carma::control::LOchain::getOscillatorFreq | ( | ) | const |
Get the oscillator (Gunn) frequency.
int carma::control::LOchain::getOscillatorMultiplier | ( | ) |
Get the oscillator multiplier.
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.
void carma::control::LOchain::setOscillatorFreq | ( | const Freq & | freq | ) |
Set the oscillator (Gunn) frequency and computes LO chain.
Does not include tripling for 1mm.
freq | Oscillator 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.
multiplier |
::std::string carma::control::LOchain::toString | ( | const Harmonic & | h | ) | const |
Dump LOchain parameters for a single harmonic to a string.
Diagnostic.
h | harmonic 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.
h | vector 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.
freq | LO frequency |