diff options
Diffstat (limited to 'figures/software/PyCMDS')
| -rw-r--r-- | figures/software/PyCMDS/ideal axis positions/delay steps.pdf | bin | 351037 -> 0 bytes | |||
| -rw-r--r-- | figures/software/PyCMDS/ideal axis positions/delay steps.tex | 99 | ||||
| -rw-r--r-- | figures/software/PyCMDS/ideal axis positions/exponential.png | bin | 210936 -> 0 bytes | |||
| -rw-r--r-- | figures/software/PyCMDS/ideal axis positions/steps.py | 83 | 
4 files changed, 0 insertions, 182 deletions
| diff --git a/figures/software/PyCMDS/ideal axis positions/delay steps.pdf b/figures/software/PyCMDS/ideal axis positions/delay steps.pdfBinary files differ deleted file mode 100644 index 1472e0c..0000000 --- a/figures/software/PyCMDS/ideal axis positions/delay steps.pdf +++ /dev/null diff --git a/figures/software/PyCMDS/ideal axis positions/delay steps.tex b/figures/software/PyCMDS/ideal axis positions/delay steps.tex deleted file mode 100644 index 88029ea..0000000 --- a/figures/software/PyCMDS/ideal axis positions/delay steps.tex +++ /dev/null @@ -1,99 +0,0 @@ -% document
 -\documentclass[11 pt]{report}
 -\usepackage[letterpaper, margin=0.75in]{geometry}  % 1 inch margins required
 -\usepackage{setspace}
 -\usepackage{afterpage}
 -\usepackage{color}
 -\usepackage{soul}
 -\usepackage{array}
 -
 -% text
 -\usepackage[utf8]{inputenc}
 -\setlength\parindent{0pt}
 -\setlength{\parskip}{1em}
 -\usepackage{enumitem}
 -\renewcommand{\familydefault}{\sfdefault}
 -\newcommand{\RomanNumeral}[1]{\textrm{\uppercase\expandafter{\romannumeral #1\relax}}}
 -\usepackage{etoolbox}
 -\AtBeginEnvironment{verse}{\singlespacing}
 -\AtBeginEnvironment{tabular}{\singlespacing}
 -
 -% graphics
 -\usepackage{graphics}
 -\usepackage{graphicx}
 -\usepackage{epsfig}
 -\usepackage{epstopdf}
 -\usepackage{etoc}
 -\usepackage{tikz}
 -
 -% math
 -\usepackage{amssymb}
 -\usepackage{amsmath}
 -\usepackage[cm]{sfmath}
 -\DeclareMathOperator{\me}{e}
 -
 -% hyperref
 -\usepackage[colorlinks=true, linkcolor=black, urlcolor=blue, citecolor=black, anchorcolor=black]{hyperref}
 -\usepackage[all]{hypcap}  % helps hyperref work properly
 -
 -% date (http://tex.stackexchange.com/a/237251)
 -\def\twodigits#1{\ifnum#1<10 0\fi\the#1}
 -\def\mydate{\leavevmode\hbox{\the\year-\twodigits\month-\twodigits\day}}
 -
 -\begin{document}
 -
 -{\Huge{delay space stepping strategy}}
 -
 -Blaise Thompson \hfill last modified \mydate
 -
 -\dotfill
 -
 -Linear stepping is more expensive than it needs to be.
 -
 -Want to capture the dynamic range of the data as quickly as possible.
 -
 -Typically have exponential decay dynamics (perhaps multi-exponential)\dots we can capitalize on this. We want to take high resolution data at early delays and low resolution data at late delays.
 -
 -Of course, we don't want to throw away any information we would otherwise be entitled to.
 -
 -Conceptually we want to 'linearize' the data, so that each subsequent delay step accounts for the same change in signal.
 -
 -Signal goes exponentially...
 -
 -\begin{eqnarray}
 -S &=& \me^{-\frac{t}{\tau}} \\
 -\log{(S)} &=& -\frac{t}{\tau} \\
 -t &=& -\tau\log{(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{figure}[!htb]
 -	\centering
 -	\includegraphics[scale=0.5]{"out"}
 -	\caption{}
 -\end{figure}
 -
 -
 -
 -\end{document}
\ No newline at end of file diff --git a/figures/software/PyCMDS/ideal axis positions/exponential.png b/figures/software/PyCMDS/ideal axis positions/exponential.pngBinary files differ deleted file mode 100644 index 7ad27f3..0000000 --- a/figures/software/PyCMDS/ideal axis positions/exponential.png +++ /dev/null diff --git a/figures/software/PyCMDS/ideal axis positions/steps.py b/figures/software/PyCMDS/ideal axis positions/steps.py deleted file mode 100644 index 13419c3..0000000 --- a/figures/software/PyCMDS/ideal axis positions/steps.py +++ /dev/null @@ -1,83 +0,0 @@ -### import ####################################################################
 -
 -
 -import matplotlib.pyplot as plt
 -plt.close('all')
 -
 -import numpy as np
 -
 -import WrightTools as wt
 -
 -
 -### define ####################################################################
 -
 -
 -def get_signal(d, tau, pulsewidth=10, offset=0):
 -    # pulse
 -    pulse = np.exp((-d**2)/(pulsewidth**2))
 -    # signal
 -    sig = np.zeros(d.shape)
 -    sig[d<=0] = np.exp(d[d<=0]/tau)
 -    sig[d<=0] += offset
 -    sig /= sig.max()
 -    # finish
 -    #sig = np.convolve(sig, pulse, mode='same')
 -    return sig
 -
 -
 -def logarithmic_stepping(p_tau, p_npts, n_tau, n_npts):
 -    # positive
 -    p_xi = np.arange(0, p_npts)
 -    p_delays = p_tau * np.log((p_xi.size+1)/(p_xi+1))
 -    # negative
 -    n_xi = np.arange(0, n_npts)
 -    n_delays = -n_tau * np.log((n_xi.size+1)/(n_xi+1))
 -    return np.hstack((n_delays, [0], p_delays))
 -
 -
 -tau = 200
 -
 -
 -d = logarithmic_stepping(50, 3, 200, 15)
 -
 -
 -### workspace #################################################################
 -
 -
 -if True:
 -    fig, gs = wt.artists.create_figure(width=13, cols=[1, 1], nrows=1)
 -    # delay space
 -    ax = plt.subplot(gs[0, 0]) 
 -    ds = np.linspace(-1500, 1500, 1000)
 -    sig = get_signal(ds, tau)
 -    plt.plot(ds, sig, c='b', lw=2, alpha=0.5)
 -    sig = get_signal(ds, tau, offset=0.5)
 -    plt.plot(ds, sig, c='r', lw=2, alpha=0.5)
 -    sig = get_signal(ds, tau*2, offset=0)
 -    plt.plot(ds, sig, c='g', lw=2, alpha=0.5)
 -    plt.xlim(-1250, 100)
 -    plt.ylim(-0.1, 1.1)
 -    for x in d:
 -        plt.axvline(x, c='k', zorder=0)
 -    plt.axvline(0, lw=3, c='k')
 -    ax.set_xlabel('delay', fontsize=18)
 -    ax.set_ylabel('signal', fontsize=18)
 -    plt.grid(ls=':')
 -    # index space
 -    ax = plt.subplot(gs[0, 1])
 -    d = logarithmic_stepping(50, 3, 200, 15)
 -    sig = get_signal(d, tau)
 -    plt.scatter(np.arange(sig.size), sig, c='b', edgecolor='none', s=50, alpha=0.5)
 -    sig = get_signal(d, tau, offset=0.5)
 -    plt.scatter(np.arange(sig.size), sig, c='r', edgecolor='none', s=50, alpha=0.5)
 -    sig = get_signal(d, tau*2, offset=0)
 -    plt.scatter(np.arange(sig.size), sig, c='g', edgecolor='none', s=50, alpha=0.5) 
 -    i = np.argmin(np.abs(d))
 -    plt.axvline(i, lw=3, c='k')
 -    plt.grid(ls=':')
 -    plt.ylim(-0.1, 1.1)
 -    plt.setp(ax.get_yticklabels(), visible=False)
 -    ax.set_xlim(0-1, sig.size)
 -    ax.set_xlabel('index', fontsize=18)
 -    # finish
 -    wt.artists.savefig('exponential.png')
 | 
