id: apollo_fm_signal_source label: Apollo FM Signal Source category: '[Apollo USB]' flags: [python] parameters: - id: channels label: SCO Channels dtype: raw default: '[1, 5, 9]' - id: test_voltages label: Test Voltages (dict) dtype: raw default: 'None' - id: fm_deviation_hz label: FM Deviation (Hz) dtype: real default: '500000' - id: sample_rate label: Sample Rate (Hz) dtype: float default: '5120000' - id: snr_db label: SNR (dB) dtype: raw default: 'None' outputs: - label: out domain: stream dtype: complex templates: imports: from apollo.fm_signal_source import fm_signal_source make: >- apollo.fm_signal_source.fm_signal_source( channels=${channels}, test_voltages=${test_voltages}, sample_rate=${sample_rate}, fm_deviation_hz=${fm_deviation_hz}, snr_db=${snr_db}) documentation: |- Apollo FM Signal Source -- complete FM transmit chain in one block. Generates an FM-modulated complex baseband signal containing SCO analog telemetry channels. Each channel encodes a DC test voltage as an FM subcarrier tone (14.5 kHz to 165 kHz). Used in FM downlink mode (pre-launch checkout), not PM mode. This is the transmit-side counterpart to the FM Downlink Receiver. Parameters: channels: List of SCO channel numbers to generate (1-9) test_voltages: Dict mapping channel -> DC voltage (default 2.5V) fm_deviation_hz: Carrier FM deviation in Hz (default 500 kHz) sample_rate: Output sample rate (default 5.12 MHz) snr_db: Add AWGN noise at this SNR (None = no noise) file_format: 1