RateEncoder#
- class braintools.RateEncoder(gain=100.0, method='linear', min_rate=0.0, max_rate=None, normalize=False, min_val=None, max_val=None)#
Encode analog values into spike rates using various rate encoding methods.
The rate encoder converts continuous input values into spike trains where the firing rate is proportional to the input intensity. Higher input values result in higher firing rates.
Example:
>>> import jax.numpy as jnp >>> data = jnp.array([0.1, 0.5, 0.9]) >>> encoder = RateEncoder(gain=100, method='linear') >>> spikes = encoder(data, n_time=100) >>> firing_rates = jnp.mean(spikes, axis=0) # Should be ~[10, 50, 90] Hz
- Parameters:
gain (
float) – float. Scaling factor to convert normalized input to firing rate (Hz).method (
str) – str. Rate encoding method (‘linear’, ‘exponential’, ‘sqrt’).min_rate (
float) – float. Minimum firing rate in Hz.max_rate (
float) – float. Maximum firing rate in Hz.normalize (
bool) – bool. Whether to normalize inputs to [0, 1] range.min_val (
float) – float. Minimum value for normalization.max_val (
float) – float. Maximum value for normalization.