PhaseLine

class pmrf.models.components.lines.uniform.PhaseLine(theta: Any = 90.0, zc: Any = 50.0, *, name: str | None = None, metadata: Any = None, f0: float)

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.models 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)
Parameters:
  • zc (Param, default=50.0) – Characteristic impedance in Ohms.

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

  • f0 (float) – Reference frequency in Hz for theta. Key-word only static argument.

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

Reference frequency

theta: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = 90.0

Electrical length (phase shift)

zc: AbstractVariable | Inexact[jaxlib._jax.Array, '...'] = 50.0

Characteristic impedance