Introduction
In previous posts I have looked at various aspects of GMDSS/DSC using Scicos. In this post I look at a BFSK generator for DSC VHF using GNURadio. The advantage of GNURadio is that it can be directly interfaced with the RTL-SDR and can decode in real time.
GNURC Schematic
Parameter | DSC VHF BFSK |
Fc = VCO Center Frequency Phase Continuous BFSK | 1700Hz=10681.415rad |
F mark | 2100Hz=13194.689rad |
F space | 1300Hz=8168.1409rad |
Constants: ca &cm ((1xca)+cm)wc=w1 ((0xca+cm)wc=w2 | cm=w2/wc=0.7647059 ca+cm=w1/wc=1.2352941 ca=.4705882 |
Figure 1 shows the BFSK Generator GNURC schematic. The key component is the VCO. It’s main parameter is the sensitivity in rad/sec per volt. Using two constants (additive and multiplicative) the Fmark and Fspace frequencies can be generated. Fc the center frequency is set for 1volt = 1700Hz. Fmark will be generated by an input voltage of 1.2352941 and Fspace will be generated by an input voltage of 0.7647059. Figure 2 lists the parameters used to calculate ca & cm. This generator is completely analogous to the one developed in Scicos (Ref.3).
Figure 3 shows the VCO test circuit. The VCO is fed by either a hard “1” or hard “0”. Figure 4 shows the Fmark=2100 output for a “1”.
Random Data Generator
Figure 5 shows the schematic used to generate random data to drive the VCO. In Scicos I wrote a script file to create a data file, the same could be done in Python. In this case, I used the Random Source and applied S/H twice using a square wave for the data clock at 1200bps. The first S/H selects either 0 or 1 during the low portion of the square wave. The second S/H suppresses the multiple pulses during the first half of the square wave (the second square wave clock delayed by pi or half bit period). The Random Data Generator feeds a File Sink block that stores the data generated.
GNURC Files Download
GNU Radio Basics Course
Please send your comments, questions and suggestions to:
contact:
References
#1. – “Marine GMDSS/DSC VHF Decoder_a”
https://jeremyclark.ca/wp/telecom/marine-gmdss-dsc-vhf-decoder_a/
#2. – “RTL-SDR for HF Marine GMDSS/DSC on SDRangel”
https://jeremyclark.ca/wp/telecom/rtl-sdr-for-hf-marine-gmdss-dsc-on-sdrangel/
#3. – “VHF Marine GMDSS/DSC Decode & Scicos Simulation”
https://jeremyclark.ca/wp/telecom/vhf-marine-gmdss-dsc-decode-scicos-simulation/
#4. – “RTL-SDR for HF Marine GMDSS/DSC”
https://jeremyclark.ca/wp/telecom/rtl-sdr-for-hf-marine-gmdss-dsc/
#5. – “RTL-SDR for Marine GMDSS/DSC on RaspberryPi4”
https://jeremyclark.ca/wp/telecom/rtl-sdr-for-marine-gmdss-dsc-on-raspberrypi4/
#6. – “RTL-SDR for Marine GMDSS/DSC on Multipsk”
https://jeremyclark.ca/wp/telecom/rtl-sdr-for-marine-gmdss-dsc-on-multipsk/