Source code for pylgn.kernels.temporal

import numpy as np
import quantities as pq


[docs]def create_delta_ft(delay=0*pq.ms): """ Create Fourier transform delta closure Parameters ---------- delay : float/quantity scalar Delay Returns ------- out : function Evaluate function """ def evaluate(w): """ Evaluates the Fourier transformed delta function Parameters ---------- w : float/quantity scalar Returns ------- out : ndarray Calculated values """ return np.exp(1j * delay * w) return evaluate
[docs]def create_biphasic_ft(phase=43*pq.ms, damping=0.38, delay=0*pq.ms): """ Create Fourier transformed Biphasic closure Parameters ---------- phase : float/quantity scalar Delay damping : float Damping factor delay : float/quantity scalar Delay Returns ------- out : function Evaluate function """ def evaluate(w): """ Evaluates the Fourier transformed Biphasic function Parameters ---------- w : float/quantity scalar Returns ------- out : ndarray Calculated values """ factor = np.pi * phase / (np.pi**2 - phase**2 * w**2) exp_term = np.exp(1j * phase * w) term1 = 1. + (1. - damping) * exp_term term2 = damping * np.exp(1j * phase * 2.*w) factor = factor.magnitude if isinstance(factor, pq.Quantity) else factor # TODO: hack return factor * np.exp(1j * delay * w) * (term1 - term2) return evaluate
[docs]def create_exp_decay_ft(tau, delay): """ Create Fourier transformed exponential decay closure Parameters ---------- tau : float/quantity scalar Time constant delay : float/quantity scalar Delay Returns ------- out : function Evaluate function """ def evaluate(w): """ Evaluates the Fourier transformed exponential decay function Parameters ---------- w : float/quantity scalar Returns ------- out : ndarray Calculated values """ return np.exp(1j * w * delay) / (1 - 1j * w * tau) return evaluate