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 :

Filtre d'un signal


Sujet :

Signal

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Points : 22
    Points
    22
    Par défaut Filtre d'un signal
    Bonjour,
    Ce sujet est en lien avec les messages precedent que j'ai pu poster (FFT).

    Je fais de l'analyse de donnees, j'ai des signaux (pics de diffractions) et je travail dans le domaine spatiale. Je prend la FFT de mon signal et j'obtiens mon pics dans les basses frequences spatiales (espace de fourier).

    Je souhaite appliquer un filtre a mon signal en particulier d'abord faire un passe bas puis un passe bande.

    J'ai deja bien visite la FAQ et d'autres sites, mais je seche un peu.
    (notament en cherchant de l'aide sur matlab pour freqz mais je n'ai pas cette fonction dans help)

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Pour filtrer tu peux utiliser simplement la fonction FILTER avec, par exemple les fonctions BUTTER, BUTTORD pour déterminer les coefficients de ton filtre.

    Bonne journée,
    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    Merci de ta reponse, mais le truc c'est que j'arrive pas a acceder a l'aide sur butter, freqz...,c'est bizarre jai peu etre pas la tool box concernant cela

  4. #4
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Que te donne la commande:

    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    Je tente avec fir1 mais pareil je ne l'ai pas?? Par contre j'ai filter, filter2.
    Quelqu'un peu me reseigner?

    voici mon script:

    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
    function [b]=test2()
    a = fopen('testf.txt') %open test2
    b = textscan(a,'%n','delimiter',',') %creat [173*1 double] [173*1 double]
    x= 0.29*0.0525/1.24: (78.31-0.29)*0.0525/1.24/(511): 78.31*0.0525/1.24;% momentum transfert (nm-1), with teta=6 degres 
    p=2*pi./x;
    Ks=max(p);
    kmin=min(p);
    N=size(p);
    %dx=(78.31-0.29)*0.0525/1.24/(511)
    %Ks=2*pi/dx
    b1=b(1);
    b1=b1{:};
    b1=b1'; %transposition
    figure(1);
        subplot(3,1,1);
        plot(x,b1);grid % plot de mes datas
        title('data plot')
        subplot(3,1,2);
        z=fft(b1);
        plot(p,abs(fftshift(z)));grid; % plot de la FFT de mes datas
        title('FFT with shift')
        axis([0 10 0 1100])
        subplot(3,1,3);
        z=ifft(z);
        plot(x,abs(z),'r');grid;  % plot de IFFT de mes datas (on rerouve bien le meme signal)
        title('iff of fft(data plot) must be = data plot')
     
     
    figure(2);   % but: filtrer ma FFT pour avoir un lissage de mes datas quand je prend ifft
    %wn=[kmin 4.5]/Ks;  
    h=fir1(4,4.5/Ks,'low'); % filtre passe bas, coupure a 4.5 nm
    %freqz(h,1);
    plot(p,h);grid;

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    Voila ce que ver me donne

    MATLAB Version 7.4.0.287 (R2007a)
    MATLAB License Number: XXXXX
    Operating System: SunOS 5.10 Generic_118833-17 sun4u
    Java VM Version: Java 1.5.0_07 with Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM mixed mode
    -------------------------------------------------------------------------------------
    MATLAB Version 7.4 (R2007a)
    Simulink Version 6.6 (R2007a)

    Trademarks
    ------------------
    MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, and xPC
    TargetBox are registered trademarks and SimBiology, SimEvents, and
    SimHydraulics are trademarks of The MathWorks, Inc. Other product or
    brand names are trademarks or registered trademarks of their respective
    holders.
    du coup, c'est bon?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    J'ai ce message d'erreur quand je fais tourner mon script ci-dessus.

    ??? Undefined function or method 'fir1' for input arguments of type 'double'.

  8. #8
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Pour savoir à quelle toolbox appartient une fonction tu peux aller visiter ce lien :
    http://www.mathworks.com/cgi-bin/tex...arch_functions
    (enfin normalement là ça n'a pas l'air de fonctionner )
    Ou sinon en recherche alphabétique :
    http://www.mathworks.com/support/fun...lpha_list.html

    Par exemple BUTTER appartient à la Filter Design Toolbox et/ou à la Signal Processing Toolbox.
    Comme tu n'as QUE (et c'est déjà pas mal vu le prix) MATLAB et Simulink, tu n'as pas cette fonction.
    Donc désolée....

    Tu as 3 possibilités :
    - réussir à faire avec ce que tu as
    - gagner au loto pour acheter la Signal Processing Toolbox
    - si tu n'en as pas besoin sur le long terme, télécharger la version d'essai : http://www.mathworks.com/products/si...ctionlist.html, en haut à droite : Trial Software
    Règles du Forum

    Adepte de la maïeutique

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    J'ai encore jamais joue au loto, mais voila une bonne occasion de m'y mettre!^^

    Par ailleurs il n'y aurait pas un moyen de contourner le probleme avec la fonction filter (celle la je l'ai).

    Je peux certe telecharger la demo de matlab mais le probleme c'est que je ne pourrais pas l'installer, car je n'ai pas les droits administration du reseau et du pc.
    C'est l'impasse, si quelqu'un a une idee, en utilisant filter je lui en serait tres reconnaissant.
    Amicalement,

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    En fait j'ai un moyen pour filtrer mon signal de base avec la fonction filter et cela utilise une fonction porte.
    Pour obtenir un meilleur lissage et concordance des courbes il serait mieux de filtrer les hautes frequence dans l'espace de fourier (passe bas).
    Il y a t'il un moyen de la faire en utilisant se que j'ai a disposition?

Discussions similaires

  1. [Débutant] Filtre d'un signal
    Par dani_dan dans le forum Signal
    Réponses: 8
    Dernier message: 17/06/2009, 11h01
  2. [Signal] Implémentation filtres Passe-Bas en C
    Par Snark dans le forum Traitement du signal
    Réponses: 24
    Dernier message: 11/02/2009, 15h32
  3. Réponses: 4
    Dernier message: 01/12/2008, 09h03
  4. Réponses: 1
    Dernier message: 26/06/2007, 09h35
  5. [Signal Processing Blockset] Filtre de kalman
    Par totoscill dans le forum Signal
    Réponses: 5
    Dernier message: 11/04/2007, 11h28

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