- Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Sponsored Links

Latest News
  General News
  Press Releases
  Off Topic

Back to files

README for glfer 0.3.4 by Claudio Girardi, IN3OTD


*** Please note that you will need to run the program as root (or suid *** root) to gain access to the transmitter control (parallel or serial) *** port.

glfer was designed for transmitting and receiving QRSS/DFCW transmissions, as used by hams mainly on the 137 and 73 kHz bands. It is composed of two main parts:

  • the spectrogram window
  • the TX keying functions

Almost all the program functions have their own help; just keep the mouse pointer over a input box or on a button for more than a second and a brief explanation will appear.
Try "glfer -h" for a list of all command line options.

The spectrogram window shows the estimated spectrum for the input signal vs. time; input can be taken from the soundcard or from a WAV file specified on the command line with the "-f" switch or opened through the File/Open menu.

Starting from release 0.3, it is possible to select a spectral estimator among several different types:

  • the "classical" periodogram, which is obtained as the squared modulus of the discrete Fourier transform, after tapering the data with a "window function" selectable among the Hanning, Blackman, Gaussian, Welch, Bartlett, Rectangular, Hamming and Kaiser types. As usual, the FFT number of points and the overlap between data blocks can be freely changed.
  • the multitaper method, which is a weighted combination of periodograms computed with different windows, all belonging to the same family and having certain peculiar properties. This method was described by David J. Thomson in "Spectrum Estimation and Harmonic Analysis", Proc. IEEE, vol.70, Sep. 1982. Besides the FFT size and overlap, it is possible to change also a relative bandwidth parameter and the number of windows used for the analysis.

    This method requires more CPU power than the first one, due to the fact that several FFTs are performed on the same block of data, using different windows. The resulting spectrum is similar to a classical periodogram, but with much less variance (i.e. less variation in the background noise [speckle]). Performances are also similar to the periodogram, maybe it makes detection of QRSS signals a little easier, but this doesn't means they are always more readable.

  • a (so called) "high performance" ARMA model, which assumes a certain model for the input data (in this case it assumes white noise plus sinusoids, rather strange eh? 8-)) and tries to extract the parameters of this model (sinusoids frequency and strenght) from the data. Reference article for this implementation is "Spectral Estimation: An Overdetermined Rational Model Equation Approach", by James
    1. Cadzow, Proc. IEEE, vol.70, Sep. 1982.

At present this method is still experimental. There are two parameters that can be varied: t is the number of samples used for computing the samples autocorrelation and p_e is the order of the AR model. This latter must be less than t, and both number should be fairly small in order not to overload the CPU. The number of sinusoids is estimated autimatically from the samples autocorrelation. Use the default numbers as a starting point and experiment! Unfortunately this spectral estimator performs poorly with non-white noise (as we have usually in the RX audio, due to the IF filters) and high noise levels. On the other hand it provides a very good visual SNR with signals not buried in the noise... I will try different related methods in the future, in the hope of finding one really useful for digging weak signals out of noise.

The spectrogram window has an AGC which cannot be disabled; future releases will give control over the AGC parameters. The spectrogram display can be saved as a graphics image in JPG format; if you choose to save the entire window, a file named glfer.jpg will be created, otherwise you have to select a rectangular region with the mouse and then you will be asked for a file name.

The transmitter control part of the program is capable of keying the PA according to the QRSS (slow CW) or DFCW modes. The transmission timing, as dot length and PTT delay, can be freely varied. A sidetone function can be used as a monitor for the transmission and gives also the two (freely selectable) tones for DFCW.

The TX can be controlled through the serial or the parallel port; the pins used for PTT and KEY are the same used also in other digital modes programs (and also the same as in Rik Strobbe QRS), i.e. RTS = key and DTR = PTT/DFCW when using the serial port, DB0 = key, DB1 = PTT/DFCW when using the parallel port.


To compile glfer, after extracting the tar archive to a suitable directory (which you should have done already since you are reading this...), it should be sufficient just to type


and at the end of the compilation you should have the executable file, named glfer. See the file INSTALL for detailed, generic, instructions. Please let me know of any strange warning message during compilation or (even worse) if the compilation fails; it would be helpful to have the configure and make outputs in a file (for example: make > log.txt 2>&1 ) for a better analysis.

The first time you run glfer you will be asked to select a control port (serial or parallel) for the TX; if your mouse is connected to the serial port be sure NOT to select its serial port for controlling the TX, otherwise a mouse freeze may occur. All the settings can be saved to a configuration file; in this case they will be automatically reloaded when glfer starts.

*** Please note that you will need to run the program as root (or suid *** root) to gain access to the transmitter control (parallel or serial) *** port.

The FFTW library, by Matteo Frigo and Steven G. Johnson, is not needed to compile glfer, but will be used if available. The FFTW library can be found at FFTW home page, .

In order to be able to save the spectrograms to a (JPEG) file you need the jpeg library, by The Independent JPEG Group; I used the release 6b of 27-Mar-1998, available at as jpegsrc.v6b.tar.gz . If it is already installed, it will be detected and used automatically.

To adjust the soundcard input sensitivity you can use the mixer control program installed on your system (e.g. aumixer on RedHat) or the mixer program, which is included in the sources and compiled with glfer. To quickly select the line input instead of the mic input, which is usually the default, you can just type "mixer +rec line"

The program source code contains parts derived from:

xspectrum by Vincent Arkesteijn
specgrm2 by Philip VanBaren
Geg by David Bryant
Octave files for computing the Slepian tapers by John Kuehne Some gsl (GNU Scientific Library) files by Gerard Jungman bell-p-w.f by Brad Bell, Don Percival and Andrew Walden bplay by David Monro

and most of the features available in it are shamelessy copied from :

QRS by Rik Strobbe, ON7YD EasyGram by Petr Maly, OK1FIG; Spectrogram by Richard S. Horne;

I would like to thank all the above authors for making their nice programs available to the ham community.

Should you have any suggestion, found one of the many bugs, want to add some feature or to correct my english, please drop me a note.

For the latest version please check

                          73 de Claudio, IN3OTD

Local Variables:

Sponsored Links

Discussion Groups
  Networking / Security

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 All rights reserved.