import neo
import numpy as np
import quantities as pq
import matplotlib.pyplot as plt
from elephant.signal_processing import hilbert
t = np.arange(0, 5000) * pq.ms
f = 5. * pq.Hz
a = neo.AnalogSignal(
      np.array(
          (1 + t.magnitude / t[-1].magnitude) * np.sin(
              2. * np.pi * f * t.rescale(pq.s))).reshape(
                  (-1,1)) * pq.mV,
      t_start=0*pq.s,
      sampling_rate=1000*pq.Hz)

analytic_signal = hilbert(a, padding='nextpow')
angles = np.angle(analytic_signal)
amplitudes = np.abs(analytic_signal)
plt.plot(t, angles)