6.0 Frequency Calculations (Revision 3: Sept 2004)

In this chapter, we describe the algorithms required to set the various frequency conversions and filters in the GBT LO/IF system, as directed by the configuration keywords. This revision includes settings for the new KA- and W-band receivers.

Introduction for Astronomers

Several simultaneous frequency bands are specified by "nwin" (number of spectral windows) and a list of rest frequencies and offsets as described below. The configuration tool tries to put the midpoint of the total frequency span at the center of the nominal IF1 band so as to use the narrowest I.F. bandpass filters that will pass the desired range of frequencies. In some uncommon cases this is not possible, so the IF bandwidth must be increased to pass the desired range of frequencies. For prime focus receivers, the total I.F. bandwidth is 240 MHz; for the gregorian receivers, up to 4 GHz is possible, depending on the receiver.

The user specifies the rest frequencies ("restfreq" keyword) and a range of radial velocities. The various IF filters are set to include the required range of frequencies in the local frame required by the radial velocity range. The configuration tool predicts the local frequency for each spectral window based on the rest frequencies and the radial velocity. This is not an exact calculation: the velocity definition ("vdef") is used, but not the reference frame ("vframe"). This approximation only affects the frequency spacing between the spectral windows. During observing the tracking LO will correctly track the velocity of spectral window #1. Because there is only one tracking L.O., the other spectral windows are set up with frequency offsets in the local frame with respect to window #1. Thus, for high velocities, the rest frequencies may not be centered in the bands of windows 2, 3, etc. Another consequence is that if one makes a large change in radial velocity (e.g. by >50000 km/sec), the spacing of windows in rest frequency will change significantly. Thus, when observing at a variety of high velocities, one should run the config tool for each change of velocity (i.e., do not rely on just changing the velocity in the LO1 manager), and one should set vlow=vhigh, or zlow=zhigh.

Finally note that the expert user may specify any of the IF conversion frequencies and total IF bandwidth, overriding the calculations done by the configuration tool. This option may be needed in some peculiar cases. Of course one needs a good knowledge of the LO/IF system to make use of this option.

Table 1: Summary of Configuration Keywords related to Frequency setups
Keyword Description Values
receiver The frequency conversions and sidebands differ from one receiver to another. The standard receiver designations are:
(prime focus) : Rcvr_342, Rcvr_450, Rcvr_600, Rcvr_800, Rcvr_1070
(gregorian) : Rcvr1_2, Rcvr2_3, Rcvr4_6, Rcvr8_10, Rcvr12_18, Rcvr18_22, Rcvr22_26, Rcvr26_40, Rcv40_52, Rcvr68_92.
backend Different input frequencies ("IF3") are required by different backends. Backend designations are:
Spectrometer, SpectralProcessor, DCR, DCR_AF, BCPM, GASP, CGSR, VLBI, Radar, LLRADAR, RSR.
nwin Number of Spectral Windows 1, 2, 4, 6, or 8.
{the maximum allowable depends on the receiver and backend}
restfreq Rest Frequencies of the desired spectral features. A list of nwin frequencies, in MHz.
deltafreq Offsets to be added to the rest frequencies. They are added in the local frame. A list of nwin frequencies in MHz.
bandwidth Bandwidth per window, in MHz. Depends on the backend.
swfreq Switching offsets, if frequency switching. A list of two frequencies, in MHz.
vdef Velocity definition. Radio, Optical, Relativistic ("Rel"), or Redshift ("Red")
vlow Lower limit of radial velocity range. Velocity in km/sec.
vhigh Upper limit of radial velocity range. Velocity in km/sec.
zlow If vdef="Red", this is lower Z (and vlow is not used).
Note: only use "zlow" and "zhigh" if vdef="Red".
redshift parameter Z (= V/C)
zhigh If vdef="Red", this is upper Z (and vhigh is not used). redshift parameter Z (= V/C)

