Génération d'un signal triangulaire

Bonjour,

je cherche à tracer sur scilab la fonction 2-$\pi$ périodique qui vaut $t\longmapsto t$ sur $[0,2\pi]$. En gros un signal triangulaire.

Je suis déjà arrivé à tracer une fonction créneaux, avec: bool2s. Pour le triangulaire je bloque.

Merci.

Réponses

  • Bonjour,

    Si je lis bien, ce que tu veux, c'est une espèce de partie fractionnaire.

    Tu peux la définir à partir de la partie entière :
    y = x - floor(x)
    


    https://help.scilab.org/docs/5.3.3/fr_FR/floor.html
  • bonjour,

    Merci,

    c'est ce que j'ai fait pour le créneaux. Par exemple: xx=x-floor(x); f=bool2s(xx<=0.5). Ça me trace bien une fonction créneaux. Je cherche à tracer un signal triangulaire.
  • Je te propose ceci en Octave pour générer les signaux. Pour Scilab, il faut juste remplacer par modulo je pense.

    Code :
    %Signaux
    clear all;close all;clc
    
    %% Données
    pas=0.1;
    tmax=1e2;
    t=0:pas:tmax; %axe temporel
    per=2*pi; %période
    ampli=1; %amplitude
    
    %% Signaux
    s=mod(t*ampli/per,ampli); %signal triangulaire
    s2=ampli*sign(sin(t)); %signal carré
    
    %% Tracés
    figure(1);plot(t,s);xlabel('axe temporel');ylabel('amplitude');title('Signal triangulaire');
    figure(2);plot(t,s2);xlabel('axe temporel');ylabel('amplitude');title('Signal carré');
    
  • Je ne comprends pas :-S
    N = 10
    x = linspace(-N,N,10^5)
    y = x - floor(x)
    
    tau = 2 * %pi
    clf()
    plot(tau*x,tau*y)
    
    123048
  • Et puis, bool2s ne sert à rien. En Scilab, pour convertir un booléen en nombre, il suffit de le multiplier par 1
    plot(tau*x,1*(y<=.5))
    
    123050
  • Cool,

    merci. J'ai fait ça et ça a marché aussi:

    x0 = 0 ; x1 = 2*%pi ; X0 = -7 ; X1 = 7 ; X = linspace(X0,X1,1000) ;
    x = X - floor(X/(2*%pi))*2*%pi ;
    Y = bool2s(0 <= x & x < 2*%pi).*x;
    plot2d(X,Y)
  • Y = bool2s(0 <= x & x < 2*%pi).*x
    
    :-D
    Tu as essayé :
    Y = x
    
    ? (:D
  • Bonjour,
    Je propose $f\colon x\mapsto (1-2\{x\})(-1)^{\lfloor x\rfloor}$
  • @Marsup: J'suis c**. Ça marche aussi (:D. Merci.
  • Merci à tous.
  • Bonjour, j'ai une autre question...

    Je fais un essais pour approximer $t\mapsto \sin(2\pi t)$ par des fonctions étagée à l'aide d'une base hilbertienne. J'ai créé cette fonction :
    function f=approximante(j,x)
        y=(2^(j/2)/(2*%pi))*(1-cos(2*%pi*2^(-j/2)))*indic(2^j*x,0,1);
        for k=0:2^j-1 do
            y=y+(2^(j/2)/(2*%pi))*(cos(2*%pi*k*2^(-j))-cos(2*%pi*(k+1)*2^(-j)))*2^(j/2)*indic(2^j*x-k,0,1);
        end
        f=y;
    endfunction
    
    À l'arrivée j'ai un phénomène bizarre. Il y a plein de piques (je n'arrive pas à charger le dessin en fichier joint), on voit bien l'approximation mais il y a des piques...
Connectez-vous ou Inscrivez-vous pour répondre.