From 7a15287015fb33da2050ea2d75969a8c8ff3c49c Mon Sep 17 00:00:00 2001
From: Blaise Thompson <blaise@untzag.com>
Date: Mon, 12 Mar 2018 10:42:25 -0500
Subject: 2018-03-12 10:42

---
 acquisition/chapter.tex | 133 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 132 insertions(+), 1 deletion(-)

(limited to 'acquisition/chapter.tex')

diff --git a/acquisition/chapter.tex b/acquisition/chapter.tex
index f94f2ec..7fe8760 100644
--- a/acquisition/chapter.tex
+++ b/acquisition/chapter.tex
@@ -1,3 +1,134 @@
 \chapter{Acquistion}
 
-Details of acquisition software.  %
\ No newline at end of file
+% TODO: cool quote, if I can think of one
+
+\clearpage
+
+In the Wright Group, \gls{PyCMDS} replaces the old acquisition softwares `ps control', written by
+Kent Meyer and `Control for Lots of Research in Spectroscopy' written by Schuyler Kain.
+
+PyCMDS directly addresses the hardware during experiments.
+
+\section{Overview}  % =============================================================================
+
+PyCMDS has, through software improvements alone, dramatically lessened scan times...
+
+\begin{itemize}[topsep=-1.5ex, itemsep=0ex, partopsep=0ex, parsep=0ex, label=$\rightarrow$]
+	\item simultaneous motor motion
+	\item digital signal processing  % TODO: reference section when it exists
+	\item ideal axis positions \ref{sec:ideal_axis_positions}
+\end{itemize}
+
+\section{Future directions}  % ====================================================================
+
+\subsection{Ideal Axis Positions}\label{sec:ideal_axis_positions}  % ------------------------------
+
+Frequency domain multidimensional spectroscopy is a time-intensive process.  %
+A typical \gls{pixel} takes between one-half second and three seconds to acquire.  %
+Depending on the exact hardware being scanned and signal being detected, this time may be mostly
+due to hardware motion or signal collection.  %
+Due to the \gls{curse of dimensionality}, a typical three-dimensional CMDS experiment contains
+roughly 100,000 pixels.  %
+CMDS hardware is transiently-reliable, so speeding up experiments is a crucial component of
+unlocking ever larger dimensionalities and higher resolutions.  %
+
+One obvious way to decrease the scan-time is to take fewer pixels.  %
+Traditionally, multidimensional scans are done with linearly arranged points in each axis---this is
+the simplest configuration to program into the acquisition software.  %
+Because signal features are often sparse or slowly varying (especially so in high-dimensional
+scans) linear stepping means that \emph{most of the collected pixels} are duplicates or simply
+noise.  %
+A more intelligent choice of axis points can capture the same nonlinear spectrum in a fraction of
+the total pixel count.  %
+
+An ideal distribution of pixels is linearized in \emph{signal}, not coordinate.  %
+This means that every signal level (think of a contour in the N-dimensional case) has roughly the
+same number of pixels defining it.  %
+If some generic multidimensional signal goes between 0 and 1, one would want roughly 10\% of the
+pixels to be between 0.9 and 1.0, 10\% between 0.8 and 0.9 and so on.  %
+If the signal is sparse in the space explored (imagine a narrow two-dimensional Lorentzian in the
+center of a large 2D-Frequency scan) this would place the majority of the pixels near the narrow
+peak feature(s), with only a few of them defining the large (in axis space) low-signal floor.  %
+In contrast linear stepping would allocate the vast majority of the pixels in the low-signal 0.0 to
+0.1 region, with only a few being used to capture the narrow peak feature.  %
+Of course, linearizing pixels in signal requires prior expectations about the shape of the
+multidimensional signal---linear stepping is still an appropriate choice for low-resolution
+``survey'' scans.  %
+
+CMDS scans often posses correlated features in the multidimensional space.  %
+In order to capture such features as cheaply as possible, one would want to define regions of
+increased pixel density along the correlated (diagonal) lineshape.  %
+As a concession to reasonable simplicity, our acquisition software (PyCMDS) assumes that all scans
+constitute a regular array with-respect-to the scanned axes.  %
+We can acquire arbitrary points along each axis, but not for the multidimensional scan.  %
+This means that we cannot achieve strictly ideal pixel distributions for arbitrary datasets.  %
+Still, we can do much better than linear spacing.
+% TODO: refer to PyCMDS/WrightTools 'regularity' requirement when that section exists
+
+Almost all CMDS lineshapes (in frequency and delay) can be described using just a few lineshape
+functions:
+\begin{ditemize}
+	\item exponential
+	\item Gaussian
+	\item Lorentzian
+	\item bimolecular
+\end{ditemize}
+
+Exponential and bimolecular dynamics fall out of simple first and second-order kinetics (I will
+ignore higher-order kinetics here).  %
+Gaussians come from our Gaussian pulse envelopes or from normally-distributed inhomogeneous
+broadening.  %
+The measured line-shapes are actually convolutions of the above.  %
+I will ignore the convolution except for a few illustrative special cases.  %
+More exotic lineshapes are possible in CMDS---quantum beating and breathing modes, for example---I
+will also ignore these.  %
+Derivations of the ideal pixel positions for each of these lineshapes appear below.
+% TODO: cite Wright Group quantum beating paper, Kambempati breathing paper
+
+\subsection{Exponential}
+
+Simple exponential decays are typically used to describe population and coherence-level dynamics in
+CMDS.  %
+For some generic exponential signal $S$ with time constant $\tau$,
+\begin{equation} \label{eq:simple_exponential_decay}
+S(t) = \me^{-\frac{t}{\tau}}.
+\end{equation}
+We can write the conjugate equation to \ref{eq:simple_exponential_decay}, asking ``what $t$ do I
+need to get a cerain signal level?'':
+\begin{eqnarray}
+\log{(S)} &=& -\frac{t}{\tau} \\
+t &=& -\taulog{(S)}.
+\end{eqnarray}
+So to step linearly in $t$, my step size has to go as $-\tau\log{(S)}$.
+
+We want to go linearly in signal, meaning that we want to divide $S$ into even sections.  %
+If $S$ goes from 0 to 1 and we choose to acquire $N$ points,
+\begin{eqnarray}
+t_n &=& -\tau\log{\left(\frac{n}{N}\right)}.
+\end{eqnarray}
+Note that $t_n$ starts at long times and approaches zero delay.  %
+So the first $t_1$ is the smallest signal and $t_N$ is the largest.  %
+
+Now we can start to consider realistic cases, like where $\tau$ is not quite known and where some
+other longer dynamics persist (manifested as a static offset).  %
+Since these values are not separable in a general system, I'll keep $S$ normalized between 0 and
+1.  %
+\begin{eqnarray}
+S &=& (1-c)\me^{-\frac{t}{\tau_{\mathrm{actual}}}} + c \\
+S_n &=& (1-c)\me^{-\frac{-\tau_{\mathrm{step}}\log{\left(\frac{n}{N}\right)}}{\tau_{\mathrm{actual}}}} + c \\
+S_n &=& (1-c)\me^{-\frac{\tau_{\mathrm{step}}}{\tau_{\mathrm{actual}}} \log{\left(\frac{N}{n}\right)}} + c \\
+S_n &=& (1-c)\left(\frac{N}{n}\right)^{-\frac{\tau_{\mathrm{step}}}{\tau_{\mathrm{actual}}}} + c \\
+S_n &=& (1-c)\left(\frac{n}{N}\right)^{\frac{\tau_{\mathrm{step}}}{\tau_{\mathrm{actual}}}} + c
+\end{eqnarray}
+
+\begin{dfigure}[p!]
+	\includegraphics[scale=0.5]{"processing/PyCMDS/ideal axis positions/exponential"}
+	\caption[TODO]{TODO}
+  \label{fig:exponential_steps}
+\end{dfigure}
+
+\subsubsection{Gaussian}
+
+\subsubsection{Lorentzian}
+
+\subsubsection{Bimolecular}
\ No newline at end of file
-- 
cgit v1.2.3

