[Users-fr] Filtrer des données
Serge Steer
Serge.Steer at scilab.org
Mar 10 Déc 09:17:10 CET 2013
Le 10/12/2013 08:24, Binoyte a écrit :
> Bonjour,
>
> Je fais face aujourd'hui à une problématique de traitement du signal,
> ce qui n'est pas du tout ma spécialité. J'ai fait l'acquisition d'un
> signal qui est assez propre mais quand je le dérive, ça devient
> inexploitable tant le bruit est important.
>
> Je décide donc de filtrer le signal avant la dérivée en appliquant un
> filtre passe-bas de type Butterworth ayant une fréquence de coupure de
> 1/3 F échantillonnage.
>
> Je défini d'abord l'objet filtre `oFiltre` :
>
> [pols , gain] = zpbutt(ordre, omega_c);
> oFiltre = gain / real(poly(pols,'s'));
> oFiltre.dt='c';
>
zpbutt produit un filtre analogique (temps continu) et votre signal est
discret (echantillonné) il vous faut donc convertir votre filtre en son
"équivalent " discret
oFiltred=dscr(oFiltre,1/F)
vous pouvez ensuite appliquer le filtre avec
filtree=flts(donnees,oFiltred);
Pourquoi n'utilisez vous pas directement un filtre discret (voir iir ou
eqiir)
Serge Steer
INRIA
> J'applique ensuite ce filtre à mes données :
>
> num = coeff( numer(oFiltre) );
> den = coeff( denom(oFiltre) );
> filtrees = filter(num, den, donnees);
>
> Les résultats ne sont pas du tout satisfaisants. En comparant avec ce
> que j'obtiens avec d'autres logiciels, comme Labview par exemple, je
> constate que les réponses en fréquence des filtres Scilab et Labview
> sont identiques, mais que les données filtrées sont différentes.
>
> Je pense qu'il y a une erreur dans mon script Scilab, car un détail me
> dérange. Nul part n'apparaît la fréquence d'échantillonnage. La
> variable `donnees` n'est qu'un vecteur et la fonction `filter()` n'a
> aucun moyen pour deviner le pas de temps. Je pense qu'il doit me
> manquer une mise à l'échelle, à l'instar de la fonction `diff()`
>
> diff(y,deg) * fs;
>
> Si quelqu'un à des pistes je suis preneur !
>
> Merci d'avance,
>
> Benoît
>
>
>
>
> _______________________________________________
> users-fr mailing list
> users-fr at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users-fr
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20131210/ac7672ac/attachment.htm>
Plus d'informations sur la liste de diffusion users-fr