This is an old revision of the document!


Inhomogeneous Poisson spike train generation

def gen_spikes(r,dt):
    '''generate spike train from Poisson rate
 
    Parameters
    ----------
    r:  array of spike rates
    dt: time step
    '''
    i = 0
    s = 0
    spks = []
    while True:
        s += np.random.exponential()
        while s>r[i]*dt:
            s -= r[i]*dt
            i += 1
            if i>=len(r): break
        else:
            spks.append(i*dt+s/r[i])
            continue
        break
    return np.array(spks)