From 7a15287015fb33da2050ea2d75969a8c8ff3c49c Mon Sep 17 00:00:00 2001 From: Blaise Thompson 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') 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