Forum: PC-Programmierung Amplitudenbestimmung mit excel


von zimt (Gast)


Lesenswert?

HAllo,
wie kann ich die Amplitudenhöhe mit Exel bestimmen.
Ich habe eine Sinusschwingung bzw. die Werte davon nun möchte ich 
jeweils die Amplitudenspitzen wissen und murkse mich schon ewig rum. hat 
einer nen Tipp für mich.

von Timmo H. (masterfx)


Lesenswert?

MAX()?

von zimt (Gast)


Lesenswert?

Ich will ja die maximalen Werte jeder einzelnen Schwingung und nicht von 
allen zusammen.

von Timmo H. (masterfx)


Lesenswert?

Hat sich aber anders angehört:
zimt schrieb:
> Ich habe eine Sinusschwingung [...]

Wie genau sieht deine Tabelle denn aus?

von zimt (Gast)


Lesenswert?

Momentan suche ich per Hand immer eine Periode und darin dann den 
maximalen Wert, das ist aber sehr sehr mühsam.
Die Amplitudenspitzen mittele ich dann und dann noch dasselbe mit den 
Tälern. Dann bilde ich die Differenz.

Da ich aber sehr viele Daten so untersuchen möchte, hätte ich gerne eine 
größtmögliche Automatisierung.

Ich bin mir sicher das ich nicht der erste bin der Amplitudenhöhen 
auswerten muss, allerdings finde ich nichts im Internet diesbezüglich.
Die Messreihen haben oft einen unterschiedlichen Offset und 
unterschiedliche Verläufe, aber im großen und ganzen Sinusschwingungen.

von schlitten (Gast)


Lesenswert?

Schreib doch ein VBA Makro, welches die Werte nacheinander durchgeht. 
Wenn der vorige Wert kleiner war als der jetzige steigt die Amplitude 
grad, wenn der folgende dann kleiner ist warste an nem Maximum. Musst 
nur noch die Spezialfälle Anfang und Ende beachten.

von zimt (Gast)


Lesenswert?

Die Idee hatte ich auch schon, nur mit c++ streams dachte ich mir, da 
ich die Daten in ner Textdatei habe, habe ich aber verworfen weil ich in 
Excel bleiben wollte.
So einfach ist es ja leider nicht, denn manchmal gibt es zwei Spitzen 
und dazwischen ein kleines Tal welches eine Spitze meiner Schwingung 
bildet. Daher müsste man beim durchgehen irgendeine Art Hysterese 
einbauen, zudem kenne ich mich nicht mit diesen basic Scripten aus.

Schade das Excel das von Haus aus nicht kann.

von Andi S. (laserandi)


Angehängte Dateien:

Lesenswert?

So eine Funktion kann ich Dir anbieten:
1
=WENN(UND((($B2-$B1)/($A2-$A1))<=0;(($B3-$B2)/($A3-$A2))>=0);ABS(MAX(B2));WENN(UND((($B2-$B1)/($A2-$A1))>=0;($B3-$B2)/($A3-$A2)<=0);ABS(MAX(B2));""))
Du musst beim dritten Wert anfangen und brauchst x und y Werte. Wenn x 
nicht zur Verfügung steht, musst Du es halt selbst generieren (z.B. 
Zeilennummer).
Also A sind x-Werte und B y-Werte.
Dann bekommst Du die gewünschten Amplituden (siehe Bild).

von zimt (Gast)


Angehängte Dateien:

Lesenswert?

Danke, aber das kann ich nicht richtig lesen und auch nicht verstehen.
Ich habe mal eine Testdatei wie sie bei mir aussieht angehängt und mich 
versucht mit deiner Funktion froh zu machen. Habe sie eingefügt und 
runter gezogen, aber wo kommt da die Amplitude raus?

Wie gesagt bisher lege ich nen moving average drüber und fummele dann 
per Hand drin rum.

von Andi S. (laserandi)


Lesenswert?

Da kommt nichts vernünftiges raus, wegen des Rauschens. Du musst vorher 
eine Glättung mit mindestens 40 Punkten durchführen. Dann verschwinden 
auch die Nebenmaxima.

von zimt (Gast)


Angehängte Dateien:

Lesenswert?

Auch bei einer Glättung komme ich nicht auf die Amplitude.

von Andi S. (laserandi)


Angehängte Dateien:

Lesenswert?

Ich konnte Deine zweite Datei nicht öffnen, deshalb habe ich meine Datei 
mal angehängt. Sie wurde mit OpenOffice erstellt. Ich hoffe Du kommst 
damit klar. Hier ist eine 200 Punkte Glättung eingebaut. Wie man sieht, 
kommen die Amplituden deutlich raus, aber man kann bei so vielen 
Messpunkten problemlos noch stärker glätten.

von zimt (Gast)


Lesenswert?

Es klappt mit der Formel aus deiner Datei, vielen Dank.


oben angegebene Formel welche nicht funktioniert:
=WENN(UND((($B2-$B1)/($A2-$A1))<=0;(($B3-$B2)/($A3-$A2))>=0);ABS(MAX(B2) 
);WENN(UND((($B2-$B1)/($A2-$A1))>=0;($B3-$B2)/($A3-$A2)<=0);ABS(MAX(B2)) 
;""))

funktionierende Formel:
=WENN(UND((($C5-$C4)/($A5-$A4))<=0;(($C6-$C5)/($A6-$A5))>=0);ABS(MAX(C5) 
);WENN(UND((($C5-$C4)/($A5-$A4))>=0;($C6-$C5)/($A6-$A5)<=0);ABS(MAX(C5)) 
;0))

Am Ende ist ein kleiner Unterschied.


Danke

von Andi S. (laserandi)


Lesenswert?

Die Null am Ende braucht man aber nur wenn man die Daten plotten möchte. 
Für das Finden der Amplituden ist sie überflüssig.
Übrigens, solltest Du mit mehr als 200 Punkten glätten, würde ich in der 
Formel bei MAX(...) auf Spalte B gehen, da sonst der Amplitudenwert zu 
stark vom Realwert abweicht.
Allgemein ist Excel, IMHO auch nicht das beste Programm für solche 
Aufgaben. Dafür gibt es eine Menge andere Programme (auch als Freeware).

von zimt (Gast)


Lesenswert?

Bin offen für Programm Empfehlungen, immer her damit.
Muss auch keine Freeware sein, daran solls nicht liegen.

von Andi S. (laserandi)


Lesenswert?

Für Tabellen gibt es z.B.:
-Origin oder
-QTIPlot (Freeware)

Für die Datenerfassung und Weiterverarbeitung:
-LabView

und was auch gut funktioniert sind Matheprogramme wie:
-Matlab oder
-Scilab (Freeware)

u.v.m....

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
Noch kein Account? Hier anmelden.