GLFER(1)

πŸ“¦ version 0.4.2, in debian bookworm, ubuntu jammy

πŸ‘‘ GLFER β€” spectrogram display and QRSS keyer πŸ’–

okay so bestie, this is GLFER(1), and it lives in the General Commands Manual (that's section 1, the user-command girlies πŸ’…). Buckle up, she's a whole vibe ✨


🌈 SYNOPSIS 🌈

glfer [OPTIONS] ...

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so glfer is that program that shows you the power spectrum of a signal as a function of time, in a format the girlies call a waterfall display β€” you might also hear it called a spectrogram. Same thing, no cap.

Let's break down the axes because this is genuinely iconic:

  • The horizontal axis is time. The time scale depends on the sample rate and the number of points per FFT.
  • The vertical axis is frequency, going from DC all the way up to the Nyquist frequency (that's half the sample rate, bestie).
  • The color tells you the estimated power of the input signal. And the spectrogram window has an automatic gain control (AGC) that makes sure you always get the maximum visual contrast β€” and in the current version, it cannot be disabled. periodt.

Now, resizing the main window? The way that works is lowkey cute:

  • Resize it horizontally and you're just changing the length of the time scale.
  • Resize it vertically and you're enlarging the portion of spectrum shown in the window.

Wanna see the entire spectrum? Just scroll the spectrogram window with the scrollbar on the right 🫢

And if you move the mouse pointer over the spectrogram window, it shows you the frequency corresponding to the pointer position and the signal power at that frequency, down on the status line at the bottom. obsessed.

The first time you run glfer, it's gonna ask you to select a control port (serial or parallel) for the TX keying functions. ⚠️ And listen: if your mouse is connected to the serial port, be sure NOT to select its serial port for controlling the TX, otherwise the system may hang. Not a drill, bestie 😭

All the settings can be saved to a configuration file β€” and if you do that, they'll be automatically loaded every time glfer launches. slay.

🚨 Please note that the program must be run as root (or suid root) to gain access to the transmitter control (parallel or serial) port. That's just how it is.

Also, you may have to use a separate mixer program to adjust the input volume and to enable the desired input. iykyk.


✨ SPECTRAL ESTIMATORS ✨

glfer can use several different spectral estimators to compute the input signal power spectrum. Let's meet the cast πŸŽ€

🌸 Periodogram

the "classical" periodogram, which you get as the squared amplitude of the discrete Fourier transform, after tapering the data with a "window function" β€” and you get to pick which one, from: Hanning, Blackman, Gaussian, Welch, Bartlett, Rectangular, Hamming and Kaiser. As usual, the FFT number of points and the overlap between data blocks can be freely changed. πŸ’…

πŸ’œ Multitaper method

The multitaper method is a weighted combination of periodograms computed with different windows β€” all belonging to the same family, and all 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, you can also change a relative bandwidth parameter and the number of windows to use for the analysis.

Heads up though: this method requires more CPU power than the first one, because it does several FFTs 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 mean 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 it tries to extract the relevant parameters (sinusoids frequency and strength) 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 you can vary:

  • t β€” the number of samples used for computing the samples autocorrelation
  • p_e β€” the order of the AR model

This latter must be less than t, and both numbers should be fairly small in order not to overload the CPU. The number of sinusoids is estimated automatically 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. πŸ’–

⭐ LMP

This method is experimental.


πŸŽ€ OPTIONS πŸŽ€

  • -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

🌟 FILES 🌟

  • ~/.glferrc β€” User startup file.

πŸ’€ BUGS πŸ’€

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.


πŸ¦‹ TODO πŸ¦‹

  • 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

πŸ“ VERSION INFORMATION πŸ“

This man page documents glfer, version 0.4.2.


πŸ‘‘ AUTHOR πŸ‘‘

glfer was written by Claudio Girardi <in3otd@qsl.net>


🌈 REPORTING BUGS 🌈

You are welcome to send bug reports to Claudio Girardi <in3otd@qsl.net>. It would be helpful to include with the bug description also the output of the configure script. 🫢


Copyright Β© 2010 Claudio Girardi <in3otd@qsl.net>

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

okay and that's the whole page bestie, we ate πŸ’…βœ¨ this was Version 0.4.2, from January 2010, and it's your girl GLFER(1) signing off β€” stay rooted, stay suid, and don't pick the serial port your mouse is on πŸŽ€πŸ’–πŸ¦‹

πŸ“¦ where this page comes from