glfer - spectrogram display and QRSS keyer
glfer [OPTIONS] ...
glfer 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 a spectrogram. 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 bottom.
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.
glfer 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
The multitaper method 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 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 readable.
High performance ARMA
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: 8000)
-n N number of points per FFT to N (preferably a power of 2, default:
print the help
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 further investigation
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 configure script.
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 version.
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