Sunday 22 January 2017

Moving Average Glättung Filter Matlab

Entfernen von Rauschen und periodischen Komponenten aus Datensätzen unter Beibehaltung der zugrundeliegenden Muster Smoothing Algorithmen werden oft verwendet, um periodische Komponenten aus einem Datensatz zu entfernen und gleichzeitig langfristige Trends zu bewahren. Beispielsweise zeigen Zeitreihen-Daten, die einmal im Monat abgetastet werden, oft saisonale Schwankungen. Ein zwölfmonatiger gleitender Durchschnittsfilter wird die saisonale Komponente unter Beibehaltung des langfristigen Trends entfernen. Alternativ können Glättungsalgorithmen verwendet werden, um ein beschreibendes Modell für die explorative Datenanalyse zu erzeugen. Diese Technik wird häufig verwendet, wenn es unpraktisch ist, ein Parametermodell anzugeben, das die Beziehung zwischen einem Satz von Variablen beschreibt. Signal - oder Zeitreihenglättungstechniken werden in einer Reihe von Disziplinen verwendet, einschließlich Signalverarbeitung, Systemidentifikation, Statistik und Ökonometrie. Gemeinsame Glättungsalgorithmen umfassen: LOWESS und LOESS: Nichtparametrische Glättungsmethoden mit lokalen Regressionsmodellen Kernelglättung: Nichtparametrischer Ansatz zur Modellierung einer glatten Verteilungsfunktion Glättungssplines: Nichtparametrischer Ansatz für Kurvenanpassung Autoregressiver gleitender Durchschnitt (ARMA) Filter: Filter, der verwendet wird, wenn Daten eine serielle Autokorrelation aufweisen Hodrick-Prescott Filter: Filter verwendet, um ökonometrische Zeitreihen durch Extraktion der saisonalen Komponenten SavitzkyGolay Glättung Filter: Filter verwendet, wenn ein Signal mit hoher Frequenz Informationen, die beibehalten werden sollte Butterworth-Filter: Filter in der Signalverarbeitung verwendet, um Hochfrequenzrauschen entfernen Wählen Sie Ihr CountryIn Bei vielen Experimenten in der Wissenschaft ändern sich die wahren Signalamplituden (y-Achsenwerte) ziemlich glatt als Funktion der x-Achsenwerte, während viele Rauschen als schnelle, zufällige Amplitudenänderungen von Punkt zu Punkt im Signal gesehen werden. In letzterem Fall kann es in einigen Fällen nützlich sein, das Rauschen durch einen sogenannten Glättungsvorgang zu reduzieren. Bei der Glättung werden die Datenpunkte eines Signals so modifiziert, dass einzelne Punkte, die höher sind als die unmittelbar benachbarten Punkte (vermutlich wegen des Rauschens), reduziert werden und Punkte, die niedriger als die benachbarten Punkte sind, erhöht werden. Dies führt natürlich zu einem glatteren Signal (und einer langsameren Sprungantwort auf Signaländerungen). Solange das echte darunterliegende Signal tatsächlich glatt ist, wird das wahre Signal durch Glättung nicht viel verzerrt, aber das Hochfrequenzrauschen wird reduziert. Hinsichtlich der Frequenzkomponenten eines Signals wirkt ein Glättungsvorgang als Tiefpaßfilter. Wodurch die hochfrequenten Komponenten reduziert und die niederfrequenten Komponenten mit geringem Wandel geleitet werden. Glättungsalgorithmen. Die meisten Glättungsalgorithmen basieren auf der Verschiebungs - und Multiplikationstechnik, bei der eine Gruppe von benachbarten Punkten in den ursprünglichen Daten punktweise durch einen Satz von Zahlen (Koeffizienten) multipliziert wird, die die glatte Form definieren, die Produkte werden addiert und Geteilt durch die Summe der Koeffizienten, die ein Punkt von geglätteten Daten wird, dann wird der Satz von Koeffizienten um einen Punkt nach unten auf die ursprünglichen Daten verschoben und der Prozess wird wiederholt. Der einfachste Glättungsalgorithmus ist der rechteckige Kastenwagen oder der ungewichtete gleitende Durchschnitt glatt, er ersetzt einfach jeden Punkt im Signal mit dem Mittel von m benachbarten Punkten, wobei m eine positive ganze Zahl ist, die die glatte Breite genannt wird. Für einen 3-Punkt glatt (m 3): für j 2 bis n-1, wobei S j der j-te Punkt in dem geglätteten Signal, Y j der j-te Punkt in dem ursprünglichen Signal ist und n die Gesamtsumme ist Anzahl der Punkte im Signal. Ähnliche glatte Operationen können für jede gewünschte glatte Breite konstruiert werden. Normalerweise ist m eine ungerade Zahl. Wenn das Rauschen in den Daten weißes Rauschen ist (das heißt, gleichmäßig über alle Frequenzen verteilt) und seine Standardabweichung D ist. Dann beträgt die Standardabweichung des Rauschens, das nach dem ersten Durchgang einer ungewichteten gleitenden durchschnittlichen Glattheit im Signal verbleibt, ungefähr s über der Quadratwurzel von m (D sqrt (m)), wobei m die glatte Breite ist. Trotz seiner Einfachheit ist dieses glatte Optimum für das gemeinsame Problem des Reduzierens des weißen Rauschens optimal, während die schärfste Sprungantwort beibehalten wird. Die Antwort auf eine Stufenänderung ist tatsächlich linear. So daß dieser Filter den Vorteil hat, daß er ohne Resteffekt mit seiner Reaktionszeit vollständig reagiert. Die gleich der glatten Breite ist, geteilt durch die Abtastrate. Das Dreieck glatt ist wie das rechteckige glatt, oben, außer dass es eine gewichtete Glättung Funktion implementiert. Für einen 5-Punkt glatt (m 5): für j 3 bis n-2 und ähnlich für andere glatte Breiten (siehe Kalkulationstabelle UnitGainSmooths. xls). In beiden Fällen ist die ganze Zahl im Nenner die Summe der Koeffizienten im Zähler, was zu einer Einheitsverstärkung führt, die keine Wirkung auf das Signal hat, wo sie eine gerade Linie ist, und die den Bereich unter Spitzen bewahrt. Es ist oft nützlich, eine Glättungsoperation mehrmals anzuwenden, dh ein bereits geglättetes Signal zu glätten, um längere und kompliziertere Glättungen zu erzeugen. Zum Beispiel ist die 5-Punkt-Dreieck glatt oben entspricht zwei Durchläufen eines 3-Punkt rechteckig glatt. Drei Pässe eines rechtwinkligen 3-Punkt-Glatts resultieren in einem 7-Punkt-Pseudo-Gaussian oder Heuhaufen, bei dem die Koeffizienten im Verhältnis 1: 3: 6: 7: 6: 3: 1 liegen. Die allgemeine Regel lautet, dass n Durchläufe einer w-Breitenglättung zu einer kombinierten glatten Breite von n w - n 1 führen. Zum Beispiel führen 3 Durchgänge eines 17-Punkt-Glättchens zu einem 49-Punkt-glatten Ergebnis. Diese Multi-Pass-Glättungen sind effektiver bei der Reduzierung von hochfrequenten Rauschen in dem Signal als ein rechteckiges glattes, aber zeigen eine langsamere Sprungantwort. In all diesen Glätten wird die Breite des glatten m als eine ungerade ganze Zahl gewählt, so daß die glatten Koeffizienten symmetrisch um den zentralen Punkt herum ausgeglichen sind, was wichtig ist, weil sie die x-Achsenposition von Spitzen und anderen Merkmalen in der Signal. (Dies ist besonders kritisch für analytische und spektroskopische Anwendungen, da die Peakpositionen oft wichtige Messziele sind). Man beachte, daß hier angenommen wird, daß die x-Achsenintervalle des Signals gleichförmig sind, d. h. daß die Differenz zwischen den x-Achsenwerten benachbarter Punkte über das ganze Signal gleich ist. Dies wird auch in vielen der anderen in diesem Aufsatz beschriebenen Signalverarbeitungstechniken angenommen und ist eine sehr häufige (aber nicht notwendige) Charakteristik von Signalen, die von automatisierten und computergesteuerten Geräten erfaßt werden. Der Savitzky-Golay glatt basiert auf der Kleinste-Quadrate-Anpassung von Polynomen zu Segmenten der Daten. Der Algorithmus wird in wire. tu-bs. deOLDWEBmameyercmrsavgol. pdf besprochen. Im Vergleich zu den gleitenden durchschnittlichen Glätten ist die Savitzky-Golay glatte weniger effektiv bei der Reduzierung von Rauschen, aber effektiver bei der Beibehaltung der Form des ursprünglichen Signals. Es ist sowohl zur Differenzierung als auch zur Glättung fähig. Der Algorithmus ist komplexer und die Berechnungszeiten sind größer als die glatten Typen, die oben diskutiert wurden, aber mit modernen Computern ist der Unterschied nicht signifikant und Code in verschiedenen Sprachen ist weit verfügbar online verfügbar. Siehe SmoothingComparison. html. Die Form eines beliebigen Glättungsalgorithmus kann bestimmt werden, indem man diese glatt auf eine Delta-Funktion anwendet. Ein aus allen Nullen bestehendes Signal mit Ausnahme eines Punktes, wie das einfache MatlabOctave-Skript DeltaTest. m zeigt. Lärmminderung . Glättung reduziert in der Regel das Rauschen in einem Signal. Wenn das Rauschen weiß (dh gleichmäßig über alle Frequenzen verteilt) ist und seine Standardabweichung D ist. Dann beträgt die Standardabweichung des Rauschens, das nach einem Durchgang einer rechteckigen Glattheit im Signal verbleibt, ungefähr D sqrt (m), wobei m die glatte Breite ist. Wenn stattdessen ein dreieckiger Glatt verwendet wird, ist das Rauschen etwas geringer, ungefähr D 0,8sqrt (m). Glättungsvorgänge können mehrmals angewendet werden, dh ein zuvor geglättetes Signal kann wieder geglättet werden. In manchen Fällen kann dies nützlich sein, wenn es sehr viel hochfrequentes Rauschen im Signal gibt. Jedoch ist die Rauschverminderung für weißes Rauschen weniger in jedem aufeinanderfolgenden glatt. Beispielsweise reduzieren drei Durchläufe eines rechteckigen Glases das weiße Rauschen um einen Faktor von ungefähr D 0,7sqrt (m), nur eine leichte Verbesserung gegenüber zwei Durchgängen. Die Häufigkeitsverteilung von Rauschen, bezeichnet durch Rauschfarbe. Wesentlich die Glättungsfähigkeit zur Reduzierung von Rauschen beeinflußt. Die MatlabOctave-Funktion NoiseColorTest. m vergleicht die Wirkung eines 100-Punkt-Wagens (ungewichteter gleitender Durchschnitt) auf der Standardabweichung von Weiß-, Rosa - und Blau-Rauschen, die alle eine ursprüngliche ungeglättete Standardabweichung von 1,0 haben. Da das Glätten ein Tiefpaßfilterverfahren ist, wirkt es auf niederfrequentes (rosa und rotes) Rauschen weniger und hochfrequentes (blaues) Rauschen mehr, als auf weißes Rauschen. Beachten Sie, dass die Berechnung der Standardabweichung unabhängig von der Reihenfolge der Daten und damit der Frequenzverteilung ist, die die Sortierung eines Datensatzes seine Standardabweichung nicht ändert. Die Standardabweichung einer Sinuswelle ist unabhängig von ihrer Frequenz. Die Glättung ändert jedoch sowohl die Frequenzverteilung als auch die Standardabweichung eines Datensatzes. End-Effekte und das Problem der verlorenen Punkte. Man beachte in den obigen Gleichungen, daß die rechtwinklige 3-Punkt-Glattheit nur für j 2 bis n-1 definiert ist. Es gibt nicht genügend Daten in dem Signal, um für den ersten Punkt des Signals (j 1) oder für den letzten Punkt (j n) einen vollständigen 3-Punkt glatt zu definieren. Da es keine Datenpunkte vor dem ersten Punkt oder nach dem letzten Punkt gibt. (In ähnlicher Weise ist ein 5-Punkt-Glatt nur für j 3 bis n-2 definiert und kann daher für die ersten beiden Punkte oder für die letzten beiden Punkte nicht glatt berechnet werden). Im allgemeinen wird für eine m-breite Glättung (m -1) 2 Punkte am Anfang des Signals und (m -1) 2 Punkte am Ende des Signals liegen, für das eine vollständige m-Weite glatt nicht möglich ist Berechnet werden. Es gibt zwei Ansätze. Man ist, den Verlust von Punkten zu akzeptieren und schneiden Sie diese Punkte oder ersetzen Sie sie mit Nullen in der glatten Signal. (Das ist der Ansatz in den meisten der Zahlen in diesem Papier genommen). Der andere Ansatz besteht darin, schrittweise kleinere Glättungen an den Enden des Signals zu verwenden, z. B. um Punkte 2, 3, 5, 7 für die Signalpunkte 1, 2, 3 und 4 und für die Punkte n, n-1 zu glätten , N-2, n-3. beziehungsweise. Der spätere Ansatz kann vorzuziehen sein, wenn die Flanken des Signals kritische Informationen enthalten, aber es erhöht die Ausführungszeit. Die fastsmooth Funktion, die unten diskutiert wird, kann eine dieser beiden Methoden verwenden. Beispiele für Glättung. Ein einfaches Beispiel der Glättung ist in Fig. 4 gezeigt. Die linke Hälfte dieses Signals ist ein verrauschter Peak. Die rechte Hälfte ist die gleiche Spitze, nachdem sie einen dreieckigen Glättungsalgorithmus durchlaufen hat. Das Rauschen wird stark reduziert, während der Peak selbst kaum verändert wird. Die Glättung erhöht das Signal-Rausch-Verhältnis und ermöglicht eine genauere Messung der Signalcharakteristiken (Spitzenposition, - höhe, - breite, - fläche usw.) durch Sichtkontrolle. Abbildung 4. Die linke Hälfte dieses Signals ist ein rauschender Peak. Die rechte Hälfte ist die gleiche Spitze, nachdem sie einen Glättungsalgorithmus durchlaufen hat. Das Rauschen wird stark reduziert, während der Peak selbst kaum verändert wird, wodurch es möglich ist, die Peakposition, - höhe und - breite direkt durch graphische oder visuelle Schätzung zu messen (es verbessert jedoch keine Messungen, die durch Verfahren der kleinsten Quadrate durchgeführt werden). Je größer die glatte Breite, desto größer die Rauschreduzierung, desto größer ist jedoch die Möglichkeit, dass das Signal durch den Glättvorgang verzerrt wird. Die optimale Wahl der glatten Breite hängt von der Breite und Form des Signals und dem Digitalisierungsintervall ab. Bei Peak-Signalen ist der kritische Faktor das glatte Verhältnis. Das Verhältnis zwischen der glatten Breite m und der Anzahl der Punkte in der Halbwertsbreite der Spitze. Im allgemeinen verbessert das Erhöhen des Glättungsverhältnisses das Signal / Rausch-Verhältnis, bewirkt jedoch eine Verringerung der Amplitude und eine Erhöhung der Bandbreite des Peaks. Beachten Sie, dass die glatte Breite auf zwei verschiedene Arten ausgedrückt werden kann: (a) als Anzahl der Datenpunkte oder (b) als x-Achsenintervall (bei spektroskopischen Daten üblicherweise in nm oder in Frequenzeinheiten). Die beiden sind einfach zusammenhängend: Die Anzahl der Datenpunkte ist einfach das x-Achsenintervall mal das Inkrement zwischen benachbarten x-Achsenwerten. Das glatte Verhältnis ist in beiden Fällen dasselbe. Die obigen Figuren zeigen Beispiele für die Wirkung von drei unterschiedlichen glatten Breiten auf verrauschte Gauss-förmige Spitzen. In der Abbildung auf der linken Seite hat der Peak eine (wahre) Höhe von 2,0 und es gibt 80 Punkte in der Halbwertsbreite des Peaks. Die rote Linie ist die ursprüngliche ungeglättete Spitze. Die drei überlagerten grünen Linien sind die Ergebnisse der Glättung dieses Peaks mit einer dreieckigen glatten Breite (von oben nach unten) 7, 25 und 51 Punkten. Da die Peakbreite 80 Punkte beträgt, sind die glatten Verhältnisse dieser drei Glättungen 780, 0,09, 2580, 0,31 bzw. 5180, 0,64. Wenn die glatte Breite zunimmt, wird das Geräusch progressiv verringert, aber die Peakhöhe wird ebenfalls leicht verringert. Für die größte Glattheit wird die Peakbreite geringfügig erhöht. In der Abbildung rechts hat die ursprüngliche Spitze (in rot) eine echte Höhe von 1,0 und eine halbe Breite von 33 Punkten. Die drei überlagerten grünen Linien sind die Ergebnisse der gleichen drei dreieckigen Glättungen der Breite (von oben nach unten) 7, 25 und 51 Punkte. Da aber die Peakbreite in diesem Fall nur 33 Punkte beträgt, sind die glatten Verhältnisse dieser drei Glättungen um 0,21, 0,76 bzw. 1,55 größer. Sie können sehen, dass der Spitzenverzerrungseffekt (Verringerung der Peakhöhe und Erhöhung der Peakbreite) für den schmaleren Peak größer ist, da die glatten Verhältnisse höher sind. Glatte Verhältnisse von grßer als 1,0 werden selten wegen übermßiger Spitzenverzerrung verwendet. Man beachte, daß auch im schlimmsten Fall die Peakpositionen nicht bewirkt werden (unter der Annahme, daß die ursprünglichen Peaks symmetrisch waren und nicht von anderen Peaks überlappten). Wenn die Formgebung des Peaks wichtiger ist als die Optimierung des Signal-Rausch-Verhältnisses, hat der Savitzky-Golay den Vorteil gegenüber gleitendem Durchschnitt. In allen Fällen bleibt die Gesamtfläche unter dem Peak unverändert. Wenn die Peakbreiten stark variieren, ist eine adaptive glatte. Die es erlaubt, die glatte Breite über das Signal zu variieren, verwendet werden. Das Problem mit Glättung ist, dass es oft weniger vorteilhaft, als Sie vielleicht denken. Es ist sehr wichtig, darauf hinzuweisen, dass Glättungsergebnisse, wie in der obigen Abbildung dargestellt, trügerisch beeindruckend sein können, weil sie eine einzelne Probe eines verrauschten Signals verwenden, das in unterschiedlichen Graden geglättet wird. Dies veranlaßt den Betrachter, den Beitrag des niederfrequenten Rauschens zu unterschätzen, der visuell schlecht abgeschätzt werden kann, weil es so wenige niederfrequente Zyklen in der Signalaufzeichnung gibt. Dieses Problem kann durch Aufzeichnen einer Anzahl von unabhängigen Abtastwerten eines verrauschten Signals, bestehend aus einem einzelnen Peak, dargestellt werden, wie in den beiden folgenden Figuren dargestellt. Diese Figuren zeigen zehn überlagerte Darstellungen mit dem gleichen Peak, aber mit unabhängigem weißen Rauschen, die jeweils mit einer anderen Linienfarbe aufgetragen sind, auf der linken Seite nicht geglättet und auf der rechten Seite geglättet. Die Überprüfung der geglätteten Signale auf der rechten Seite zeigt deutlich die Änderung der Spitzenposition, der Höhe und der Breite zwischen den 10 Abtastungen, die durch das in den geglätteten Signalen verbleibende niederfrequente Rauschen verursacht wird. Ohne das Rauschen würde jeder Peak eine Peakhöhe von 2, eine Peakmitte bei 500 und eine Breite von 150 haben. Nur weil ein Signal glatt aussieht, bedeutet das nicht, dass es kein Rauschen gibt. Das nach dem Glätten in den Signalen verbleibende niederfrequente Rauschen behindert weiterhin die genaue Messung der Spitzenposition, - höhe und - breite. (Die generierenden Skripte unterhalb jeder Figur erfordern, dass die Funktionen gaussian. m, whitenoise. m und fastsmooth. m von tinyurlcey8rwh heruntergeladen werden.) Es sollte klar sein, dass Glättung selten Rauschen völlig eliminieren kann, da die meisten Rauschen über eine breite Strecke verteilt sind Bereich von Frequenzen, und Glättung reduziert einfach das Rauschen in einem Teil des Frequenzbereichs. Nur für einige sehr spezifische Typen von Rauschen (z. B. diskretes Frequenzrauschen oder Einpunktspitzen) besteht Hoffnung auf irgendetwas, das nahe an der vollständigen Rauscheliminierung liegt. Die Abbildung unten rechts ist ein weiteres Beispiel für einige dieser Prinzipien. Das Signal besteht aus zwei Gauss-Peaks, von denen einer bei x50 und der zweite bei x150 liegt. Beide Peaks haben eine Peakhöhe von 1,0 und eine Peakhalbbreite von 10, und ein normalverteiltes statistisches weißes Rauschen mit einer Standardabweichung von 0,1 wurde dem gesamten Signal hinzugefügt. Das x-Achsen-Abtastintervall ist jedoch für die beiden Peaks von 0,1 für den ersten Peak (von x0 bis 100) und 1,0 für den zweiten Peak (von x100 bis 200) verschieden. Das bedeutet, dass der erste Peak durch zehnmal mehr Punkte gekennzeichnet ist als der zweite Peak. Es kann aussehen wie der erste Peak ist lauter als die zweite, aber das ist nur eine Illusion das Signal-Rausch-Verhältnis für beide Peaks ist 10. Der zweite Peak sieht weniger laute nur, weil es weniger Rauschen Proben gibt und wir tendenziell unterschätzen Die Dispersion von kleinen Proben. Das Ergebnis davon ist, dass, wenn das Signal geglättet wird, die zweite Spitze viel eher durch die glatte (sie wird kürzer und breiter) als die erste Spitze verzerrt wird. Der erste Peak kann eine viel breitere, glatte Breite tolerieren, was zu einem höheren Grad an Rauschreduzierung führt. (In ähnlicher Weise wird, wenn beide Peaks mit dem kleinsten Quadrate-Kurvenanpassungsverfahren gemessen werden, die Anpassung des ersten Peaks mit dem Rauschen stabiler, und die gemessenen Parameter dieses Peaks werden etwa 3 mal genauer als der zweite Peak sein, da dort Sind zehnmal mehr Datenpunkte in diesem Peak, und die Meßgenauigkeit verbessert sich grob mit der Quadratwurzel der Anzahl von Datenpunkten, wenn das Rauschen weiß ist). Sie können die Datei udx im TXT-Format oder im Matlab MAT-Format herunterladen. Optimierung der Glättung. Wenn das Glättungsverhältnis zunimmt, wird das Rauschen zuerst schnell, dann langsamer reduziert, und die Peakhöhe wird ebenfalls reduziert, langsam zuerst, dann schneller. Das Ergebnis ist, dass das Signal-Rauschen zunächst schnell ansteigt und dann ein Maximum erreicht. Dies ist in der Abbildung links dargestellt für einen Gaußschen Peak mit weißem Rauschen (erzeugt durch dieses MatlabOctave-Skript). Dies zeigt auch, dass der Großteil der Rauschverringerung auf hochfrequente Komponenten des Rauschens zurückzuführen ist, wohingegen ein Großteil des niederfrequenten Rauschens in dem Signal bleibt, sogar wenn es geglättet wird. Welches das beste glatte Verhältnis ist Es hängt vom Zweck der Höchstmaß ab. Wenn das Hauptziel der Messung darin besteht, die wahre Peakhöhe oder - breite zu messen, dann sollten glatte Verhältnisse unter 0,2 verwendet werden und die Savitzky-Golay-Glattheit wird bevorzugt. Das Messen der Höhe der verrauschten Peaks wird besser durch die Kurvenanpassung der nicht geglätteten Daten erreicht, statt durch das Maximum der geglätteten Daten (siehe CurveFittingC. htmlSmoothing). Wenn aber das Ziel der Meßinstrumente darin besteht, die Peak-Position zu messen (x-Achsen-Wert des Peaks), können ggf. viel grßere glatte Verhältnisse verwendet werden, weil die Glättung einen geringen Einfluß auf die Peak-Position hat (es sei denn, der Peak ist asymmetrisch oder der Peak ist asymmetrisch Zunahme der Peakbreite ist so stark, dass benachbarte Peaks sich überlappen). In quantitativen chemischen Analyseanwendungen, die auf der Kalibrierung durch Standardproben basieren, ist die durch Glättung verursachte Peakhöhenverringerung nicht so wichtig. Wenn dieselben Signalverarbeitungsoperationen auf die Abtastwerte und auf die Standards angewendet werden, ist die Peakhöhenreduktion der Standardsignale genau die gleiche wie die der Abtastsignale, und der Effekt wird exakt auslöschen. In solchen Fällen können ggf. glatte Breiten von 0,5 bis 1,0 verwendet werden, um das Signal-Rausch-Verhältnis weiter zu verbessern, wie in der Abbildung links dargestellt (für ein einfaches gleitend mittelgroßes Rechteck glatt). In der praktischen analytischen Chemie sind absolute Peakhöhenmessungen selten erforderlich, eine Kalibrierung gegen Standardlösungen ist die Regel. (Denken Sie daran: Das Ziel der quantitativen Analyse besteht nicht darin, ein Signal zu messen, sondern die Konzentration des Unbekannten zu messen.) Es ist jedoch sehr wichtig, genau die gleichen Signalverarbeitungsschritte auf die Standardsignale wie die Probensignale anzuwenden, Ansonsten kann ein großer systematischer Fehler auftreten. Einen detaillierteren Vergleich aller vier oben beschriebenen Glättungsarten finden Sie unter SmoothingComparison. html. A) aus kosmetischen Gründen eine schönere oder dramatischere Darstellung eines Signals für visuelle Inspektionen oder Veröffentlichungen vorzubereiten, um insbesondere das langfristige Verhalten kurzfristig zu betonen. Oder b) wenn das Signal anschließend durch ein Verfahren analysiert wird, das durch das Vorhandensein von zu hohem Hochfrequenzrauschen im Signal verschlechtert würde, zum Beispiel wenn die Höhen der Spitzenwerte visuell oder grafisch bestimmt werden sollen oder unter Verwendung der MAX-Funktion, oder wenn die Lage von Maxima, Minima oder Wendepunkten im Signal automatisch ermittelt wird, indem Nulldurchgänge in Ableitungen des Signals erfasst werden. Die Optimierung der Menge und Art der Glättung ist in diesen Fällen sehr wichtig (siehe Differentiation. htmlSmoothing). Aber im Allgemeinen, wenn ein Computer verfügbar ist, um quantitative Messungen zu machen, ist es besser, Methoden der kleinsten Fehlerquadrate auf die nicht geglätteten Daten zu verwenden, als grafische Schätzungen auf geglätteten Daten. Wenn ein kommerzielles Instrument die Möglichkeit hat, die Daten für Sie zu glätten, sein bestes, um das Glätten zu deaktivieren und die ungeglätteten Daten aufzuzeichnen, können Sie es immer später selbst für die visuelle Darstellung glatt machen und es wird besser sein, die ungeglätteten Daten für die kleinsten Quadrate zu verwenden Anpassung oder andere Verarbeitung, die Sie später noch erledigen möchten. Glättung kann verwendet werden, um Spitzen zu lokalisieren, aber es sollte nicht verwendet werden, um Spitzen zu messen. Bei der Konstruktion von Algorithmen, die eine Glättung anwenden, ist Vorsicht geboten. Zum Beispiel in einer beliebten Technik für Peak-Entdeckung und Messung. Peaks werden durch Erfassen abwärtsgerichteter Nulldurchgänge in der geglätteten ersten Ableitung lokalisiert. Aber die Position, die Höhe und die Breite jedes Peaks wird durch die Kleinste-Quadrate-Kurvenanpassung eines Segments der ursprünglichen nicht geglätteten Daten in der Nähe des Nulldurchgangs bestimmt. Auf diese Weise werden, auch wenn eine starke Glättung notwendig ist, um eine zuverlässige Unterscheidung von Rauschspitzen zu gewährleisten, die durch Kurvenanpassung extrahierten Spitzenparameter nicht durch die Glättung verzerrt. (A) die Glättung die Genauigkeit der Parametermessung durch kleinste Quadrate zwischen getrennten unabhängigen Signalabtastwerten nicht signifikant verbessern wird, (b) alle Glättungsalgorithmen zumindest geringfügig verlustbehaftet sind, was zumindest eine gewisse Änderung der Signalform und der Amplitude mit sich bringt, (c) Ist es schwieriger, die Anpassung durch Inspektion der Residuen zu bewerten, wenn die Daten geglättet werden, weil geglättetes Rauschen für ein tatsächliches Signal verwechselt werden kann. Und (d) Glätten des Signals unterschätzt ernsthaft die Parameterfehler, die durch Berechnungen des Ausbreitungsfehlers und des Bootstrap-Verfahrens vorhergesagt werden. Umgang mit Spikes und Ausreißern. Manchmal sind Signale mit sehr hohen, schmalen Spikes oder Ausreißern kontaminiert, die in zufälligen Intervallen und mit zufälligen Amplituden auftreten, aber mit Breiten von nur einem oder wenigen Punkten. Es sieht nicht nur hässlich aus, sondern stört auch die Annahmen von kleinsten Quadratenberechnungen, weil es sich nicht um normalverteiltes Zufallsrauschen handelt. Diese Art von Interferenz ist mit den obigen Glättungsverfahren schwierig zu eliminieren, ohne das Signal zu verzerren. Jedoch kann ein Medianfilter, der jeden Punkt des Signals durch den Median (anstelle des Mittelwerts) von m benachbarten Punkten ersetzt, schmale Spikes mit einer geringen Signaländerung vollständig eliminieren, wenn die Breite der Spikes nur eins oder a ist Wenige Punkte und gleich oder kleiner als m. Siehe en. wikipedia. orgwikiMedianfilter. Die Funktion killspikes. m ist eine weitere Spike-Entfernungsfunktion, die einen anderen Ansatz verwendet, der die Spikes und Patches über ihnen mit einer linearen Interpolation aus dem Signal vor und nach lokalisiert und eliminiert. Im Gegensatz zu konventionellen Glätten können diese Funktionen vor den Anpassungsfunktionen der kleinsten Quadrate gewinnbringend eingesetzt werden. (Auf der anderen Seite, wenn seine Spikes, die tatsächlich das Signal von Interesse sind, und andere Komponenten des Signals stören ihre Messung, siehe CaseStudies. htmlG). Eine Alternative zur Glättung, um Rauschen in dem obigen Satz von nicht geglätteten Signalen zu reduzieren, ist die Ensemble-Mittelung. Die in diesem Fall sehr einfach durch das MatlabOctave-Code-Diagramm (x, mean (y)) durchgeführt werden kann, zeigt das Ergebnis eine Verringerung des weißen Rauschens um etwa sqrt (10) 3,2. Dies reicht aus, um zu beurteilen, dass es einen einzigen Peak mit Gaußscher Form gibt, der am besten durch Kurvenanpassung (in einem späteren Abschnitt) mit dem MatlabOctave - Code peakfit (xmean (y), 0,0,1) gemessen werden kann Ergebnis, das eine ausgezeichnete Übereinstimmung mit der Position, der Höhe und der Breite des Gauss'schen Peaks zeigt, der in der dritten Zeile des erzeugenden Skripts erzeugt wird (oben links). Kondensierte überabgetastete Signale. Manchmal werden Signale dichter (dh mit kleineren Intervallen der X-Achse) aufgezeichnet, als es wirklich notwendig ist, um alle wichtigen Merkmale des Signals zu erfassen. Dies führt zu größeren als notwendigen Datengrößen, was die Signalverarbeitung verlangsamt und die Speicherkapazität steuern kann. Um dies zu korrigieren, können überabgetastete Signale entweder durch Eliminieren von Datenpunkten (z. B. Fallenlassen eines jeden anderen Punktes oder jedes dritten Punkts) oder durch Ersetzen von Gruppen von benachbarten Punkten durch ihre Mittelwerte reduziert werden. Der spätere Ansatz hat den Vorteil, anstatt externe Datenpunkte zu verwerfen, und er wirkt wie Glättung, um ein gewisses Maß an Rauschunterdrückung bereitzustellen. (Wenn das Rauschen im ursprünglichen Signal weiß ist und das Signal durch Mittelung aller n Punkte kondensiert wird, wird das Rauschen im kondensierten Signal um die Quadratwurzel von n reduziert, jedoch ohne Änderung der Frequenzverteilung des Rauschens). Video-Demonstration. Dieses 18-Sekunden-, 3-MByte-Video (Smooth3.wmv) demonstriert den Effekt einer dreieckigen Glättung auf einem einzigen Gaußschen Peak mit einer Peakhöhe von 1,0 und einer Peakbreite von 200. Die initiale weiße Rauschamplitude beträgt 0,3, was ein anfängliches Signal-to ergibt Verhältnis von etwa 3,3. Ein Versuch, die Spitzenamplitude und die Spitzenbreite des verrauschten Signals, das am unteren Ende des Videos dargestellt ist, zu messen, sind anfänglich aufgrund des Rauschens schwer ungenau. Wenn die glatte Breite erhöht wird, verbessert sich jedoch das Signal-Rausch-Verhältnis und die Genauigkeit der Messungen der Spitzenamplitude und der Spitzenbreite wird verbessert. Jedoch bewirkt die Glättung oberhalb einer glatten Breite von etwa 40 (glattes Verhältnis 0,2), dass die Spitze kürzer als 1,0 und breiter als 200 ist, obwohl sich das Signal / Rausch-Verhältnis weiter verbessert, wenn die glatte Breite erhöht wird. (Diese Demonstration wurde in Matlab 6.5 erstellt SPECTRUM, die Freeware Macintosh Signalverarbeitung Anwendung, enthält rechteckige und dreieckige Glättung Funktionen für eine beliebige Anzahl von Punkten. Kalkulationstabellen. Die Glättung kann in Kalkulationstabellen mit dem Shift und Multiplikation Technik, die oben beschrieben Ist die Menge der Multiplikationskoeffizienten in den Formeln enthalten, die die Werte jeder Zelle der geglätteten Daten in den Spalten C und E berechnen. Die Spalte C führt eine 7-Punkt-Rechteck-Glättung durch (1 1 1 1 1 1 1) und die Spalte E eine 7-Punkt-Dreiecksglatte (1 2 3 4 3 2 1), die auf die Daten in Spalte A angewandt wird. Sie können beliebige Daten in Spalte A und (oder Kopieren und Einfügen) eingeben Können Sie die Tabellenkalkulation auf längere Datenspalten erweitern, indem Sie bei Bedarf die letzte Spaltenreihe A, C und E nach unten ziehen. Um die glatte Breite zu ändern, müssen Sie die Gleichungen in den Spalten C oder E ändern und die Änderungen kopieren Die übliche Praxis, die Ergebnisse durch die Summe der Koeffizienten zu dividieren, so daß der Nettogewinn einheitlich ist und der Bereich unter der Kurve des geglätteten Signals erhalten bleibt. Die Kalkulationstabellen UnitGainSmooths. xls und UnitGainSmooths. ods enthalten eine Sammlung von Einheits-Faltungskoeffizienten für rechteckige, dreieckige und Gaußsche Glättungen der Breite 3 bis 29 sowohl im vertikalen (Spalten-) als auch im horizontalen (Zeilen-) Format. Sie können diese in Ihre eigenen Kalkulationstabellen kopieren und einfügen. Die Kalkulationstabellen MultipleSmoothing. xls und MultipleSmoothing. ods zeigen eine flexiblere Methode, bei der die Koeffizienten in einer Gruppe von 17 benachbarten Zellen (in Zeile 5, Spalten I bis Y) enthalten sind, was es leichter macht, die glatte Form und Breite zu verändern Bis höchstens 17). In dieser Kalkulationstabelle wird das Glattelement dreimal hintereinander aufgetragen, was zu einer effektiven glatten Breite von 49 Punkten führt, die auf die Säule G aufgebracht werden. Im Vergleich zu MatlabOctave sind die Kalkulationstabellen viel langsamer, weniger flexibel und weniger leicht automatisiert. In diesen Kalkulationstabellen zum Ändern des Signals oder der Anzahl von Punkten in dem Signal oder zum Ändern der glatten Breite oder des Typs müssen Sie die Kalkulationstafel an mehreren Stellen ändern, während sie dies mit der MatlabOctave fastsmooth-Funktion ( Unten), müssen Sie nur die Eingabeargumente einer einzelnen Codezeile ändern. Und die Kombination mehrerer Techniken zu einer Tabelle ist komplizierter als das Schreiben eines MatlabOctave-Skripts, das dasselbe tut. Glättung in Matlab und Oktave. Die benutzerdefinierte Funktion fastsmooth implementiert Verschiebung und multiplizieren Typ glättet mit einem rekursiven Algorithmus. (Klicken Sie auf diesen Link, um den Code zu überprüfen, oder klicken Sie mit der rechten Maustaste, um die Anwendung in Matlab herunterzuladen). Fastsmooth ist eine Matlab-Funktion der Form sfastsmooth (a, w, type, edge). Das Argument a ist der Eingangssignalvektor w ist die glatte Breite (ein positiver ganzzahliger) Typ bestimmt den glatten Typ: type1 gibt einen rechteckigen (gleitenden Durchschnitt oder Kastenwagen) glatten Typ2 gibt eine dreieckige glatte, äquivalent zu zwei Durchgängen mit gleitendem Durchschnitt Typ3 ergibt eine pseudogaußförmige Glattheit, die drei Durchgängen eines gleitenden Durchschnitts entspricht, wobei diese Formen in der Figur links verglichen werden. (Siehe SmoothingComparison. html für einen Vergleich dieser Glättungsmodi). Die Argumentflanke steuert, wie die Kanten des Signals (die ersten w2 Punkte und die letzten w2 Punkte) behandelt werden. Wenn edge0, sind die Kanten null. (In diesem Modus ist die verstrichene Zeit unabhängig von der glatten Breite, was die schnellste Ausführungszeit ergibt). Wenn edge1, die Kanten geglättet werden mit zunehmend kleiner glättet die näher an das Ende. (In diesem Modus erhöht sich die Ausführungszeit mit zunehmenden glatten Breiten). Das geglättete Signal wird als Vektor s zurückgegeben. (Sie können die letzten beiden Eingabeargumente hinterlassen: fastsmooth (Y, w, type) glättet mit edge0 und fastsmooth (Y, w) glättet mit type1 und edge0). Im Vergleich zu faltungsbasierten glatten Algorithmen verwendet fastsmooth einen einfachen rekursiven Algorithmus, der typischerweise viel schnellere Ausführungszeiten liefert, insbesondere für große glatte Breiten kann er ein 1.000.000-Punkt-Signal mit einem 1000-Punkt-gleitenden Durchschnitt in weniger als 0,1 Sekunden glätten. Heres ein einfaches Beispiel fastsmooth, das den Effekt auf weißem Rauschen (Grafik) demonstriert. SegmentedSmooth. m. Die auf der rechten Seite dargestellt ist, ist eine segmentierte Mehrfachbreiten-D-ata-Glättungsfunktion, basierend auf dem fastsmo-th-Algorithmus, der nützlich sein kann, wenn die Breiten der Spitzen oder der Rauschpegel wesentlich über dem Signal variieren. The syntax is the same as fastsmooth. m, except that the second input argument smoothwidths can be a vector . SmoothY SegmentedSmooth (Y, smoothwidths, type, ends) . The function divides Y into a number of equal-length regions defined by the length of the vector smoothwidths, then smooths each region with a smooth of type type and width defined by the elements of vector smoothwidths. In the graphic example in the figure on the right, smoothwidths31 52 91 . which divides up the signal into three regions and smooths the first region with smoothwidth 31, the second with smoothwidth 51, and the last with smoothwidth 91. Any number of smooth widths and sequence of smooth widths can be used. Type help SegmentedSmooth for other examples examples. DemoSegmentedSmooth. m demonstrates the operation with different signals consisting of noisy variable-width peaks that get progressively wider, like the figure on the right. SmoothWidthTest. m is a simple script that uses the fastsmooth function to demonstrate the effect of smoothing on peak height, noise, and signal-to-noise ratio of a peak. You can change the peak shape in line 7, the smooth type in line 8, and the noise in line 9. A typical result for a Gaussian peak with white noise smoothed with a pseudo-Gaussian smooth is shown on the left. Here, as it is for most peak shapes, the optimal signal-to-noise ratio occurs at a smooth ratio of about 0.8. However, that optimum corresponds to a significant reduction in the peak height . which could be a serious problem. A smooth width about half the width of the original unsmoothed peak produces less distortion of the peak but still achieves a reasonable noise reduction. SmoothVsCurvefit. m is a similar script, but is also compares curve fitting as an alternative method to measure the peak height without smoothing . This effect is explored more completely by the text below, which shows an experiment in Matlab or Octave that creates a Gaussian peak, smooths it, compares the smoothed and unsmoothed version, then uses the max, halfwidth. and trapz functions to print out the peak height, halfwidth, and area . (max and trapz are both built-in functions in Matlab and Octave, but you have to download halfwidth. m. To learn more about these functions, type help followed by the function name). x0:.1:10 yexp(-(x-5).2) plot(x, y) ysmoothedfastsmooth(y,11,3,1) plot(x, y,x, ysmoothed, r) disp(max(y) halfwidth(x, y,5) trapz(x, y)) disp(max(ysmoothed) halfwidth(x, ysmoothed,5) trapz(x, ysmoothed) 1 1.6662 1.7725 0.78442 2.1327 1.7725 These results show that smoothing reduces the peak height (from 1 to 0.784) and increases the peak width (from 1.66 to 2.13), but has no effect on the peak area, as long as you measure the total area under the broadened peak. Smoothing is useful if the signal is contaminated by non-normal noise such as sharp spikes or if the peak height, position, or width are measured by simple methods, but there is no need to smooth the data if the noise is white and the peak parameters are measured by least-squares methods, because the results obtained on the unsmoothed data will be more accurate (see CurveFittingC. htmlSmoothing ). The MatlabOctave user-defined function condense. m. condense(y, n). returns a condensed version of y in which each group of n points is replaced by its average, reducing the length of y by the factor n. (For x, y data sets, use this function on both independent variable x and dependent variable y so that the features of y will appear at the same x values). The MatlabOctave user-defined function medianfilter. m. medianfilter(y, w). performs a median-based filter operation that replaces each value of y with the median of w adjacent points (which must be a positive integer). killspikes. m is a threshold-based filter for eliminating narrow spike artifacts. The syntax is fy killspikes(x, y, threshold, width). Each time it finds a positive or negative jump in the data between y(n) and y(n1) that exceeds threshold, it replaces the next width points of data with a linearly interpolated segment spanning x(n) to x(nwidth1), See killspikesdemo. Type help killspikes at the command prompt. ProcessSignal is a MatlabOctave command-line function that performs smoothing and differentiation on the time-series data set x, y (column or row vectors). It can employ all the types of smoothing described above. Type help ProcessSignal. Returns the processed signal as a vector that has the same shape as x, regardless of the shape of y. The syntax is ProcessedProcessSignal(x, y, DerivativeMode, w, type, ends, Sharpen, factor1, factor2, SlewRate, MedianWidth) iSignal is an interactive function for Matlab that performs smoothing for time-series signals using all the algorithms discussed above . including the Savitzky-Golay smooth, a median filter, and a condense function, with keystrokes that allow you to adjust the smoothing parameters continuously while observing the effect on your signal instantly, making it easy to observe how different types and amounts of smoothing effect noise and signal, such as the height, width, and areas of peaks. (Other functions include differentiation, peak sharpening, interpolation, least-squares peak measurement, and a frequency spectrum mode that shows how smoothing and other functions can change the frequency spectrum of your signals). The simple script iSignalDeltaTest demonstrates the frequency response of iSignals smoothing functions by applying them to a single-point spike. allowing you to change the smooth type and the smooth width to see how the the frequency response changes. View the code here or download the ZIP file with sample data for testing. Use the A and Z keys to increase and decrease the smooth width, and the S key to cycle through the available smooth types. Hint: use the Gaussian smooth and keep increasing the smooth width until the peak shows. Note: you can right-click on any of the m-file links on this site and select Save Link As. to download them to your computer for use within Matlab. Unfortunately, iSignal does not currently work in Octave. This page is also available in French, at besteonderdelen. nlblogp4169. courtesy of Natalie Harmann and Anna Chekovsky . Last updated December, 2016. This page is part of A Pragmatic Introduction to Signal Processing , created and maintained by Prof. Tom OHaver. Department of Chemistry and Biochemistry, The University of Maryland at College Park. Comments, suggestions, bug reports, and questions should be directed to Prof. OHaver at tohumd. edu. Unique visits since May 17, 2008:


No comments:

Post a Comment