# {py:mod}`nearlink_sdr.sim.link_sim` ```{py:module} nearlink_sdr.sim.link_sim ``` ```{autodoc2-docstring} nearlink_sdr.sim.link_sim :allowtitles: ``` ## Module Contents ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`run_phase1_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase1_simulation :summary: ``` * - {py:obj}`run_phase2_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase2_simulation :summary: ``` * - {py:obj}`run_phase3_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase3_simulation :summary: ``` * - {py:obj}`run_phase4_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase4_simulation :summary: ``` * - {py:obj}`run_phase5_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase5_simulation :summary: ``` * - {py:obj}`run_phase6_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase6_simulation :summary: ``` * - {py:obj}`run_phase7_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase7_simulation :summary: ``` * - {py:obj}`run_phase8_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase8_simulation :summary: ``` * - {py:obj}`run_phase9_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase9_simulation :summary: ``` * - {py:obj}`run_phase10_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase10_simulation :summary: ``` * - {py:obj}`run_phase11_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase11_simulation :summary: ``` * - {py:obj}`run_phase12_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase12_simulation :summary: ``` * - {py:obj}`run_phase13_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase13_simulation :summary: ``` * - {py:obj}`run_phase14_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase14_simulation :summary: ``` * - {py:obj}`run_phase15_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase15_simulation :summary: ``` * - {py:obj}`run_phase16_simulation ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase16_simulation :summary: ``` * - {py:obj}`sim_access_scheduled_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_access_scheduled_link :summary: ``` * - {py:obj}`sim_amc_throughput ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_amc_throughput :summary: ``` * - {py:obj}`sim_channel_eq_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_channel_eq_link :summary: ``` * - {py:obj}`sim_doppler_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_doppler_link :summary: ``` * - {py:obj}`sim_doppler_multipath_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_doppler_multipath_link :summary: ``` * - {py:obj}`sim_dual_node_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_dual_node_link :summary: ``` * - {py:obj}`sim_dual_node_mcs_adapt ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_dual_node_mcs_adapt :summary: ``` * - {py:obj}`sim_dual_node_secure_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_dual_node_secure_link :summary: ``` * - {py:obj}`sim_encrypted_vs_plain ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_encrypted_vs_plain :summary: ``` * - {py:obj}`sim_event_group_timing ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_event_group_timing :summary: ``` * - {py:obj}`sim_frame_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_frame_link :summary: ``` * - {py:obj}`sim_gfsk_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_gfsk_link :summary: ``` * - {py:obj}`sim_harq_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_harq_link :summary: ``` * - {py:obj}`sim_hopping_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_hopping_link :summary: ``` * - {py:obj}`sim_hopping_multipath_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_hopping_multipath_link :summary: ``` * - {py:obj}`sim_mac_data_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_mac_data_link :summary: ``` * - {py:obj}`sim_mac_mux_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_mac_mux_link :summary: ``` * - {py:obj}`sim_mac_signaling_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_mac_signaling_link :summary: ``` * - {py:obj}`sim_multi_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_multi_link :summary: ``` * - {py:obj}`sim_multi_user_interference ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_multi_user_interference :summary: ``` * - {py:obj}`sim_node_access_flow ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_node_access_flow :summary: ``` * - {py:obj}`sim_node_channel_sweep ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_node_channel_sweep :summary: ``` * - {py:obj}`sim_node_hopping_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_node_hopping_link :summary: ``` * - {py:obj}`sim_node_measurement ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_node_measurement :summary: ``` * - {py:obj}`sim_node_power_adapt ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_node_power_adapt :summary: ``` * - {py:obj}`sim_pairing_signaling_phy ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_pairing_signaling_phy :summary: ``` * - {py:obj}`sim_pipeline_channel_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_pipeline_channel_link :summary: ``` * - {py:obj}`sim_pipeline_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_pipeline_link :summary: ``` * - {py:obj}`sim_polar_coded_psk_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_polar_coded_psk_link :summary: ``` * - {py:obj}`sim_psk_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_psk_link :summary: ``` * - {py:obj}`sim_qos_amc_adaptive ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_qos_amc_adaptive :summary: ``` * - {py:obj}`sim_qos_arq_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_qos_arq_link :summary: ``` * - {py:obj}`sim_qos_flow_control ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_qos_flow_control :summary: ``` * - {py:obj}`sim_secure_link ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_secure_link :summary: ``` * - {py:obj}`sim_sir_sweep ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_sir_sweep :summary: ``` * - {py:obj}`sim_superframe_capacity ` - ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_superframe_capacity :summary: ``` ```` ### API ````{py:function} run_phase1_simulation() :canonical: nearlink_sdr.sim.link_sim.run_phase1_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase1_simulation ``` ```` ````{py:function} run_phase2_simulation() :canonical: nearlink_sdr.sim.link_sim.run_phase2_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase2_simulation ``` ```` ````{py:function} run_phase3_simulation() :canonical: nearlink_sdr.sim.link_sim.run_phase3_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase3_simulation ``` ```` ````{py:function} run_phase4_simulation() :canonical: nearlink_sdr.sim.link_sim.run_phase4_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase4_simulation ``` ```` ````{py:function} run_phase5_simulation() :canonical: nearlink_sdr.sim.link_sim.run_phase5_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase5_simulation ``` ```` ````{py:function} run_phase6_simulation() :canonical: nearlink_sdr.sim.link_sim.run_phase6_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase6_simulation ``` ```` ````{py:function} run_phase7_simulation() :canonical: nearlink_sdr.sim.link_sim.run_phase7_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase7_simulation ``` ```` ````{py:function} run_phase8_simulation() :canonical: nearlink_sdr.sim.link_sim.run_phase8_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase8_simulation ``` ```` ````{py:function} run_phase9_simulation() :canonical: nearlink_sdr.sim.link_sim.run_phase9_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase9_simulation ``` ```` ````{py:function} run_phase10_simulation() -> None :canonical: nearlink_sdr.sim.link_sim.run_phase10_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase10_simulation ``` ```` ````{py:function} run_phase11_simulation() -> None :canonical: nearlink_sdr.sim.link_sim.run_phase11_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase11_simulation ``` ```` ````{py:function} run_phase12_simulation() -> None :canonical: nearlink_sdr.sim.link_sim.run_phase12_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase12_simulation ``` ```` ````{py:function} run_phase13_simulation() -> None :canonical: nearlink_sdr.sim.link_sim.run_phase13_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase13_simulation ``` ```` ````{py:function} run_phase14_simulation() -> None :canonical: nearlink_sdr.sim.link_sim.run_phase14_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase14_simulation ``` ```` ````{py:function} run_phase15_simulation() -> None :canonical: nearlink_sdr.sim.link_sim.run_phase15_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase15_simulation ``` ```` ````{py:function} run_phase16_simulation(n_frames: int = 50) -> None :canonical: nearlink_sdr.sim.link_sim.run_phase16_simulation ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.run_phase16_simulation ``` ```` ````{py:function} sim_access_scheduled_link(snr_range_db: numpy.ndarray | None = None, n_frames: int = 50, mcs_index: int = 7, payload_size: int = 10, channel_type: str = 'awgn', cfo_hz: float = 0.0, eq_method: str = 'none', rician_k_db: float = 6.0, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_access_scheduled_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_access_scheduled_link ``` ```` ````{py:function} sim_amc_throughput(snr_range_db: numpy.ndarray | None = None, n_frames: int = 50, payload_size: int = 10, channel_type: str = 'awgn', cfo_hz: float = 0.0, eq_method: str = 'none', rician_k_db: float = 6.0, mcs_indices: list[int] | None = None, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_amc_throughput ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_amc_throughput ``` ```` ````{py:function} sim_channel_eq_link(channel_type: str = 'rayleigh', rician_k_db: float = 6.0, eq_method: str = 'mmse', rate_str: str = '1/2', code_length: int = 256, snr_range_db: numpy.ndarray | None = None, n_frames: int = 20, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_channel_eq_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_channel_eq_link ``` ```` ````{py:function} sim_doppler_link(doppler_range_hz: numpy.ndarray | None = None, snr_db: float = 12.0, n_frames: int = 100, mcs_index: int = 7, payload_size: int = 20, channel_type: str = 'rayleigh', eq_method: str = 'zf', seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_doppler_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_doppler_link ``` ```` ````{py:function} sim_doppler_multipath_link(doppler_range_hz: numpy.ndarray | None = None, snr_db: float = 15.0, n_frames: int = 80, mcs_index: int = 7, payload_size: int = 20, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_doppler_multipath_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_doppler_multipath_link ``` ```` ````{py:function} sim_dual_node_link(snr_range_db: numpy.ndarray | None = None, n_frames: int = 50, mcs_index: int = 7, payload_size: int = 10, channel_type: str = 'awgn', cfo_hz: float = 0.0, eq_method: str = 'none', rician_k_db: float = 6.0, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_dual_node_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_dual_node_link ``` ```` ````{py:function} sim_dual_node_mcs_adapt(snr_db: float = 8.0, n_frames: int = 100, payload_size: int = 10, initial_mcs: int = 7, channel_type: str = 'awgn', seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_dual_node_mcs_adapt ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_dual_node_mcs_adapt ``` ```` ````{py:function} sim_dual_node_secure_link(snr_range_db: numpy.ndarray | None = None, n_frames: int = 50, mcs_index: int = 7, payload_size: int = 10, channel_type: str = 'awgn', seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_dual_node_secure_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_dual_node_secure_link ``` ```` ````{py:function} sim_encrypted_vs_plain(snr_range_db: numpy.ndarray | None = None, n_frames: int = 50, mcs_index: int = 7, payload_size: int = 10, channel_type: str = 'awgn', seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_encrypted_vs_plain ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_encrypted_vs_plain ``` ```` ````{py:function} sim_event_group_timing(event_group_period: int = 100, event_count: int = 4, event_period: int = 25, intra_event_interval: int = 300, tx_max_offset: int = 3, rx_max_offset: int = 3) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_event_group_timing ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_event_group_timing ``` ```` ````{py:function} sim_frame_link(frame_type: int = 2, num_data_bits: int = 200, rate_str: str = '1/2', code_length: int = 256, pilot_interval: int = 4, snr_range_db: numpy.ndarray | None = None, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_frame_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_frame_link ``` ```` ````{py:function} sim_gfsk_link(num_data_bits: int = 1000, snr_range_db: numpy.ndarray | None = None, sps: int = 8, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_gfsk_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_gfsk_link ``` ```` ````{py:function} sim_harq_link(snr_range_db: numpy.ndarray | None = None, n_frames: int = 50, mcs_index: int = 7, payload_size: int = 10, max_retries: int = 3, channel_type: str = 'awgn', cfo_hz: float = 0.0, eq_method: str = 'none', rician_k_db: float = 6.0, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_harq_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_harq_link ``` ```` ````{py:function} sim_hopping_link(hop_param2: int = 43981, n_hops: int = 20, rate_str: str = '1/2', code_length: int = 256, snr_range_db: numpy.ndarray | None = None, bandwidth_mhz: int = 1, blocked_ratio: float = 0.0, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_hopping_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_hopping_link ``` ```` ````{py:function} sim_hopping_multipath_link(snr_range_db: numpy.ndarray | None = None, n_frames: int = 50, mcs_index: int = 7, payload_size: int = 10, n_hop_channels: int = 8, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_hopping_multipath_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_hopping_multipath_link ``` ```` ````{py:function} sim_mac_data_link(payload_sizes: list[int] | None = None, snr_range_db: numpy.ndarray | None = None, n_frames: int = 50, mcs_index: int = 7, channel_type: str = 'awgn', cfo_hz: float = 0.0, eq_method: str = 'none', rician_k_db: float = 6.0, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_mac_data_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_mac_data_link ``` ```` ````{py:function} sim_mac_mux_link(snr_range_db: numpy.ndarray | None = None, n_frames: int = 50, mcs_index: int = 7, data_size: int = 10, channel_type: str = 'awgn', cfo_hz: float = 0.0, eq_method: str = 'none', rician_k_db: float = 6.0, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_mac_mux_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_mac_mux_link ``` ```` ````{py:function} sim_mac_signaling_link(snr_range_db: numpy.ndarray | None = None, n_frames: int = 50, mcs_index: int = 7, channel_type: str = 'awgn', cfo_hz: float = 0.0, eq_method: str = 'none', rician_k_db: float = 6.0, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_mac_signaling_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_mac_signaling_link ``` ```` ````{py:function} sim_multi_link(n_links: int = 3, snr_range_db: numpy.ndarray | None = None, n_superframes: int = 20, mcs_index: int = 7, payload_size: int = 10, channel_type: str = 'awgn', cfo_hz: float = 0.0, eq_method: str = 'none', rician_k_db: float = 6.0, smf_interval: int = 800, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_multi_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_multi_link ``` ```` ````{py:function} sim_multi_user_interference(n_interferers_range: list[int] | None = None, sir_db: float = 10.0, snr_db: float = 15.0, n_frames: int = 100, mcs_index: int = 7, payload_size: int = 20, channel_type: str = 'awgn', freq_offset_hz: float = 0.0, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_multi_user_interference ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_multi_user_interference ``` ```` ````{py:function} sim_node_access_flow(seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_node_access_flow ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_node_access_flow ``` ```` ````{py:function} sim_node_channel_sweep(snr_range_db: numpy.ndarray | None = None, n_frames: int = 50, mcs_index: int = 7, payload_size: int = 10, channel_type: str = 'awgn', seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_node_channel_sweep ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_node_channel_sweep ``` ```` ````{py:function} sim_node_hopping_link(snr_db: float = 10.0, n_frames: int = 100, mcs_index: int = 7, payload_size: int = 10, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_node_hopping_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_node_hopping_link ``` ```` ````{py:function} sim_node_measurement(n_measur: int = 64, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_node_measurement ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_node_measurement ``` ```` ````{py:function} sim_node_power_adapt(snr_db: float = 8.0, n_frames: int = 80, payload_size: int = 10, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_node_power_adapt ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_node_power_adapt ``` ```` ````{py:function} sim_pairing_signaling_phy(snr_range_db: numpy.ndarray | None = None, n_trials: int = 20, channel_type: str = 'awgn', seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_pairing_signaling_phy ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_pairing_signaling_phy ``` ```` ````{py:function} sim_pipeline_channel_link(frame_type: int = 2, mcs_index: int = 7, n_data_bytes: int = 10, channel_type: str = 'awgn', rician_k_db: float = 6.0, cfo_hz: float = 0.0, eq_method: str = 'none', snr_range_db: numpy.ndarray | None = None, n_frames: int = 20, sps: int = 4, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_pipeline_channel_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_pipeline_channel_link ``` ```` ````{py:function} sim_pipeline_link(frame_type: int = 2, mcs_index: int = 7, n_data_bytes: int = 10, snr_range_db: numpy.ndarray | None = None, n_frames: int = 20, sps: int = 4, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_pipeline_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_pipeline_link ``` ```` ````{py:function} sim_polar_coded_psk_link(num_info_bits: int = 1000, mod_type: str = 'BPSK', rate_str: str = '1/2', code_length: int = 256, snr_range_db: numpy.ndarray | None = None, sps: int = 4, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_polar_coded_psk_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_polar_coded_psk_link ``` ```` ````{py:function} sim_psk_link(num_data_bits: int = 1000, mod_type: str = 'QPSK', frame_type: int = 2, snr_range_db: numpy.ndarray | None = None, sps: int = 4, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_psk_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_psk_link ``` ```` ````{py:function} sim_qos_amc_adaptive(snr_sequence: numpy.ndarray | None = None, n_frames_per_snr: int = 20, payload_size: int = 10, channel_type: str = 'awgn', rician_k_db: float = 6.0, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_qos_amc_adaptive ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_qos_amc_adaptive ``` ```` ````{py:function} sim_qos_arq_link(snr_range_db: numpy.ndarray | None = None, n_frames: int = 50, mcs_index: int = 7, payload_size: int = 10, max_retries: int = 3, channel_type: str = 'awgn', rician_k_db: float = 6.0, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_qos_arq_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_qos_arq_link ``` ```` ````{py:function} sim_qos_flow_control(n_frames: int = 100, burst_size: int = 10, snr_db: float = 15.0, mcs_index: int = 7, payload_size: int = 10, high_watermark: int = 8, low_watermark: int = 2, channel_type: str = 'awgn', rician_k_db: float = 6.0, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_qos_flow_control ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_qos_flow_control ``` ```` ````{py:function} sim_secure_link(snr_range_db: numpy.ndarray | None = None, n_frames: int = 50, mcs_index: int = 7, payload_size: int = 10, channel_type: str = 'awgn', cfo_hz: float = 0.0, eq_method: str = 'none', rician_k_db: float = 6.0, seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_secure_link ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_secure_link ``` ```` ````{py:function} sim_sir_sweep(sir_range_db: numpy.ndarray | None = None, n_interferers: int = 1, snr_db: float = 20.0, n_frames: int = 100, mcs_index: int = 7, payload_size: int = 20, channel_type: str = 'awgn', seed: int = 42) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_sir_sweep ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_sir_sweep ``` ```` ````{py:function} sim_superframe_capacity(smf_interval: int = 800, slice_duration: int = 50, slice_gap: int | None = None, max_links: int = 20) -> dict :canonical: nearlink_sdr.sim.link_sim.sim_superframe_capacity ```{autodoc2-docstring} nearlink_sdr.sim.link_sim.sim_superframe_capacity ``` ````