Hallo, ich habe im Netz beiliegendes Programm für den Kalman-Filter gefunden und für mich in eine andere Sprache umgeschrieben. Zur Überprüfung suche ich jemand, der das C-Programm mal laufen lässt und mir die ersten 20 ausgegebenen Werte zukommen lässt, so dass ich diese zur Kontrolle mit den Ausgaben meines Programmes vergleichen kann. Danke. W.
das war schnell, danke. Kann ich die Ausgabe auch mal mit 4 NAchkommastellen haben ? Danke W.
Wolfgang Schmidt schrieb: > das war schnell, danke. > > Kann ich die Ausgabe auch mal mit 4 NAchkommastellen haben ? > > Danke > > W. Hier.
Da war wohl argh schneller. An den TO aus reinem Interesse: in welche Sprache hast dus denn umgeschrieben? mfg mf
Mini Float schrieb: > Da war wohl argh schneller. :D Ich hab immer ein Code::Blocks-Projekt auf dem Desktop für genau solche Fälle. Vorher war da ein Sudokusolver drin, jetzt halt irgendein Filterzeugs (zu hoch für mich)... Und die Anzahl Dezimalstellen zu erhöhen ist ja wahrlich keine Kunst, ebenso die Ausgabe in eine Datei zu bekommen. Ist übrigens sauber geschrieben, nur 2 Warnungen unused argc, argv.
Oliver J. schrieb: > hier nochmal mit 4 Dezimalstellen Guck mal weiter oben. ;-) Interessant solche Threads, die zeigen dass es hier einige hilfsbereite Leute gibt. :-)
Erst mal vielen Dank für die Hilfe. Ihr dürft mich schlagen, aber ich habe den Code in BASCOM umgeschrieben. Nach dem Vergleich mit euren Ergebnissen kann ich sagen, dass ich genau die gleichen Werte erhalte (trotz BASCOM). Verwundert bin ich nur über die Ergebniswerte. Die passen so garnicht zu den Eingaben. Kalman-Ergebnisse erwarte ich als geglättete Werte in der Größenordnung der Einganswerte. Hier enthalten die Ergebnisse richtige Ausreiser, so dass vermutlich im Ausgangscode ein Fehler enthalten ist. Zum Schluss sehen die Ergebnisse jedoch ganz gut aus. Kann von euch jemand die Kalman-Ergebnisse beurteilen ? Danke W.
Wolfgang Schmidt schrieb: > Nach dem Vergleich mit euren Ergebnissen kann ich sagen, dass ich genau > die gleichen Werte erhalte (trotz BASCOM). Gleichheit der Ergebnisse wird dir hier auch kaum einer anzweifeln. Aber Geschwindigkeit... duckundweg
Mini Float schrieb: > Wolfgang Schmidt schrieb: >> Nach dem Vergleich mit euren Ergebnissen kann ich sagen, dass ich genau >> die gleichen Werte erhalte (trotz BASCOM). > > Gleichheit der Ergebnisse wird dir hier auch kaum einer anzweifeln. Aber > Geschwindigkeit... *duckundweg* Ach Troll, elender! :D lach (s. auch AVR-Studio-Thread...)
Wo gibt es denn eine Aussage über die Geschwindigkeit des gleichen Codes in BASCOM und C auf dem gleichen Atmega ? Wer kann den einmal die Laufzeit messen ? z.B. mit einem Atmega 8 oder 32 und bitte Quarzfrequenz angeben Vorschlag: Nur die Rechnungen durchführen und nach dem Abschluss ein "fertig" ausgeben. Ich werde das in den nächsten Tagen dann auch mal machen. Oder hat jemand einen Simulator der die Takte für einen Aufruf der Funktion ausgeben kann ? W.
Ich habe gerade 13247 Zyklen für einen Aufruf der Kalman-Funktion gemessen. Für alle 500 Werte sind das ohne Ausgaben rund 0,415 Sekunden mit einem Atmega32 und 16MHz Takt. W.
Wolfgang Schmidt schrieb: > Ich habe gerade 13247 Zyklen für einen Aufruf der Kalman-Funktion > gemessen. Weil in dieser Funktion in float gerechnet wird, wird es kaum einen Unterschied zwischen C und Bascom geben. Wolfgang Schmidt schrieb: > Ich habe gerade 13247 Zyklen [...] gemessen. Das kann man pauschal nicht sagen, da für float z.B. mal mehr, mal weniger geshiftet werden muss, bis eine normalisierte Zahl rauskommt(bei Multiplikationen). Die Multiplikationen können nur zum Teil in Hardware ausgeführt werden, da der in der Hardware vorhandene Multiplier keine 24bit-Zahlen verarbeiten kann(23 bit Mantisse mit wegnormalisierter "leading one"). Außerdem wird in der Funktion auch dividiert. Weil die kleinen Megas keinen Divider in Hardware haben, lassen sich auch hier keine absoluten Zykluscounts angeben. mfg mf
Mini Float schrieb: > Weil in dieser Funktion in float gerechnet wird, wird es kaum einen > Unterschied zwischen C und Bascom geben. Genau diesen Satz wollte ich von einem C-Programmierer hören. Damit dürfte die Überheblichkeit der C-Programmierer einen Dämpfer bekommen haben. Dass die im Simulator angegebene Zyklenzahl von Randbedingungen abhängt, ist doch klar. Normalerweise gewinnt der bessere Programmierer. Ob C++ oder BASCOM oder auch PASCAL ist fast egal. Nur Assembler nimmt eine Sonderstellung ein. W.
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.