Bonjour je souhaite réaliser la transformée de Fourier de ce signal :
Nom : Courant J.png
Affichages : 175
Taille : 16,9 Ko

Il s'agit d'un courant J.

Voici mon code matlab :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
%Unité
eV = 1.6*10^(-19);%electronvolt
nm = 1.0*10^(-9);%nanometre
c = 3.0*10^(8);%vitesse de la lumiere
nu0 = 1.26*10^(-6);%constante 
Ui = 13.6*eV;%energie ionisation
me = 9.1*10^(-31);%masse électron
e= eV;
nuau = 4.13*10^16;%constante
Uau = 27.21*eV;%constante liéeau laser
Eau = 5.14*10^11;%constant liée au laser
%Parametre du laser
 
I=10^18;%intensité laser
lambda = 800*nm;%longueur d'onde
E0 = sqrt(2*nu0*c*I);%amplitude champ électrique
omega = 2*pi*c/lambda;%fréquence
phi = pi/2;%phase entre les deux couleurs du  laser
r = 0.2;%energie de la deuxième harmonique par rapport a la premier
tp1 = 10^(-14);%impulsion (temps) de la fondamentale
tp2 = 10^(-14);%impulsion(temps) de l'harmonique
nb_pts = 60000;%nb points
pas = 6*tp1/nb_pts;%%résolution
t = -3*tp1:pas:3*tp1;%vecteur temps
E= E0*( sqrt(1-r)*exp((-t.^2)/(tp1^2)).*cos(omega.*t)+sqrt(r)*exp((-t.^2)/(tp2^2)).*cos(2*omega.*t +phi));%champ
%calcul taux ionisation 
alpha = nuau*Eau*2*(2*Ui/Uau)^(5/2);%facteur ionisation
beta = (4/3)*(Ui/Uau)*sqrt(2*Ui/Uau)*Eau;%deuxième facteur ionisaation
W = zeros(1,nb_pts+1);
%densité electronique 
integ =zeros(1,nb_pts+1);
  for i =1:nb_pts+1
      if sqrt(E(i)^2)==0
        W(i)=0;
      else 
          W(i) = (alpha/sqrt(E(i)^2)).*exp(-beta/sqrt(E(i)^2));%calcul ionisation
      end 
      if i~=nb_pts+1
        integ(i+1)=integ(i)+W(i)*pas;
      end 
end 
Z  = 1.-exp(-integ);%calcul de la densité électronique induite
Z1 = Z/max(Z);
Na=10^13;%densité atomique initiale
E1=E./(2*max(E));
W1=W./(2*max(W));
J = zeros(1,nb_pts+1);%courant induit
for i = 1:nb_pts
    J(i+1) = J(i) + (e^2)/(me)*Z(i)*E(i)*pas;%calcul du courant induit
end 
%plot(t,J)
Fs = 10^16;           % Sampling frequency
t = -50*10^-14:1/Fs:50*10^-14;  % Time vector 
L = length(t);      % Signal length
n = 2^nextpow2(L);  
Y = fft(J,n);%trasnfoirmér de fourier
f = Fs*(0:(n/2))/n;
P = abs(Y/n);
 
plot(f,P(1:n/2+1))
Tout est détaillé avec les %. Et vous voyez qu'a la fin du code j'essaye de faire la transformée de Fourier de mon courant J induit qui est une impulsion de -1x10^-14 a plus de 3x10^-14 secondes. DU coup j'ai rentré un vecteur temps entre -50 a 50 x 10^-14. le probleme c'est que j'obtient rien sur mon spectre j'ai genre une ligne droite sur zéro...
Pouvez-vous m'aider?