glfer - spectrogram display and QRSS keyer
is a program that displays the power spectrum of a signal as a
function of time in a format known as a waterfall display; this is also called
The horizontal axis represents time. The time scale
depends on the sample rate and the number of points per FFT. The vertical axis
represents frequency, from DC to the Nyquist frequency (half the sample rate).
The estimated power of the input signal is indicated by the color; the
spectrogram window has an automatic gain control (AGC) that ensures always the
maximum visual contrast and which, in the current version, cannot be disabled.
Resizing the main window in the horizontal direction just changes the length of
the time scale; resizing it in the vertical direction enlarges the portion of
spectrum shown in the window. The entire spectrum can be seen by scrolling the
spectrogram window using the scrollbar on the right. Moving the mouse pointer
on the spectrogram window shows the frequency corresponding to the pointer
position and the signal power at that frequency on the status line at the
The first time glfer is run it will ask to select a control port (serial or
parallel) for the TX keying functions; if the mouse is connected to the serial
port be sure NOT to select its serial port for controlling the TX otherwise
the system may hang. All the settings can be saved to a configuration file; in
this case they will be automatically loaded when glfer is launched.
Please note that the program must be run as root (or suid root) to gain access
to the transmitter control (parallel or serial) port.
You may have to use a separate mixer program to adjust the input volume and to
enable the desired input.
can use several different spectral estimators to compute the input
signal power spectrum:
the "classical" periodogram, which is obtained as the squared
amplitude 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 is a weighted combination of periodograms computed with
different windows, all belonging to the same family and having certain
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 to use 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
The (so called) "high performance" ARMA model assumes that the input
signal is composed only of white noise plus a certain number of sinusoids and
tries to extract the relevant parameters (sinusoids frequency and strenght)
from the data.
Reference article for this implementation is "Spectral An Overdetermined
Rational Model Equation Approach", by James A. 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
This method is experimental
- -d, --device FILE
- use FILE as audio device (default: /dev/dsp)
- -f, --file FILENAME
- take audio input from FILENAME (WAV format)
- -s, --sample_rate RATE
- set audio sample rate to RATE Hertz (default:
- -n N
- number of points per FFT to N (preferably a power of 2,
- -h, --help
- print the help
- -v, --version
- display the version of glfer and exit
- User startup file.
There was some report of problems in the audio acquisition routine, it seems
that some audio card/driver don't work well with select
; this needs
Maybe the Spectrogram should scroll as in other programs, all the picture moving
right to left
Jason decoder (in progress)
Spectrogram speed independent of FFT size
This man page documents glfer
, version 0.4.2
glfer was written by Claudio Girardi <firstname.lastname@example.org>
You are welcome to send bug reports to Claudio Girardi <email@example.com>.
It would be helpful to include with the bug description also the output of the
Copyright © 2010 Claudio Girardi <firstname.lastname@example.org>
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
Street, Fifth Floor, Boston, MA 02110-1301, USA