Lissage

Original: http://terpconnect.umd.edu/~toh/spectrum/Smoothing.html


Dans de nombreuses expériences en sciences physiques, les véritables amplitudes de signal (valeurs de l’axe y) changement plutôt bien en fonction des valeurs de l’axe des x, alors que de nombreux types de bruit sont considérés comme des changements aléatoires rapides de l’amplitude d’un point à l’intérieur de la le signal. Dans ce dernier cas, il peut être utile dans certains cas pour tenter de réduire le bruit par un processus appelé lissage. Dans le lissage, les

points de données d’un signal sont modifiées de sorte que les points individuels qui sont plus élevés que les points immédiatement voisins (probablement à cause du bruit) sont réduites, et les points qui sont plus bas que les points adjacents sont augmentées. Cela conduit naturellement à un signal plus lisse. Tant que le signal vrai sous-jacente est en fait en douceur, puis le vrai signal ne sera pas beaucoup déformé par lissage, mais le bruit sera réduit.

Algorithmes de lissage. La plupart des algorithmes de lissage sont basées sur la technique de “déplacer et de se multiplier“, dans lequel un groupe de points adjacents dans les données d’origine sont multipliés point par point par un ensemble de nombres (coefficients) qui définit la forme lisse, les produits sont ajoutés jusqu’à devenir un point de données lissées, alors l’ensemble des coefficients est décalé d’un point vers le bas les données d’origine et le processus se répète. L’algorithme de lissage simple est rectangulaire ou non pondérée coulissantes moyenne lisse; on remplace simplement chaque point dans le signal à la moyenne de m points adjacents, m est un entier positif appelé la largeur lisse. Par exemple, pour un 3point lisse (m = 3):

pour j = 2 à n-1, jth point dans le j-ième signal lisséjth le point de la j-ième signal d’origine, et n est le nombre total de points dans le signal. Bon déroulement des opérations similaires peuvent être construits pour une largeur lisse, m désiré. Habituellement m est un nombre impair. Si le bruit dans les données de “bruit blanc(soit distribué de façon uniforme sur toutes les fréquences) et son écart-type est s, alors l’écart-type du bruit dans le signal restant après la première passe d’une moyenne glissante non pondéréelisse sera d’environ de plus de la racine carrée de m (s / sqrt (m)), m est la largeur lisse.

Le bon triangulaire est comme le rectangulaire lisse, ci-dessus, sauf qu’il met en œuvre une fonction de lissage pondéré. Pour un 5 point d’inflexion (m = 5):

pour j = 3 à n-2, et de même pour d’autres largeurs lisses (voir la UnitGainSmooths.xls tableur).

Il est souvent utile d’appliquer une opération de lissage plus d’une fois, qui est, pour lisser un signal déjà lissé, afin de construire adoucit plus longues et plus complexes. Par exemple, le 5pointe triangulaire lisse ci-dessus est équivalent à deux passes d’un 3 points rectangulaire lisse. Trois passages d’un 3 points résultat lisse rectangulaire dans un point 7 pseudo-gaussiennes” ou haystack lisse, dont les coefficients sont dans le rapport 1 3 6 7 6 3 1. La règle générale est que les n passages d’un w résultats lisses -width dans une largeur lisse combiné de n * w-n + 1. Par exemple, 3 passes de 17 points des résultats lisses dans un 49point d’inflexion. Ces adoucit multipass sont plus efficaces à réduire le bruit à haute fréquence dans le signal d’un rectangulaire lisse.

Dans tous les adoucit, la largeur de la lisse m est choisi et nombre entier impair, de sorte que les coefficients lisses sont symétriquement équilibrés autour du point central, ce qui est important, car il conserve la position de l’axe des x de pics et d’autres caractéristiques dans le signal. (Ceci est particulièrement important pour les applications analytiques et spectroscopiques parce que les positions des pics sont souvent des objectifs de mesure importantes).

