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

MATLAB Discussion :

Signal sinusoidal discret


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Signal sinusoidal discret
    Bonsoir,
    J'aimerais créer un signal sinusoïdal discret x(nTe) = A*sin(2*pi*f0*n*Te) sur Matlab. Pour cela, je dispose de sa fréquence f0 (et donc aussi sa période T0), son amplitude A, sa fréquence d'échantillonnage Fe (et donc aussi sa période d'échantillonnage Te), et sa durée D. On cherche à ne faire apparaître que les 5 premières périodes. J'ai écrit ceci :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    t = 0:Te<img src="images/smilies/icon_biggrin.gif" border="0" alt="" title=":D" class="inlineimg" /> ;
    x = A * sin(2*pi*f0*t) ;
    plot(t, x) ;
    axis([0, 5*T0, -A, A]);

    Mais le problème, c'est que je ne fais pas apparaître le pas "n".
    Pouvez-vous me dire si c'est la bonne façon de faire pour un signal discret ? Si ce n'est pas le cas, j'avais pensé à écrire :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    n = 0:Te:5*T0/Te;
    x = A * sin(2*pi*f0*n*Te) ;
    plot(n*Te, x);

    Et la, le problème vient du fait de ne pas voir apparaître la durée D.
    Comment faire ?
    Merci d'avance pour vos réponses.

  2. #2
    Membre émérite
    Bonjour,

    Tu peux utiliser :


  3. #3
    Candidat au Club
    Merci pour votre réponse. Comment puis-je insérer cette commande dans mon code ? J'ai cherché des informations dessus, mais je ne trouve pas ce que je cherche précisément, mis à part quelques exemples, qui me montrent qu'en l'utilisant, on obtient une courbe telle que celle-ci . Je ne sais pas si cette commande peut être utilisée d'une autre manière pour répondre à mon problème, ou peut être que je ne me suis pas bien exprimée sur ce que je cherchais à faire.

  4. #4
    Membre émérite
    Bonjour,
    Un exemple :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    clear
    fs=5;
    Te=0.01;
    t=0:Te:5/fs;
    y=sin(2*pi*fs*t);
    stairs(t,y);
    grid
    [X,Y]=stairs(t,y);
    figure
    plot(X,Y)
    grid

  5. #5
    Candidat au Club
    Bonjour,
    Je pense que j'ai du être trop imprécise sur ce que je cherchais à obtenir. Je souhaiterais créer un signal sinusoidal discret, et pour se faire je pense devoir déterminer un nombre approprié d'échantillons N, mais je ne sais pas comment procéder. Je souhaiterais que mon résultat final ressemble le plus possible à une sinusoide continue, et pas qu'elle soit en "escaliers"...

  6. #6
    Membre émérite
    Bonjour,
    Un signal discret est forcément en escaliers.
    Valeurs constantes entre les échantillons pour le bloqueur d'ordre zéro.
    Valeurs y=ax pour le blogueur d'ordre 1
    ...

    Tu peux tracer que les échantillons :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Te=0.1;T0=5;f0=1/T0;A=1
    n = 0:Te:5*T0/Te;
    x = A * sin(2*pi*f0*n*Te) ;
    plot(n*Te,x,'.b')

  7. #7
    Candidat au Club
    C'est ce code que j'avais fait au départ, mais il n'utilise pas la durée D du signal...

  8. #8
    Candidat au Club
    Si j'essayais de placer dans le code le nombre d'échantillonnage en fonction de la durée D et de la fréquence d'échantillonnage Fe ?
    N = Fe * D ? Je ne suis pas sure...

  9. #9
    Membre émérite
    Oui, c'est bien N=Fe*D.

###raw>template_hook.ano_emploi###