Source code for pyuff_ustb.objects.pulse

from typing import TYPE_CHECKING

import numpy as np

from pyuff_ustb.objects.uff import Uff, compulsory_property
from pyuff_ustb.readers import read_array, read_scalar

if TYPE_CHECKING:
    # Make sure properties are treated as properties when type checking
    compulsory_property = property
    optional_property = property
    dependent_property = property


[docs] class Pulse(Uff): """:class:`Uff` class for a pulse definition. Original authors: Alfonso Rodriguez-Molares <alfonso.r.molares@ntnu.no> """ # Compulsory properties @compulsory_property def center_frequency(self) -> float: "Center frequency [Hz]" return read_scalar(self._reader["center_frequency"]) @compulsory_property def fractional_bandwidth(self) -> float: "Probe fractional bandwidth [unitless]" return read_scalar(self._reader["fractional_bandwidth"]) @compulsory_property def phase(self) -> float: "Initial phase [rad]" return read_scalar(self._reader["phase"]) @compulsory_property def waveform(self) -> np.ndarray: "Transmitted waveform (for example used for match filtering)" return read_array(self._reader["waveform"])