Liebe Kollegen! Ich muss herausfinden welcher Algorithmus der Spitzenwertmessung zugrunde liegt. Zitat: Mittels einer Spitzenwertmessung soll gezeigt werden, wie die maximale Amplitude eines sinusförmigen Signals gemessen, und für die weitere Verarbeitung genutzt werden kann. Diese Funktion bekommt einen neuen Spannungswert vom ADC im Bereich von 0 bis 1023 und prüft dann den neuen Wert gegen die letzten beiden, ob dieser Mittlere ein Maximum ist. Trifft dies zu, so wird das Maximum zurückgeliefert. Im gegenteiligen Fall wird -1 zurückgegeben. Könnt ihr mir das sagen? Ich finde im google nichts. DANKE! Bussi Sandy
Sandy schrieb: > Ich finde im google nichts Hast du bisher alle Hausaufgaben so gelöst, gegoogelt und was du gefunden hast als Antwort hingeschrieben und niemals selber nachgedacht ? Uff. Der Algorithmus steht doch schon in der Aufgabenberschreibung, den kann man doch quasi Wort für Wort in eine Programmiersprache nach Wahl umformulieren. Der Algorithmus funktioniert nur, wenn die 3 Messwerte in kurzen Zeitabständen ermitelt werden und die Frequenz der Sinuskurve dagegen niedrig ist, denn je grösser die Zahlenunterschiede der Messwerte werden, um so weiter kann man die Stelle des Maximums verpassen. Sind die Zahlenwerte deutlich unterschiedlich, wäre es besser durch die 3 Punkte an bekannten Zeitpunkten eine Sinuskurve zu interpolieren und dann deren Sitzenwert und Zeitpunkt wann er auftrat zurückzuermitteln. Das müsste in jeder Schule in der 11. Klasse dran gewesen sein.
Michael B. schrieb: > Sind die Zahlenwerte deutlich unterschiedlich, wäre es besser durch die > 3 Punkte an bekannten Zeitpunkten eine Sinuskurve zu interpolieren und > dann deren Sitzenwert und Zeitpunkt wann er auftrat zurückzuermitteln. Nur als Randnotiz, eine Parabel ist dafür m.E. eine bessere Wahl, die passt explizit durch die 3 Punkte durch und man muss nix groß rechnen. Das Ergebnis wird dasselbe sein.
:
Bearbeitet durch User
Hi So wie sich Das liest, ist nicht mal 'halbwegs durchdachter Code' gefordert - und der geforderte Algorithmus steht in Deinem Post eigentlich schon drin. Hier geht es um reine Theorie, oder? MfG
Dem Zitat wohnt keine Frage inne. So wie Du die Frage gestellt hast, passt sie nicht zum Zitat. Stelle doch bitte die ganze Aufgabe ein, bzw. den betreffenden Teil.
Sven B. schrieb: > Michael B. schrieb: >> Sind die Zahlenwerte deutlich unterschiedlich, wäre es besser durch die >> 3 Punkte an bekannten Zeitpunkten eine Sinuskurve zu interpolieren und >> dann deren Sitzenwert und Zeitpunkt wann er auftrat zurückzuermitteln. > Nur als Randnotiz, eine Parabel ist dafür m.E. eine bessere Wahl, die > passt explizit durch die 3 Punkte durch und man muss nix groß rechnen. > Das Ergebnis wird dasselbe sein. Nennt sich auch die Keplersche Faßformel.
THOR schrieb: > Sven B. schrieb: >> Michael B. schrieb: >>> Sind die Zahlenwerte deutlich unterschiedlich, wäre es besser durch die >>> 3 Punkte an bekannten Zeitpunkten eine Sinuskurve zu interpolieren und >>> dann deren Sitzenwert und Zeitpunkt wann er auftrat zurückzuermitteln. >> Nur als Randnotiz, eine Parabel ist dafür m.E. eine bessere Wahl, die >> passt explizit durch die 3 Punkte durch und man muss nix groß rechnen. >> Das Ergebnis wird dasselbe sein. > > Nennt sich auch die Keplersche Faßformel. Naja. Die Kepler'sche Fassregel ist ein Integrationsverfahren, was auch eine Parabel durch 3 Punkte verwendet, ja. Das Ziel sowie die Formel ist aber eine andere. Hier willst du ja nicht die Fläche unter der Kurve sondern den x-Wert des Maximums.
:
Bearbeitet durch User
Hi Sven B. schrieb: > Hier willst du ja nicht die Fläche unter der Kurve > sondern den x-Wert des Maximums. Äh, eigentlich willst DU 'nur' wissen, ob der gerade aktuelle Wert gleich dem Maximum ist (wenn Er größer war, ist Er Es ja jetzt). Riecht nach 'nem Komparator, einem Spannungsfolger, einer Diode, einem Widerling (zum Entladen des) und einen Kondensator. MfG
Sven B. schrieb: > Nur als Randnotiz, eine Parabel ist dafür m.E. eine bessere Wahl, die > passt explizit durch die 3 Punkte durch und man muss nix groß rechnen. Problem ist nur, dass eine Parabel das falsches Modell ist, um einen Sinus zu approximieren. Mit zunehmendem Abstand der Stützpunkte wirst du zunehmen Mist rauskriegen. Ganz schlimm wird es, wenn du mit solch einem falschen Modell versuchst, zu extrapolieren weil beispielsweise deine Stützpunkte gerade nur auf der einen Seite vom Maximum des Sinuskurvenabschnitts liegen.
Wolfgang schrieb: > Sven B. schrieb: >> Nur als Randnotiz, eine Parabel ist dafür m.E. eine bessere Wahl, die >> passt explizit durch die 3 Punkte durch und man muss nix groß rechnen. > > Problem ist nur, dass eine Parabel das falsches Modell ist, um einen > Sinus zu approximieren. Mit zunehmendem Abstand der Stützpunkte wirst du > zunehmen Mist rauskriegen. Eine Parabel ist ein hervorragendes Modell um einen Sinus an seinem Maximum zu interpolieren. Ich glaube sogar es ist mathematisch eh ideal wenn du nur 3 Punkte hast wie hier vorgegeben war (will ich jetzt mal aber nicht zu fest behaupten), aber es ist jedenfalls sehr gut. Wir extrapolieren hier ja nicht nach rechts und links, sondern interpolieren zwischen den gegebenen Punkten. Dass es nach rechts falsch wird ist klar.
:
Bearbeitet durch User
Liebe Kollegen! Vielleicht habe ich mich falsch ausgedrückt. Ich verstehe schon was das Stück Code macht. Ich soll allerdings den Algorithmus dazu aufschreiben. Rein theoretisch. Ich glaube nicht, dass er eine analoge Schaltung mit C und Diode meint. @Thor: Ich würde Dir in den Kaffee spucken ;) Bussi Sandy
Sandy schrieb: > Vielleicht habe ich mich falsch ausgedrückt. Ich verstehe schon was das > Stück Code macht. Ich soll allerdings den Algorithmus dazu aufschreiben. > Rein theoretisch. Struktogramm, Programmablaufplan malen. Wo ist das Problem?
Sven B. schrieb: > Eine Parabel ist ein hervorragendes Modell um einen Sinus an seinem > Maximum zu interpolieren. Alles klar. Wenn du nachts einen Schlüssel verloren hast, suchst du ihn dann auch unter der Laterne, weil es leichter zu rechnen ist - äh - weil es dort heller ist?
Ich habe kein Struktogramm oder Programmablaufplan. Ich habe nur das bisschen Text. Bussi Sandy
Sandy schrieb: > Ich habe kein Struktogramm oder Programmablaufplan. STK500-Besityer schrieb: > Struktogramm, Programmablaufplan malen. Was genau verstehst du an dem Wort "malen" nicht?
Wolfgang schrieb: > Sven B. schrieb: >> Eine Parabel ist ein hervorragendes Modell um einen Sinus an seinem >> Maximum zu interpolieren. > > Alles klar. > > Wenn du nachts einen Schlüssel verloren hast, suchst du ihn dann auch > unter der Laterne, weil es leichter zu rechnen ist - äh - weil es dort > heller ist? Junge, du hast deinen einen Messpunkt bei kleiner als 0.2 gewählt. Das ist fast 90° neben dem Maximum. Ich hab gesagt "an seinem Maximum". Nimm mal drei Punkte die weniger als 10° neben dem Maximum liegen und mach ein paar Promille Rauschen drauf, dann wirst du keinen Unterschied mehr sehen.
:
Bearbeitet durch User
Hi Es ist genau so, wie STK und Wolfgang schreiben: aufmalen Du hast einem Punkt, wo Du die Spannung erfasst, wo verglichen wird, wo der Ausgang gesetzt wird, wo der aktuelle Wert angapasst wird. Die Punkte können auch zusammen gefasst werden. Die Kunst ist es, diese Punkte so zu verschachteln, daß jeder Punkt nur 1x vor kommt. Zuerst ist es aber egal, ob Di den neuen Wert öfter mit dem Alt-Wert vergleichst um z.B. 1. den Ausgang auf Wert zu setzen, wenn Wert>Altwert 2. den Altwert anzugleichen, wenn Wert>Altwert Hiermit solltest Du zumindest in ein paar Zeilen Text zusammen schreiben können, wie der Ablauf aussieht, Mehrfachnennungen sind vorerst egal. MfG
Sven B. schrieb: > Junge, du hast deinen einen Messpunkt bei kleiner als 0.2 gewählt. Das > ist fast 90° neben dem Maximum. Ich hab gesagt "an seinem Maximum". Klar, wenn man nahe genug am Maximum misst, lässt sich jede beliebige, krumme Kurve durch eine Parabel approximieren. Aber auch dann wird der Fehler bei gleicher Anzahl freier Parameter größer sein, als mit dem richtig gewählten Modell - du siehst die Abweichung nur nicht mehr so oder wegen der Messfehler spielt der Modellfehler praktisch keine Rolle mehr.
Wolfgang schrieb: > Sven B. schrieb: >> Junge, du hast deinen einen Messpunkt bei kleiner als 0.2 gewählt. Das >> ist fast 90° neben dem Maximum. Ich hab gesagt "an seinem Maximum". > > Klar, wenn man nahe genug am Maximum misst, lässt sich jede beliebige, > krumme Kurve durch eine Parabel approximieren. Nö -- x^4 in 0 zum Beispiel nicht. Aber beim Sinus geht es eben. > du siehst die Abweichung nur nicht mehr so > oder wegen der Messfehler spielt der Modellfehler praktisch keine Rolle > mehr. Genau das war meine Aussage ... und dann hast du aus irgendeinem Grund diese Diskussion angefangen ;)
Sandy schrieb: > Ich habe kein Struktogramm oder Programmablaufplan. > Ich habe nur das bisschen Text. Wir können dir nicht die verpassten 10 Jahre Schulbildung hier in einem Beitrag nachreichen, bei dir scheint bereits die erste Stunde der Informatikausbildung zu fehlen so daß du mit den Worten "Algorithmus" und "prüfen auf Maximum" nichts anfangen kannst. Erkenne einfach, daß mit der Methode "man kann alles googlen und muss nichts selber denken" eines Tages einfach Ende im Gelände ist, und der Tag ist (spätestens) heute erreicht. Wer nicht erkennt, daß die Lösung direkt vor einem liegt, dem ist auch nicht mit fertig gelösten Hausaufgaben geholfen.
Ich erinnere aus der Mathe-Vorlesung im zweiten Semester noch den Spruch des Profs: "wer mit Polynomen interpoliert, ist zu faul, sich um die richtigen Ansatzfunktionen Gedanken zu machen". ;-) Andererseits braucht man dafür halt auch nur wenig Rechenaufwand, was auf einem µC ein schlagendes Argument ist. Übrigens merkt man im Forum, daß Semester-Ende ist und die Klausuren anstehen. Jetzt kriegen die ganzen Leute Panik, die im Semester nur Party gemacht haben. Klar, daß das im Februar/März geschieht, weil das der Erstsemesterjahrgang ist und die erste Siebung einsetzt.
Nop schrieb: > Ich erinnere aus der Mathe-Vorlesung im zweiten Semester noch den Spruch > des Profs: "wer mit Polynomen interpoliert, ist zu faul, sich um die > richtigen Ansatzfunktionen Gedanken zu machen". ;-) Stimmt auch ;) Aber: Die Ansatzfunktion kennen und dann im relevanten Punkt geeignet durch eine Taylorreihe nähern ist was anderes als einfach irgendein Polynom draufwerfen. > Andererseits braucht man dafür halt auch nur wenig Rechenaufwand, was > auf einem µC ein schlagendes Argument ist. Genau -- ist das mit dem Sinus überhaupt analytisch lösbar? Ich glaube nicht, und dann muss man direkt nichtlineares least squares auf einem Mikrocontroller machen oder sowas. Für effektiv keinen Gewinn an Genauigkeit.
:
Bearbeitet durch User
Nop schrieb: > Ich erinnere aus der Mathe-Vorlesung im zweiten Semester noch den Spruch > des Profs: "wer mit Polynomen interpoliert, ist zu faul, sich um die > richtigen Ansatzfunktionen Gedanken zu machen". ;-) > > Andererseits braucht man dafür halt auch nur wenig Rechenaufwand, was > auf einem µC ein schlagendes Argument ist. Noch weniger Rechenaufwand benötigt man, wenn man sich mit der "Berechnung" auf die laut Spezifikation geforderte Genauigkeit beschränkt ;-) Sandy schrieb: > und prüft dann den neuen Wert gegen die letzten beiden, ob > dieser Mittlere ein Maximum ist. Trifft dies zu, so wird das Maximum > zurückgeliefert. @TO: ich denke es könnte dir helfen nochmal nachzugucken, wie man in der Mathematik Hoch- und Tiefpunkte einer Funktion ermittelt (Kurvendiskussion). http://www.mathebibel.de/extremwerte-berechnen Um aus abgetasteten Daten die erste Ableitung zu erhalten, zieht man einfach den letzten Messwert vom aktuellen Messwert ab (= differenzieren). Wenn man möchte kann man so auch die 2. Ableitung hinbekommen (Differenzbildung zwischen den bereits differenzierten Werten). Um eine Nullstelle der 1. Ableitung von abgetasteten Werten zu erkennen, sollte man allerdings nicht davon ausgehen, dass man hier genau eine 0 "trifft". Stattdessen guckt man, ob sich die erste Ableitung (Steigung der Kurve) von positiv nach negativ ändert, dann muss die Nullstelle irgendwo dazwischen gelegen haben.
:
Bearbeitet durch User
Neben all den Aussagen wie dumm ich bin, ist Taylorreihe die richtige Antwort? Ist der Algorithmus, der dahinter liegt die Taylorreihe? Bussi Sandy
Sandy schrieb: > ist Taylorreihe die richtige Antwort? > Ist der Algorithmus, der dahinter liegt die Taylorreihe? Nein und die Taylorreihe ist auch kein Algorithmus.
Dann war das das Missverständnis. Ich dachte ich soll eine mathematische Methode finden. Es geht einfach nur darum was der Code macht!? Das bekomme sogar ich hin.
Joe F. schrieb: > Noch weniger Rechenaufwand benötigt man, wenn man sich mit der > "Berechnung" auf die laut Spezifikation geforderte Genauigkeit > beschränkt ;-) So gesehen ist hier der Rechenaufwand Null gefordert. Lt. Aufgabenstellung soll ein neuer Messwert nur mit den letzten beiden verglichen werden und genau dann zurück geliefert werden, wenn er größer als diese beiden ist, sonst -1. Die Aufgabe liegt bestenfalls auf 7.Klasse Niveau und hat nichts mit Kurvendiskussion oder sonstigen "höheren" Weihen der Mathematik zu tun ;-)
Wolfgang schrieb: > Lt. Aufgabenstellung Die Aufgabenstellung ist (mir zumindest) einigermaßen unklar. Geht es darum, den Algorithmus zu erklären? Wohl kaum, denn er steht in der Aufgabe. Geht es darum, zu begründen, wie/warum der Algorithmus funktioniert? Dann wären die Grundlagen der Kurvendiskussion evtl. nützlich. Vielleicht geht es auch nur darum ein Wort aus dem Vorlesungsscript zu zitieren, um nachzuweisen, dass man es gelesen hat. Könnte dann sowas wie "lineare Suche" oder "sequentielle Suche" sein, oder "Entscheidungsalgorithmus" oder "Annäherungsverfahren"... Man weiss es nicht.
:
Bearbeitet durch User
Danke für Eure Hilfe. Ich glaube mit "lineare Suche" und dgl. komme ich durch die Wiederholung. Mal sehen wie streng er ist. Notfalls schau ich ganz arm drein und bin lieb. Ein Vorteil wenn man ein Mädchen ist. Bussi Sandy
Sandy schrieb: > Notfalls schau ich ganz arm drein und bin > lieb. Ein Vorteil wenn man ein Mädchen ist. Klar. Plane einfach genug Zeit für Frisör und Nagellack ein. Wird schon gut gehen.
Taylor-Reihen, Polynom-Interpolationen und und und ... Glaube, das Problem ist vmtl viel einfacher ... Per ADC kommen laufend neue Werte rein und man hat die 2 alten Werte. Bei einem Sinus sieht es doch wohl so aus:
1 | * |
2 | * |
3 | * |
oder
1 | * |
2 | * |
3 | * |
oder
1 | * |
2 | * * |
oder halt noch andersrum ... Sowas kann man doch mit einer if-Abfrage lösen, ob es sich um ein Extremwert handelt und das ist dann auch der Spitzenwert ... Und - oh Wunder - das passt sogar zur Aufgabenstellung ;-) > Diese Funktion bekommt einen neuen Spannungswert vom ADC im Bereich > von 0 bis 1023 und prüft dann den neuen Wert gegen die letzten beiden, > ob dieser Mittlere ein Maximum ist. Trifft dies zu, so wird das > Maximum zurückgeliefert.
:
Bearbeitet durch User
Sandy schrieb: > Ein Vorteil wenn man ein Mädchen ist. Das erinnert mich an einen Schulaufsatz in MAD, unter den der Lehrer schreibt: "Liebe Sandy, leider nur eine 4. Eincremen schreibt man mit c und nicht mit k. Komm' doch nach der Schule bei mir vorbei, damit wir das üben können!" ;-) Gruß Jobst
:
Bearbeitet durch User
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.