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.
64 lines
1.7 KiB
YAML
64 lines
1.7 KiB
YAML
id: apollo_fm_downlink_receiver
|
|
label: Apollo FM Downlink Receiver
|
|
category: '[Apollo USB]'
|
|
flags: [python]
|
|
|
|
parameters:
|
|
- id: channels
|
|
label: SCO Channels
|
|
dtype: raw
|
|
default: '[1, 5, 9]'
|
|
- id: fm_deviation_hz
|
|
label: FM Deviation (Hz)
|
|
dtype: real
|
|
default: '500000'
|
|
- id: sample_rate
|
|
label: Sample Rate
|
|
dtype: float
|
|
default: '5120000'
|
|
- id: carrier_pll_bw
|
|
label: Carrier PLL BW
|
|
dtype: float
|
|
default: '0.02'
|
|
|
|
inputs:
|
|
- label: in
|
|
domain: stream
|
|
dtype: complex
|
|
|
|
outputs:
|
|
- label: ch${n}
|
|
domain: stream
|
|
dtype: float
|
|
multiplicity: ${ len(channels) }
|
|
|
|
templates:
|
|
imports: from apollo.fm_downlink_receiver import fm_downlink_receiver
|
|
make: >-
|
|
apollo.fm_downlink_receiver.fm_downlink_receiver(
|
|
channels=${channels},
|
|
sample_rate=${sample_rate},
|
|
carrier_pll_bw=${carrier_pll_bw},
|
|
fm_deviation_hz=${fm_deviation_hz})
|
|
|
|
documentation: |-
|
|
Apollo FM Downlink Receiver -- complete FM demod chain in one block.
|
|
|
|
Demodulates an FM-modulated complex baseband signal and recovers
|
|
individual SCO analog telemetry channels. Each output port provides
|
|
a recovered 0-5V sensor voltage for the corresponding SCO channel.
|
|
|
|
Output port ordering matches the channels list:
|
|
output 0 = channels[0], output 1 = channels[1], etc.
|
|
|
|
Used in FM downlink mode (pre-launch checkout), not PM mode.
|
|
This is the receive-side counterpart to the FM Signal Source.
|
|
|
|
Parameters:
|
|
channels: List of SCO channel numbers to decode (1-9)
|
|
fm_deviation_hz: Expected carrier FM deviation in Hz (default 500 kHz)
|
|
sample_rate: Baseband sample rate (default 5.12 MHz)
|
|
carrier_pll_bw: FM carrier recovery loop bandwidth
|
|
|
|
file_format: 1
|