• No se han encontrado resultados

Capítulo 5 OPTIMIZACIÓN TIEMPO CICLO DE UNA MÁQUINA

5.2 Introducción tiempo de ciclo

5.2.1 Marco, objeto y alcance de la optimización del tiempo de ciclo

Time-interval analyzer We use the GT653 time-interval analyzer (TIA) from Guide Technologies installed on the PCI slot of a Micron PC to record fluorescence photon arrival times. This board has high time resolution (0.5 ns) and is capable of recording>106photon arrival times in a single shot before filling the onboard memory.

Kevin McHale has also written software to read samples continuously from the board, so that as long as the read rate to the computer is faster than the photon arrival rate the sample memory is limited by the computer hard drive. These boards are nice and easy to program, but they suffer from the major drawback that they have only two channels and synchronization between separate boards does not work (although software calls and documentation for this function exist). This is not an issue for the experimental results presented here, but our experiment is actually capable of recording data on two TIA boards and four photon counters simultaneously, but these still cannot be synchronized in the data acquisition despite repeated inquiries with technical support.

National Instruments DAQ card In addition to the TIAs for recording photon arrivals, we use a National Instruments data acquisition card (NI-DAQ), the PCI-

MIO-16E-4, installed on a Dell PC. This card provides analog and digital inputs and outputs as well as timing capability so it really is a workhorse of the experiment. All of the software to drive it was written in C (we do not use LabView). In a typical experimental run, the x and y position of the piezoelectric stage and the monitor photodiode signal are all digitized and recorded with the NI-DAQ card. Furthermore, beam shutters (both through the AOM and mechanical shutter) and APD gates are computer-controlled using the digital outputs from the same card and (when not tracking) the x and y position of the piezoelectric stage can be set using the analog outputs from the NI-DAQ card.

Interfacing the computers The TIAs and NI-DAQ cards are on separate com- puters to alleviate the large computational, memory, and scheduling demands of running these cards simultaneously on a single computer. Furthremore, the broad functionality of the NI-DAQ card, and my own creative C coding, has led to some extremely violent system crashes, and it seemed wise to physically isolate the delicate and expensive TIA cards from the specter of physical memory dumps and paging file errors. In a typical experiment, we wish to make software alternating software calls at different cards, for example:

1. Step sample stage (NI-DAQ analog output).

2. Ungate APD (NI-DAQ digital output).

3. Begin photon counting (TIA).

4. Unblock laser (NI-DAQ digital output).

5. Begin record laser intensity (NI-DAQ analog input).

6. Wait for memory to fill (TIA).

7. Gate APD (NI-DAQ digital output).

In order to make these types of software calls, I defined a master (Micron) and a slave (Dell) computer and used Windows sockets to pass messages such as those above back and forth between the separate computers, via ethernet. With these socket protocols, and MATLAB wrappers for all the C executables, we can execute sequence such as the one shown above entirely in a MATLAB script on the master computer. This has turned out to be extremely useful in practice. A great socket programming guide is online: http://beej.us/guide/bgnet/.

Correlation software A note about calculating correlation functions is warranted here. Because our TIAs record individual photon arrival times, we have the capability to measure FCS curves g(τ) over many orders of magnitude in τ by post-analyzing the data. However, calculation ofg(τ) using standard methods based on the Wiener- Khinchin theorem and the fast-Fourier transform (FFT), for example xcorr.m in MATLAB, has two primary drawbacks. First, statistical bias at large lag times (com- pared to the length of the entire data sequence) arises from the redundant weighting of noise. This problem is easily circumvented using a symmetric normalization:

g(τ) = 1 T−τ RT−τ 0 δI(t)δI(t+τ)dt 1 T−τ RT−τ 0 I(t)dt 1 T−τ RT τ I(t)dt . (6.2)

The second more troublesome issue is that the correlation function found using an FFT must be calculated over linearly spaced time intervals τ, giving a potentially huge autocorrelation vector. For example, if we use a time bin ∆τ = 0.1 µs and calculate the correlation function out to 1 s, the resulting vector contains 107 data

points. Well-known methods such as the “multiple-tau” algorithm get around this problem by calculating correlation functions at logarithmically spaced time intervals [55]. However, these algorithms still do not satisfy all of our demands, because they average the correlation function over logarithmically increasing intervals. For a peri- odic signal (such as the one obtained with our rotating laser), we may wish to see the fast periodic structure at large time scales. A nice solution to these problems comes from an algorithm described in Ref. [56], which allows us to calculate correlation

0 5 10 15 20 0 5 10 15 x 104 Counts [s -1] t [s]

Figure 6.5: Typical open-loop transit of a 60 nm microsphere through the excitation volume. The excitation laser was not rotating for this measurement.

functions at arbitrary time lags and over arbitrary bin sizes directly from photon arrival time data. Using this algorithm, we can easily form a correlation function on, say, 1000 time intervals of size ∆τ = 0.1µs evenly distributed betweenτ = 0.1µs and τ = 1 s. We coded a version of this algorithm in C and compiled it into a MATLAB

.m executable using MEX methods.