simulation de Filtre sous Scilab
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

simulation de Filtre sous Scilab



  1. #1
    invite6a647bb7

    simulation de Filtre sous Scilab


    ------

    Bonjour, je dois simuler un filtre sous Scilab. Le programme est le suivant :

    clear
    close()
    f = [1:1E6:100E6];
    w = 2*%pi*f;

    fo = 20E6;
    w_c = 2*%pi*fo;

    p = %i*w/w_c;

    H_p = 1.0./(((p.^2)+0.765.*p+1).*(p.^2+1. 848.*p+1));
    moduleH_p=20.0*log10(abs(H_p)) ;
    h=figure()


    h.background=8;
    subplot(411)

    plot2d(f,moduleH_p)
    a1=gca();
    a1.log_flags="ln";
    set(gca(),"grid",[1 1]*color('blue'))

    subplot(412)
    phase_rad = atan(imag(H_p),real(H_p)); // exprime en radians

    phase=phase_rad.*180.0/%pi;
    plot2d(f,phase)
    a2=gca();
    a2.log_flags="ln"
    set(gca(),"grid",[1 1]*color('blue'))
    TPG=diff(phase)/1E6

    subplot(413)
    plot2d(f(1:$-1),TPG)//on prend pas le dernier element de f pour bien se caler sur le graphique
    a3=gca();
    a3.log_flags="ln"
    set(gca(),"grid",[1 1]*color('blue'))


    subplot(414)
    plot2d(f',phasemag(H_p,'m')')
    a4=gca();
    a4.log_flags="ln"
    set(gca(),"grid",[1 1]*color('blue'))

    La simulation du filtre fonctionne, on obtient bien les courbes demandées. Mon problème est le suivant; je voudrais étudier sa réponse à un échellon. Je débute en Scilab et je ne suis pas non plus un pro du traitement du signal, mais je dois étudier ça pour mon stage. Donc, pourriez vous m'expliquer comment appliquer à ce filtre un échelon unitaire? ou tout autre type de signal pour pouvoir étudier sa réponse?
    Merci d'avance.

    -----

  2. #2
    BastienBastien
    Invité

    Re : simulation de Filtre sous Scilab

    Hi,

    Tu as essayé avec Xcos ?
    Xcos est basé sur Scilab et permet de faire des schéma-bloc.
    Tu as d'ailleur un bloc STEP pour l'échelon, il me semble.

    +

  3. #3
    BastienBastien
    Invité

    Re : simulation de Filtre sous Scilab

    Re,

    Dans Scilab 5.3.3 ça me chie plein d'erreurs.
    Par exemple sur la définition de la fonction de transfert H_p.
    Pourquoi tu n'as pas utilisé H=syslin('c',......); ?

    +

  4. #4
    BastienBastien
    Invité

    Re : simulation de Filtre sous Scilab

    Re,

    Est-ce que les pictures suivantes répondent à ton besoin ?

    1.jpg

    2.jpeg

    3.jpeg

    +

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

    Re : simulation de Filtre sous Scilab

    Bonjour, je ne connais pas du tout cette fonction, et je n'ai pas accès aux 3 images (je l'ai signaler aux administrateurs). Là où je fais mon stage la fonction marche bien.

  7. #6
    JPL
    Responsable des forums

    Re : simulation de Filtre sous Scilab

    Tu as accès aux images. En fait au début c'est normal de ne pas y accéder parce que ces images doivent être approuvées par un modérateur avant de devenir visibles. Et les modérateurs ne sont pas disponibles 24h/24. D'ailleurs tu t'es trompé dans le signalement parce que je n'ai rien reçu. Il faut utiliser le petit triangle qui est en bas à gauche du message.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  8. #7
    invite6a647bb7

    Re : simulation de Filtre sous Scilab

    Bonjour,
    Je ne peux pas utiliser Xcos, j'avais proposé d'utiliser un équivalent de simulink, mais on ne peut pas. Je suis donc obliger de le faire "à la main". J'ai simuler un échelon unitaire et j'en ai fait la FFT (puisque mon filtre est exprimé en fréquence (spectre impulsionnel); mais maintenant comment dois je faire pour simuler le passage de mon échelon par le filtre? je dois multiplier X (la FFT de mon échelon) par H(p) (fonction de transferet du filtre)? L'un est exprimé en frequence et l'autre en pulsation, cela va poser un probleme non? Je suis perdu...

    Je vous met le code que j'ai utilisé pour l'échelon

    t=-0.2:0.0001:0.2;
    x=zeros(1,2000);
    x=[x,1],
    x=[x,ones(1,2000)];
    k=figure(2)
    k.background=8; //couleur d'arriere plan, blanc
    k=gca();
    plot2d(t,x);
    set(gca(),"grid",[1 1]*color('red'))
    title('Echelon unité');
    k.data_bounds=[-0.2,-2;0.2,2];//met les axes x et y à l'échelle[xmin,ymin;xmax;ymax]

    X=fft(x);
    f=10000*(0:2000)/4000;
    n=size(f,'*');
    l=figure(3)
    l.background=8;
    l=gca();
    //subplot(2.1.2);
    plot2d(f,abs(X(1:n)));
    set(gca(),"grid",[1 1]*color('red'))
    l.data_bounds=[-5,0;200,1000];

    title('FFT de l échelon unitaire')

    par avance merci de votre aide.

    En ce qui concerne les photos, la derniere semble correspondre, mais je n'ai pas le droit d'utiliser Xcos ou simulink.

Discussions similaires

  1. Trajectoire d'un objet simulation sous SciLab
    Par invite16519ec4 dans le forum Physique
    Réponses: 0
    Dernier message: 27/05/2011, 13h46
  2. programmation sous scilab
    Par invite6a3db095 dans le forum Physique
    Réponses: 0
    Dernier message: 30/10/2010, 12h36
  3. Scilab : filtre numérique avec un facteur de qualité spécifié
    Par invite653ac363 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 17/09/2009, 16h46
  4. Programmation sous scilab
    Par invitea7dc4381 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 02/07/2009, 17h43
  5. simulation avec scilab
    Par invite44b4596c dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 01/07/2009, 22h02