Client API

Programmatic Access

Generate signal datasets directly from your code. Connect a client, describe your receiver and signals, and stream the results.

Examples

from sigtera import SigteraClient, Format

# narrowband — one file per signal
client = SigteraClient()
nb = client.narrowband(sample_rate=100000, noise=-20, format=Format.raw_float32)
nb.Tone(duration=0.05, center_frequency=10000, power=-6, signal_count=3)
nb.PSK(baud=9600, duration=0.1, modulation_order=8, signal_count=2)

for params, raw in client.simulate():
    print(params['signal'], len(raw), 'bytes')

# wideband — all signals composited into one recording
client = SigteraClient()
wb = client.wideband(sample_rate=200000, length=1.0, noise=-30)
wb.Tone(duration=0.2, center_frequency=-40000, signal_start_time=0.0)
wb.Iridium(duration=0.09, center_frequency=20000, signal_start_time=0.5)

params, raw = next(client.simulate())

# environment simulation — propagation delay and path loss between platforms
client = SigteraClient()
env = client.environment(length=5.0, speed_of_propagation=343, path_loss_exponent=1)

tx_platform = env.Platform(position_x=0, position_y=0)
tx_platform.Transmitter().Tone(duration=2.0, center_frequency=5000, power=-2, transmitter_start_time=0.0)

rx_platform = env.Platform(position_x=343, position_y=0)
rx_platform.Receiver(sample_rate=50000, noise=-20)

params, raw = next(client.simulate())
print('env sim output:', len(raw), 'bytes')

Download

sigtera.py
Requires requests
Download
sigtera.h
Requires nlohmann/json, libcurl  ·  C++20
Download