Other and non-digital radio stuff.

Next to the DAB and DRM (and sw) software, there are some other SDR and even non-SDR programs. \par First of all, there is the inevitable spectrumviewer, in my case there are even two of them. Then there is an FM decoder, one with lots of buttons and displays. Since I am enthousiastic SDRplay user, I wrote some plugins for the SDRuno environment. Finally, there is an ALGOL 60 to C translator, old stuff.

Spectrumviewers

With devices that capture segments of several MHz, it is interesting to see the spectra of these segments. Devices like an SDRplay have a maximum width of say 8 MHz, so half of everyhting that happens in the FM band can be made visible in a single picture. The {\em spectrumviewer} is an ideal program for that, it is able to handle input from a variety of input devices, and it has no less that three "scopes".

The top one showing the spectrum of the signal, with the second one showing the spectrum as a waterfall. The third one, smaller, allows you to look in greater detail to a segment of the spectrum. The amount of detail is determined by the decimation setting, a range between 5 and 100.

Added is a view on the signal - as presented to the detailed viewer - as appearing in the time domain.

spectrum

The spectrumviewer has support for common devices such as the SDRplay (both using the 2.13 and the 3.0X library), the AIRspy, RT2832 based DABsticks, the HackRF, the limeSDR and -experimental - the Elad-s1 and the Colibri. Sources can be found in this repository

Sometimes one wants to get a glimpse of a whole band, no details, just an overview. The picture shows - as an example - what one gets with a simple whip in the range 550 .. 650 MHz. Other tools focus on details, this one on the global view

panorama-1

The width can be set. Since the picture is built up from frames - in this case frames of 8 MHz width, it takes some time to build pictures with a larger width, such as the one below, covering the range from 200 .. 1000 MHz.

The panoramaviewer can be used with devices like the SDRplay (with support using the 2.13 library as well as the 3.0X library), the airspy, and the RT2832 based DABsticks. Experimental support for the Colibri and the Elad-S1 is also implemented. Sources can be found in this repository

panorama-2

An FM decoder

FM is still alive, maybe it disappears, but contrary to the old AM band, the band is far from empty.

devices

The FM decoder reads in the samples with a width of 2112 KHz, and decimates that to 192KHz (just an integer factor). The FM processing is done on 192KHz. The display on the right shows the segment of 2112KHz, the display on the left shows the decoder signals. The pilot - at 19 KHz - and the rds - at 57 KHz - can be distinhuished easily.

The FM decoder supports common devices, such as the SDRplay (both using the 2.13 and the 3.0X library), the AIRspy, the RT2832 based DABstics, the HackRF, the limeSDR, the Adalm Pluto and - experimental - the Elad-S1 and the Colibri. Sources - and installers - can be found in this repository

Plugins for SDRuno

While I try to create software that will run under Windows as well - cross compiling from within Linux - I am not very familiar with Windows. Nvertheless, since I am an enthousiastic user of the SDRplay device, I converted some of the decoders that were written for the sw software to plugin for the SDRuno environment. Plugins are there for weatherfac, psk, rtty, navtex, and cw. An experimental plugin for drm is also in the list.

The repositories "https://github.com/JvanKatwijk/SDRunoPlugin_XXX" contain the sources and dll's for these plugins.

The Algol to C translator

Very long time ago, Algol 60 was an important programming language, while not always popular, it was used for introductory programming courses and for description of algorithms.

In those days I wrote a compiler for Algol 60, targeted to the PDP-11 instruction set, the compiler was originally written in BCPL, later recoded in C. The sources were - obviously - lost.

Around 2002/2003, I wrote in spare time, a next version of the compiler. The objective was to write something that produced regular C code, such that typical Algol 60 things like call by name, and unspecified procedure parameters could be explained to students (although I had no direct involvement in education at that time).

As almost a miracle, the sources were discovered on some old floppy discs, and with only a few minor changes the compiler could be compiled and ran. Sources can be found in this repository The repository also contains a number of example programs.

Recently an addition was made, the compiler was used in France, and therefore a command line parameter parameter was added to let the compiler accept French keywords, rather than the default British/US style keywords.

This manual is a user's guide and describes - in about 20 examples - in quite some detail the mappings of Algol 60 constructs in the resulting plain C code. Actually, the compiler works pretty well on my x64 based laptop and my RPI 2 and 3. And, yes, the compiler has no problems with the so-called "man-or-boy" problem.