In [1]:
%matplotlib inline
from matplotlib import pylab as pl
import cPickle as pickle
import pandas as pd
import numpy as np
import os
import random

In [2]:
import sys
sys.path.append('..')

In [37]:
target = 'Patient_2'
data_type = 'preictal' # interictal, test
segment = 3

In [23]:
target = 'Dog_5'
data_type = 'test' # preictal interictal, test
segment = 3

In [38]:
fname = '../seizure-data/%s/%s_%s_segment_%04d.mat'%(target,target,data_type,segment)

In [39]:
import scipy.io
data = scipy.io.loadmat(fname)

In [40]:
data.keys()


Out[40]:
['__version__', 'preictal_segment_3', '__header__', '__globals__']

In [41]:
k = '%s_segment_%d'%(data_type,segment)

In [42]:
data_length_sec = data[k]['data_length_sec'][0,0][0,0]
sequence = data[k]['sequence'][0,0][0,0]
Fs = float(data[k]['sampling_frequency'][0,0][0,0])

data_length_sec, sequence, Fs


Out[42]:
(600, 3, 5000.0)

In [43]:
channels = [t[0] for t in data[k]['channels'][0,0][0]]
len(channels),channels


Out[43]:
(24,
 [u'LTG_01',
  u'LTG_02',
  u'LTG_03',
  u'LTG_04',
  u'LTG_05',
  u'LTG_06',
  u'LTG_07',
  u'LTG_08',
  u'LTG_09',
  u'LTG_10',
  u'LTG_11',
  u'LTG_12',
  u'LTG_13',
  u'LTG_14',
  u'LTG_15',
  u'LTG_16',
  u'LTG_17',
  u'LTG_18',
  u'LTG_19',
  u'LTG_20',
  u'LTG_21',
  u'LTG_22',
  u'LTG_23',
  u'LTG_24'])

In [183]:
d = data[k]['data'][0,0]
d.shape


Out[183]:
(15, 3000000)

In [184]:
assert len(channels) == d.shape[0]

In [185]:
assert int(Fs*data_length_sec + 0.5) == d.shape[1],int(Fs*data_length_sec + 0.5)

In [186]:
Nchannels = 4 # d.shape[0]
for i in range(Nchannels):
    pl.subplot(Nchannels,1,i+1)
    pl.plot(d[i,:500000])
    pl.title(channels[i])
pl.gcf().set_size_inches(14,8);



In [187]:
Y = np.abs(np.fft.rfft(d[0,:]))

In [188]:
Y[60*data_length_sec]/np.std(d[0,:])


Out[188]:
394058.2261422351

In [193]:
pl.plot(Y[:200*data_length_sec])


Out[193]:
[<matplotlib.lines.Line2D at 0x1198cf350>]

In [192]:
NFFT=8192
Pxx, freqs, bins, im = pl.specgram(d[3,:], NFFT=NFFT, pad_to=NFFT*2, Fs=Fs, noverlap=NFFT/2)
pl.gca().set_ylim((0,1000))
pl.show()