MATLAB est un logiciel d'analyse de premier plan pour le traitement numérique du signal et d'autres variétés de l'analyse technique . Le traitement du signal est d'avis que tout signal de données arbitraire est composé de la somme de plusieurs signaux de fréquences différentes . Souvent, les signaux provenant de différentes sources ou de bruit , auront des fréquences différentes. Des signaux à haute fréquence peuvent être enlevés par une convolution d'un signal avec un filtre passe-bas . Filtrage passe-bas
de filtrage pour éliminer des fréquences est basée sur la recherche d' une fonction de transfert dans le domaine fréquentiel qui sélectionne la plage de fréquences et l'amplitude d'inclure dans le signal filtré . Une transformée de Fourier inverse est ensuite appliqué à la fonction dans le domaine fréquentiel pour obtenir le filtrage dans le domaine temporel avec la fonction de transfert de fréquence sélectionnée. Le filtre dans le domaine temporel est ensuite appliqué au signal de choix à l'aide de l'opération de convolution. Alternativement, vous pouvez prendre la transformée de Fourier de votre signal dans le domaine temporel et multiplier par la fonction de transfert dans le domaine fréquentiel du filtre, avant d'appliquer une transformée de Fourier inverse . C'est peut-être plus rapide à exécuter , comme convolution est une opération coûteuse en ressources informatiques .
Aide lisse ( )
MATLAB contient la fonction lisse ( ) pour supprimer le bruit à haute fréquence dans un signal sans avoir besoin de déterminer précisément la valeur seuil de fréquence d'un filtre passe-bas . Par défaut, MATLAB utilise un filtre à moyenne mobile de cinq points de données adjacents . Le deuxième exemple utilise une durée de 10 points de données et les moindres carrés linéaires pondérés robustes fonctionner avec un second modèle de polynôme de degré
my_smoothed_data = lisse ( my_data ) . My_smoothed_data = lisse ( my_data , 10, ' rloess ') ;
utilisant filter ()
La fonction de filtre MATLAB est utilisé pour appliquer un filtre numérique unidimensionnelle à un signal. Pour appliquer un filtre passe-bas avec une certaine fréquence de coupure , utilisez le code suivant :
my_filtered_data = filtre (Freq [1 fréq -1] , my_data ) ;
La variable freq est égale à T /T , où « T » est le temps entre les échantillons et "t" est la constante de temps du filtre de fréquence.
personnalisée Filtres
Souvent , les filtres passe-bas n'auront pas une coupure de fréquence exacte , en passant toutes les fréquences inférieures à la fréquence de coupure et l'exclusion de toutes les fréquences supérieures à la fréquence de coupure . En fait, les données étant discret , un filtre passe-bas parfait est impossible à mettre en œuvre . Tout filtre arbitraire peut être conçu dans MATLAB et appliquée en utilisant la fonction conv ( ) , l'application de convolution , comme suit:
my_new_signal = conv ( my_signal , my_filter , «même» ) ;
< br >