File Exchange

image thumbnail

Frequency-resolved optical gating (FROG)

version (3.68 KB) by Adam Wyatt
Generates a FROG trace from a pulse and gate field in time and rconstructs these fields.


Updated 07 Jul 2008

View License

Given a pulse and gate field, E(t) & G(t) where G(t) = E(t)^n or |E(t)|^2, these files can generate a FROG trace and then reconstruct E(t) and G(t) from these fields.

The file makeFROG generates the FROG trace given column vectors of the fields E(t) & G(t).

The file svdexFROG extracts E(t) and G(t) from the complex FROG field (i.e. containing the phase information as well) via an SVD algorithm.

The file svdFROG iterates through the convergence algorithm to find E(t) & G(t) given a measured FROG trace.

Note that the time and frequency pxls must be Fourier transforms of each other, i.e. dt = 2*pi/(N*dw) where dt & dw are the temporal/spectral resolutions and N is the number of pixels.

Interpolation and noise removal is advised.

Trebino, R.; DeLong, K. W.; Fittinghoff, D. N.; Sweetser, J. N.; Krumbugel, M. A.; Richman, B. A. & Kane, D. J. Measuring ultrashort laser pulses in the time-frequency domain using frequency-resolved optical gating Review Of Scientific Instruments, 1997, 68, 3277-3295

Kane, D.; Inc, S. & Santa Fe, N. Real-time measurement of ultrashort laser pulses using principalcomponent generalized projections Selected Topics in Quantum Electronics, IEEE Journal of, 1998, 4, 278-284

Cite As

Adam Wyatt (2020). Frequency-resolved optical gating (FROG) (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (9)

fucai ding

lujun hong


Alberto Comin

Jipeng Lin

Steven Byrnes

I wrote my own program, starting with this one. (You can find it posted under the same title as this one). I found this program to be a nice starting point to use. I found plenty of room for improvements and additions, but I don't remember finding any bugs that would noticeably impact the results.

Caleb Liu

some lines of this program is not correct,
for example
the fft in the makeFROG.m should be:
EF = fftshift(fft(fliplr(fftshift(EF,2)), [], 1), 1);
anyway thanks, Great work.

Rasmus Olsson DTU Fotonik

Great work, thanks.

Cap'n SVD

Wow! This code is awesome. This guy should be a member of SVD club, if he isn't already.

MATLAB Release Compatibility
Created with R2007a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired: Frequency-resolved optical gating (FROG)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!