**for experts only: use the following keywords to override the calculated values.
ifbandwidth Total IF bandwidth, in MHz.
if0freq Frequency (MHz) of center of window #1 after first mixer.
lo1bfreq Frequency (MHz) of 2nd mixer (LO1B) for KA and W band receivers.
lo2freq A list of nwin frequencies (MHz) for the G1-G8 synthesizers.
if3freq A list of nwin frequencies (MHz): overrides the standard backend IF3 frequency.

Gory details for Programmers

First, a little nomenclature:
Some receivers have one mix before the IF Rack, and some have two (KA, W, and PF2).
  • use "IF0" to designate the I.F. frequency after the first mixer.
  • "IF1" as the IF at the input to the IF Rack.
  • For receivers other than KA, W, and PF2, IF0=IF1.

    "LO1", as usual, is the frequency of the first mixer. In some cases this frequency is a multiple of the LO1 synthesizer frequency. The multiplication factor is "lo1mult".

    A. Estimate frequencies in local frame.

  • Let Frest[i] be the rest frequency for spectral window i, as specified by the "restfreq" keyword.
  • Let dFreq[i] be the offset frequency for spectral window i, as specified by the "deltafreq" keyword.
  • Let V1 and V2 be the velocities "vlow" and "vhigh", and let Z1 and Z2 be the redshifts "zlow" and "zhigh".

    Use the following formulas for conversion to the local frame:

    Table 2: Doppler Formulae.
    Vdef Formula: Flocal = fvdef(V, Frest)
    Radio fvdef(V,Frest) = Frest(1-V/c)
    Optical fvdef(V,Frest) = Frest(1+V/c)-1
    Rel fvdef(V,Frest) = Frest{1- (V/c)2}1/2/(1+V/c)
    Red fvdef(Z,Frest) = Frest/(1+Z)

    Now estimate the frequencies in the local frame for each window i = 1,2,.. nwin.

  • F1[i] = fvdef( vlow, Frest[i]) + dFreq[i]
  • F2[i] = fvdef( vhigh, Frest[i]) + dFreq[i]

  • [Note that the offset frequencies "dFreq[i]" are added in the LOCAL frame.]
  • [If vdef="Red", use "zlow" and "zhigh" instead of "vlow" and "vhigh"]

  • Also define "FLoc0":
       FLoc0 = fvdef( 0.5*(vlow+vhigh), Frest[1] )
       [i.e., the frequency in the local frame of spectral window 1, for the mean velocity, and without the local offset]
       [And of course, if vdef="Red", then zlow and zhigh are used instead of vlow and vhigh.]

  • B. Find the local center frequency and total IF bandwidth required.

  • Fmax = max(F1, F2) i.e. the maximum frequency over all i.
  • Fmin = min(F1, F2) i.e. the minimum frequency over all i.
  • Fcent = 0.5*(Fmax+Fmin)

  • BWTotal' = Fmax - Fmin + bandwidth
  • (where "bandwidth" is the backend bandwidth specified by the keyword)

  • If frequency switching offsets are given in keyword "swfreq", then
  • BWtotal = BWtotal' + max( max(abs(swfreq)) , max(swfreq)-min(swfreq) )

    If the standard BWtotal is being overridded by use of the keyword "ifbandwidth", use that value instead of the above calculation. Note also that BWtotal may be increased in a later step.

    Issue a warning if BWtotal exceeds the maximum bandwidth for the receiver. Check the next table for "Max Bandwidth".

  • C. Settings of IF1NOM, sb, etc,etc, depend on the receiver.

  • IF1NOM = nominal center of IF band.
  • sb0 = sideband of first mix (where +1 means upper and -1 means lower sideband)
  • sb1 = sideband of 2nd mix. If no 2nd mix, sb1=1.
  • lo1mult = multiplier for LO1 ( LO1 = lo1mult * synthesizer_freq ).
  • IF0 = frequency of "FLoc0" after first mix.
  • IF1 = frequency of "FLoc0" after 2nd mix, if any.
  • LO1B = 2nd mixer frequency, for KA and W bands.
  • MMCFilter = MM converter filter, for KA and W bands.
  • For the KA and W-band receivers, parameters depend on the range of Fcent, as listed in column 2.

    Table 3: Frequency Parameters and Formulae.
    Receiver Fcent sb0 sb1 lo1mult IF1NOM (MHz) IF0 IF1 LO1B MMCFilter Max Bandwidth
    PF1 (receivers 342-800) -1 +1 1 1080 IF1NOM -(FLoc0-Fcent) IF1=IF0 0 none 0.24 GHz
    Rcvr_1070 (PF2) -1 +1 1 1500 IF1NOM -(Floc0-Fcent)-900 IF1=IF0+900 0 none 0.24 GHz
    Rcvr1_2 (L) -1 +1 1 3000 IF1NOM -(FLoc0-Fcent) IF1=IF0 0 none 0.60 GHz
    Rcvr2_3 (S) -1 +1 1 6000 IF1NOM -(FLoc0-Fcent) IF1=IF0 0 none 0.90 GHz
    Rcvr4_6 (C) -1 +1 1 3000 IF1NOM -(FLoc0-Fcent) IF1=IF0 0 none 2.0 GHz
    Rcvr8_10 (X) -1 +1 1 3000 IF1NOM -(FLoc0-Fcent) IF1=IF0 0 none 2.1 GHz
    Rcvr12_18 (KU) +1 +1 1 3000 IF1NOM +(FLoc0-Fcent) IF1=IF0 0 none 3.4 GHz
    Rcvr18_22 (K) +1 +1 1 6000 IF1NOM +(FLoc0-Fcent) IF1=IF0 0 none 4.0 GHz
    Rcvr22_26 (K) +1 +1 1 6000 IF1NOM +(FLoc0-Fcent) IF1=IF0 0 none 4.0 GHz
    Rcvr26_40 (KA) 36.5-40.0 -1 +1 3 44000 -Fcent 44000 -FLoc0 IF1=IF0 0 FL1 4.0 GHz
    Rcvr26_40 (KA) 30.5-36.5 -1 -1 3 6000 44000 -FLoc0 IF1NOM +(FLoc0-Fcent) IF1 +44000-FLoc0 FL2 4.0 GHz
    Rcvr26_40 (KA) 26.0-30.5 -1 +1 3 6000 44000 -FLoc0 IF1NOM -(FLoc0-Fcent) 44000 -FLoc0-IF1 FL3 4.0 GHz
    Rcvr40_52 (Q) +1 +1 4 6000 IF1NOM +(FLoc0-Fcent) IF1=IF0 0 none 4.0 GHz
    Rcvr68_92 (W) 68.0-73.5 +1 +1 4 Fcent -66000 FLoc0 -66000 IF1=IF0 0 FL1 4.0 GHz
    Rcvr68_92 (W) 73.5-79.5 +1 -1 4 6000 FLoc0 -66000 IF1NOM -(FLoc0-Fcent) FLoc0 -66000+IF1 FL2 4.0 GHz
    Rcvr68_92 (W) 79.5-85.5 +1 +1 4 6000 FLoc0 -66000 IF1NOM +(FLoc0-Fcent) FLoc0 -66000-IF1 FL3 4.0 GHz
    Rcvr68_92 (W) 85.5-92.0 +1 +1 4 6000 FLoc0 -66000 IF1NOM +(FLoc0-Fcent) FLoc0 -66000-IF1 FL4 4.0 GHz


  • If the keyword "if0freq" has been specified, set IF0=if0freq, instead of using the above table.
  • If the keyword "lo1bfreq" has been specified, set LO1B=lo1bfreq, instead of using the above table.

    For the KA- and W-band receivers, a warning should be issued if any of the following conditions are exceeded, but configuration should proceed in any case:

    Table 4: Limits on KA- and W-band settings.
    Rx/Filter Sky Freq Range (GHz) LO1B range (GHz)
    KA/FL1 Fmin>36 and Fmax<40 N/A
    KA/FL2 Fmin>30 and Fmax<37 14<LO1B<20
    KA/FL3 Fmin>26 and Fmax<31 LO1B<13
    W/FL1 Fmin>68 and Fmax<74 N/A
    W/FL2 Fmin>73 and Fmax<80 14<LO1B<20
    W/FL3 Fmin>79 and Fmax<86 LO1B<13
    W/FL4 Fmin>85 and Fmax<92 LO1B<17

    D. Setting of IF3 depends on the backend.

    "IF3" is the center of the IF band accepted by a backend.

    Table 5: IF3 requirements.
    backend bandwidth IF3 (MHz)
    ACS or DCR_AF 12.5 468.75
    ACS or DCR_AF 50.0 425.0
    ACS or DCR_AF 200 900
    ACS or DCR_AF 800 1200
    Spectral Processor - 250
    VLBI - 750
    BCPM - 400
    GASP - 400
    GCSR - 404
    Radar - 720
    LLRadar - 425
    RSR - 315

    If the IF3 frequency is being set directly via the "if3freq" keyword, use "if3freq" instead of the above table. When using "if3freq" you must specify an array of size "nwin"; i.e., IF3 may differ for different windows.

    E. Set the "LO2" frequencies.

    For each spectral window, calculate the local frequency FLocal[i]:

  • FLocal[i] = fvdef( 0.5*(vlow+vhigh), Frest[i]) + dFreq[i]

    This is the estimated frequency center for spectral window i. Note that the offset frequency dFreq has been added. The goal is to convert Flocal to IF3, so that the center of each spectral window appears at the back end device at the IF3 frequency needed by that back end.

    This is accomplished by two frequency conversions in the Converter Rack, the first is a mix with a fixed frequency of 10.5 GHz, the second by a mix with a frequency in the range 10.5 to 18.0 GHz. We refer to this "2nd" mixing frequency as "LO2", even though it is the 3rd or 4th mix that the signal from the sky has encountered.

    Using the "IF1", "sb0", "sb1" from Table 3, calculate:

  • LO2[i] = IF1 + sb0*sb1*(Flocal[i] -FLoc0) +10500 -IF3[i]

    If the user has set the "lo2freq" keyword, use those values instead.


    The LO2 synthesizers have a resolution of 1 kHz, so we must check whether the LO2 frequencies need to be rounded off.

    Let "LO2round" be the LO2 frequency rounded to the nearest kHz.
    We can adjust the LO1A synthesizer in the LO1 manager to compensate for rounding off LO2, because the LO1A synthesizer has a resolution of 1 Hz. But we can only do this for one spectral window. We choose to adjust spectral window #1.

  • Set "roundfrac" = LO2[1] - LO2round[1]

    LO2 out of range?

    Next, check that the LO2 values are within the range 10600 - 17900 MHz.
  • If max(LO2round) > 17900 then set "lo2adjust" = max(LO2round)-17900.
  • If min(LO2round) < 10600 then set "lo2adjust" = min(LO2round)-10600.

    If the max(LO2round) is > 17900 AND the min(LO2round) < 10600, then issue an error message and abort the configuration. We just can't do it!

    Adjust LO2s and IF centers.

    If either "roundfrac" or "lo2adjust" are non-zero, then we can adjust the LO2 frequencies, but we have to compensate by adjusting IF0 and IF1.
  • LO2new[i] = LO2round[i] - lo2adjust
  • IF0new = IF0 - sb1*(lo2adjust + roundfrac)
  • IF1new = IF1 - sb1*(lo2adjust + roundfrac)

  • F. Check the LO1 synthesizer.

    The LO1 synthesizer cannot tune above 20 GHz, so it is useful at this point to estimate what frequency is required and to issue a warning if the limit is exceeded.

    "FLoc0" is the estimate of the frequency in the local frame that the LO1 manager will use, and "IF0new" is the value that will be set for the "ifCenterFreq" parameter in the LO1 manager. Thus the estimate of the LO1 frequency is:

  • LO1est = FLoc0 - (sb0 * IF0new)

    The synthesizer setting is thus:

  • LO1synth = LO1est/lo1mult

  • If LO1synth exceeds 20 GHz, the configuration should abort.

    If LO1synth exceeds 20 GHz, the config tool should suggest that the user may change IF0 (with the "if0freq" keyword) to produce a valid configuration. Suggest that IF0 may be set to:

  • if0freq = IF0new + (sb0 * (LO1synth - 20GHz) * lo1mult)

  • G. Check frequencies and adjust total IF bandwidth.

    At this point, we calculate the conversion of each FLocal to the frequency it would have at the input to the backend (the "IF3" frequency). This is done to provide feedback to the user and to show if any of the IF3s are not exactly as intended due to adjustments made to IF0, IF1, and LO2. We also check if the total IF bandwidth needs to be increased.

    Determine the effective IF1 for each spectral window:
    Table 6: Effective IF1
    Receiver(s) IF1eff
    PF1, L, S, C, X, KU, K, Q bands IF1eff[i] = sb0*sb1*(FLocal[i] - LO1est)
    PF2 IF1eff[i] = 900MHz + (FLocal[i] - LO1est)
    Rcvr26_40 (KA-band) IF1eff[i] = sb0*sb1*LO1B - sb1*(FLocal[i] - LO1est)
    Rcvr68_92 (W-band) IF1eff[i] = -sb0*sb1*LO1B + sb1*(FLocal[i] - LO1est)

    And the estimated IF3 for each window is:

  • IF3est[i] = IF1eff[i] + 10.5GHz - LO2new[i]

    The user should be able to list a summary of the frequency data, and the list should include, for each i :

  • FLocal[i], IF1eff[i], LO2new[i], and IF3est[i]

    To check if the total bandwidth needs to be increased, figure out:

  • newBW = max( 2*abs(IF1eff[i] - IFfiltercenter)) over all i, where IFfiltercenter is given by:

    Table 7: Center of IF bandpass filter.
    Receiver(s) IFfiltercenter (MHz)
    PF1 1080
    PF2 1500
    L-, C-, X-, KU-bands 3000
    all others 6000

    Then, as before, increase by backend bandwidth and switch frequency offsets:

  • newBWtotal = newBW + bandwidth + max( max(abs(swfreq)) , max(swfreq)-min(swfreq) )

    But if the user has specified "ifbandwidth", then use newBWtotal = ifbandwidth.

  • H. Summary of M&C manager settings.

    Finally, we have all the information needed to set the M&C manager parameters.

    Table 8: M&C settings

    Manager Parameters
    Receiver tuning frequency = Fcent
    L, S, and C-band Receivers RF bandpass includes Fmin to Fmax
    X, KU-band Receivers IF bandpass ≥ newBWtotal
    PF1 and PF2 Receivers IF bandpass to ≥ 0.9*(newBWtotal)
    IF Rack, PF1 and PF2 receivers. IF bandpass to "all_pass"
    IF Rack, non-PF receivers. IF bandpass to ≥ newBWtotal
    LO1 restFrequency = Frest[1]
    LO1 ifCenterFreq = IF0new
    LO1 testToneFreq = LO1B
    LO1 sourceVelocity = 0.5*(vlow+vhigh) [if vdef not = "Red"]
    sourceVelocity = c * 0.5*(zlow+zhigh) [if vdef = "Red']
    MM Converter filter = MMCFilter
    Converter Rack Gfrequency of synthesizer corresponding to window i = LO2new[i]