Skip to main content

Frequency Planning Math

Mathematical reference for the frequency planner. All values are in MHz unless otherwise noted.

See also: Reference Equations for cascade analysis formulas, and Frequency Plan for how to configure this in the UI.


Heterodyne relationships

A mixer converts a signal from one frequency band to another using a Local Oscillator (LO). The three frequencies — RF, IF, and LO — are always related by:

LOhigh=RF+IF\text{LO}_{\text{high}} = \text{RF} + \text{IF} LOlow=RFIF\text{LO}_{\text{low}} = \text{RF} - \text{IF}

Given any two of RF, IF, LO the third can be derived.


High-side vs. low-side injection

The mixing side determines whether the LO is above or below the RF band.

RX downconversion (RF → IF)

SideConditionIF
High-sideLO > RFIF=LORF\text{IF} = \text{LO} - \text{RF}
Low-sideLO < RFIF=RFLO\text{IF} = \text{RF} - \text{LO}

TX upconversion (IF → RF)

SideRF output
High-sideRF=LOIF\text{RF} = \text{LO} - \text{IF}
Low-sideRF=LO+IF\text{RF} = \text{LO} + \text{IF}

Deriving LO from RF and IF

LOhigh=RF+IFLOlow=RFIF\text{LO}_{\text{high}} = \text{RF} + \text{IF} \qquad \text{LO}_{\text{low}} = \text{RF} - \text{IF}

Image frequency (RX only)

For a given RF and LO, the image frequency is the spurious input that produces the same IF output as the desired RF signal:

fimage=2LORFf_{\text{image}} = 2 \cdot \text{LO} - \text{RF}

The image frequency is always on the opposite side of the LO from RF. It is displayed in the frequency spectrum diagram but no image rejection ratio is computed — filtering must be verified by the engineer.

Example (high-side):

  • RF = 2440 MHz, LO = 2640 MHz, IF = 200 MHz
  • Image = 2 × 2640 − 2440 = 2840 MHz

Harmonic frequencies (TX only)

Harmonics of the output signal are displayed on the spectrum diagram for reference:

fHn=nfout,n=2,3,f_{H_n} = n \cdot f_{\text{out}}, \quad n = 2, 3, \ldots

where foutf_{\text{out}} is the output band center of a given stage. Harmonics are shown as markers only — no harmonic distortion level is computed.


Multi-stage cascade

For chains with NN mixers, the solver maintains an array of N+1N+1 inter-stage frequencies f[0]f[N]f[0] \ldots f[N], where consecutive entries are the input and output of each mixer.

RX (downconversion)

Signal enters at RF. Each mixer reduces the frequency:

f[0]=RF,f[i+1]={LO[i]f[i](high-side)f[i]LO[i](low-side)f[0] = \text{RF}, \quad f[i+1] = \begin{cases} \text{LO}[i] - f[i] & \text{(high-side)} \\ f[i] - \text{LO}[i] & \text{(low-side)} \end{cases}

The final value f[N]f[N] is the output baseband/IF. Example:

f[0] = 2440 MHz (RF)
→ Mixer 1: LO = 2640 MHz, high-side → f[1] = 200 MHz
→ Mixer 2: LO = 210.7 MHz, high-side → f[2] = 10.7 MHz

TX (upconversion)

Signal enters at baseband. Each mixer increases the frequency:

f[0]=baseband,f[i+1]={LO[i]f[i](high-side)LO[i]+f[i](low-side)f[0] = \text{baseband}, \quad f[i+1] = \begin{cases} \text{LO}[i] - f[i] & \text{(high-side)} \\ \text{LO}[i] + f[i] & \text{(low-side)} \end{cases}

The final value f[N]f[N] is the RF output. Example:

f[0] = 10.7 MHz (baseband)
→ Mixer 1: LO = 210.7 MHz, high-side → f[1] = 200 MHz
→ Mixer 2: LO = 2640 MHz, high-side → f[2] = 2440 MHz (RF)

Constraint propagation

The solver runs bidirectionally — it can propagate forward, backward, or derive a missing LO from the two adjacent frequencies:

KnownDerived
f[i]f[i], LO[i]\text{LO}[i]f[i+1]f[i+1]
f[i+1]f[i+1], LO[i]\text{LO}[i]f[i]f[i]
f[i]f[i], f[i+1]f[i+1]LO[i]\text{LO}[i]

This means you only need to enter one value per mixer (LO or the output IF) — the planner fills in the rest.


Bandwidth propagation

Alongside the center-frequency solver, the planner propagates signal bandwidth through each mixer stage. The behaviour depends on which quantity is held constant:

Constant LO (default)

The LO frequency is fixed; the IF band sweeps with the RF signal. Signal bandwidth passes through the mixer unchanged:

BWIF=BWRF,BWLO=0BW_{\text{IF}} = BW_{\text{RF}}, \quad BW_{\text{LO}} = 0

Constant IF

The IF center is fixed; the LO tracks the RF band. Signal bandwidth appears on the LO instead of the IF output:

BWLO=BWRF,BWIF=0BW_{\text{LO}} = BW_{\text{RF}}, \quad BW_{\text{IF}} = 0

Current behaviour: The planner defaults to Constant LO for all mixer stages. Per-stage mode selection is not yet exposed in the UI.