gr-apollo/grc/apollo_fm_demod.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

49 lines
1.1 KiB
YAML

id: apollo_fm_demod
label: Apollo FM Demod
category: '[Apollo USB]'
flags: [python]
parameters:
- id: carrier_pll_bw
label: Carrier PLL Bandwidth
dtype: real
default: '0.02'
- 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: complex
outputs:
- label: out
domain: stream
dtype: float
templates:
imports: from apollo.fm_demod import fm_demod
make: apollo.fm_demod.fm_demod(carrier_pll_bw=${carrier_pll_bw}, fm_deviation_hz=${fm_deviation_hz}, sample_rate=${sample_rate})
documentation: |-
Apollo FM Demodulator
Extracts frequency modulation from complex baseband signal.
Uses a carrier tracking PLL followed by quadrature demodulation
to recover the instantaneous frequency (composite SCO signal).
Output is normalized so +/- full FM deviation maps to +/- 1.0.
Parameters:
carrier_pll_bw: PLL loop bandwidth in rad/sample (default 0.02)
fm_deviation_hz: Expected max FM deviation in Hz (default 500 kHz)
sample_rate: Input sample rate in Hz (default 5.12 MHz)
file_format: 1