Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité de passage
    Inscrit en
    octobre 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : octobre 2012
    Messages : 9
    Points : 2
    Points
    2

    Par défaut Problème simple sinus

    Bonjour,

    j'aimerais savoir pourquoi lorsque j'exécute

    Code :
    1
    2
    3
    time=linspace(0,10,100);s=sin(f1*2*pi.*time);subplot(2,1,1);plot(time,s)
    time=linspace(0,10,1000);s=sin(f1*2*pi.*time);subplot(2,1,2);plot(time,s)
    dans MATLAB je n'obtiens pas le même graphique ...

    En effet je compte tracer le spectre d'un signal importé avec wavread en ne connaissant que le vecteur temporel, le signal et la fréquence d’échantillonnage, alors je commence doucement par générer un sinus qui remplace le signal pour le moment, pour essayer. Sauf que ces 2 sinus n'ont pas les mêmes fréquences et ça m'embête...

    Merci d'avance

    Apeth

  2. #2
    Dut
    Dut est déconnecté
    Rédacteur/Modérateur

    Avatar de Dut
    Homme Profil pro Jérôme Briot
    Ingénieur hospitalier
    Inscrit en
    novembre 2006
    Messages
    17 788
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérôme Briot
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2006
    Messages : 17 788
    Points : 49 546
    Points
    49 546

    Par défaut

    Je ne suis pas un spécialiste mais je dirais que comme dans cette discussion Tracé d'un sinus, cela est lié au théorème de Nyquist-Shannon

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    f1 = 10;
    
    f2 = 5*f1;
    f3 = 10*f1;
    
    time = 0:1/f2:3;
    s = sin(f1*2*pi*time);
    
    figure
    
    subplot(2,1,1);
    plot(time,s)
    
    time = 0:1/f3:3;
    s = sin(f1*2*pi*time);
    
    subplot(2,1,2);
    plot(time,s)
    Sur mon blog : Java et Mac OS X… et Scilab

    Ma page personnelle avec mes contributions MATLAB (R2011b/R2014b - Windows, Linux et Mac) et Hardware

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Responsable FAQ C++
    Avatar de Winjerome
    Homme Profil pro Jérôme
    Inscrit en
    septembre 2009
    Messages
    7 959
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérôme
    Âge : 27
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : septembre 2009
    Messages : 7 959
    Points : 29 291
    Points
    29 291

    Par défaut

    Bonsoir,

    C'est effectivement lié au théorème de Nyquist-Shannon. Tes deux signaux sont tracés avec des fréquences d’échantillonnage différents.
    1. Premier cas : 1/time(2) = 9.9 Hz
    2. Deuxième cas : 1/time(2) = 99 Hz

    Donc comme si je le suppose, tu as 9.9/2 < f1 < 99/2 (voire pire f1 > 99/2 ), tu vas voir deux signaux complètement différents.

    Pourquoi ? Car tu n'auras pas suffisamment d’échantillons par unité de temps pour pouvoir représenter correctement ta sinusoïde.
    Prenons f1 = 20 Hz, et effectuons un zoom sur le signal :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    f1 = 20;
    
    time1 = linspace(0,10,100); s1 = sin(f1*2*pi*time1);
    time2 = linspace(0,10,1000);s2 = sin(f1*2*pi*time2);
    
    tmax = 1; % on visualise de 0 à 1s
    hold on
    plot(time2(time2<tmax),s2(time2<tmax),'r-*')
    plot(time1(time1<tmax),s1(time1<tmax),'-p')
    Tu peux voir que le signal rouge (Fe = 99 Hz) possède 6 échantillons par période de la sinusoïde, ce qui est suffisant pour apercevoir la sinusoïde correctement ; alors qu'il faut un peu plus de 2 périodes pour avoir 2 points du signal bleu (9.9 Hz) : difficile donc de récupérer notre sinusoïde à partir de là en reliant simplement les points
    Avant de poser votre question : FAQ, Tutoriels et recherche sur le forum
    Une erreur ? Messages d'erreur et avertissements
    "Ça ne marche pas" n'apporte aucune information utile permettant de vous aider. Expliquez clairement votre problème (erreurs entières, résultat souhaité vs obtenu...).

    En essayant continuellement on finit par réussir. Donc: plus ça rate, plus on a de chance que ça marche. - Jacques Rouxel
    L'expérience, c'est le nom que chacun donne à ses erreurs - Oscar Wilde
    Retrouvez-moi en soirée sur le chat de developpez.com - Pas de question technique par MP, Merci

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •