„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie können verrauschte Datenkurven effektiv geglättet werden?

Wie können verrauschte Datenkurven effektiv geglättet werden?

Veröffentlicht am 06.11.2024
Durchsuche:323

How to Effectively Smoothen Noisy Data Curves?

Verrauschte Kurven optimal glätten

Betrachten Sie einen Datensatz, der durch Folgendes angenähert wird:

import numpy as np
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)   np.random.random(100) * 0.2

Dies beinhaltet 20 % Variation. Ansätze wie UnivariateSpline und gleitende Durchschnitte weisen Einschränkungen auf.

Savitzky-Golay-Filter

Eine effektive Lösung ist der Savitzky-Golay-Filter, der in Scipy verfügbar ist. Es verwendet die Regression der kleinsten Quadrate, um den Wert in der Mitte eines kleinen Fensters mithilfe eines Polynoms zu schätzen. Das Fenster verschiebt sich dann, um den Vorgang zu wiederholen, was zu einer optimierten Anpassung jedes Punkts führt.

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import savgol_filter

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)   np.random.random(100) * 0.2
yhat = savgol_filter(y, 51, 3) # window size 51, polynomial order 3

plt.plot(x,y)
plt.plot(x,yhat, color='red')
plt.show()
Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729411035 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3