CRCStack¶
- class baseband.base.utils.CRCStack(polynomial)[source] [edit on github]¶
Bases:
CRC
Cyclic Redundancy Check for a bitstream.
See https://en.wikipedia.org/wiki/Cyclic_redundancy_check
Once initialised, the instance can be used as a function that calculates the CRC, or one can use the
check
method to verify that the CRC at the end of a stream is correct.This class is specifically for arrays in which multiple bit streams occupy different bit levels, and the dimension is treated as the index into the bits. A single stream would thus be of type
bool
. Unsigned integers represent multiple streams. E.g., for a 64-track Mark 4 header, the stream would be an array ofnp.uint64
words.- Parameters:
- polynomialint
Binary encoded CRC divisor. For instance, that used by Mark 4 headers is 0x180f, or x^12 + x^11 + x^3 + x^2 + x + 1.
See also
baseband.base.utils.CRC
for calculating CRC for a single value or an array of values.
Methods Summary
__call__
(stream)Calculate CRC for the given stream.
check
(stream)Check that the CRC at the end of athe stream is correct.
Methods Documentation
- __call__(stream) [edit on github]¶
Calculate CRC for the given stream.
- Parameters:
- streamint or array of unsigned int
The integer (or array of integers) to calculate the CRC for.
- Returns:
- crcint or array
If an array, the crc will have the same dtype as the input stream.
- check(stream)[source] [edit on github]¶
Check that the CRC at the end of athe stream is correct.
- Parameters:
- streamint or array of unsigned int
For an integer, the value is the stream to check the CRC for. For arrays, the dimension is treated as the index into the bits. A single stream would thus be of type
bool
. Unsigned integers represent multiple streams. E.g., for a 64-track Mark 4 header, the stream would be an array ofnp.uint64
words.
- Returns:
- okbool
True
if the calculated CRC is all zero (which should be the case if the CRC at the end of the stream is correct).