Ultrashort Pulse Propagation Code

Propagation Code for Ultrashort Pulse
Intensity and Phase


There are some nice things you can do when you measure the full pulse intensity and phase—things you couldn’t do with just an autocorrelation. For example, you can propagate the pulse theoretically through any optical components to see how dispersion affects the pulse. This is particularly useful if, in your apparatus, the pulse must propagate through optics on the way to your FROG or if your FROG has some glass in it (before the crystal), and you’d like to know the pulse before it met any of these distorting elements. You can then “back-propagate” the pulse through these optics to see what it looked like before them. This is the case for the original commercial Swamp Optics GRENOUILLE for pulses shorter than about ~80 fs (or bandwidths greater than ~15 nm). Alternatively, if your pulse must propagate through some optics on its way to another experiment, you can “forward-propagate” the pulse to see what it will look like at that experiment.

As a result, this web page supplies code you can use to do this forward- or back-propagation. It’s initially set up for the commercial GRENOUILLE (which has a lens telescope, a cylindrical lens, and a Fresnel biprism before the BBO crystal in it), so you can use this code (unchanged) to find the actual pulse at the entrance to the GRENOUILLE. Again, you only need to run this code if you have the original GRENOUILLE (later versions have a reflective telescope instead and do not require any corrections if the pulse is within the device specs (i.e., longer than 50 fs and with less than 20 nm of bandwidth). But you can use it to perform any propagation of any pulse, as long as you know its intensity and phase.

For more sophisticated problems, such as propagation through a pulse stretcher, amplifier, and compressor, you may wish to check out some software from Craig Siders at UCF, called “Dispersomatic”: http://dom.creolucf.edu/
 

Download the file here

Instructions

To use these files, you will need MATLAB (tested on relases 12 and 13; less than 12 may require upgrading). Use of the files assumes basic familiarity with MATLAB, and is fairly straightforward code, but does not have a GUI interface or the like. Most of it's functionality is through running/modifying a simple script that calls the required functions.

First, unzip all the files either your MATLAB/work directory, or to any folder you choose, so long as you add that folder to your MATLAB path.

To take a look at theoretical propagation, use the PROPATHEO.m script. Open and Run it, and a plot should appear showing the FROG trace, the temporal intensity and phase, and the spectral intensity and phase; both before and after propagation. You can change the values of the temporal or spectral pulsewidth and/or chirp and then Save and Run the script to see the changes. When the "propagate.m" function is called, a "direction" of +1 is forward propagation, -1 is back propagation.
By commenting out the lines 38 and 39:
direction = 1;
ESNew =
quickscale(BetaGREN(Wavelen,ES,direction));

and removing the comment on lines 45-47:
% len = 2.4;
% mat = 'FUSED SILICA';
% ESNew = quickscale(propagate(Wavelen,ES,len,mat));


you can instead see propagation through 2.4 mm of fused silica. Changing the length and/or material may account for a lens or beamsplitter in your own system, for instance.



To take a look at (back) propagation on experimental data, use the PROPADATA.m script. Hitting Run will open a standard file open dialogue box, to get the retrieved spectral intensity and phase from the standard "speck.dat" file. A sample "speck.dat" file has been provided in the PROPAGATE.zip file, and so will be located wherever you put the files. Selecting the sample speck.dat will show the plots as seen in the PROPATHEO, of real experimental data of an etalon-generated pulse train, being back propagated through a typical GRENOUILLE (in fact, identical to that of commercially available Swamp Optics GRENOUILLEs).

To run a back propagation on a retrieved intensity and phase, you will need the data in the standard "speck.dat" format. The format is fairly simple five column delimited text, with no headers. The columns are:
Wavelength Intensity Phase RealEField ImaginaryEField
(The second and third columns contain information redundant in the fourth and fifth columns.)


If you cannot get the code to run at all, first check that files are in your MATLAB path, and that you have release 12 or 13 (either should say MATLAB 6). If problems persist, you may contact Patrick O'Shea (pat AT socrates.gatech.edu). General questions about MATLAB will not be answered, just about the code provided here. For general questions about FROG or GRENOUILLE, feel free to browse our website to find information, and/or check out Dr. Trebino's FROG book, which is as comprehensive a reference on FROG as you will ever find.

Thanks,
Patrick