Notez que nous supposons ici que les intervalles de l’axe des x du signal est uniforme, à savoir que la différence entre les valeurs de l’axe des x de points adjacents est la même tout au long du signal. Cela suppose également dans la plupart des autres techniques de traitement du signal décrits dans cet essai, et il est une caractéristique très commune (mais non nécessaire) de signaux qui sont acquis par l’équipement automatisé et informatisé.

Le Savitzky-Golay lisse est basé sur les moindres carrés ajustées des polynômes à des segments de données. L’algorithme est discuté dans http://www.wire.tu-bs.de/OLDWEB/mameyer/cmr/savgol.pdf. Par rapport aux adoucit coulissantes à la moyenne, la Savitzky-Golay lisse est moins efficace pour réduire le bruit, mais plus efficace au maintien de la forme du signal d’origine. Il est capable de différenciation, ainsi que lissage. L’algorithme est plus complexe et les temps de calcul sont plus grandes que les lisses types discutés ci-dessus, mais avec les ordinateurs modernes, la différence est significative et non le code dans différentes langues sont largement disponibles en ligne. Voir SmoothingComparison.html.

La réduction du bruit. Lissage généralement réduit le bruit dans un signal. Si le bruit est blanc” (qui est, répartie uniformément sur toutes les fréquences) et son écart-type est s, alors l’écart type du bruit restant dans le signal après un passage d’une lisse triangulaire sera s environ * 0,8 / sqrt (m), où m est la largeur lisse. Opérations de lissage peuvent être appliqués plus d’une fois: autrement dit, un signal préalablement lissée peut être lissée à nouveau. Dans certains cas, cela peut être utile si il ya beaucoup de bruit à haute fréquence dans le signal. Cependant, la réduction du bruit pour le bruit blanc est moins dans chaque successive lisse. Par exemple, trois passes de forme rectangulaire lisse réduit le bruit blanc par un facteur d’environ 0,7 s * / sqrt (m), seulement une légère amélioration par rapport à deux passes.

La distribution de fréquence de bruit, désigné par la couleur du bruit, des effets sensiblement la capacité de lissage pour réduire le bruit. La fonction / Octave Matlab NoiseColorTest.mcompare l’effet d’un wagon de 100 points (moyenne mobile pondérée) de lisser sur l’écart type de bruit blanc, rose et bleu, qui ont tous un écart-type non lissée origine de 1,0. Parce que le lissage est un processus de filtrage passe-bas, il effectue bruit basse fréquence (rose) moins, et à haute fréquence (bleu) plus de bruit, de bruit blanc.

Bruit non lissée d’origine 1
Bruit blanc lissé 0.1
Bruit rose lissée 0.7
Bruit bleu lissé 0.006

 

Effets finaux et le problème des points perdus. Remarque dans les équations ci-dessus que 3 points rectangulaire lisse est définie uniquement pour j = 2 à n1. Il n’y a pas suffisamment de données dans le signal pour définir un 3 points complet lisse pour le premier point dans le signal (j = 1) ou pour le dernier point (j = n), car il n’y a pas de points de données avant le premier point ou après le dernier point. (De même, un 5 point d’inflexion est définie uniquement pour j = 3 à n2, et donc un bon pas peut être calculé pour les deux premiers points ou pour les deux derniers points). En général, pour un m-largeur lisses, il y aura des (m-1) / 2 points au début du signal et (m-1) / 2 points à la fin du signal pour lequel une largeur totale de m-lisse ne peut pas être calculé. Ce qu’il faut faire? Il existe deux approches. La première consiste à accepter la perte de points et couper les points ou les remplacer par des zéros dans le signal lisse. (Voilà l’approche adoptée dans la plupart des chiffres dans ce document). L’autre approche consiste à utiliser progressivement plus petites adoucit les extrémités du signal, par exemple utiliser 2, 3, 5, 7 … Point lisse pour les points de signaux 1, 2, 3, 4 et , et pour les points n, n-1, n-2, n-3, , respectivement. L’approche plus tard peut être préférable si les bords du signal contiennent des informations critiques, mais il augmente le temps d’exécution. La fonction de fastsmooth décrit ci-dessous peut utiliser l’une de ces deux méthodes.

