On 2014-10-30 15:00, Scott Halligan wrote:
[..] I'm a complete train wreck
> when it comes to understanding what you mean regarding unsigned vs.
> signed samples.

Wikipedia has these articles related to it:
https://en.wikipedia.org/wiki/Signedness
https://en.wikipedia.org/wiki/Signed_number_representations

But that does not IMHO really explain it directly, hence:

The "sign" in signed means that there is a '+' or '-' sign in front of
the number.

Thus signed has a '+' or a '-', positive or negative.
Unsigned does not. Unsigned is thus always a positive number.

In computing that is represented by having the first bit as 'positive'
(typically the bit is then '0') or negative, the first bit is then '1'.

If we have _unsigned_ 8 bit samples we have a range of    0 till 255.
If we have   _signed_ 8 bit samples we have a range of -127 till +127.

binary          unsigned        signed
-------------------------------------------------
0000 0000       0               0
0000 0001       1               1
0000 0010       2               2
0000 0011       3               3
0000 0100       4               4
0000 0101       5               5
0000 0110       6               6
0000 0111       7               7
...
0111 1100       125             125
0111 1110       126             126
0111 1111       127             127
1000 0000       128             -0
1000 0001       129             -1
1000 0010       130             -2
1000 0011       131             -3
...
1111 1010       250             -122            (effectively -128)
1111 1011       251             -123
1111 1100       252             -124
1111 1101       253             -125
1111 1110       254             -126
1111 1111       255             -127


Hence when the hardware and software have a different idea of what the
format is you got a problem.

Eg, if the hardware emits 8 bit _unsigned_ sample of 250, the software
that is unsigned mode will read it as -122.

The same goes for 16 bit and 32 bit etc of course. The first bit is the
'sign' in signed numbers.

Hope that clarifies it at least a little bit.

Greets,
 Jeroen

_______________________________________________
HackRF-dev mailing list
[email protected]
https://pairlist9.pair.net/mailman/listinfo/hackrf-dev

Reply via email to