kirchhooff
Messages postés1Date d'inscriptionmercredi 27 avril 2016StatutMembreDernière intervention27 avril 2016
-
27 avril 2016 à 13:32
Bonjour à tous,
je suis travaille dans sur un système géré en dispersion (couplage d'une fibre de dispersion positive et une de dispersion négative).
Je veux de ce fait réaliser une contra-propagation sous Matlab de sorte à observer l'interaction entre les deux ondes injectées dans chacune des extrémités de mon système de fibre.
je vous montre le cœur du programme ci-dessous.
Question : J'aimerai juste que vous vérifiez si j'ai bien réalisé une contra-propagation et dans le cas contraire que vous m'aidez s'il vous plaît, à apporter les améliorations nécessaires.
Je vous remercie par avance
%%%%%% FABRICATION DU CHAMP INCIDENT JUSTE AVANT AMPLI %%%%%%%%%%%%%
E_inc=U;
V_plus = fftshift(ifft(E_inc));
V_plus = V_plus.*exp(i*w*t_L); %%% c'est ici que je demande à l'une des ondes de commencer sa propagation par l'extrémité (1) E_inc_decale = fft(fftshift(V_plus));
energie_inc_ini=trapz(t,abs(E_inc).^2);
V_moins = fftshift(ifft(E_inc));
V_moins = V_plus.*exp(-i*w*t_L); %%% c'est ici que je demande à l'autre onde de commencer sa propagation par l'extrémité (2)
E_inc_recale = fft(fftshift(V_moins));
%%%%%% (cette partie est sans importance pour le problème soulevé)%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% AMPLIFICATION DU CHAMP INCIDENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
E1=E_inc_decale*sqrt(gain_nolm);
E1_recale=E_inc_recale*sqrt(gain_nolm);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ENTREE DANS LE NOLM
%%%%%%%%%%%%%%%%%%%%%%%%%
E_plus=i*sqrt(1-coef_coup_sym)*E1;
E_moins=sqrt(coef_coup_sym)*E1_recale; %E4
%%%%% PASSAGE DU CHAMP E_moins DANS L ATTENUATEUR %%%%%%%%%%%%%
E_moins=E_moins*sqrt(delta_nolm) ;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%% PROPAGATION DANS LA FIBRE DU NOLM %%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% propagation sur la distance L4 (morceaux de fibre de dispersion +)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
alpha=alpha4; beta2=beta24;beta3=beta34;
gamma=gamma4;dz=zstep4;
disper_plus=exp(i*beta1*dz*w+(0.5*i*beta24)*dz*w.^2+i*beta34*dz*w.^3/6-dz*alpha4/2);
disper_moins=exp(i*beta1*dz*w+(0.5*i*beta25)*dz*w.^2+i*beta35*dz*w.^3/6-dz*alpha5/2);
zz=0;
for indice=1:npt4
P_plus = abs(E_plus).^2;
P_moins = abs(E_moins).^2;
%%%%% CALCUL DE LA CONTRIBUTION non linéaire %%%%%%%%%
teta_plus=gamma4*(P_plus+2*P_moins);
teta_moins=gamma5*(P_moins+2*P_plus);
% energie_dans_fibre=trapz(t,abs(E_moins).^2)+trapz(t,abs(E_plus).^2
% )
end
% format long
% z
% longueur2
%
% pause
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% propagation sur la distance L5 (morceau de fibre de dispersion -, les deux sont lié par soudure expérimentalement)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
alpha=alpha5; beta2=beta25;beta3=beta35;
gamma=gamma5;dz=zstep5;
disper_plus=exp(i*beta1*dz*w+(0.5*i*beta24)*dz*w.^2+i*beta34*dz*w.^3/6-dz*alpha4/2);
disper_moins=exp(i*beta1*dz*w+(0.5*i*beta25)*dz*w.^2+i*beta35*dz*w.^3/6-dz*alpha5/2);
for indice=1:npt5
P_plus = abs(E_plus).^2;
P_moins = abs(E_moins).^2;
%%%%% CALCUL DE LA CONTRIBUTION non linéaire %%%%%%%%%
teta_plus=gamma4*(P_plus+2*P_moins);
teta_moins=gamma5*(P_moins+2*P_plus);
zz = zz + dz;
% Incrementation de z end % for indice
% semilogy(t,abs(E_plus),t,abs(E_moins))
%drawnow
%
% energie_dans_fibre=trapz(t,abs(E_moins).^2)+trapz(t,abs(E_plus).^2
% )
end
%%%%%%%%%%% PASSAGE de E_plus DANS L ATTENUATEUR %%%%%%%%%%%%%
E_plus=E_plus*sqrt(delta_nolm);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% il faut décaler le champ E_plus et le remettre au centre de
% la fenètre temporelle
% decalage de E_plus
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
V_plus = fftshift(ifft(E_plus));
V_plus = V_plus.*exp(-i*w*t_L);
E_plus_decale = fft(fftshift(V_plus));