Module rpps.coding.types.repeat

Classes

class repeat (count)
Expand source code
class repeat(_code):
    def __init__(self, count):
        super().__init__(1, count)

    def encode(self, bits: np.ndarray):
        blocks = block(bits, self.num)

        encoded = np.empty((len(blocks), self.den), dtype=bool)

        for i, blk in enumerate(blocks):
            encoded[i,:] = np.repeat(blk, self.den)

        encoded = unblock(encoded).astype(bool)

        assert len(encoded) == len(bits) * self.den
        return encoded

    def decode(self, bits: np.ndarray):
        blocks = block(bits, self.den)

        decoded = np.empty((len(blocks), self.num), dtype=bool)

        codewords = np.array([np.zeros(self.den, dtype=bool), np.ones(self.den, dtype=bool)])

        for i, blk in enumerate(blocks):
            dist = np.empty((2))
            for j, code in enumerate(codewords):
                dist[j] = np.bitwise_xor(code, blk).sum()
            decoded[i] = np.where(dist == dist.min())[0][0]
        decoded = unblock(decoded).astype(bool)
        assert len(bits) // self.den == len(decoded)
        return decoded

Ancestors

  • rpps.coding.types._code._code

Methods

def decode(self, bits: numpy.ndarray)
Expand source code
def decode(self, bits: np.ndarray):
    blocks = block(bits, self.den)

    decoded = np.empty((len(blocks), self.num), dtype=bool)

    codewords = np.array([np.zeros(self.den, dtype=bool), np.ones(self.den, dtype=bool)])

    for i, blk in enumerate(blocks):
        dist = np.empty((2))
        for j, code in enumerate(codewords):
            dist[j] = np.bitwise_xor(code, blk).sum()
        decoded[i] = np.where(dist == dist.min())[0][0]
    decoded = unblock(decoded).astype(bool)
    assert len(bits) // self.den == len(decoded)
    return decoded

Decode bits

def encode(self, bits: numpy.ndarray)
Expand source code
def encode(self, bits: np.ndarray):
    blocks = block(bits, self.num)

    encoded = np.empty((len(blocks), self.den), dtype=bool)

    for i, blk in enumerate(blocks):
        encoded[i,:] = np.repeat(blk, self.den)

    encoded = unblock(encoded).astype(bool)

    assert len(encoded) == len(bits) * self.den
    return encoded

Encode bits