1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
% Propagation non-linéaire d'une impulsion brève
% Spectre gaussien
clear all;
% Paramètres
nPoints = 1024;
[nu,t] = TFAxis(nPoints,2000);
fs = .001; % 1 fs exprimée en ps
t_fs = t/fs; % Axe des temps en fs
omega = (2*pi)*nu;
speedLight = 300000; % Vitesse de la lumière en nm par ps.
% Paramètres de l'impulsion
lambda0 = 800; % Longueur d'onde centrale en nm
nu0 = speedLight/lambda0; % Fréquence centrale
omega0 = (2*pi)*nu0;
temps=10; %durée de l'impulsion en fs
deltaT = temps* fs / sqrt(8*log(2));
% calcul des valeurs
field_t0 = exp(-sqr(t)/4/sqr(deltaT)).*exp(-i*omega0*t);
field_nu0 = ifft(field_t0);
maxValue = max(abs(field_nu0)); % Pour normaliser le spectre
% Paramètres de la simulation
zMax = 4; % distance de propagation
dp=3.5; % pour faciliter l'affichage final sur le graph (déphasage non linéaire)
g = dp*pi/zMax; % Déphasage non-linéaire à l'issue de la propagation
z = 0:zMax/100:zMax; % Axe de propagation
% Calcul du champ pour les valeurs successives de z
for iZ = 1:length(z)
phase = g*sqr(abs(field_t0))*z(iZ);
field_t = field_t0.*exp(i*phase);
field_nu = ifft(field_t);
end
figure(1);
plot(nu,sqr(abs(fftshift(field_nu))/maxValue),nu,sqr(abs(fftshift(field_nu0))/maxValue));
legend(['phase non linéaire de 0\pi'], ['phase non linéaire de ',num2str(dp),'\pi']);
xlim([-10 800])
xlabel('frequence');
figure (2);
plot(300000./nu,sqr(fftshift(abs(field_nu)/maxValue)),300000./nu,sqr(fftshift(abs(field_nu0)/maxValue)));
xlim([400 1500]);
xlabel('longueur d''onde'); |
Partager