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 changed.
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.
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: 1024)
-h, --help
print the help
-v, --version
display the version of glfer and exit
~/.glferrc
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 <[email protected]>
You are welcome to send bug reports to Claudio Girardi <[email protected]>. It would be helpful to include with the bug description also the output of the configure script.
Copyright © 2010 Claudio Girardi <[email protected]>
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