neuralset.base.Frequency

class neuralset.base.Frequency(x=0, /)[source][source]

Sampling rate in Hz, with helpers for second/sample conversion.

A float subclass that provides to_ind (seconds → sample index) and to_sec (sample index → seconds).

Examples

>>> freq = Frequency(100.0)
>>> freq.to_ind(0.5)   # 0.5 s at 100 Hz → sample 50
50
>>> freq.to_sec(50)    # sample 50 at 100 Hz → 0.5 s
0.5

Design rationale — to_ind uses round()

to_ind uses a single rule — round(seconds * freq) — for both start times and durations, rather than mixing floor/ceil depending on context. This minimizes worst-case alignment error to ±0.5 samples and keeps the conversion trivially predictable.

to_ind(seconds: float) int[source][source]
to_ind(seconds: ndarray) ndarray

Convert time in seconds to a sample index.

Uses round(seconds * frequency) to produce a deterministic sample count for any given duration.

to_sec(index: int) float[source][source]
to_sec(index: ndarray) ndarray

Converts a sample index to a time in seconds