ich möchte aus gemessenen Daten einen gleitenden Mittelwert mit Gewichtung berechnen.
In dem Datensatz befinden sich drei Messwerte (Zeit, Spannung und Strom). Mit einer For-Schleife möchte ich den Algrithmus ausführen.
Allerdings habe ich ein Fehler im Programm den ich einfach nicht finden kann. Hier mal mein Code (jupyther Notebook):
Code: Alles auswählen
%matplotlib notebook
#%matplotlib inline
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
data2 = pd.read_csv('Test_Data.csv', sep='\,', engine='python')
#CSV lesen
m=7
x_mittel = 0
a = [data2.Ampere]
for x_neu in a:
x_mittel = ((x_mittel * m + x_neu) /(m+1))
fig = plt.figure(figsize=(10, 5))
plt.plot(x_neu,'red',label = '4000mA')
plt.plot(x_mittel,'blue',label = '4000mA, m=7')
plt.grid(True)
plt.show()
Darum wird hier der neue Messwert x_neu einfach durch m+1 geteilt, da x_mittel immer 0 ist. Der Verlauf des Mittelwertes ist aus diesem Grund immer falsch.
Vielleicht liegt es aber auch an meinen Daten. Die würde ich euch zur Verfügung stellen, wenn ich wüsste wie man sie hier anhängt
