PhaseLine

class pmrf.models.components.lines.PhaseLine(theta: Any = 90.0, zc: Any = 50.0, f0: float = 1000000000.0, *, name: str | None = None, z0: complex = 50 + 0j)

Bases: TransmissionLine

Ideal, lossless, and dispersionless transmission line defined by electrical length at a reference frequency. Characteristic impedance is real and constant; phase scales linearly.

Mathematical Formulation

\[Z_c(\omega) = z_c\]
\[\gamma L(\omega) = j \cdot \left(\theta \cdot \frac{\pi}{180}\right) \cdot \frac{\omega}{\omega_0}\]

Example

import pmrf as prf
from pmrf.core import PhaseLine

# Create an ideal 90-degree (quarter-wave) 50-ohm line at 1 GHz
quarter_wave = PhaseLine(
    zc=50.0,
    theta=90.0,
    f0=1e9
)

freq = prf.Frequency(start=0.5, stop=1.5, npoints=101, unit='ghz')
s = quarter_wave.s(freq)
Variables:
  • zc (Parameter, default=50.0) – Characteristic impedance in Ohms.

  • theta (Parameter, default=90.0) – Electrical length (phase shift) in degrees at reference frequency f0.

  • f0 (Parameter, default=1e9) – Reference frequency in Hz for theta.

zc_and_gammaL(frequency: Frequency) Array

Calculates characteristic impedance (\(Z_c\)) and complex electrical length (\(\gamma L\)).

Parameters:

frequency (Frequency) – The frequency axis.

Returns:

Array of characteristic impedance (\(Z_c\)) and complex electrical length (\(\gamma L\)).

Return type:

tuple[jnp.ndarray, jnp.ndarray]

f0: float = 1000000000.0
theta: Parameter = 90.0
zc: Parameter = 50.0