Procesamiento de la impedancia neuronal

Procesamiento de la impedancia neuronal

de Federico Davoine -
Número de respuestas: 0

Hola:

Les paso el código que uso para calcular la impedancia neuronal:

signal = data[1:]-np.mean(data[1:], axis=1, keepdims=True) # Restar el valor de DC de las señales de voltaje y corriente
fs = 1./(data[0][1]- data[0][0])  # Calcular la frecuencia de muestreo
Signal = np.transpose(fftpack.fft(signal)) # "Signal" es la FFT de "signal". Quizá no necesiten transponer, revisen sus datos
freqs = fftpack.fftfreq(len(data[0])) * fs # Vector de frecuencias
Z = Signal[:,0]/Signal[:,1] # Impedancia

Y, ¡pronto! Pueden graficar el módulo, por ejemplo:

fig, ax = plt.subplots(1,1)
ax.semilogx(freqs, 1e-6*np.abs(Z), '.');
ax.set_ylim(0,200); ax.set_xlabel('Frecuencia (Hz)'); ax.set_ylabel(r'Impedancia (M$\Omega$)'); ax.set_xlim(1e-1, 500)
plt.show()

Debajo pego un ejemplo de cómo queda esa gráfica. En este caso, la gráfica es hasta 500 Hz, porque la señal de entrada (corriente) no tiene componentes espectrales significativos para frecuencias más altas. Antes de graficar la impedancia, revisen cómo es el módulo de la señal de entrada.

Mañana lo podemos ver en clase también.

Saludos,

Fede

..........................................