\documentclass[12pt,a4paper,pdftex]{exam}

\usepackage[german]{babel}
\usepackage{pslatex}
\usepackage[mediumspace,mediumqspace,Gray]{SIunits}      % \ohm, \micro
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage[breaklinks=true,bookmarks=true,bookmarksopen=true,pdfpagemode=UseNone,pdfstartview=FitH,colorlinks=true,citecolor=blue]{hyperref}

%%%%% layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[left=20mm,right=20mm,top=25mm,bottom=25mm]{geometry}
\pagestyle{headandfoot}
\ifprintanswers
\newcommand{\stitle}{: L\"osungen}
\else
\newcommand{\stitle}{}
\fi
\header{{\bfseries\large \"Ubung 8\stitle}}{{\bfseries\large Spiketrain Analyse}}{{\bfseries\large 6. Dezember, 2016}}
\firstpagefooter{Prof. Dr. Jan Benda}{Phone: 29 74573}{Email:
jan.benda@uni-tuebingen.de}
\runningfooter{}{\thepage}{}

\setlength{\baselineskip}{15pt}
\setlength{\parindent}{0.0cm}
\setlength{\parskip}{0.3cm}
\renewcommand{\baselinestretch}{1.15}

%%%%% listings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{listings}
\lstset{
  language=Matlab,
  basicstyle=\ttfamily\footnotesize,
  numbers=left,
  numberstyle=\tiny,
  title=\lstname,
  showstringspaces=false,
  commentstyle=\itshape\color{darkgray},
  breaklines=true,
  breakautoindent=true,
  columns=flexible,
  frame=single,
  xleftmargin=1em,
  xrightmargin=1em,
  aboveskip=10pt
}

%%%%% math stuff: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{bm} 
\usepackage{dsfont}
\newcommand{\naZ}{\mathds{N}}
\newcommand{\gaZ}{\mathds{Z}}
\newcommand{\raZ}{\mathds{Q}}
\newcommand{\reZ}{\mathds{R}}
\newcommand{\reZp}{\mathds{R^+}}
\newcommand{\reZpN}{\mathds{R^+_0}}
\newcommand{\koZ}{\mathds{C}}

%%%%% page breaks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\continue}{\ifprintanswers%
\else
\vfill\hspace*{\fill}$\rightarrow$\newpage%
\fi}
\newcommand{\continuepage}{\ifprintanswers%
\newpage
\else
\vfill\hspace*{\fill}$\rightarrow$\newpage%
\fi}
\newcommand{\newsolutionpage}{\ifprintanswers%
\newpage%
\else
\fi}

%%%%% new commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\qt}[1]{\textbf{#1}\\}
\newcommand{\pref}[1]{(\ref{#1})}
\newcommand{\extra}{--- Zusatzaufgabe ---\ \mbox{}}
\newcommand{\code}[1]{\texttt{#1}}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

\input{instructions}


\begin{questions}
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
  \question \qt{Statistik von Spiketrains 2}
  In Ilias findet ihr die Dateien \code{poisson.mat},
  \code{pifou.mat}, und \code{lifadapt.mat}.  Jede dieser Dateien
  enth\"alt mehrere Trials von Spiketrains von einer bestimmten Art
  von Neuron. Die Spikezeiten sind in Sekunden gemessen.

  Mit den folgenden Aufgaben wollen wir die Statistik der Spiketrains
  der drei Neurone miteinander vergleichen.

  Bereits im letzten \"Ubungszettel erstellte Funktionen d\"urfen (sollen!)
  wiederverwendet werden.
  \begin{parts}
    \part Lade die Spiketrains aus den drei Dateien. Stelle sie in Rasterplots dar.
    
    \part Plotte die Interspike-Intervall Verteilungen.

    Annotiere die Plots mit dem Mittelwert, der
    Standardabweichung, und dem Variationskoeffizienten der
    Interspikeintervalle, sowie der mittleren Feuerrate.

    \part Vergleiche die ISI-Histogramme mit der ISI Verteilung eines Poisson Prozesses
    der Rate $\lambda$:
    \[ p(T) = \lambda e^{-\lambda T} \; .\]

    \part Erstelle Return-Maps f\"ur die drei Spiketrains, also jedes
    Interspike-Intervall $T_{i+1}$ gegen das vorherige Intervall $T_i$
    geplottet.
  
    \part Schreibe eine Funktion, die die seriellen Korrelationen der
    Interspikeintervalle f\"ur Lags bis zu \code{maxlag} berechnet und
    plottet.  Die Seriellen Korrelationen $\rho_k$ f\"ur Lag $k$ der
    Interspikeintervalle $T_i$ sind die Korrelationskoeffizienten
    zwischen den Interspikeintervallen $T_i$ und den um das Lag $k$
    verschobenen Intervallen $T_{i+k}$:
    \[ \rho_k = \frac{\langle (T_{i+k} - \langle T \rangle)(T_i -
      \langle T \rangle) \rangle}{\langle (T_i - \langle T
      \rangle)^2\rangle} = \frac{{\rm cov}(T_{i+k}, T_i)}{{\rm
        var}(T_i)} = {\rm corr}(T_{i+k}, T_i) \] 

    Benutze diese Funktion, um die Interspikeintervall-Korrelationen
    der drei Neurone zu vergleichen.
    \begin{solution}
      \lstinputlisting{../code/isiserialcorr.m}
      \lstinputlisting{../code/plotserialcorr.m}
      \colorbox{white}{\includegraphics[width=1\textwidth]{serialcorr}}
    \end{solution}
    
  \end{parts}

  \continue
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
  \question \qt{Homogener Poisson Prozess}
  Wir wollen den homogenen Poisson Prozess benutzen um Spikes zu
  generieren, mit denen wir die Analysfunktionen des vorherigen
  Aufgaben \"uberpr\"ufen k\"onnen.

  Ein homogener Poisson Prozess mit der Rate $\lambda$ (gemessen in
  Hertz) ist ein Punktprozess, bei dem die Wahrscheinlichkeit eines
  Ereignisses unabh\"angig von der Zeit $t$ und unabh\"angig von
  vorherigen Ereignissen ist.  Wenn wir die Zeitachse in kleine Bins
  der Breite $\Delta t$ einteilen, dann ist
  \[ P = \lambda \cdot \Delta t \]
  die Wahrscheinlichkeit innerhalb eines Bins ein Ereignis (``spike'')
  zu erhalten. $\Delta t$ muss daf\"ur klein genug sein, so dass $P<0.1$.
  \begin{parts}
    
    \part Schreibe eine Funktion die $n$ homogene Poisson Spiketrains
    einer gegebenen Dauer $T_{max}$ mit Rate $\lambda$ erzeugt.

    Falls das nicht gelingt, benutze f\"ur die folgenden Aufgaben
    soweit m\"oglich spikes aus der Datei \code{poisson.mat}.
    \begin{solution}
      \lstinputlisting{hompoissonspikes.m}
    \end{solution}
    
    \part Benutze diese Funktion um einige Trials von Spikes zu erzeugen
    und plotte diese als Spikeraster.
    \begin{solution}
      \begin{lstlisting}
        spikes = hompoissonspikes( 10, 100.0, 0.5 );
        spikeraster( spikes )
      \end{lstlisting}
      \mbox{}\\[-3ex]
      \colorbox{white}{\includegraphics[width=0.7\textwidth]{poissonraster100hz}}
    \end{solution}
    
    \part Berechne Histogramme aus den Interspikeintervallen von $n$
    Poisson Spiketrains mit der Rate $\lambda=100$\,Hz. Wie viele bins
    werden f\"ur ein ``sch\"ones'' ISI-Histogramm ungef\"ahr ben\"otigt?
    Ver\"andere \"uber die Dauer $T_{max}$ der Spiketrains und die
    Anzahl $n$ der Trials die Anzahl der Intervalle. Wieviele
    Interspikeintervalle werden ben\"otigt, um ein ``sch\"ones''
    Histogramm zu erhalten? Wie lange m\"usste man also von dem Neuron
    ableiten?
    \begin{solution}
      About 5000 intervals for 25 bins. This corresponds to a $5000 /
      100\,\hertz = 50\,\second$ recording of a neuron firing with
      100\,\hertz.
    \end{solution}
    
    \part Vergleiche Interspike-Intervall Histogramme von Poisson-Spikes
    verschiedener Raten $\lambda$ mit der theoretisch zu erwartenden Verteilung
    der Intervalle $T$ des Poisson Prozesses
    \[ p(T) = \lambda e^{-\lambda T} \; .\]
    Achte darauf, dass die Bins des Histograms nicht kleiner als $\Delta t$ sind!
    \begin{solution}
      \lstinputlisting{hompoissonisih.m}
      \colorbox{white}{\includegraphics[width=0.48\textwidth]{poissonisih100hz}}
      \colorbox{white}{\includegraphics[width=0.48\textwidth]{poissonisih20hz}}
    \end{solution}
    
    \part \extra Was passiert mit den Histogrammen, wenn die Binbreite
    der Histogramme kleiner als das bei der Erzeugung der Poisson
    Spiketrains verwendete $\Delta t$ ist?
    \begin{solution}
      Die Bins zwischen der durch $\Delta t$ vorgegebenen
      Diskretisierung haben den Wert 0. Dadurch werden aber die anderen
      durch die Normierung h\"oher als sie sein sollten.
    \end{solution}
    
    \part Plotte den Mittelwert der Interspikeintervalle, die
    dazugeh\"orige Standardabweichung und den Variationskoeffizienten
    als Funktion der Rate $\lambda$ des Poisson Prozesses. Vergleiche
    die Ergebnisse mit den theoretischen Erwartungen (siehe Vorlesungsskript).
    \begin{solution}
      \lstinputlisting{hompoissonisistats.m}
      \colorbox{white}{\includegraphics[width=0.98\textwidth]{poissonisistats}}
    \end{solution}
    
    \part Plotte die seriellen Korrelationen von Poisson-Spiketrains und
    erkl\"are kurz das Ergebniss.
    \begin{solution}
      \mbox{}\\[-2ex]\hspace*{2cm}
      \colorbox{white}{\includegraphics[width=0.8\textwidth]{poissonserial100hz}}\\
      Alle Korrelationen zwischen Interspikeintervallen sind Null, da
      beim Poisson Prozess das Auftreten jedes Spikes unabh\"angig von
      den vorherigen Spikes ist.
    \end{solution}
    
  \end{parts}


\end{questions}

\end{document}