Des exemples de lissage. Un exemple simple de lissage est représentée sur la figure 4. La moitié gauche de ce signal est un pic de bruit. La moitié droite est le même pic après avoir subi un algorithme de lissage triangulaire. Le bruit est considérablement réduit alors que le pic lui-même est à peine changé. Le lissage augmente le rapport signal sur bruit et permet les caractéristiques du signal (position du pic, la hauteur, la largeur, la zone, etc.) à mesurer avec plus de précision par une inspection visuelle.

 

 

La figure 4. La moitié gauche de ce signal est un pic de bruit. La moitié droite est le même pic après avoir subi un algorithme de lissage. Le bruit est considérablement réduit alors que le pic lui-même est à peine changé, ce qui rend plus facile de mesurer la position du pic, la hauteur et la largeur directement par estimation graphique ou visuelle (mais il ne améliore pas les mesures effectuées par les moindres carrés méthodes; voir ci-dessous).

La plus grande largeur de la lisse, plus la réduction du bruit, mais aussi la plus grande est la possibilité que le signal est déformé par l’opération de lissage. Le choix optimal de largeur lisse dépend de la largeur et de la forme du signal et l’intervalle de numérisation. Pour les signaux de type de pic, le facteur critique est le rapport de lissage, le rapport entre la largeur m lisse et le nombre de points dans la demilargeur du pic. En général, l’augmentation du rapport de lissage permet d’améliorer le rapport signal à bruit, mais provoque une diminution de l’amplitude et en augmentation dans la largeur de bande du pic.

Les chiffres ci-dessus montrent des exemples de l’effet de trois largeurs différentes lisses sur des pics de forme gaussienne bruyants. Dans la figure de gauche, le pic a un (vrai) hauteur de 2,0 et il ya 80 points à la demi-largeur du pic. La ligne rouge est le pic non lissée originale. Les trois lignes vertes superposées sont les résultats de ce sommet de lissage avec une surface lisse triangulaire de largeur (de haut en bas) 7, 25 et 51 points. Étant donné que la largeur du pic est de 80 points, les lisses de ces trois rapports sont adoucit 7/80 = 0,09, 25/80 = 0,31, et 51/80 = 0,64, respectivement. Que la largeur augmente en douceur, le bruit est réduit progressivement, mais la hauteur de pic est également légèrement réduite. Pour la plus grande douceur, la largeur du pic est légèrement augmenté. Dans la figure de droite, le pic initial (en rouge) a une vraie hauteur de 1,0 et une demi-largeur de 33 points. (Il est également moins bruyant que l’exemple sur la gauche.) Les trois lignes vertes superposées sont les résultats des trois mêmes adoucit triangulaires de largeur (de haut en bas) 7, 25 et 51 points. Mais parce que la largeur du pic dans ce cas est à seulement 33 points, les lisses rapports de ces trois adoucit sont plus grandes 0,21, 0,76, et 1,55, respectivement. Vous pouvez voir que l’effet maximal de distorsion (réduction de la hauteur du pic et augmentation de la largeur de crête) est plus grande pour le pic étroit parce que les ratios lisses sont plus élevés. Ratios lisses supérieures à 1,0 sont rarement utilisés en raison de la distorsion du pic excessive. Notez que même dans le pire des cas, les positions des pics sont pas effectués (en supposant que les pics d’origine étaient symétriques et ne se chevauchent pas d’autres pics). Si conservant la forme du pic est plus importante que l’optimisation du rapport signal-sur-bruit, la Savitzky-Golay a l’avantage sur adoucit coulissant à la moyenne.

