Burst Coding (BC)

Burst Coding is a biologically inspired rate-like coding strategy that represents input intensity using two characteristics of a spike burst: the number of spikes (\(N_s\)) and the inter-spike interval (ISI). Stronger inputs produce bursts with more spikes and shorter ISIs, while weaker inputs produce fewer spikes with longer ISIs.

This dual-parameter encoding increases reliability and information density, as it leverages both spike count and precise timing within short bursts. It is particularly effective for rapid, robust transmission in sensory pathways and spiking neural networks (SNNs).

Algorithm Overview

The input intensity P (normalized to [0, 1]) determines:

  • Number of spikes per burst:

    \[N_s(P) = \lceil P \cdot N_{\max} \rceil\]
  • Inter-spike interval (ISI):

    \[\begin{split}\text{ISI}(P) = \begin{cases} t_{\max} & \text{if } N_s = 1 \\ \left\lceil (t_{\max} - t_{\min}) \cdot (1 - P) + t_{\min} \right\rceil & \text{otherwise} \end{cases}\end{split}\]

Larger P produces bursts with more spikes and smaller ISIs. The burst is placed at regular intervals within a time window sufficient to accommodate the longest burst.

Detailed Pseudocode

 1Burst Coding Algorithm
 2input: s signal (normalized P ∈ [0,1]), N_max max spikes, t_min min ISI, t_max max ISI, interval_length output window
 3out = zeros(length(s))
 4
 5n_blocks = length(s)
 6for block_idx = 0 to n_blocks-1
 7    P = mean(s[block_idx * interval_length : (block_idx+1) * interval_length])
 8
 9    N_s = ceil(P * N_max)
10    ISI = ceil((t_max - t_min) * (1 - P) + t_min)
11
12
13    spike_times = arange(0, N_s * (ISI + 1), ISI + 1)
14    spike_times = spike_times[spike_times < interval_length]
15
16    for time in spike_times:
17        global_t = block_idx * interval_length + time
18        out[global_t] = 1
19    end for
20end for
21
22output: out

Advantages

  • Higher information density and reliability in which both count and timing are used.

  • Biologically plausible — mimics burst firing in sensory neurons for rapid, robust transmission.

  • More robust to noise.

  • Efficient for classification/recognition tasks.

Disadvantages

  • Requires sufficient time window per burst.

  • Sensitive to parameter choice (N_max, t_min/t_max) and block length.

  • Reconstruction more complex than pure rate (needs both spike count and ISI measurement).

For a practical implementation in Python, see the Burst Coding Function.

References

  • Guo et al. (2021). “Neural coding in spiking neural networks: a comparative study for robust neuromorphic systems” Front. Neurosci.