gp_neurobio/code/eod_freq_beat.py
2018-11-22 15:12:20 +01:00

40 lines
1010 B
Python

from read_baseline_data import *
from IPython import embed
import matplotlib.pyplot as plt
import numpy as np
## beat
data_dir = '../data'
dataset = '2018-11-09-ad-invivo-1'
time, eod = read_baseline_eod(os.path.join(data_dir, dataset))
eod_norm = eod - np.mean(eod)
# calculate eod times and indices by zero crossings
threshold = 0
shift_eod = np.roll(eod_norm, 1)
eod_times = time[(eod_norm >= threshold) & (shift_eod < threshold)]
#x = eod_times*40000
x = np.arange(0., len(eod_times)-1)
y = np.sin(x*2*np.pi*600)
eod_freq_beat = 1/(np.diff(eod_times) + y)
# glätten
kernel = np.ones(7)/7
smooth_eod_freq_beat = np.convolve(eod_freq_beat, kernel, mode = 'valid')
time_axis = np.arange(len(smooth_eod_freq_beat))
plt.plot(time_axis, smooth_eod_freq_beat)
plt.show()
#eod_freq_beat = eod_freq_normal + y
#smooth_eod_freq_beat = np.convolve(eod_freq_beat, kernel, mode = 'valid')
#fig = plt.plot(time_axis,smooth_eod_freq_beat)
#plt.xlabel("time [ms]")
#plt.ylabel("eod frequency [mV]")
#plt.show()