Spectre d'ondes planes en matlab
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Spectre d'ondes planes en matlab



  1. #1
    klark

    Spectre d'ondes planes en matlab


    ------

    Bonjour,

    J'essaye de décomposer un champ sphérique en matlab en utilisant la bibliothèque fftw3 de forme :

    exp(k*sqrt(x^2 + y^2 + z^2))/sqrt(x^2 + y^2 + z^2) en spectre d'onde plane mais je sais pas comment faire pour programmer ça.
    Je sais qu'il s'agit d'une transformée de fourrier bidimensionnelle. Mais que prendre comme vecteurs d'abscisses et ordonnées.
    Est ce que quelqu'un peut m'aider. merci d'avance.

    -----

  2. #2
    invite0ab6bca5

    Re : Spectre d'ondes planes en matlab

    Bonsoir

    On fait la TF en x et y (donc TF 2D) dans un plan z=a ; puis on propage chacun des termes f(kx, ky,a) en multipliant par l'exponentielle complexe adéquate en z.
    Quand on prend des fréquences (non des pulsations), pour un tableau de N points en x, on a dx * dkx = 1 / N. (idem en y).
    Ci-dessous : petit exemple avec une TF 1D :
    Code:
    /diffraction de fresnel par une fente 
    dx=0.5e-7;N=128 ; x=(-N:N-1)*dx ;
    signal=zeros(1,length(x)) ;signal(N+1-30:N+1+30)=1;
    xset("window",1), xbasc(1)
    plot(x*1e6, signal,'k')
    xtitle('amplitude du champ dans le plan de la fente','x en micromètres')
    lambda=0.5e-6;nu=3e8/lambda;
    K=1/lambda;
    du = 1/(2*N*dx) ; u=(-N:N-1)*du ;
    khi=sqrt(K^2-u.^2);
    spectre=fft(signal,-1);
    specent=fftshift(spectre);
    Z=lambda;
    specentZ=specent.*exp(2*%i*%pi*khi*Z);
    xset("window",2), xbasc(2)
    plot(u, abs(specent),'k',u,abs(specentZ),'b')
    xtitle('module du spectre en z=0 et en z=lambda','u en m-1')
    signalZ=fft(fftshift(specentZ),1);
    xset("window",3),xbasc(3)
    plot(x*1e6,abs(signalZ),'k',x*1e6,signal,'--k')
    xtitle('amplitude du signal propagé à la cote Z=lambda','x en micromètres')
    A plus tard ...
    Dernière modification par yoda1234 ; 12/10/2010 à 05h44.

  3. #3
    invite0ab6bca5

    Re : Spectre d'ondes planes en matlab

    Rectification :

    Les quelques pistes données dans mon message précédent (et l'exemple "Fresnel") sont valables pour un développement en SOP en générale ; mais pour la fonction qui vous occupe, les ennuis de calcul numérique sont à redouter ; mieux vaudrait emprunter une démarche analytique (formule de Weyl).
    En espérant ne pas vous avoir fait perdre de temps ...

  4. #4
    klark

    Re : Spectre d'ondes planes en matlab

    Bonjour,

    Merci jusquiame. Mais à quoi elle consiste cette formule de weyl. Est ce que tu peux me fournir un lien qui explique la démarche? J'ai cherché sur google mais j'ai pas trouvé un lien qui explique la démarche.

    Merci d'avance.

  5. A voir en vidéo sur Futura
  6. #5
    invite0ab6bca5

    Re : Spectre d'ondes planes en matlab

    Bonjour,
    Voici en pièce jointe la formule ou plutôt la transformée à laquelle je pensais.
    Bonne continuation
    Images attachées Images attachées

Discussions similaires

  1. différence entre spectre de raies et spectre continu
    Par invite4fd13f11 dans le forum Physique
    Réponses: 4
    Dernier message: 24/04/2010, 19h31
  2. Réponses: 3
    Dernier message: 17/10/2009, 16h21
  3. [Biologie végétale] Différence spectre d'absorption et spectre d'action photosynthétique
    Par invitec6e401dd dans le forum Biologie
    Réponses: 1
    Dernier message: 04/03/2009, 09h58
  4. Hybridation et molécules planes ou non planes
    Par invitea859848a dans le forum Chimie
    Réponses: 5
    Dernier message: 27/01/2007, 14h25
  5. Réponses: 2
    Dernier message: 15/11/2006, 16h56
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...