Skip to content
Basic example of using GNU Radio Companion for amateur (ham) radio communications
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
RedPitaya init Nov 7, 2016
gfx
.gitattributes
.gitignore
FM_transceive_PL.grc
LICENSE
NBFM_RX.grc
README.rst
WBFM_RX.grc
WBFM_SCA.grc
amRX.grc
amTXRX.grc
sim_amfmssb.py
sinad.py
ssbRX.grc
ssbRXh.grc
ssbRXusrp.grc
ssbTXhilbert.grc
ssbUSRPtxrx.grc

README.rst

GNU Radio amateur radio examples

Hi! Let me know if there's anything else/more you'd like to see for amateur radio with the Red Pitaya / Raspberry Pi using GNU Radio.

Red Pitaya

RedPitaya contains code for Red Pitaya PiRadar.

SSB Examples

First we start with the most basic example of SSB. This example lacks the filtering normally used with these methods to be as minimal as possible. They work via files recorded to disk using your computer's microphone.

There are numerous references for SSB transmitters and receivers, such as the ARRL Handbook, or the Philips AN1981 application note. In AN1981, Fig. 8 shows the Weaver method receiver (note I only use the part to the right of the filters, since I didn't use filtering). In AN1981, Fig. 5 shows the Phasing method transmitter. In both cases, ignore the divide-by-4 of AN1981 as that's peculiar to their system.

Simplest synthethic SSB simulation

This simulation doesn't use any filters, and so would never work in the real world unless there were no other transmissions within a few octaves of your sampling bandwidth. You can see in the FFT scope on transmit that it is indeed USB transmission.

The first example uses the phasing method to transmit on a synthetic 50 kHz carrier frequency Fc, upper sideband only. Next, you receive this Fc=50 kHz USB transmission using a Weaver method SSB receiver.

The noise floor on transmit extends from Fc to Fc+24 kHz as that's 1/2 the bandwidth of your 48kHz sound card. You can transmit some hi-fidelity SSB audio of DC to 24kHz, limited by your PC microphone and speakers. You may hear some background crackling and aliasing artifacts due to no digital filtering used, but overall the audio should be relatively clear.

You can see the reference material to add the appropriate filters to these examples as an exercise.

  1. Open and Run ssbTXhilbert.grc in GNU Radio Companion. This records your voice via your computer microphone to a file $HOME/test.dat. This file is complex float data. Hit Stop to stop recording.
  2. Open and Run ssbRX.grc in GNU Radio Companion. This loops back your voice through your computer speakers.

simplest no-filter SSB receiver

simplest no-filter SSB transmitter

You can’t perform that action at this time.