Code covered by the BSD License  

Highlights from
Frequency-resolved optical gating (FROG)

image thumbnail
from Frequency-resolved optical gating (FROG) by Adam Wyatt
Generates a FROG trace from a pulse and gate field in time and rconstructs these fields.

svdexFROG(Field)
function [Pt, Gt] = svdexFROG(Field)
%svdexFROG: Extracts the pulse and gate as functions of time from the FROG
%   FIELD (i.e. complex amplitude) via a SVD.
%
%Usage:
%
%   [Pt, Gt]    =   exFROG(Complex Field)
%
%       Pt      =   Pulse field (in time)
%       Gt      =   Gate field (in time)
%       Field   =   Input FROG field.

%   ------------------------------------------
%   Convert FIELD to time.
%
%	See also SVDFROG, SVD, MAKEFROG
% Et = ifftshift(ifft(Field), 1);
EF = fftshift(fft(ifftshift(Field, 1), [], 1));

N = size(Field, 1);

%   Row rotation
for n=2:N
    EF(n, :) = circshift(EF(n,:), [0, (n-1)]);
end

%   Extract vectors via SVD
[U, S, V] = svd(EF);
Pt = U(:,1);
Gt = conj(V(:,1));

Contact us at files@mathworks.com