Forum: Digitale Signalverarbeitung / DSP / Machine Learning Vorzeichenbehaftete Festkommadaten darstellen mit Matlab


von Benjamin (Gast)


Lesenswert?

Hallo,
ich lese über eine Schnittstelle 256 Datenwörter im Q1.23 Format ein 
(Hexadezimal, 24-bit, 23-bit Nachkomma-Anteil, 1-bit Vozeichen, 
Wertebereich +/-1). Nun möchte ich den Datensatz mit Matlab darstellen. 
Dabei tue ich mir jedoch etwas schwer. Wie kann ich Matlab sagen, dass 
es sich hierbei um vorzeichenbehaftete Zahlen handelt? Wenn ich mir den 
Vektor mit Hex-Zahlen plotten lasse, werden die Daten automatisch als 
vorzeichenlos interpretiert ...

Vielen Dank
Ben

von Jan (Gast)


Lesenswert?

Man kann auch in Matlab casten. Siehe zb

doc cast
doc typecast

Bitweises xor etc gibt's auch.

von Detlef _A (Gast)


Lesenswert?

Signed Q1.23 benötigt 25Bit, Du meinst signed Q0.23, geht von -1 bis 1
Dies integer-Zeug wird von Matlab schlecht unterstützt, so geht die 
Handarbeit:

clear
v=de2bi(hex2dec('80abcd'));
%v=de2bi(hex2dec('2'));
v=[v zeros(1,24-length(v))]
v=sum(v.*[ 2.^(0:22) -2^24])
% jetzt skalieren auf Q0.23 oder Q1.22
v=v/2^21;
return

Q-format
Anhang 2 von
http://focus.ti.com/lit/ug/spru565b/spru565b.pdf

Cheers
Detlef

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
Noch kein Account? Hier anmelden.