MATLAB: Read binary data as three UBYTE (8-bit Unsigned Byte) in MATLAB and use bit shift operators to get two 12 bit streams

12-bit8-bitbitshift

I need to read the data as UBYTE (8-bit Unsigned Byte) in MATLAB and then used bit shift operators to get two 12-bit streams with 3600000 samples. I have to do that by a command that: the first two 12 bit values are contained in the first 3 UBYTEs, 8 bits from the first byte with the first 4 bits from the second byte, then the first 4 bits from byte 2 with all 8 bits from byte 3. Then the process repeats with the next 3 bytes (byte 4-6 etc.) and so on. The related commands are as follows.
How can I apply this command in MATLAB?

Best Answer

Use the bit-wise operations. You're also going to need to convert between data types.
x = int8(5)
y = int16(x)
You may need or want to read the "Largest and Smallest Values for Integer Classes" section on this documentation page before you start writing your code.