Source code for piel.models.physical.electrical.measurement.waveform_generator
from piel.types import PhysicalPort, PulseSource, SignalTimeSources
from piel.types.experimental import WaveformGenerator, WaveformGeneratorConfiguration
[docs]
def create_one_port_square_wave_waveform_generator(
peak_to_peak_voltage_V: float,
rise_time_s: float,
fall_time_s: float,
frequency_Hz: float,
):
period_s = 1 / frequency_Hz
# TODO configure this properly
# Configure a square wave signal
signal = PulseSource(
voltage_1_V=0,
voltage_2_V=peak_to_peak_voltage_V,
delay_time_s=0,
rise_time_s=rise_time_s,
fall_time_s=fall_time_s,
pulse_width_s=period_s / 2,
period_s=period_s,
)
# Configure the waveform generator
configuration = WaveformGeneratorConfiguration(signal=signal)
# Configure the connection
ports = [
PhysicalPort(
name="CH1",
domain="RF",
connector="SMA",
),
]
return WaveformGenerator(
name="two_port_oscilloscope",
ports=ports,
configuration=configuration,
)
[docs]
def AWG70001A(signal: SignalTimeSources, **kwargs) -> WaveformGenerator:
# Configure the waveform generator
configuration = WaveformGeneratorConfiguration(signal=signal)
# Configure the connection
ports = [
PhysicalPort(
name="CH1",
domain="RF",
connector="SMA",
),
]
return WaveformGenerator(
name="AWG70001A",
ports=ports,
configuration=configuration,
manufacturer="Tektronix",
**kwargs,
)