# {py:mod}`nearlink_sdr.phy.frame` ```{py:module} nearlink_sdr.phy.frame ``` ```{autodoc2-docstring} nearlink_sdr.phy.frame :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`FrameConfig ` - ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameConfig :summary: ``` * - {py:obj}`FrameFields ` - ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameFields :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`assemble_frame_bits ` - ```{autodoc2-docstring} nearlink_sdr.phy.frame.assemble_frame_bits :summary: ``` * - {py:obj}`frame_to_symbols ` - ```{autodoc2-docstring} nearlink_sdr.phy.frame.frame_to_symbols :summary: ``` * - {py:obj}`symbols_to_data_bits ` - ```{autodoc2-docstring} nearlink_sdr.phy.frame.symbols_to_data_bits :summary: ``` ```` ### API `````{py:class} FrameConfig :canonical: nearlink_sdr.phy.frame.FrameConfig ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameConfig ``` ````{py:attribute} frame_type :canonical: nearlink_sdr.phy.frame.FrameConfig.frame_type :type: int :value: > None ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameConfig.frame_type ``` ```` ````{py:attribute} symbol_rate_mhz :canonical: nearlink_sdr.phy.frame.FrameConfig.symbol_rate_mhz :type: float :value: > 1.0 ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameConfig.symbol_rate_mhz ``` ```` ````{py:attribute} pilot_interval :canonical: nearlink_sdr.phy.frame.FrameConfig.pilot_interval :type: int :value: > 0 ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameConfig.pilot_interval ``` ```` ````{py:attribute} crc_len :canonical: nearlink_sdr.phy.frame.FrameConfig.crc_len :type: int :value: > 24 ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameConfig.crc_len ``` ```` ````{py:attribute} mod_type :canonical: nearlink_sdr.phy.frame.FrameConfig.mod_type :type: str :value: ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameConfig.mod_type ``` ```` ````{py:attribute} sync_m_index :canonical: nearlink_sdr.phy.frame.FrameConfig.sync_m_index :type: int | None :value: > None ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameConfig.sync_m_index ``` ```` ````` `````{py:class} FrameFields :canonical: nearlink_sdr.phy.frame.FrameFields ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameFields ``` ````{py:attribute} preamble_bits :canonical: nearlink_sdr.phy.frame.FrameFields.preamble_bits :type: numpy.ndarray :value: > 'field(...)' ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameFields.preamble_bits ``` ```` ````{py:attribute} sync_bits :canonical: nearlink_sdr.phy.frame.FrameFields.sync_bits :type: numpy.ndarray :value: > 'field(...)' ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameFields.sync_bits ``` ```` ````{py:attribute} ctrl_bits :canonical: nearlink_sdr.phy.frame.FrameFields.ctrl_bits :type: numpy.ndarray :value: > 'field(...)' ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameFields.ctrl_bits ``` ```` ````{py:attribute} data_bits :canonical: nearlink_sdr.phy.frame.FrameFields.data_bits :type: numpy.ndarray :value: > 'field(...)' ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameFields.data_bits ``` ```` ````{py:attribute} frame_type :canonical: nearlink_sdr.phy.frame.FrameFields.frame_type :type: int :value: > 1 ```{autodoc2-docstring} nearlink_sdr.phy.frame.FrameFields.frame_type ``` ```` ````` ````{py:function} assemble_frame_bits(ctrl_info_bits: numpy.ndarray, data_payload_bits: numpy.ndarray, config: nearlink_sdr.phy.frame.FrameConfig) -> nearlink_sdr.phy.frame.FrameFields :canonical: nearlink_sdr.phy.frame.assemble_frame_bits ```{autodoc2-docstring} nearlink_sdr.phy.frame.assemble_frame_bits ``` ```` ````{py:function} frame_to_symbols(fields: nearlink_sdr.phy.frame.FrameFields, config: nearlink_sdr.phy.frame.FrameConfig) -> numpy.ndarray :canonical: nearlink_sdr.phy.frame.frame_to_symbols ```{autodoc2-docstring} nearlink_sdr.phy.frame.frame_to_symbols ``` ```` ````{py:function} symbols_to_data_bits(symbols: numpy.ndarray, config: nearlink_sdr.phy.frame.FrameConfig, n_ctrl_coded_bits: int = 0, n_data_bits: int = 0) -> tuple[numpy.ndarray, numpy.ndarray] :canonical: nearlink_sdr.phy.frame.symbols_to_data_bits ```{autodoc2-docstring} nearlink_sdr.phy.frame.symbols_to_data_bits ``` ````