add convolve freq calculation

This commit is contained in:
a.ott 2020-09-11 17:20:50 +02:00
parent 3577b86cbb
commit 4c0bde5833

View File

@ -187,6 +187,21 @@ def calculate_isi_frequency_trace(spiketimes, sampling_interval, time_in_ms=Fals
return full_frequency return full_frequency
def gaussian_kernel(sigma, dt):
x = np.arange(-4. * sigma, 4. * sigma, dt)
y = np.exp(-0.5 * (x / sigma) ** 2) / np.sqrt(2. * np.pi) / sigma
return y
def calculate_gauss_convolve_freq(spiketimes, duration, sampling_interval, gauss_sigma):
binary = np.zeros(int(np.rint(duration / sampling_interval)))
g = gaussian_kernel(gauss_sigma, sampling_interval)
for s in spiketimes:
binary[int(np.rint(s / sampling_interval))] = 1
rate = np.convolve(binary, g, mode='same')
return rate
def calculate_time_and_frequency_trace(spiketimes, sampling_interval, time_in_ms=False): def calculate_time_and_frequency_trace(spiketimes, sampling_interval, time_in_ms=False):
if len(spiketimes) < 2: if len(spiketimes) < 2:
return [0], [0] return [0], [0]