Module rpps.coding.coding
Coding parent classes
Classes
class Block (num, den, length)
-
Parent block coding
Expand source code
class Block(Coding): """Parent block coding""" def __init__(self, num, den, length): super().__init__(num, den) self.length = length def init_meta(self, meta: Meta): from .meta import BlockCodingMeta meta.coding = BlockCodingMeta() # type: ignore meta.coding.fields["Type"] = "BLK" meta.coding.fields["Length"] = self.length super().init_meta(meta)
Ancestors
Subclasses
- rpps.coding._blk.repetition.Repetition
Inherited members
class Coding (num, den)
-
Coding Pipe
Expand source code
class Coding(base.rpps.Pipe): """Coding Pipe""" name = "Coding" decision = Decision.HARD def __init__(self, num, den): self.log = Logger().Child("Coding", Level.WARN).Child(type(self).__name__, Level.WARN) self.num = num self.den = den self._rate = self.num/self.den def __str__(self): return f"{self.name}:{self.num}/{self.den}:{self.decision}" def init_meta(self, meta: Meta): """Initialize coding metadata""" meta.coding.fields["Name"] = type(self).__name__ meta.coding.fields["RateNum"] = self.num meta.coding.fields["RateDen"] = self.den def encode(self, dobj: dobject.BitObject) -> dobject.CodingData: """Encode dobject using specified coding""" ... def decode(self, dobj: dobject.BitObject) -> dobject.BitObject: """Decode dobject using specified coding""" ... def __matmul__(self, other): if isinstance(other, dobject.ModData): if self.decision == Decision.HARD: other = dobject.ModData(other.hard) return self.decode(other) elif issubclass(type(other), dobject.DataObject): return self.encode(dobject.ensure_bit(other)) else: raise TypeError(f"Cannot perform {type(self).__name__} on {type(other)}") def __rmatmul__(self, other): return self.__matmul__(other)
Ancestors
Subclasses
Class variables
var decision
var name
Methods
def decode(self, dobj: BitObject) ‑> BitObject
-
Decode dobject using specified coding
def encode(self, dobj: BitObject) ‑> CodingData
-
Encode dobject using specified coding
def init_meta(self, meta: Meta)
-
Initialize coding metadata
class Convolutional (num, den)
-
Parent convolutional coding
Expand source code
class Convolutional(Coding): """Parent convolutional coding""" def init_meta(self, meta: Meta): from .meta import ConvolutionalCodingMeta meta.coding = ConvolutionalCodingMeta() # type: ignore meta.coding.fields["Type"] = "CNV" super().init_meta(meta)
Ancestors
Subclasses
- rpps.coding._cnv.viterbi.Viterbi
Inherited members
class Decision (*args, **kwds)
-
Coding decision type
Expand source code
class Decision(Enum): """Coding decision type""" HARD = 0 SOFT = 1
Ancestors
- enum.Enum
Class variables
var HARD
var SOFT