AKA: GRC
[NOTE: This page originated as notes for the September 2, 2019 session of the Linux User Net ]
This section documents my experience with GNU Radio Companion. All of my computers run Linux, so that's what is covered here. This software should work on Mac and Windows, as well.
I expect this page to be in a state of contstant revision as I record my experience with GRC and my SDR devices.
rtl_sdr
utilities[Note: Follows along with Building Software Radios With A Little Bit Of Python,**Hak5 1526 (YT)]**
1) Plug in the dongle and run rtl_test to see whether there are packet losses. None.
2) Run rtl_fm, pipe output to aplay
rtl_fm -f 147.04e6 -s 240000 -r 96000 - | aplay -r 96000 -f S16_LE
3) Launch GNU Radio Companion
To be continued…
If you really want to understand Software Defined Radio, then get an SDR device and start using GNU Radio Companion. I recommend trying it even if you're not interested in SDR in particular, but just want to learn more about how radios work.
What the program does is to enable you to assemble a virtual radio by making a flow graph of functional blocks. Each block has inputs and outputs, which are chained together such that the output of one block is the input of the next block in line. You already know how this works — it's exactly the way Linux utilites are chained together in a shell command using pipes and redirection. The resulting graph constitues a functional model that can be executed in real time.
Each block in the graph represents some function essential to radio, such a demodulation and filtering. Although they are performed digitally on the computer when the model is run, it's worth keeping in mind that they are exactly the same the same functions that are performed by the electronic circuits of analog radios. This is a fantastic learning tool.
I also should mention that GRC is not limited to just radio. It can process any type of waveform, including audio and generated waves — sine, square, sawtooth. One thing I want to try is feeding in the audio output of one of my radios and running that through some DSP functions to see what I can do with it.
On my laptop, from the Mint 19.2 repository:
gnuradio
package from the repository, which includes GNU Radio Companion. [Apt placed it in the Programming menu.]gqrx-sdr
package, which depends on GNU Radio. [Apt placed it in the Internet menu]cubicsdr
package. [Apt placed it in the Other menu]Switched to the Debian 10 desktop, with the same software installed. Dark scheme worked fine in GRC. Having a 27-inch monitor is a nice bonus, compared to the 15-inch laptop screen.
I have several SDR devices available for use in experimenting with GRC. I intend to try them all.