aboutsummaryrefslogtreecommitdiff
path: root/acquisition/chapter.tex
diff options
context:
space:
mode:
Diffstat (limited to 'acquisition/chapter.tex')
-rw-r--r--acquisition/chapter.tex133
1 files changed, 132 insertions, 1 deletions
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