# {py:mod}`nearlink_sdr.common.mcs` ```{py:module} nearlink_sdr.common.mcs ``` ```{autodoc2-docstring} nearlink_sdr.common.mcs :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`MCSEntry ` - ```{autodoc2-docstring} nearlink_sdr.common.mcs.MCSEntry :summary: ``` * - {py:obj}`Modulation ` - ```{autodoc2-docstring} nearlink_sdr.common.mcs.Modulation :summary: ``` * - {py:obj}`RateConfig ` - ```{autodoc2-docstring} nearlink_sdr.common.mcs.RateConfig :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`get_kcb ` - ```{autodoc2-docstring} nearlink_sdr.common.mcs.get_kcb :summary: ``` * - {py:obj}`get_mcs ` - ```{autodoc2-docstring} nearlink_sdr.common.mcs.get_mcs :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`CODE_LENGTHS ` - ```{autodoc2-docstring} nearlink_sdr.common.mcs.CODE_LENGTHS :summary: ``` ```` ### API ````{py:data} CODE_LENGTHS :canonical: nearlink_sdr.common.mcs.CODE_LENGTHS :value: > (1024, 512, 256, 128, 64) ```{autodoc2-docstring} nearlink_sdr.common.mcs.CODE_LENGTHS ``` ```` `````{py:class} MCSEntry :canonical: nearlink_sdr.common.mcs.MCSEntry Bases: {py:obj}`typing.NamedTuple` ```{autodoc2-docstring} nearlink_sdr.common.mcs.MCSEntry ``` ````{py:attribute} index :canonical: nearlink_sdr.common.mcs.MCSEntry.index :type: int :value: > None ```{autodoc2-docstring} nearlink_sdr.common.mcs.MCSEntry.index ``` ```` ````{py:attribute} modulation :canonical: nearlink_sdr.common.mcs.MCSEntry.modulation :type: nearlink_sdr.common.mcs.Modulation :value: > None ```{autodoc2-docstring} nearlink_sdr.common.mcs.MCSEntry.modulation ``` ```` ````{py:attribute} code_rate :canonical: nearlink_sdr.common.mcs.MCSEntry.code_rate :type: fractions.Fraction :value: > None ```{autodoc2-docstring} nearlink_sdr.common.mcs.MCSEntry.code_rate ``` ```` ````{py:attribute} spectral_efficiency :canonical: nearlink_sdr.common.mcs.MCSEntry.spectral_efficiency :type: float :value: > None ```{autodoc2-docstring} nearlink_sdr.common.mcs.MCSEntry.spectral_efficiency ``` ```` ````{py:attribute} bits_per_symbol :canonical: nearlink_sdr.common.mcs.MCSEntry.bits_per_symbol :type: int :value: > None ```{autodoc2-docstring} nearlink_sdr.common.mcs.MCSEntry.bits_per_symbol ``` ```` ````` `````{py:class} Modulation() :canonical: nearlink_sdr.common.mcs.Modulation Bases: {py:obj}`enum.IntEnum` ```{autodoc2-docstring} nearlink_sdr.common.mcs.Modulation ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} nearlink_sdr.common.mcs.Modulation.__init__ ``` ````{py:attribute} BPSK :canonical: nearlink_sdr.common.mcs.Modulation.BPSK :value: > 1 ```{autodoc2-docstring} nearlink_sdr.common.mcs.Modulation.BPSK ``` ```` ````{py:attribute} QPSK :canonical: nearlink_sdr.common.mcs.Modulation.QPSK :value: > 2 ```{autodoc2-docstring} nearlink_sdr.common.mcs.Modulation.QPSK ``` ```` ````{py:attribute} PSK8 :canonical: nearlink_sdr.common.mcs.Modulation.PSK8 :value: > 3 ```{autodoc2-docstring} nearlink_sdr.common.mcs.Modulation.PSK8 ``` ```` ````` `````{py:class} RateConfig :canonical: nearlink_sdr.common.mcs.RateConfig ```{autodoc2-docstring} nearlink_sdr.common.mcs.RateConfig ``` ````{py:attribute} mcs_index :canonical: nearlink_sdr.common.mcs.RateConfig.mcs_index :type: int :value: > None ```{autodoc2-docstring} nearlink_sdr.common.mcs.RateConfig.mcs_index ``` ```` ````{py:attribute} modulation :canonical: nearlink_sdr.common.mcs.RateConfig.modulation :type: nearlink_sdr.common.mcs.Modulation :value: > None ```{autodoc2-docstring} nearlink_sdr.common.mcs.RateConfig.modulation ``` ```` ````{py:attribute} code_rate :canonical: nearlink_sdr.common.mcs.RateConfig.code_rate :type: fractions.Fraction :value: > None ```{autodoc2-docstring} nearlink_sdr.common.mcs.RateConfig.code_rate ``` ```` ````{py:attribute} bits_per_symbol :canonical: nearlink_sdr.common.mcs.RateConfig.bits_per_symbol :type: int :value: > None ```{autodoc2-docstring} nearlink_sdr.common.mcs.RateConfig.bits_per_symbol ``` ```` ````{py:attribute} spectral_efficiency :canonical: nearlink_sdr.common.mcs.RateConfig.spectral_efficiency :type: float :value: > None ```{autodoc2-docstring} nearlink_sdr.common.mcs.RateConfig.spectral_efficiency ``` ```` ````{py:method} from_mcs(index: int) -> nearlink_sdr.common.mcs.RateConfig :canonical: nearlink_sdr.common.mcs.RateConfig.from_mcs :classmethod: ```{autodoc2-docstring} nearlink_sdr.common.mcs.RateConfig.from_mcs ``` ```` ````{py:method} kcb(code_length: int, *, table: int = 1) -> int :canonical: nearlink_sdr.common.mcs.RateConfig.kcb ```{autodoc2-docstring} nearlink_sdr.common.mcs.RateConfig.kcb ``` ```` ````` ````{py:function} get_kcb(code_rate: fractions.Fraction, code_length: int, *, table: int = 1) -> int :canonical: nearlink_sdr.common.mcs.get_kcb ```{autodoc2-docstring} nearlink_sdr.common.mcs.get_kcb ``` ```` ````{py:function} get_mcs(index: int) -> nearlink_sdr.common.mcs.MCSEntry :canonical: nearlink_sdr.common.mcs.get_mcs ```{autodoc2-docstring} nearlink_sdr.common.mcs.get_mcs ``` ````