Hallo, eine kleine Rechenaufgabe die kniffliger ist, als ich zunächst dachte: Ein Spannungsbereich von 0 V bis 8 V soll in 8 Intervalle unterteilt werden, sodass jedes höhere Intervall doppelt so groß ist wie das darunter liegende. Hier mal ein misslungener Versuch: I1: 8 V - 4 V I2: 4 V - 2 V I3: 1 V - 0.5 V I4: 0.5 V - 0.25 V I5: 0.25 V - 0.125 V I6: 0.125 V - 0.0625 V I7: 0.0625 V - 0.03125 V I8: 0.03125 V - 0 V Der Fehler liegt darin, dass Intervall 7 und Intervall 8 gleich groß sind. Die Frage ist nun, wie sieht die richtige Lösung aus. Vielleicht hat jemand eine Idee!
Ansatz: 0x - 1x: delta = 1x 1x - 3x: delta = 2x 3x - 7x: delta = 4x . . .
1x+2x+4x+8x+16x+32x+64x=127x 8000 mV / 127 = 63 mV I8 = 0,000 V .. 0,063 V I7 = 0,063 V .. 0,189 V usw.
1 | breite = 2 .** (0:7) |
2 | ; normieren |
3 | breite = breite ./ sum(breite) |
4 | ; für 8V |
5 | breite = breite * 8.00 |
6 | |
7 | => 0.031373 0.062745 0.125490 0.250980 0.501961 1.003922 2.007843 4.015686 |
ach so, ja - 8 Intervalle ;-) 1x+2x+4x+8x+16x+32x+64x+128x = 255x 8000 mV / 255 = 31,4 mV I8 = 0 V .. 0,031 V usw.
Das löst aber das Problem des OP nicht, dass die Intervalle 7 und 8 gleich groß sind: 8:0 - 0,0314 -> 0,0314 7:0,0314 - 0,0628 -> 0,0314 6:0,0628 - 0,1256 -> 0,0628 ... Eine Lösung kenne ich aber auch nicht... bin geneigt abraxa zuzustimmen. Andreas umgeht das Problem nur, indem er bei Interval 7 anfängt.
verstehe ich nicht... ist doch alles klar beschrieben worden? lassen wir jetzt mal Rundungsfehler weg, ergeben sich folgende acht Intervalle: 0,000 .. 0,031 0,031 0,031 .. 0,094 0,063 0,094 .. 0,219 0,125 0,219 .. 0,470 0,251 0,470 .. 0,972 0,502 0,972 .. 1,976 1,004 1.976 .. 3,984 2,008 3,984 .. 8,000 4,016
Du musst immer zu dem Grenzwert den Intervallwert dazu addieren. 1: 0...0,031 => 0,031 2: 0,031...0,093 => 0,062 3: 0,093...0,217 => 0,124 4: 0,217...0,465 => 0,248 5: 0,465...0,961 6: 0,961...1,953 7: 1,953...3,937 8: 3,937...8
0xBF19AD hat zwischen I3 und I2 eine Lücke von einem Volt. Das erklärt sein Problem.
Gebt den Leuten doch nicht immer die fertige Loesung. Ein Ansatz wie Nase es gegeben hat reicht...
Das kleinste Intervall möge die länge x haben. Anzahl_der_Intervalle größtes_Intervall alle_Intervalle_zusammen 1 x x 2 2x 3x 3 4x 7x 4 8x 15x ... ... ... Also ist die Gesamtbreite = (2^n - 1)*x, mit n als Anzahl_der_Intervalle. Somit ergibt sich mit n=8 x = 8 V / (2^8 - 1) = 8 V / 255 als kleinstes Intervall.
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.