Il est important de souligner que les résultats de lissage tel qu’illustré dans les figures ci-dessus peuvent être faussement optimiste parce qu’ils emploient un seul échantillon d’un signal bruité qui est lissée à des degrés divers. Le lissage est essentiellement un type de filtrage passe-bas qui réduit les composantes de haute fréquence d’un signal tout en conservant les composantes basse fréquence. Cela provoque le spectateur à surestimer la qualité d’un signal bruyant lissée, parce que l’on a tendance à sous-estimer la contribution du bruit basse fréquence restant, qui est difficile à estimer visuellement parce qu’il ya si peu de cycles basse fréquence de l’enregistrement du signal. Ce problème peut être surmonté en prenant un certain nombre d’échantillons indépendants de signal bruité, comme illustré dans les deux figures ci-dessous, qui montrent 10 parcelles superposées d’un pic bruyant, non lissée sur la gauche et lissées sur la droite. L’inspection des signaux lissés montre clairement la variation de la position du pic, la hauteur et la largeur provoquée par le bruit de basse fréquence qui reste dans les signaux lissés. (Cliquez pour afficher ou télécharger des scripts Matlab / Octave pour la figure de gauche et de droite, vous devez télécharger les fonctions gaussian.m“, “whitenoise.m“, et fastsmooth.met placez-les dans votre chemin avant d’exécuter ces scripts).


La figure de droite ci-dessous est un autre signal d’exemple qui illustre certains de ces principes. Le signal se compose de deux pics gaussiens, l’un situé à x = 50 et la seconde en x = 150. Les deux pics ont une hauteur de crête de 1,0 et une demilargeur de pic 10, et un bruit blanc aléatoire à distribution normale avec un écart type de 0,1 a été ajoutée à la totalité du signal. L’intervalle d’échantillonnage
de l’axe des x, toutefois, est différente pour les deux pics; il est de 0,1 pour le premier pic (à partir de x = 0 à 100) et de 1,0 pour le second pic (x = de 100 à 200). Cela signifie que le premier pic est caractérisé par dix fois plus de points que le second pic. Il peut ressembler le premier pic est plus bruyant que la seconde, mais qui est juste une illusion; le rapport signal-sur-bruit pour les deux sommets est de 10. Le deuxième pic semble moins bruyant que parce qu’il ya moins d’échantillons de bruit là-bas et nous avons tendance à sous-estimer la dispersion de petits échantillons. Le résultat de ceci est que lorsque le signal est lissé, le deuxième pic est beaucoup plus susceptible d’être déformé par la lisse (elle devient plus courte et plus large) que le premier pic. Le premier pic peut tolérer une largeur beaucoup plus lisse, ce qui entraîne un plus grand degré de réduction du bruit. (De même, si les deux pics sont mesurées avec la méthode de peakfit, les résultats sur le premier pic sera d’environ 3 fois plus précis que le second pic, parce qu’il ya 10 fois plus de points de données dans ce pic, et la précision de la mesure améliore à peu près à la racine carrée du nombre de points de données, si le bruit est blanc). Vous pouvez télécharger le fichier de données udx” au format TXT ou en format MAT Matlab.

