Simulation of Gmiips with 4th order spectral phase
Contents
Set up chirped Gaussian pulse
p = gaussianPulse('f0',300/800, 'fwhm', 5, 'units', 'fs', 'dt', 0.5);
FOD = 500;
p.polynomialPhase([FOD 0 0 0 0])
Simulate Gmiips
maxGDD = 200;
tau = p.calculateShortestDuration();
amp = maxGDD/tau^2;
phasesteps = linspace(-2*pi, 2*pi, 500);
m = Gmiips(p, amp, tau, phasesteps, 'gateWidth', []);
mg = Gmiips(p, amp, tau, phasesteps, 'gateWidth', 1, 'modulationFunction', 'psin');
Plot results
figure(1)
subplot(3,1,1)
pcolor(m.phaseArray, m.frequencyArray, m.trace);
shading flat
ylim([-2,2]*p.bandwidth+p.centralFrequency)
xlabel('phase shift (rad)')
ylabel(['frequency (', p.frequencyUnits, ')'])
title('MIIPS trace')
subplot(3,1,2)
pcolor(mg.phaseArray, mg.frequencyArray, mg.trace);
shading flat
ylim([-2,2]*p.bandwidth+p.centralFrequency)
xlabel('phase shift (rad)')
ylabel(['frequency (', p.frequencyUnits, ')'])
title('G-MIIPS trace')
subplot(3,1,3)
plot(p.frequencyArray, m.retrievedPhase, 'b', ...
p.frequencyArray, mg.retrievedPhase, 'r', ...
p.frequencyArray, p.spectralPhase, 'k--');
legend('miips', 'G-miips', 'true')
xlim([-2,2]*p.bandwidth+p.centralFrequency)
xlabel(['frequency (', p.frequencyUnits, ')'])
ylabel('spectral phase (rad)')
title('Phase Retrieval')