Systems and methods for self-synchronized communications
AssigneeKhalifa University of Science and Technology
InventorsShahzad Muzaffar, Ibrahim Elfadel
Life of this patent
Estimating the term…
Abstract
A method for transmitting a data block begins with segmenting the data block into a number of data sub-blocks. Each data sub-block where a number of high bits is greater than a number of low bits is then inverted. The data sub-blocks are then grouped into sets of data sub-blocks. For each set of data sub blocks, a number of pulses indicative of a number of high bits in each one of the data sub-blocks in the set is transmitted, there is a delay, and a number of pulses indicative of each high bit in each data sub-block of the set of data sub-blocks is transmitted followed by a delay. Finally, a number of pulses indicative of which ones of the data sub-blocks were inverted is transmitted.
Claims20
A method for transmitting a data block comprising:
- segmenting the data block into a plurality of data sub-blocks;
- inverting each one of the plurality of data sub-blocks if a number of high bits in the data sub-block is greater than a number of low bits in the data sub-block;
- grouping the plurality of data sub-blocks into sets of data sub-blocks;
- for each set of data sub-blocks:
- transmitting a number of pulses indicative of a number of high bits in each one of the data sub-blocks in the set of data sub-blocks;
- waiting for a delay;
- for each high bit in each data sub-block in the set of data sub-blocks:
- transmitting a number of pulses indicative of an index of the high bit in the data sub-block;
- and
- waiting for a delay;
- and
- transmitting a number of pulses indicative of which ones of the plurality of data sub-blocks were inverted.
A method for decoding a pulsed data stream comprising:
- receiving the pulsed data stream, the pulsed data stream comprising pulse groups each including a number of pulses and separated from one another by a delay;
- grouping the pulse groups into sets of pulse groups;
- for each set of pulse groups:
- counting a number of pulses in each pulse group of the set of pulse groups;
- and
- using the number of pulses in a first one of the pulse groups of the set of pulse groups to generate a number of data sub-blocks from the remaining pulse groups of the set of pulse groups;
- counting a number of pulses in a last pulse group of the data stream;
- inverting certain ones of the data sub-blocks based on the number of pulses in the last pulse group of the pulsed data stream;
- and
- concatenating the data sub-blocks to generate a binary data block.
A computing system comprising:
- processing circuitry;
- communications circuitry coupled to the processing circuitry;
- and
- a memory coupled to the processing circuitry and storing instructions configured to cause the processing circuitry to:
- segment a data block into a plurality of data sub-blocks;
- invert each data sub-block if a number of high bits in the data sub-block is greater than a number of low bits in the data sub-block;
- group the plurality of data sub-blocks into sets of data sub-blocks;
- for each set of data sub-blocks:
- transmit a number of pulses indicative of a number of high bits in each one of the data sub-blocks in the set of data sub-blocks via the communications circuitry;
- wait for a delay;
- for each high bit in each data sub-block in the set of data sub-blocks:
- transmit a number of pulses indicative of an index of the high bit in the data sub-block via the communications circuitry;
- wait for a delay;
- and
- transmit a number of pulses indicative of which ones of the plurality of data sub-blocks were inverted.
Dependencies are inferred from the claim text.