-         

Ergebnis 1 bis 5 von 5

Thema: Datenreduktion

  1. #1

    Datenreduktion

    Anzeige

    Habe mir mal über folgendes Gedanken gemacht:
    Ich habe einen Datenlogger gebaut, der 4 analoge Datensätze (je 10-Bit)
    in jeweils einem Wort in einem externen EEprom abspeichert.
    Bei einem 8K-Byte-EEprom kann ich nun 1000 Datensätze speichern.

    Da der 10-Bit Datensatz einer Zahl von 0-1023 entspricht, ergeben 4 Datensätze bei der Addition max. 4092.
    Ein Wort kann aber eine Zahl von 0-65535 darstellen.

    Wie kann man nun die 4 10-Bit Zahlen so in ein Wort packen, dass man sie anschliessend wieder zurückrechnen kann.

    Wenn sich dafür eine Lösung finden würde, könnte man 4000 Datensätze speichern.

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    30
    Beiträge
    674
    Deine 4 Messwerte benötigen im Moment ja 4*2*8Bit = 64Bit
    Brauchen tust du aber nur 4*10Bit = 40Bit

    Du kannst also (64 - 40)Bit = 24Bit = 3Byte sparen, wenn du die Werte bitweise zusammenpackst. Dabei kann ich dir leider nicht helfen, da ich mit Bascom überhaupt keine Erfahrung hab. Ich könnte dir höchstens in c helfen.

  3. #3
    Stimmt, die Idee ist mir auch schon gekommen, und ich habe auch schon darüber nachgedacht dann 6 * 10 Bit zuspeichern. Dann wären nur 4 Bit verschenkt.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    30
    Beiträge
    674
    Vom Aufwand her dürfte es doch keinen Unterschied geben, ob du das ganze in 5 oder 6 Bytes speicherst. Aber bei erster Methode mit 5Bytes kannst du mehr Datensätze speichern.

    Wenn ich mich recht erinner, hat auch mal jemand was gemeint, dass man die unteren zwei Bits auch weglassen kann, da die eh mehr zufällig sind. Dann könntest du die 4 Werte auch in 4Bytes unterbekommen.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.01.2006
    Ort
    Mönchengladbach
    Beiträge
    544
    @Pascal:
    Ich hab mal gehört, daß nur das LSB unbrauchbar sein soll... hängt aber eventuell auch von der Wandlergeschwindigkeit ab.

    @tomdul:
    Wenn die Messwerte nicht mit gleicher Wahrscheinlichkeit auftauchen und du eventuell noch genug Rechenzeit hast, dann könntest du auch eine Huffman-Kodierung einsetzen. Im Netz findet man einige Informationen dazu. Ich würde so vorgehen:
    Zuerst würde ich eine ganze Weile lang Messwerte aufnehmen und dann unkompremiert abspeichern. Dann würde ich die Messwerte als HEX-Zahlen darstellen lassen und die Verteilung der Ziffern 0-9 und Buchstaben A-F bestimmen (die häufigkeit, wie oft diese im ganzen Datensatz vorhanden sind). Daraus würde ich dann den Binärbaum zusammenstellen, den ich beim Codier und Decodiervorgang benutze. Das hat den großen Vorteil, daß der AVR nicht den Binärbaum erstellen muss.

    Gruß,
    SIGINT

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •