Timeline for Relationship of ADC resolution and 'lossless' float data type storage
Current License: CC BY-SA 4.0
13 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Jun 6, 2023 at 16:33 | comment | added | robert bristow-johnson | Helmut, it's the number of bits in the mantissa that matter the most. There needs to be enough range in the exponent value (and 8 bits in the exponent easily give us enough range, 5 bits would be enough). But this comes simply from the explicit definition of the value of the floating-point number with 23 mantissa bits, one *"hidden 1" bit, and one sign bit. And from the definition of the 25-bit signed integer using the sign-magnitude format. Write the definitions down side-by-side. | |
Jun 6, 2023 at 14:57 | comment | added | Helmut | hmm ok, although this might disqualify myself. Why is it obvious that the 24bit can be lossless expressed by a float32? I read this at wikipedia as well but it is not that obvious for me. I see the point for everything in the exponent (7bit) and adding the mantisse another bit. How is it for bit 8 to 24? | |
Jun 6, 2023 at 7:28 | comment | added | robert bristow-johnson | C'mon, if you can save your 24-bit sample value as a 24-bit integer that can be represented exactly in a 32-bit IEEE float, then you can store it without loss. Now, if you choose to store the same fixed-point number, but scaled by a power of 2 so that the range of the number fits a specified range (usually it's from -1 to +1), then the mantissa is exactly the same bits. Nothing is lost. | |
Jun 6, 2023 at 6:27 | history | edited | Helmut | CC BY-SA 4.0 |
clarifications
|
Jun 6, 2023 at 6:19 | history | edited | Helmut | CC BY-SA 4.0 |
added an image to further illustrate my question
|
Jun 6, 2023 at 5:56 | comment | added | Helmut | Thanks! I am not sure if you mean this, but I see the point that it is possible to map any 24-bit integer to a 32-bit float without loss, since the latter has a higher cardinality. However, I now realise that my question is whether the 32-bit float can also hold the integer values transformed by the scaling constant without loss. I am afraid that in some regions the step size of the float is not sufficient to account for this. See the edit for more information. Does your argument still hold? And if so, can you explain/suggest some mathematical/computational intuition/literature? | |
Jun 6, 2023 at 5:49 | history | edited | Helmut | CC BY-SA 4.0 |
edit for the comments and current answers
|
Jun 6, 2023 at 5:32 | history | edited | Helmut | CC BY-SA 4.0 |
edit for the comments and current answers
|
Jun 5, 2023 at 18:14 | answer | added | Hilmar | timeline score: 2 | |
Jun 5, 2023 at 18:11 | comment | added | robert bristow-johnson | A 32-bit IEEE-754 float can represent every signed 25-bit integer exactly. If the output of the ADC has 24-bit resolution, that is every value is one of $2^{24}$ values, that can be represented exactly, with no loss of data, by a 32-bit float. | |
Jun 5, 2023 at 18:07 | history | edited | Helmut | CC BY-SA 4.0 |
clarifications
|
Jun 5, 2023 at 18:03 | history | edited | Helmut | CC BY-SA 4.0 |
corrected spelling
|
Jun 5, 2023 at 17:56 | history | asked | Helmut | CC BY-SA 4.0 |