Supportnet / Forum / Tabellenkalkulation
handeln großer Datenmengen
Frage
Hi,
ich habe eine Meßdatei in Excel importiert, die in einer Spalte ein Drehzalsignal (Rechtecksignal) enthält. Daraus möchte ich für jede Zeile die Zahnfrequenz aus den 5 vorangegangenen und den nachfolgenden Flanken berechnen..
Ähm..ich hoffe mal, es kam rüber um was es geht..
Manuell ist es mir zu aufwändig, die Flanken rauszusuchen und selbst zu berechnen, außerdem würde ich damit wohl dieses Jahr nicht mehr fertig damit..
Kann mir jemand von Euch hier weiterhelfen?
Danke vorab!
Antwort 1 von Pumuckel
Ich glaube, das mußt Du etwas ausführlicher erklären.
z.B. wie ist das Rechtecksignal in Excel dargestellt ?? 0 und 1 im Wechsel ?? Wenn nein, woran erkennt man den Flankenwechsel ??
Des Weiteren sagt mir der Begriff Zahnfrequenz nix. Eine Formel oder Definition wäre sicher hilfreich.
Klingt für mich aber so, als wäre VBA die beste Lösung, die Daten durchsuchen zu lassen.
z.B. wie ist das Rechtecksignal in Excel dargestellt ?? 0 und 1 im Wechsel ?? Wenn nein, woran erkennt man den Flankenwechsel ??
Des Weiteren sagt mir der Begriff Zahnfrequenz nix. Eine Formel oder Definition wäre sicher hilfreich.
Klingt für mich aber so, als wäre VBA die beste Lösung, die Daten durchsuchen zu lassen.
Antwort 2 von want2cu
Hallo NoExpert,
ich schliesse mich Pumuckel insoweit an, dass du mal mit mehr Informationen rüberkommen solltest. Allerdings könnte ich mir auch eine Formellösung vorstellen.
Dazu müßtest du allerdings mit einem konkreten Beispiel beschreiben, was in den Zellen so drin steht und was du genau berechnet haben willst.
CU
want2cu
ich schliesse mich Pumuckel insoweit an, dass du mal mit mehr Informationen rüberkommen solltest. Allerdings könnte ich mir auch eine Formellösung vorstellen.
Dazu müßtest du allerdings mit einem konkreten Beispiel beschreiben, was in den Zellen so drin steht und was du genau berechnet haben willst.
CU
want2cu
Antwort 3 von NoExpert_
Danke für die ersten Antworten.
Das Signal kommt als Spannungssignal, und liegt zwischen 0 und 5V, d.h. "Low" entspricht "0V" und "High" entspricht "5V".
Der Flankenwechsel ist daher nicht immer 100% eindeutig.
D.h. die Zeilen könnten folgendermaßen aussehen..
0,1
0,0
0,0
0,0
2,3 -> Wechsel von Low->High
4,9
5,0
5,0
5,0
Hilft Euch das bereits weiter?
Das Signal kommt als Spannungssignal, und liegt zwischen 0 und 5V, d.h. "Low" entspricht "0V" und "High" entspricht "5V".
Der Flankenwechsel ist daher nicht immer 100% eindeutig.
D.h. die Zeilen könnten folgendermaßen aussehen..
0,1
0,0
0,0
0,0
2,3 -> Wechsel von Low->High
4,9
5,0
5,0
5,0
Hilft Euch das bereits weiter?
Antwort 4 von NoExpert_
Nachtrag:
Die Rechteckform des Spannungssignals entspricht der Zahnform. Wenn das Zahnrad also 60 Zähnen hat, entsprechen 6 Perioden einer Umdrehung.
Der Zeitabstand zwischen den Messungen (Zeilen) ist bekannt.
Die Rechteckform des Spannungssignals entspricht der Zahnform. Wenn das Zahnrad also 60 Zähnen hat, entsprechen 6 Perioden einer Umdrehung.
Der Zeitabstand zwischen den Messungen (Zeilen) ist bekannt.
Antwort 5 von NoExpert_
so'n Quatsch, ich meinte 60 Perioden entsprechen einer Umdrehung..
Antwort 6 von want2cu
Hallo NoExpert,
sorry, aber von der Themantik wärst du m.E. besser in einem andern Forum als dem Sn aufgehoben.
Flankenwechsel, Zahnform, Umdrehung etc. sind nun mal keine Begriffe, die in Excelformeln vorkommen.
Wenn du hier Hilfe erwartest, dann müßtest du mal wesentlich deutlicher beschreiben, was du für Brechnungen machen willst und wie die Sache mathematisch aussieht. Die andere Thematik ist mir - und wahrscheinlich auch den meisten anderen Excelianern - nicht geläufig.
Mehr Infos = mehr Hilfe.
Cu
want2cu
sorry, aber von der Themantik wärst du m.E. besser in einem andern Forum als dem Sn aufgehoben.
Flankenwechsel, Zahnform, Umdrehung etc. sind nun mal keine Begriffe, die in Excelformeln vorkommen.
Wenn du hier Hilfe erwartest, dann müßtest du mal wesentlich deutlicher beschreiben, was du für Brechnungen machen willst und wie die Sache mathematisch aussieht. Die andere Thematik ist mir - und wahrscheinlich auch den meisten anderen Excelianern - nicht geläufig.
Mehr Infos = mehr Hilfe.
Cu
want2cu
Antwort 7 von Pumuckel
Sollte mit VBA kein Problem sein.
Den Flankenwechsel findet man schnell:
man liest mittles einer "For"-Schleife eine Zelle nach der anderen ein und merkt sich den Wert des Vorgängers. Mit einem Vergleich ala:
findet man den Flankenwechsel.
Die Zeilennummer, an der der Flankenwechsel stattfindet, schreibt man in ein Array. Die Zeilennummer ergibt sich z.B. aus dem Zähler der "For"-Schleife.
Wenn alle Zellen eingelesen wurden braucht man nur noch dieses Array durchgehen, und anhand der Differenz der gespeicherten Zeilennummern einen Zeitbezug herstellen und damit die Frequenz berechnen.
Leider bin ich in VBA nicht fit genug, um es detailierter zu erklären.
Den Flankenwechsel findet man schnell:
man liest mittles einer "For"-Schleife eine Zelle nach der anderen ein und merkt sich den Wert des Vorgängers. Mit einem Vergleich ala:
if ((vorgänger < 2.5 UND aktuell >= 2.5) ODER (vorgänger > 2.5 UND nachfolger <= 2.5)) findet man den Flankenwechsel.
Die Zeilennummer, an der der Flankenwechsel stattfindet, schreibt man in ein Array. Die Zeilennummer ergibt sich z.B. aus dem Zähler der "For"-Schleife.
Wenn alle Zellen eingelesen wurden braucht man nur noch dieses Array durchgehen, und anhand der Differenz der gespeicherten Zeilennummern einen Zeitbezug herstellen und damit die Frequenz berechnen.
Leider bin ich in VBA nicht fit genug, um es detailierter zu erklären.
Antwort 8 von NoExpert_
Hallo Pumuckel,
leider bin ich in VBA auch nicht so fit, aber ich werde mal versuchen, mich irgendwo einzulesen. Wenigstens habe ich jetzt mal einen Ansatz.
Vielen Dank!
leider bin ich in VBA auch nicht so fit, aber ich werde mal versuchen, mich irgendwo einzulesen. Wenigstens habe ich jetzt mal einen Ansatz.
Vielen Dank!
Antwort 9 von Aliba
Hi @all,
hab zwar von der Materie auch keinen Schimmer, aber auf Grund des Ansatzes von Pumuckel, hab ich mal versucht eine Lösung zu finden.
Muss dazu sagen dass ich auch nicht weiß, ob ichs richtig kapiert habe.
Nehmen wir mal an, in der Spalte A beginnend in Zeile 1 stehen die Messdaten. Auf Grund von Pumuckels Vorgabe könnte man nun in Spalte B die Flankenwechsel mit folgender Formel ermitteln:
=WENN(ODER(UND(A1<2,5;A2>=2,5);UND(A1>2,5;A3<=2,5));MAX($B$1:B1)+1;"")
So nun wirds ein wenig komplizierter. In C1 die Formel:
=(VERGLEICH(KKLEINSTE(B:B;MAX($B$1:B1)+5);B:B)-WENN(ISTFEHLER(VERGLEICH(KKLEINSTE(B:B;MAX($B$1:B1)-5);B:B));0;VERGLEICH(KKLEINSTE(B:B;MAX($B$1:B1)-5);B:B)+1))/WENN(ANZAHL($B$1:B1)<5;5+ANZAHL($B$1:B1);10)
In Spalte B sind ja nun die Flankenwechsel aufsteigend nummeriert. Die Formel liefert die Differenz der Zeilennummer des 5.-letzten Wechsels und des 5. folgenden Wechsels bezogen auf die aktuelle Zeile. Dies geteilt durch 10 ergibt den Schnitt der vergangenen und folgenden 10 Wechsel. Die WENN- Abfrage ist nur drin, dass es auch zu richtigen Ergebnissen kommt, wenn noch keine 5 vorhergehenden Wechsel vorhanden sind. Dann werden nur die folgenden Wechsel betrachtet wie auch , wenn z.B. schon 2 Wechsel vergangen sind,diese auch berücksichtigt werden.
Dieses Ergebnis müsste dann mit dem Zeitfaktor auf die Frequenz weiterberechnet werden.
Nachdem ich keine praxisnahen Messdaten habe, ist dies auch nur mehr theoretischer Art. Aber selbst mit meinen geringen Daten im Test, war die Rechenzeit schon enorm. Vielleicht liegts auch nur an meinem Rechner.
Hoffe mal, daß ich auch mit meiner Interpretation ein wenig richtig lag.
CU Aliba
hab zwar von der Materie auch keinen Schimmer, aber auf Grund des Ansatzes von Pumuckel, hab ich mal versucht eine Lösung zu finden.
Muss dazu sagen dass ich auch nicht weiß, ob ichs richtig kapiert habe.
Nehmen wir mal an, in der Spalte A beginnend in Zeile 1 stehen die Messdaten. Auf Grund von Pumuckels Vorgabe könnte man nun in Spalte B die Flankenwechsel mit folgender Formel ermitteln:
=WENN(ODER(UND(A1<2,5;A2>=2,5);UND(A1>2,5;A3<=2,5));MAX($B$1:B1)+1;"")
So nun wirds ein wenig komplizierter. In C1 die Formel:
=(VERGLEICH(KKLEINSTE(B:B;MAX($B$1:B1)+5);B:B)-WENN(ISTFEHLER(VERGLEICH(KKLEINSTE(B:B;MAX($B$1:B1)-5);B:B));0;VERGLEICH(KKLEINSTE(B:B;MAX($B$1:B1)-5);B:B)+1))/WENN(ANZAHL($B$1:B1)<5;5+ANZAHL($B$1:B1);10)
In Spalte B sind ja nun die Flankenwechsel aufsteigend nummeriert. Die Formel liefert die Differenz der Zeilennummer des 5.-letzten Wechsels und des 5. folgenden Wechsels bezogen auf die aktuelle Zeile. Dies geteilt durch 10 ergibt den Schnitt der vergangenen und folgenden 10 Wechsel. Die WENN- Abfrage ist nur drin, dass es auch zu richtigen Ergebnissen kommt, wenn noch keine 5 vorhergehenden Wechsel vorhanden sind. Dann werden nur die folgenden Wechsel betrachtet wie auch , wenn z.B. schon 2 Wechsel vergangen sind,diese auch berücksichtigt werden.
Dieses Ergebnis müsste dann mit dem Zeitfaktor auf die Frequenz weiterberechnet werden.
Nachdem ich keine praxisnahen Messdaten habe, ist dies auch nur mehr theoretischer Art. Aber selbst mit meinen geringen Daten im Test, war die Rechenzeit schon enorm. Vielleicht liegts auch nur an meinem Rechner.
Hoffe mal, daß ich auch mit meiner Interpretation ein wenig richtig lag.
CU Aliba

