LabVIEWForum.de - Was geht bei meinem TypeCast schief?

LabVIEWForum.de

Normale Version: Was geht bei meinem TypeCast schief?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin Moin!

Ich habe eine Wav-Datei mit 96kHz Abtastrate, die ich einlesen und weiterverarbeiten möchte. Um den Speicherbedarf nicht vollends explodieren zu lassen, möchte ich die eingelesenen double-Werte in 16bit Integer (wie bei wav verwendet) umwandeln. Deswegen dachte ich mir, ich nehm einfach das Datenarray aus der Waveform, multipliziere das mit 32767 um die entsprechende Aussteuerung zu bekommen und mache dann einen TypeCast nach 16bit. So ähnlich habe ich das auch früher schon gemacht, wo alles wunderbar klappt.
Wenn ich das allerdings nun so mache, bleibt von meinem Verlauf nicht mehr viel über - siehe Screenshot. Zudem ist komischer Weise die Länge des Arrays vor und nach dem Cast unterschiedlich lang?! Huh
Wo liegt mein Fehler?

Lv85_img
Nimm anstelle des Typcast die einfachen Umwandlungsfunktionen.

EDIT: Das Typcast castet das 8Byte grosse DBL zu 2Byte grossen I16, deshalb ist das Array danach 4 mal grösser.
Klar - ich Depp!
Wenn man einmal ein Brett vor dem Kopf hat... Vielen Dank!

Trotzdem würde mich aus Neugier interessieren, was beim Typecast wohl schief läuft?
da läuft nix schief - ich hatte überehen dass Du schon eine Antwort hast :-)
' schrieb:Trotzdem würde mich aus Neugier interessieren, was beim Typecast wohl schief läuft?
Typecast interpretiert die Daten im Speicher nur anders, es wird nichts umgerechnet.
Beispiel double: Das Zahlenformat ist intern 8 byte lang, die insgesamt 64bit beinhalten Vorzeichen, Mantisse, Exponent. Wenn ich dieses 64bit Gleitkommaformat in ein Ganzzahl-Array typecaste, also z.b. in 8*U8, 4*U16, 2*U32 oder 1*U64, dann haben diese Zahlen überhaupt nichts direkt mit dem ursprünglichen Wert der Gleitkommazahl zu tun.

Beispiel Wert "1" typegecastet in 8*U8 ergibt diese 64bit:
[attachment=19558]
Wenn Du dich nun mal mit dem IEEE-Gleitkommaformat beschäftigst, dann wird Dir, wenn Du so wissensdurstig bist, nach einer Stunde Studium der Sinn jedes einzelnen Bits verständlich werden.
Danke für die Antwort. Wenn ich jetzt noch einmal drüber nachdenke war klar, dass das Vorgehen zum Scheitern verurteilt war.
Referenz-URLs