Newer
Older
notebooks / icom / encoder.py
import numpy as np


# encode a message using poisson rate coding
def encode_message(symbol: str,
                   signal_rate: float,
                   noise_rate: float,
                   duration: int, # in seconds
                   **kwargs):
  codebook = kwargs.get("codebook",None)

  if codebook is None: raise TypeError("Invalid code book.")

  #TODO
  spikes = np.random.poisson(lam=signal_rate, size=duration)
  spikes = [np.sum(spikes[1:i]) for i in range(len(spikes))]

  print(np.mean(spikes))

  # add leak spikes
  return spikes

encode_message("1", 5, .3, 10, codebook=[])