IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Signal Discussion :

Effet Kerr (automodulation de phase) - Problème changement d'abscisses


Sujet :

Signal

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 16
    Par défaut Effet Kerr (automodulation de phase) - Problème changement d'abscisses
    Bonjour,

    je suis en train de faire un programme simulant l'effet Kerr (automodulation de phase). Effet qui introduit de nouvelles fréquences dans le spectre d'une impulsion.

    J'arrive à obtenir les formes spectrales prévues par la théorie, par contre j'ai un problème quand je veux passer des GHz aux longueurs d'ondes pour l'axe des abscisses. En fait le problème se situe pour la figure 2 (à prioris les courbes devraient être les mêmes, seulement les valeurs des abscisses devraient changer).
    Si vous avez des pistes pour gérer ça, ou si vous voyez une eventuelle erreur de raisonnement, je suis preneuse !

    voici le programme :

    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
    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');
    j'utilise en renfort deux autres fichiers .m, sqr et TFAxis dont voici les codes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    % sqr
    %
    % carré d'une fonction
    function output = sqr(input)
    output = input.*input;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    % TFAxis crée deux tableaux (fréquence et temps) calibrés
    % nPoints : Nombre de points (en général une puissance de 2)
    % nuMax   : Valeur maximale de la fréquence
    % nu : Axe des fréquences. Le point d'indice nPoints/2 vaut toujours 0
    % t  : Axe des temps. Le point d'indice nPoints/2 vaut toujours 0
     
    function [nu, t] = TFAxis(nPoints, nuMax)
    deltaNu = 2*nuMax/nPoints;
    deltaT = 1/(2*nuMax);
    nu = -nuMax:2*nuMax/nPoints:nuMax-(2*nuMax/nPoints);
    t = -nPoints/2*deltaT:deltaT:(nPoints/2-1)*deltaT;
    Images attachées Images attachées   

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/06/2007, 16h51
  2. Réponses: 3
    Dernier message: 15/06/2006, 17h43
  3. [VBA-E]problème changement d'etat d'une cellule
    Par 12_darte_12 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/03/2006, 19h19
  4. Problème changement serveur pour un site PHP
    Par izzy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 06/01/2006, 12h34
  5. [NON RESOLU] Problème changement maitre détail - Requête SQL
    Par Leesox dans le forum Bases de données
    Réponses: 1
    Dernier message: 18/08/2005, 10h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo