The GRS Frequency Synthesizer is an internal component of SpaceLab’s Ground Station software pipeline. It sits between the Station Manager and the IQ Receiver, responsible for computing the effective tuning frequency at any given moment by combining the base center frequency with a Doppler correction offset, and forwarding the result to the IQ Receiver as a tune command.
The IQ Receiver is autonomous and does not depend on the Frequency Synthesizer to operate — it simply reacts to tune commands whenever they arrive. The Frequency Synthesizer is an optional layer that handles the Doppler correction math on top, as well as any changes in the center frequency.
Updates the Doppler offset applied on top of the base frequency
Published topics (to IQ Receiver):
Topic
Payload
Description
tune
Frequency (Hz)
Effective frequency (center_freq + doppler_offset) to tune the SDR to
Behavior
On startup, center_freq is None. The synthesizer will not send any tune command until the Station Manager sends a freq command.
If a doppler command arrives before any freq command has been received, it is ignored and a warning is printed.
Doppler offset defaults to 0 and is updated whenever a doppler command is received.
The effective frequency sent to the IQ Receiver is always center_freq + doppler_offset.
It is the Station Manager’s responsibility to ensure the initial center_freq matches the frequency the IQ Receiver was started with.
Note: The Frequency Synthesizer does not compute Doppler shifts itself. It expects the Station Manager (or a dedicated propagator module) to supply pre-computed Doppler offsets.
Documentation
The documentation of this project is generated using the Sphinx tool, and it is available here.
GRS Frequency Synthesizer
Frequency Synthesizer of the SpaceLab's Ground Station.
Overview • Dependencies • Usage • Documentation • License
Overview
The GRS Frequency Synthesizer is an internal component of SpaceLab’s Ground Station software pipeline. It sits between the Station Manager and the IQ Receiver, responsible for computing the effective tuning frequency at any given moment by combining the base center frequency with a Doppler correction offset, and forwarding the result to the IQ Receiver as a tune command.
The IQ Receiver is autonomous and does not depend on the Frequency Synthesizer to operate — it simply reacts to tune commands whenever they arrive. The Frequency Synthesizer is an optional layer that handles the Doppler correction math on top, as well as any changes in the center frequency.
Dependencies
Installation
pip install pyzmqUsage
The
FrequencySynthesizerclass is not meant to be run standalone. It is instantiated and managed by the Station Manager:To stop it gracefully:
ZMQ Interface
Subscribed topics (from Station Manager):
freqdopplerPublished topics (to IQ Receiver):
tunecenter_freq + doppler_offset) to tune the SDR toBehavior
center_freqisNone. The synthesizer will not send any tune command until the Station Manager sends afreqcommand.dopplercommand arrives before anyfreqcommand has been received, it is ignored and a warning is printed.dopplercommand is received.center_freq + doppler_offset.center_freqmatches the frequency the IQ Receiver was started with.Documentation
The documentation of this project is generated using the Sphinx tool, and it is available here.
Dependencies
Building the Documentation
make htmlLicense
This project is licensed under GPLv3 license.