gr-apollo/grc/apollo_fm_mod.block.yml
Ryan Malloy 7d48398551 Add FM downlink mode: carrier blocks, convenience wrappers, and loopback demo
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.
2026-02-24 10:18:42 -07:00

46 lines
1.0 KiB
YAML

id: apollo_fm_mod
label: Apollo FM Mod
category: '[Apollo USB]'
flags: [python]
parameters:
- id: fm_deviation_hz
label: FM Deviation (Hz)
dtype: real
default: '500000'
- id: sample_rate
label: Sample Rate
dtype: real
default: '5120000'
inputs:
- label: in
domain: stream
dtype: float
outputs:
- label: out
domain: stream
dtype: complex
templates:
imports: from apollo.fm_mod import fm_mod
make: apollo.fm_mod.fm_mod(fm_deviation_hz=${fm_deviation_hz}, sample_rate=${sample_rate})
documentation: |-
Apollo FM Modulator
Applies frequency modulation to produce complex baseband signal.
Takes a composite modulating signal (sum of SCO subcarriers) and outputs
an FM complex baseband where instantaneous frequency is proportional to
the input amplitude.
Used in FM downlink mode (pre-launch checkout), not PM mode.
This is the transmit-side counterpart to Apollo FM Demod.
Parameters:
fm_deviation_hz: Max frequency deviation in Hz (default 500 kHz)
sample_rate: Sample rate in Hz (default 5.12 MHz)
file_format: 1