Optimisation de lissage. Quel est le meilleur rapport en douceur? Il dépend de l’objectif de la mesure de crête. Si l’objectif de la mesure est de mesurer la véritable hauteur du pic et la largeur, puis ratios lisses inférieures à 0,2 devraient être utilisés et la Savitzky-Golay lisse est préféré. Mesure de la hauteur de pics bruyants est beaucoup mieux fait en ajustant les données non lissées plutôt que de prendre le maximum des données lissées courbe (voir CurveFittingC.html # lissage). Mais si l’objectif de la mesure est de mesurer la position du pic (valeur de l’axe des x de la pointe), les ratios lisses beaucoup plus peuvent être utilisés le cas échéant, parce que le lissage a peu d’effet sur la position de pointe (sauf pic est asymétrique ou l’augmentation en largeur pic est tellement qu’il provoque des pics adjacents se chevauchent).

Dans les applications d’analyse quantitative en fonction de calibrage des échantillons standards, la réduction de la hauteur de pic provoquées par lissage est pas si important. Si les mêmes opérations de traitement du signal sont appliquées aux échantillons et aux normes, la réduction de la hauteur du pic des signaux standard sera exactement la même que celle des signaux d’échantillon et que l’effet annuler exactement. Dans ce cas, les largeurs lisses de 0,5 à 1,0 peuvent être utilisés si nécessaire pour améliorer encore le rapport signal-sur-bruit. En chimie analytique pratique, les mesures de hauteur de pointe absolue sont rarement nécessaires; étalonnage contre des solutions standard est la règle. (Rappelez-vous: l’objectif de l’analyse quantitative est pas de mesurer un signal, mais plutôt de mesurer la concentration de l’analyte.) Il est très important, toutefois, d’appliquer exactement les mêmes étapes de traitement du signal pour les signaux standard pour les signaux de l’échantillon, sinon une grande erreur systématique peut entraîner.

Pour une comparaison des quatre types de lissage considérés ci-dessus, voir SmoothingComparison.html.

Quand faut-il lisser un signal? Il ya deux raisons pour lisser un signal: (1) pour des raisons esthétiques, pour préparer un graphique plus joli ou plus dramatique d’un signal pour l’inspection visuelle ou de la publication, et (2) si le signal est ensuite traité par une méthode qui serait ruiné par la présence de bruit à haute fréquence trop dans le signal, par exemple si les hauteurs des pics sont à déterminer graphiquement ou en utilisant la fonction MAX, ou si l’emplacement de maxima, minima, ou des points d’inflexion dans la signal doit être déterminé automatiquement par détection des passages par zéro dans les produits dérivés du signal. Optimisation de la quantité et le type de lissage est très important dans ces cas (voir Differentiation.html # lissage). Mais en général, si un ordinateur est disponible pour effectuer des mesures quantitatives, il est préférable d’utiliser des méthodes de moindres carrés sur les données non lissées, plutôt que des estimations graphiques manuelles sur les données lissées.

Des précautions doivent être utilisées dans la conception des algorithmes qui emploient lissage. Par exemple, dans une technique populaire pour le pic constatation et de mesure, les pics sont situés en détectant la baisse passages par zéro de la dérivée première lissée, mais la position, la hauteur et la largeur de chaque pic est déterminée par les moindres carrés ajustement de la courbe d’un le segment de données d’origine non lissées dans le voisinage de passage par zéro. Ainsi, même si le lissage lourd est nécessaire de prévoir la discrimination fiable contre les pics de bruit, les paramètres de pic extraites par ajustement de la courbe ne sont pas faussées par le lissage.

Quand devriez-vous pas lisse un signal? Une situation commune vous ne devriez pas lisser signaux est avant les procédures statistiques telles que la courbe des moindres carrés juste, parce que:


(a) le lissage ne va pas améliorer significativement la précision de la mesure des paramètres par moindres carrés des mesures entre les échantillons de signaux distincts et indépendants,
(b) tous les algorithmes de lissage sont au moins légèrement «avec perte», impliquant au moins un changement dans la forme du signal et de l’amplitude,
(c) il est plus difficile d’évaluer l’ajustement en inspectant les résidus si les données sont lissées, parce que le bruit lissé peut être pris pour un signal réel, et
(d) lisser le signal sera sérieusement sous-estimer les paramètres erreurs prédites par les calculs de propagation des erreurs et de la méthode bootstrap. Le lissage peut être utilisé pour localiser des pics mais il ne devrait pas être utilisé pour mesurer les pics.


Traiter avec des pointes. Parfois, les signaux sont contaminés avec de très hautes pointes” étroites lieu à des intervalles aléatoires et avec des amplitudes aléatoires, mais avec des largeurs d’un seul ou de quelques points. Il est non seulement laid, mais il perturbe également les hypothèses de moindres carrés calculs, car il est pas normalement distribué bruit aléatoire. Ce type d’interférence est difficile à éliminer en utilisant les méthodes de lissage ci-dessus sans distorsion du signal. Cependant, un filtre médiane”, qui remplace chaque point dans le signal à la médiane (plutôt que la moyenne) de m points adjacents, peut complètement éliminer les pics étroits avec peu de changement dans le signal, si la largeur des pics est seulement une ou quelques points et moins de m égal ou. Voir http://en.wikipedia.org/wiki/Median_filter. D’autre part, si ce sont les pointes qui sont en fait le signal d’intérêt et d’autres composantes du signal interfèrent avec leur mesure, voir CaseStudies.html # G,

Condensation signaux suréchantillonnés. Parfois signaux sont enregistrés plus densément (qui est, avec des intervalles de l’axe x petits) que vraiment nécessaire de capturer toutes les caractéristiques importantes du signal. Il en résulte plus grandes que nécessaire tailles de données, ce qui ralentit les procédures de traitement du signal et peut imposer capacité de stockage. Pour corriger cela, les signaux-échantillonnées peuvent être réduits en taille, soit en éliminant les points de données (par exemple, laisser tomber tout autre point ou chaque troisième point) ou par remplacement des groupes de points adjacents par leurs moyennes. L’approche plus tard a l’avantage d’utiliser plutôt que de jeter des points de données étrangères, et il agit comme le lissage de fournir une mesure de réduction du bruit. (Si le bruit dans le signal d’origine est blanc, et le signal est condensée en faisant la moyenne toutes les n points, le bruit est réduit dans le signal condensé par la racine carrée de n, mais sans modification de la distribution de fréquence du bruit).

Vidéo de démonstration. Ce 18 secondes, 3 Mo vidéo (Smooth3.wmv) démontre l’effet de lissage triangulaire sur un seul pic gaussien avec une hauteur maximale de 1,0 et une largeur maximale de 200. Le bruit blanc amplitude initiale est de 0,3, ce qui donne un signal initial -noise rapport d’environ 3,3. Une tentative de mesurer l’amplitude de crête et la largeur maximale du signal bruité, indiqué au bas de la vidéo, sont d’abord sérieusement inexactes à cause du bruit. Comme la largeur lisse est augmentée, cependant, le rapport signal sur bruit et permet d’améliorer la précision des mesures de l’amplitude de crête et la largeur de pic sont améliorées. Cependant, au-dessus d’une largeur d’environ 40 lisse (lisse rapport de 0,2), le lissage provoque le pic à être plus courte que 1,0 et plus large que 200, alors que le rapport signalàbruit continue à améliorer lisse que la largeur est augmentée. (Cette démonstration a été créé en Matlab 6.5.


SPECTRE, l’application de traitement de signal freeware Macintosh, inclut des fonctions de lissage rectangulaires et triangulaires pour un certain nombre de points.


Feuilles de calcul. Le lissage peut être fait dans des feuilles de calcul en utilisant la technique déplacer et de se multiplier» décrit ci-dessus. Dans les feuilles de calcul et smoothing.ods smoothing.xls l’ensemble des coefficients multiplicateurs est contenue dans les formules qui permettent de calculer les valeurs de chaque cellule des données lissées dans les colonnes C et E. La colonne C effectue un 7 points rectangulaire lisse (1 1 1 1 1 1 1) et la colonne E fait un 7 points triangulaire lisse (1 2 3 4 3 2 1), appliqué aux données dans la colonne A. vous pouvez taper (ou copier-coller) les données que vous souhaitez dans la colonne A , et vous pouvez étendre la feuille de calcul à des colonnes plus longues de données en faisant glisser la dernière rangée de colonnes A, C, E et bas selon le besoin. Mais pour changer la largeur lisse, vous auriez à modifier les équations dans les colonnes C ou E et copier les modifications en bas de la colonne entière. Il est de pratique courante de diviser le résultat par la somme des coefficients de sorte que le gain net est l’unité et l’aire sous la courbe du signal lissé est conservé. Les feuilles de calcul et UnitGainSmooths.xls UnitGainSmooths.ods contiennent une collection de gain unitaire coefficients de convolution pour adoucit rectangulaires et triangulaires de largeur 3 à 29 que vous pouvez copier et coller dans vos propres feuilles de calcul.

Les feuilles de calcul et MultipleSmoothing.xls MultipleSmoothing.ods démontrent une méthode plus souple dans laquelle les coefficients sont contenus dans un groupe de 17 cellules adjacentes (ligne 5, colonnes I à Y), ce qui rend plus facile de changer la forme lisse et largeur (jusqu’à jusqu’à un maximum de 17). Dans cette feuille de calcul, le bon est appliqué trois fois de suite, ce qui entraîne une largeur lisse efficace de 49 points appliqués à la colonne G.

Par rapport à Matlab / Octave, feuilles de calcul sont beaucoup plus lents, moins souple et moins facilement automatisé. Par exemple, dans ces feuilles de calcul, de modifier le signal ou le nombre de points dans le signal, ou de changer la largeur ou lisse type, vous devez modifier la feuille de calcul dans plusieurs espaces, alors que pour faire la même chose en utilisant Matlab / Octave fonction de fastsmooth (ci-dessous), il vous suffit de changement dans les arguments d’entrée d’une seule ligne de code. Et la combinaison de plusieurs techniques différentes dans une feuille de calcul est plus compliqué que d’écrire un script Matlab / Octave qui fait la même chose.


Lissage dans Matlab et Octave. Les outils de mesure fonction fastsmooth se déplacent et se multiplient de type lisse en utilisant un algorithme récursif. (Cliquez sur ce lien pour inspecter le code, ou faites un clic droit pour télécharger pour utilisation dans Matlab). Fastsmooth” est une fonction Matlab de la forme s = fastsmooth (A, W, type, le bord). L’argument “a” est le vecteur du signal d’entrée; “w” est la largeur lisse (un entier positif); “type” détermine le type lisse: type = 1 donne une forme rectangulaire (glissermoyenne ou wagon) lisse; type = 2 donne une surface lisse triangulaire, l’équivalent de deux passages d’un moyenne glissante; type = 3 donne un pseudo-gaussien lisse, ce qui équivaut à trois passes d’une moyenne glissante. (Voir SmoothingComparison.html pour une comparaison de ces modes de lissage). L’argument bord” contrôle la façon dont les bords” du signal (le premier w / 2 points et le dernier w / 2 points) sont traités. Si bord = 0, les bords sont nuls. (Dans ce mode, le temps écoulé est indépendante de la largeur lisse. Cela donne le temps d’exécution le plus rapide). Si le bord = 1, les bords sont lissés avec progressivement plus petit lisse la plus proche de la fin. (Dans ce mode, le temps d’exécution augmente avec l’augmentation des largeurs lisses). Le signal lissé est renvoyée en tant que vecteur “s”. (Vous pouvez laisser hors les deux derniers arguments d’entrée: fastsmooth (Y, W, type) lisse avec bord = 0 et fastsmooth (Y, w) lisse avec type = 1 et le bord = 0). Par rapport aux algorithmes lisses à convolution, fastsmooth utilise un algorithme récursif simple qui donne généralement beaucoup plus vite temps d’exécution, en particulier pour les grandes largeurs lisses; il permet de lisser un signal 1.000.000 points avec une moyenne glissante de 1000 points en moins de 0,1 seconde.

Diederick a publié une fonction lisse Savitzky-Golay dans Matlab, que vous pouvez télécharger à partir de l’échange de fichiers Matlab. Il est inclus dans la fonction iSignal.

Voici une expérience simple dans Matlab ou Octave qui crée un pic gaussien, la lisse, compare la version lissée et non lissée, puis utilise la fonction de peakfit.m (version 3.4 ou ultérieure) pour montrer que le lissage réduit la hauteur du pic (de 1 à 0,786 ) et augmente la largeur du pic (1,66 à 2,12), mais a peu d’effet sur la zone de crête totale (un simple changement de 0,2%). Le lissage est utile si le signal est contaminé par le bruit nonnormale comme pointes acérées ou si le pic hauteur, la position ou la largeur sont mesurées par des méthodes simples, mais il n’y a pas besoin de lisser les données si le bruit est blanc et le pic paramètres sont mesurés par les moindres carrés méthodes, parce que les résultats obtenus sur les données non lissées seront plus précis (voir CurveFittingC.html # lissage).

>> x=[0:.1:10]’;
>> y=exp(-(x-5).^2);
>> plot(x,y)
>> ysmoothed=fastsmooth(y,11,3,1);
>> plot(x,y,x,ysmoothed,’r’)

>> [FitResults,FitError]=peakfit([x y])
FitResults =

Peak# Position Height  Width Area

1            5            1       1.6651       1.7725

FitError =

3.817e-005

>> [FitResults,FitError]=peakfit([x ysmoothed])
FitResults =

1            5      0.78608       2.1224       1.7759

FitError =

0.13409

Le Matlab / Octave défini par l’utilisateur fonction condense.m, condenser (y, n), renvoie une version condensée de y dans laquelle chaque groupe de n points est remplacé par son moyen, la réduction de la longueur de y par le facteur n. (Pour X, les ensembles de données y, utilisez cette fonction à la fois sur la variable indépendante x et y dépend variable de sorte que les caractéristiques de y apparaissent aux mêmes valeurs de x).

La fonction définie par l’utilisateur medianfilter.m Matlab / Octave, medianfilter (y, w), effectue une opération de filtre basé médian qui remplace chaque valeur de y avec la médiane des points adjacents w (qui doit être un entier positif).

ProcessSignal est une fonction de ligne de commande Matlab / Octave qui effectue le lissage et la différenciation sur les séries chronologiques ensemble de données x, y (colonne ou de ligne des vecteurs). Il peut utiliser tous les types de lissage décrit ci-dessus. Tapez “aider ProcessSignal“. Retour du signal traité en tant que vecteur qui a la même forme que x, quelle que soit la forme de y. La syntaxe est traitée = ProcessSignal (x, y, DerivativeMode, w, type, se termine, Netteté, factor1, factor2, SlewRate, MedianWidth)

iSignal est une fonction interactive pour Matlab qui effectue le lissage des signaux tempssérie en utilisant tous les algorithmes mentionnés ci-dessus, y compris la Savitzky-Golay lisse, un filtre médian, et une fonction de condensation, avec touches qui vous permettent d’ajuster les paramètres de lissage en continu tandis que en observant l’effet sur le signal instantanément. D’autres fonctions incluent la différenciation, la netteté maximale, l’interpolation des moindres carrés des mesures de crête, et un mode de spectre de fréquence qui montre combien de lissage et d’autres fonctions peuvent modifier le spectre de fréquence des signaux. Voir le code ici ou télécharger le fichier ZIP contenant les données d’échantillons pour les tests.

iSignal pour Matlab. Cliquez pour voir des chiffres plus importants.


Remarque: vous pouvez cliquer droit sur l’un des liens mfichiers sur ce site et sélectionnez Enregistrer le lien sous … pour les télécharger sur votre ordinateur pour une utilisation dans Matlab. Malheureusement, iSignal ne fonctionne pas actuellement dans Octave.

Comments are closed.