Spectrum Analyzer with Waterfall Display and real-time audio
processing
This program started as a simple FFT program running under DOS a long time
ago, but it is now a specialized audio analyzer, filter, frequency converter,
hum filter, data logger etc (see history). You can download
it from this site. Or look into the manual
(in HTML format), even though the manual included in the archive will be more
up-to-date. Furthermore, the same manual has occasionally been converted into a
single PDF (SpecLab_Manual.pdf),
but any attempt to create a common index and table of contents for this PDF,
using OpenOffice (with proper page numbers instead of the hyperlinks) has failed
miserably - see note in the preface of the PDF document.
If you are looking
for a short description in German language, look here.
The revision history is here.
How to use SpecLab with SDR-IQ is described here;
and how to use SpecLab with PERSEUS (without a virtual audio cable in
between) is here
.
If you need help getting the program running, or have questions about a
particular function, look into the Spectrum
Lab User's forum at Yahoo.
(SpecLab screenshot in "Colour Direction Finder" mode, VLF
spectrum, colour~bearing)
Spectrum Lab runs under Windows 98, 2000, ME, XP (home and professional),
Linux/WINE, but obviously not under Windows Vista. The reason why it doesn't
work under "Vista" is unknown. Since I don't use Vista myself, there's little I
can do about this. Use Linux/WINE, or a virtual PC running XP (inside your shiny
power-hogging Vista machine).
Features
- Input can be taken from the soundcard, but the "audio
utility" interface makes it possible to create an interface to any A/D
converter you like (for example a PIC with serial interface). A plugin for
Winamp allows to analyse audio streams from the internet (see download
section).
Besides the soundcard and the interfaces supported by the
"audio utilities", SpecLab directly supports SDR-IQ and SDR-14 (by RFSpace,
Inc), and PERSEUS (by Microtelecom s.r.l.).
- Demodulated output is usually sent to the soundcard, but can be sent
anywhere else (including an MP3- or OggVorbis encoded stream using
Winamp/Oddcast and a special Audio-I/O
DLL, which acts as an input plugin for Winamp).
- Selectable and adjustable waterfall color palette allows you to
change the contrast of the waterfall display during and after receiving
spectrum lines ("contrast" & "brightness" - sliders)
- Frequency range can be adjusted while running, the old part of the
waterfall display will automatically be re-drawn without stopping the audio
processing.
- Special waterfall mode for "Radio Direction Finder" with colour-coded
azimuth display, based on DF6NM's Wideband Direction Finder with Colour
Encoded Spectrogram Display. Now with up to three "notches" (adjustable
nulls in the synthesized antenna pattern) to suppress noise from certain
directions.
- Special "multi-strip" waterfall mode for long term observation of
relatively narrow bands
- Reassigned
spectrogram for higher time- and frequency resolution, if certain
conditions are fulfilled (since 2009-06)
- Support for image-cancelling direct conversion receivers ( quadrature
input via stereo soundcard )
- Very sharp, FFT-based audio filters which can also be used to shift
and invert frequencies, with auto notch, denoiser, etc. New
(2007-02): Write your own plugin
for the FFT filter !
- Waterfall display may run from top to bottom, or from right to left
(good for HELL modes)
- Calculation of peak levels, peak frequencies, noise levels, effective
values, SINAD, etc
- File logging and file analysis with WAVE files ( now with 'Triggered
Audio Recorder' + pre-trigger option )
- Periodic or scheduled actions, for example to capture the screen as
BMP or JPEG file
- Audio sample rates from 8000 to 192000 samples per second.
192 kS/second only tested with a few cards, using ASIO drivers and / or
standard multimedia driver. With extra hardware (like software-defined
receivers with high-speed USB interfaces), even higher sampling rates (and
thus bandwidths) are possible.
- 16-bit ADC resolution giving about 90dB of input range (plus
additional FFT gain!)
- 24-bit resolution possible with certain cards (tested with Audigy 2
ZS; 2004-05)
- Frequency resolution in the sub-milliHertz range (exceeding the
stability of the soundcard's clock generator).
- FFT output is buffered in an array with adjustable size for long-term
observations (with "scroll-back-in-time" while analysis continues).
Furthermore, the FFT output can be recorded (exported) in various formats.
- Signal generators with selectable waveform, frequency, and optional
modulation, plus noise generator
- Hum filter to remove 50 Hz (or 60 Hz) plus harmonics, based on Paul
Nicholson's algorithm for a multi-stage comb filter with automatic
tracking. If you are interested in improving your Natural Radio reception,
read Paul's Notes on Domestic VLF
Reception.
- Frequency converter to shift low "IF"-frequencies (e.g. 17.2 kHz) to
audible tones (650 Hz, etc) in real-time. Can be used in a 'soft-VLF-RX'.
Other demodulators in DSP-blackbox.
- Decoder for some time-code transmitters: MSF(60kHz), HBG(75kHz), DCF77
(77.5kHz) can now be used to set your PC clock to a high accuracy. All you
need is your longwave receiver and the soundcard.
- Modulator and decoder for some 'experimental' digital communication
modes like PSK31, BPSK, QPSK, FSK, multi-tone
HELL, MSK (minimum shift keying since 2004-12), transmission and
reception of letters with a small 'terminal' window.
A DLL
interface is available to use Spectrum Lab for new digital transmission
modes (but not in use yet).
- Fast waterfall with up to 200 waterfall lines per second, making it
possible to decode even fast Morse code by eye (though it wasn't intended
for that, it's fun to watch)
- versatile export function (text-file based, for post-processing with
Excel etc.). Brian, CT1DRP has used the export
functions to create spectrograms and signal graphs of the 136kHz band.
- Built-in HTTP server so you can write a (simple) user interface for
SpecLab in HTML (intended to be used in a LAN, not as a fully-fledged web
server).
- Communication with other applications through a simple message-based
system, which is also used by SpecLab to communicate with the RDF
calculator (range-and-bearing calculator + map plotter, link may work
on the main site only).

(screenshot
of "Components" window from an older version)
Features which this analyzer does not have
(but others do...):
- Due to its 'Laboratory' nature, this analyzer is not as easy to use as
ARGO (by I2PHD and IK2CZL, available on Alberto's homepage: http://www.weaksignals.com/
).
Some Applications
AMSAT-DL's Earth-Venus-Earth experiment on 2.4 GHz at the Bochum radio
telescope
In March 2009, a group of radio amateurs successfully bounced a radio signal
off Venus, over a distance of (2*) 45 million kilometers. A short description
of the reception technique (software) can be found here;
more details are on the AMSAT-DL website,
and in the AMSAT journal soon. Thanks to DD5ER, DJ1CR, DJ4ZC, DH2VA, DK8CI,
DL1YDD, G3RUH, ON6UG, and everyone else who contributed, for being part of the
team.
The configuration used for the (2.4 GHz) EVE test is part of the
installation package now (EVE-SDR-IQ-5kHz_2G4.usr); we used the SDR-IQ for this.
If you want to try something similar and have a PERSEUS receiver, use
EVE-Perseus_2G4.usr instead.
How to use Spectrum Lab to produce field strength plots of DI2AG, an
experimental medium wave beacon on 440 kHz in southern Germany. It realizes some
ideas we spoke about at the Ham Radio fair in Friedrichshafen (June 2005). More
info in this document (up to now, in german language only) : Beschreibung
des Einsatzes von Spectrum Lab als Bakenlogger für DI2AG. Update 2007: DI2AG
has moved to 505 kHz now (which is a new amateur radio band in many countries -
with the exception of Germany..).
There is a special narrow-band transmission mode in Spectrum Lab's "digimode
terminal" called Chirped Hell, based on an idea by Markus, DF6NM. We used it on
the amateur longwave band (136 kHz) to make some narrow band transmission. A
special property of Markus' Chirped Hell principle is the relatively low crest
factor, so it can be used to transmit characters (and even small images) quite
effectively, but (unlike sequential multi-tone hell) you need a linear
transmitter. An image received on a waterfall in "QRSS 3" mode may look like
this:
LowFER Receiver Using a "Software" IF
This article by Lyle
Koehler, KØLR, describes a simple "software defined" receiver and some
other (easier-to-use) alternatives to SpecLab too. Don't miss Lyle's
downconversion circuits which he sucessfully uses to the receive US-American
LowFER beacons. The last part describes how to log fieldstrengths of LowFER
beacons with Spectrum Lab's plot window.
G7IZU Radio Reflection Detection Page
This nice website by Andy G7IZU
monitors Meteor Shower, Aurora Sporadic-E and Solar Flares in real time, mostly
using reflections of radio signals in the 50 MHz region.
VE2AZX precise frequency measurements
Jacques, VE2AZX, describes here
how Spectrum Lab can be used for precise frequency measurements in the
millihertz region. Don't miss his detailed description - it's actually better
than SpecLab's built-in help system ;-)
If you have a suitable soundcard, you can use SpecLab to make ultrasonic bat
calls visible and audible in real-time. In the menu, select "Quick
Settings".."Natural Radio / Animal Voices" .. "Bat Converter". This
configuration requires a soundcard with true 96 kHz sampling rate, and a PC with
at least 1.7 GHz. The software shows the call in a fast spectrogram (with high
time resolution, but little frequency resolution), and converts the ultrasound
down to audio, notches out constant-frequency "carriers" (like your CRT
monitor's line sync frequency, which is annoying if it's in the "bat band"), and
finally passes the downconverted and filtered signal through an automatic gain
control stage.
As a test, I used a cheap miniature electret microphone to make this
recording of bat sounds (96 kHz, 16 bit, mono .. right-click to save it). If
you play it with a normal audio player, you will hardly hear anything. But if
you play it into SpecLab (menu "File".."Audio Files".."Analyze and Play", with
the "Bat Converter" setting loaded, you will hear the bat calls. I don't know
which species it is yet, but they seem to be quite frequent in this part of
Germany.
The FFT-based filter in Spectrum Lab is already very versatile, but it can
still be extended with a "filter plugin". These plugins come in the form of a
special windows DLL which can be loaded from the filter control panel. Such
plugins can be written with any C / C++ Compiler (recommended: Borland
C++Builder V4 or DevCpp V4.9.9.2; the latter is a free development system based
on the GNU / MinGW compiler). To develop your own plugin, download this FFT
Filter Plugin package - it contains all required information required to
write a filter plugin, and a sample plugin written in the "C" programming
language. NOTE: THE DLL INTERFACE IS STILL "SUBJECT TO CHANGE" !
To check if you have the latest version of Spectrum Lab, compare the text in
the main window's title bar with the revision number and compilation date at the
top of this document. For example, if you have "Spectrum Laboratory V2.2 b1", it
is way too old. If you have SL already installed, you can check if it's
up-to-date by selecting Help .. Check for Update in the main
menu. The primary download site for Spectrum Lab is here:
http://dl4yhf.SSL7.com/speclab/install_speclab.zip(dead?),
Backup: http://dl4yhf.darc.de/speclab/install_speclab.zip.
(V2.79 b10, compiled 2014-01-26, with improved time-domain scope,
modifications in the digimode-terminal, the option to provide the
'unmodulated carrier' as auxiliary output, longer command strings, a bugfix
in the RDF mode (with 'two loops and averaging'), the reassigned
spectrogram option, new chirp filter using an FFT-based correlator,
Ogg/Vorbis audio file reader and -writer, 24-bit 'extended format' wave
files, GPS (NMEA) decoder also through the soundcard, input resampler
optionally using the GPS PPS output for synchronisation, support for
Winrad-compatible ExtIO-DLLs (also for FiFi-SDR),
new controls for the filter passbands on the main frequency scale... see revision history.
The latest additions were:
- Spectrum buffer can be retrieved as JSON object via SL's integrated web
server
- Different buffer sizes for audio processing and soundcard I/O
- Modified Audio-I/O DLL
interface (bugfix in the configuration dialog)
http://dl4yhf.SSL7.com/speclab/install_speclab_beta.zip
(V2.79 b06, compiled 2013-11-10 or later):
Contains all the above
plus some new (unstable) features which are not required for 'normal'
use.
If the beta-installer doesn't exist, there
is no 'beta' at the moment, so use the release version above.
Details about the new installer (with separate 'Program' and 'Data' folders)
are here. If
the new installer doesn't work on your system (especially Vista / Windows
7), please report your observations on the Spectrum
Lab User's group at Yahoo - thanks in advance .
As an alternative, check the download section on Ko
Versteeg's website .
The archive includes EXE-file, sample setting
files, help system (in HTML format) and a few other goodies, but not utilities
below.
Some additional utilities which may be useful:
- Winamp
output plugin to send audio data directly from Winamp to Spectrum Lab
(not via soundcard)
- FFT
filter plugins allow you to insert your own subroutines (compiled into
a DLL) into the signal path, where signals are processed in the
frequency domain .
- Soundcard
utility sourcecodes contains an example to send an audio stream to
Spectrum Lab, using WM_COPYDATA messages.
The zipped archive also
contains the "C" headers with structure definitions for interaction between
SL and other applications (audiomsg.h) .
If you want to write your own program to control Spectrum Lab, read this
document which explains how to communicate with it using simple WM_COPYDATA
messages (the same data structures are used to exchange audio via UDP or TCP,
too).
Back to the
Software Overview