FM mode now has the same three-layer architecture as PM mode: - fm_mod/fm_demod for carrier-level FM modulation - fm_signal_source/fm_downlink_receiver convenience wrappers - fm_loopback_demo.py verifying round-trip SCO voltage recovery Includes GRC YAML for all 4 blocks and doc updates across blocks reference, SCO guide, and signal architecture pages.
61 lines
1.6 KiB
YAML
61 lines
1.6 KiB
YAML
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
|