Hallo, ich suche eine Möglichkeit von mehr als hundert Werten einen Durchnitt zu bilden. Das aufsummieren und dann teilen geht nicht, da der Speicher nicht reicht. Hat jemand eine Idee? (((a+b)/2)+c)/2)+d)/2 geht doch nicht oder?
Hi,
so könnte es gehen:
int messdurchnitt=0; //durchsnitt der messwerte
int messwert;  // aktueller adc value
for(i=0;i<100;i++){
messdurchschnitt = ( i*messdurchschnitt + messwert ) / (i+1);
}
Gruss
peter
  Hi, falls du 10 bit adc werte hasst bietet sich noch an die Formel umzuschreiben da 100 * 1024 > 65535 ist. . . . messdurchschnitt = ( i / ( i + 1 ) ) * ( messwert + ( y / i) ); . . .
sorry vertippt: so ists richtig . . . messdurchscnitt = (i/(i+1)) * (messdurchschnitt+(messwert/i)); . . . peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
  
  Bestehender Account
  
  
  
  Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
  Noch kein Account? Hier anmelden.
 Thread beobachten
 Thread beobachten Seitenaufteilung abschalten
 Seitenaufteilung abschalten