Rechercher : dans
Par :

[pb Matlab] filtres numeriques

Dernière réponse le 13 jun 2009 à 15:32:07 tommstein, le 25 mai 2005 à 14:54:19 
 Signaler ce message aux modérateurs

Bonjour,

Je fais un projet sur le filtrage numerique sous matlab. Pour l'instant je cherche a designer un filtre FIR passe-bas. Malheureusement je suis vraiment un debutant sur ce logiciel...Si quelqu'un pouvait me donner quelques tuyaux ou des m-files ce serait sympa

J'ai deja fait la partie generation d'un signal bruite mais comment faire une fft pour afficher la reponse en frequence?
(desole pour les accents mais je suis en UK et pas d'accents sur les claviers!!!)

merci de votre aide.

Meilleures réponses pour « [pb Matlab] filtres numeriques » dans :
Représentation des courbes sous Matlab VoirLa fonction plot permet essentiellement de tracer des courbes sous Matlab. Dans cette astuce, nous allons essayer de détailler le fonctionnement de cette commande. Simple utilisation Vecteur Matrice Vecteur en fonction d'un autre Autres...
Opérateurs de téléphonie mobile et les numéros utiles VoirCoordonnées des opérateurs de téléphonie mobile et les numéros utiles Liste non exhaustive SFR Orange Bouygues Telecom Virgin Mobile Tele2 NRJ Mobile M6 Mobile Neuf Mobile Debitel Breizh Mobile Coriolis Fnac Mobile
Cadre photo numérique : comment choisir ? VoirUn cadre photo numérique a l’avantage de pouvoir diffuser vos photos au format numérique sans ordinateur. Exit le cadre photo classique pour lequel il faut imprimer les photos ! Côté technologies, du plus simple au plus sophistiqué, nos astuces...
Télécharger DS Monkey Audio - Filtre APE VoirLe format MonkeysAudio (extension *.ape) est un format de compression audio lossless (sans pertes) permettant de réduire la taille d'un fichier de moitié sans aucune perte d'information. Le filtre audio DS Monkey Audio Filter utilise la librairie...
Les filtres graphiques VoirFiltrage Le filtrage consiste à appliquer une transformation (appelée filtre) à tout ou partie d'une image numérique en appliquant un opérateur. On distingue généralement les types de filtres suivants : les filtres passe-bas, consistant à atténuer...
L'analogique et le numérique VoirQuelle est la différence entre analogique et numérique ? Les phénomènes qui nous entourent sont quasiment tous continus, c'est-à-dire que lorsque ces phénomènes sont quantifiables, ils passent d'une valeur à une autre sans discontinuité. Ainsi,...
Traitement d'images VoirIntroduction au traitement d'images On désigne par traitement d'images numériques l'ensemble des techniques permettant de modifier une image numérique dans le but de l'améliorer ou d'en extraire des informations. Histogramme Un histogramme est...

1

Char Snipeur, le 25 mai 2005 à 15:40:48
  • +1

Salut !
MATLAB, il n'y a rien de plus simple.
tu veux savoir comment fonctionne la fonction fct
tu tape help fct.
donc, tu as ton signal bruité stocker dans le vecteur A
tu fait
frequence=fft(A);
je ne suis plus sur du fft(A) il faut peu être faire fft(A,1) pour la fft direct.
tout est dans help fft
sinon, pour l'abscisse c'est plus chiant. si je me rapel bien, ta fréquence maximal c'est la moitié de la résolution. si ta grandeur d'évolution du signal est 't' la fréquane maximale mesurable est 1/(2×t)
Voila Salutation !
Char Snipeur

Répondre à Char Snipeur

2

tommstein, le 25 mai 2005 à 16:53:37

Merci Char Sniper,

L'help j'avais trouve mais mon pb etait surtout de faie un programme qui definisse la nature du signal d'entree et puisse le filtrer selon la methode des fenetres puis restituer un signal affichable en sortie.

Répondre à tommstein

3

Char Snipeur, le 27 mai 2005 à 12:37:50
  • +2

A=signal_bruite();
freq=fft(A);
freq_filtrer=zeros(sizeof(freq),1);
m=int(sizeof(freq)/2);
freq_filtrer (m-freq_de_coupure:freq_de_coupure)=
freq(m-freq_de_coupure:freq_de_coupure);
sig_filter=fft(freq_filtrer,-1); %# ou ifft je ne sait plus
tu as ainsi ton signal filtrer par un filtre passe bas allant jusqu'à freq_de_coupure
c'est l'algorithme de base, il te reste ensuite à bien définir les abscisses.
en esperant avoir bien repondu Salutation !
Char Snipeur

Répondre à Char Snipeur

4

tommstein, le 31 mai 2005 à 12:06:40

Merci encor char snipeur. mais je ne comprend pas pourquoi il faut une integration pour avoir m. j'ai cherche la fonction sizeof() ds l'aide, pas de reponse??

Répondre à tommstein

5

tommstein, le 31 mai 2005 à 12:28:26

La fonction size() semble remplacer la fonction sizeof() mais il ne veut pas de mon integration, matlab me dit : ??? Function 'int' is not defined for values of class 'double'. J'ai un warning pour freq_filtrer=zeros(sizeof(freq),1); : Warning: Input arguments must be scalar.

Répondre à tommstein

6

Char Snipeur, le 31 mai 2005 à 13:05:16

Ok, en effet, c'est size() et pas sizeof() partout ( un peu de mal à passez du C à matlab)
à la place de int, utilise floor (même pb qu'au dessus) le but est d'avoir un entier.
en fait, fait plutot freq_filtrer=0*freq; c'est plus simple est ça donne le même résultat. Salutation !
Char Snipeur

Répondre à Char Snipeur

7

dada, le 7 jun 2005 à 11:47:49

Salut!

Bon je vs ecrit car je suis un peu ds la m^me galere!
Moi j'ai un signal que je souhaite filtrer.J'ai tracer son spectre mais comment éliminer les harmoniques afin de construire un nouveau signal propre??

Merci d'avance!!

Répondre à dada

8

Char Snipeur, le 7 jun 2005 à 12:33:57

Comme j'ai dit.
tu copie dans freq_filtrer les fréquances que tu veux garder. Salutation !
Char Snipeur

Répondre à Char Snipeur

9

dada, le 7 jun 2005 à 13:01:07

Heu désolé mais je débute sur Matlab...
Voici le code que j'ai tapé pr obtenir mon spectre :

NFFT=2^(nextpow2(length(V))-1);
[Pxx,f]=psd(V,NFFT,50,'mean');

v étant mon vecteur à analyser...

Merci

Répondre à dada

10

Char Snipeur, le 7 jun 2005 à 14:12:53

Dsl, je ne connait pas les fonctions que tu utilises.
ma méthode fait ça pas à pas Salutation !
Char Snipeur

Répondre à Char Snipeur

11

guillaume, le 27 nov 2006 à 13:07:39

Bonjour à toi char Snipeur,
Je me permet de te contacter car j'ai un petit problème avec ce bon vieux matlab:
je dispose de donnée pointuelles en z y et z (en réalité des latitude et longitude et altitude associées) sur cette trame j'observe plusieurs point insolés ou regroupé totalmeent incohérent en z...
et pour le moment je me trouve comme un con à les supprimer via un éditeur de texte et cela manuellement, autrement dis je me m'en sort pas...
Comment puis-je faire pour appliquer un filtre afin de pouvoir supprimer mes données éronées....sachant que je suis débutant en matlab...

Un très très grand merci d'avance!!! si jamais tu peux me répondre dans la semaine le plus tôt possible ça serait génial!!

très bonne journée!
guillaume.

Répondre à guillaume

12

Char Snipeur, le 27 nov 2006 à 17:47:23
  • +1

Salut.
Ce que tu veux faire, ce nome filtre médian il me semble.
C'est un filtre non linéaire, il parcour ta matrice (x,y z ça se met sous forme de matrice, c plus simple ) et compare chaque valeur à ses voisines, et il prend la valeur la plus proche de la moyenne.
sinon, tu peux parcourir ta matrice avec une condition de modification.
C'est quoi tes valeurs abérante? Le premier travail, c'est déjà de définir ce qu'est une valeur incohérente en terme mathématique, ensuite je pourrai t'aider plus précisément. Salutation !
Char Snipeur

Répondre à Char Snipeur

27

elaj, le 27 avr 2009 à 00:11:40

Bonjour,
Je voudrai savoir si tu as dèja travaillé avec le filtre de kalman comme estimateur d'état. J'effectue un stage sur la commande machine synchrone sans capteur de position et je dois utiliser le filtre de kalman pour estimer la position du rotor.

Merci

Répondre à elaj

28

Char Snipeur, le 27 avr 2009 à 08:07:08

Non, jamais, désolé. Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur

30

 foufou, le 13 jun 2009 à 15:32:07

Bonjour,
mois aussi j'ai un probleme avec l'estimation de vitesse de rotation du machine asynchrone!
tous que je trouve en discret mais mon modèle est continu.........

Répondre à foufou

13

Char Snipeur, le 27 nov 2006 à 21:39:50

En fait, le filtre médian en 2D voi par exemple 21 23 52, il garde 23.
son principal effet est d'écrèter toute courbe.
En 3D je ne sais pas comment le faire fonctionner. Je prendrait la valeur à évaluer et les deux voisin suuivant x et suivant y.
par exemple ta valuer : 250, et les voisine 23, 21 suivant x et 52 256 suivant y. Ta valeur n'est pas abérante, donc tu la conserv par contre, tu aurai eu 52 et 53 selon y, il faut que tu la change. Et c'est là que je ne sai pas quelle valeur lui affecter... Salutation !
Char Snipeur

Répondre à Char Snipeur

14

guillaume, le 28 nov 2006 à 09:01:23

Et bien en fait je pense que ça n'est pas la peinne de prendre en considération les x et y, vue que les valeurs abérentes sont en z (altitude).quand tu parles de filtres 3D, peut ont encader le point à supprimer par 4 valeur (sommes dans une matirce) et lui dire que si la moyenne des différence dépace une certaine valeur donnée, il doit supprimer la valeur...crois tu que ça soit quelque chose de joueable?

un grand merci d'avance!
guillaume

Répondre à guillaume

15

Char Snipeur, le 28 nov 2006 à 14:46:07

Salut.
J'ai pas tout compris.
Comment sont foutu tes données? je ne comprend pas.
Mais quand tu a une altitude, tu peux ecrire z=f(x,y) en gral
donc définir des valeur selon x et y... Salutation !
Char Snipeur

Répondre à Char Snipeur

16

mazen67, le 6 jan 2008 à 23:37:44

Bonjour

j'ai un fichier .mat et je je dois utiliser comme un bloc sous simulink qu est ce que je dois faire

merci d avance

Répondre à mazen67

17

iulia, le 7 fév 2008 à 10:51:42

Dans le cadre d'un projet, je dois désaisonnaliser des données. En fait j'ai fait la fft mais je ne sais pas comment obtenir le spectre car en utilisant la fonction plot, un nuage de points apparait.

Répondre à iulia

18

Char Snipeur, le 7 fév 2008 à 14:06:08

La fft est complexe, donc, pour obtenir le spectre, il faut réer l'axe des abscisse d'après l'échantionage de tes donnée, et utilisé la partie réèlle ou le module du résultat de la fft.
Par exemple, si tu as un échantillonage de 1 seconde et milles points.
La fréquence maximale que tu pourra avoir est autour de 1 Hz (je crois que c'est 0,5 Hz car il te faut au moins 2 points pour déterminer une fréquence; à vérifier) Et la fréquence minimale sera de 10^-3 Hz, ou 5.10^-2Hz.
Salutation ! Quand on sait pas, on touche pas !JBT
Char Snipeur

Répondre à Char Snipeur

19

buzy, le 20 fév 2008 à 16:48:13

Bonjour!
je traite des données d'un courantomètre. j'ai besoin de supprimer les vitesses dont l'intensité de l'écho (autre matrice de taille égale) est inférieure à une certaine valeur. les valeurs NaN de la matrice intensité écho doivent être dans les mêmes cases que celle de la matrice vitesse
pour donner un autre exemple, je dois éliminer les vitesses qui sont au dessus de la courbe de marée, par contre le nombre de ligne est identique mais il n'y a qu'une colonne...

merci, en espérant que vous aillez compris mon problème

Répondre à buzy

20

franckao, le 12 mar 2008 à 15:39:11

Bonjour je dois faire une reconnaissance vocale sur matlab donc pr sa g enregistrer ma voix a l'aide d'un microphone mais je narrive pas a ecrire l equat(ion d'un filtyre me permettant de couper le continu ..

Répondre à franckao

21

fou, le 2 avr 2008 à 18:22:50

Salut à tous;

J'ai aussi rencontré un problème au niveau programmation d'un filtre passe bande. Mon problème est consacré dans le faite que j'ai programmé le filtre sur un fichier editor (.m); mais je veux utiliser ce programme avec simulink; autrment dit je veux utiliser un bloc matlab simulink dont l'entrée de ce bloc sera être traiter avec le fichier.m puis il me fait retourner la sortie désirée pour que je la reboucle dans mon système. comment je doix faire?

merci, en espérant que vous aillez compris mon problème

Répondre à fou