Revision History of the Audio Spectrum Analyzer / Spectrum Lab --------------------------------------------------------------- (original file location: c:\cbproj\SpecLab\revision.txt) V2.71 b8..b9, March 2008 - Added support for PERSEUS (a direct sampling LF..HF receiver by Nico Palermo (IV3NMV) / Microtelecom . - Added the possibility to "play back" the contents of the spectrogram buffer, using an inverse FFT to convert the spectra back into audible signals . - Added the 'hard limiter' in the signal processing blackboxes. V2.71 b6..b7, January 2008 - Improved the integrated HTTP server (optional bandwidth limiter, reduced CPU load due to less frequent update of the captured spectrogram image). V2.71 b2..b5, December 2007 - Individual parameters for the channels of the spectrum analyser: * center frequency (for complex FFT with decimation), * frequency offset (which is added to the displayed value), * contrast and brightness value for the spectrogram . - Some changes in the built-in HTTP server to conserve bandwidth and reduce the CPU load. More robust when multiple clients connect to it through the internet (though never planned as a fully fledged web server.. see GM4ISM's 500 kHz display). - Visual AGC for the spectrogram . V2.71 b0..b1, Autumn 2007 - Re-introduced different columns in the sample rate calibration table, after discovering that the sampling rates for in- and output of the author's notebook were "slightly different" ! - Output resampling function supports *any* non-integer ratio between input and output sampling rate for this reason. (previously, the same resampling function was only used if the input was *not* a soundcard). - Completely modified the spectrum buffer structure, in order to get the "Spectrum Replay" function working : - Added the "Spectrum Replay" function, which uses an inverse FFT to transform FFT's (from the spectrum buffer) back into the time- domain to make them audible in the speaker. See html\SpReplay.htm . V2.7 b16..b19, Spring..Summer 2007 - Triggered audio recorder (click at the circle in the main menu !) - Long term average option (for Amsat DL's Earth-Venus-Earth experiment) - Zoom into selection (in the spectrum graph) - Improved support for Linux/WINE (see html\speclab_under_linux.htm) - Added support for SDR-IQ / SDR-14 by RFSPACE - Discarded the WISE installer in favour of the free INNO Setup Compiler - some minor bugfixes V2.7 b13..b15, 01/2007 - Support for ZL1BPU's "CASTLE" mode (Morse code in MFSK). - Arbitrary waveform generator V2.7 b11..b12, 11..12/2006 - Added a miniature HTTP server for remote control via web browser - Added the 3D-spectrum display V2.7 b9+b10, 10/2006 - Added the PTT "pilot tone" for RX/TX switching without a COM port. Use an LM567 tone decoder to key the transmitter via soundcard. - Multi-strip waterfall (for long-term display of narrow bands) - Frequency scale now in two flavours: "classic" and "ruler" style - Commands to access the serial port signals (ptt_port.x) - Commands to change size+position of the main window (window.x) - Application can be minimized into the SYSTEM TRAY instead of task bar V2.7 b8, 09/2006 - Simplified colour palette selection (list with preview bitmaps) - Enhanced "Conditional Actions", states now indicated in the table - New preconfigured settings: "Bat Converter", "QRSS1" and some more - Two instances of SL(!) running on one PC can now communicate with each other, using the "send"-command. - Fixed a bug in the interpreter (for automatic gain control) - added the "sref" commands (for the spectrum reference) and some others V2.7, 07/2006 - FFT can now produce a COMPLEX output (besides the amplitude spectrum), which can be logged into the spectrum logfile too ("spectrum export"). Intended to be used in a geophysic experiment to detect the orientation of magnetic fields (influenced by underground structures). - FFT-based filter supports I/Q-input and/or -output now, which can be used as the core for a software-defined radio (RX and TX). - Waterfall scroll interval can be automatically set for 50% FFT overlap. - Transmitted text in the digimode terminal can now contain interpreter commands (embedded in angle braces, as described in the manual). V2.6, 2006 - Added remote control functions ("rct") for some radios (CI-V), see "ncdxf_4u1un_tracker.txt" (demo for remote control functions) . - Simplified the adjustment of image-cancelling DC receivers with I/Q input to the soundcard, see dc_rx_with_iq_processing.htm . - Extended the functionality of the FFT-based filter, which can now be used to shift frequencies up or down, and to "invert" sidebands (for USB<->LSB conversion in any required frequency range). The "SAQrcvr" profile (VLF receiver, targeted at SAQ) now uses this method for frequency conversion, which seems to consume less CPU power than the classic approach with mixing and filtering. - Added some interpreter stubs to access the new functions. V2.5, 2005 - up to three nulling directions in RDF mode (improved "beam shaping") - new command line options to play audio files etc (see "startins.htm"). - debug option (/debug on the commandline) writes debug_run_log.txt - output plugin for Nullsoft Winamp to feed audio directly into SL - Spectral limiter in the FFT filter control panel, ok for natural radio - cosmetic surgery in the spectrum display (removed framed panel, etc) - less system resources needed, some forms are now dynamically created V2.4, 2004 - New, flexible, programmable "conditional actions" for beacon logging - Dual readout-cursor with optional "delta"-function - Added Minimum Shift Keying (MSK) for experimental purposes - Added "Chirp Hell" transmission, based on DF6NM's basic programs - Added the combination for "Fast File Analysis with plotter enabled" - Fixed problems with some window's background colour under WinXP - Modified screens which didn't look good when using large fonts - New units for spectrum displays: V, W, dBm, dBV - Using "technical notation" if possible (12.3 uV instead of 1.23e-5) - optional logarithmic frequency scale - removed all fonts from the installation script because they caused problems under certain WinXP versions - New export function for the FFT results ("spectra") - New noiseblanker and Automatic Gain Control (in the DSP blackboxes) - triggered aquisition of FFT's for a very special application - published the WM_COPYDATA-based protocol which allows other programs to communicate with SL V2.3, 2003 - FFT-based filter, can be used as auto-notch etc. V2.2, 2003 - Played with modulators and demodulators - Improved dual-channel processing (aim: I/Q processing) - RDF module based on DF6NM's CAS (colour azimuth spectrogram) V2.1, V2.0, 2003 - never officially released ! V1.9, Aug. 2002 - Sept. 2002: - Played with frequency shifters using the WEAVER method, info found at http://www.csounds.com/ezine/summer2000/processing/ . - A new buffer routine for the waterfall optionally uses files, which gives an enormous "scroll-back"-range but causes problems on some machine (the memory-mapped file routines behaved very strange on some old machines). V1.7, March 2002 - April 2002: - New calibration routine which can run permanently to detect the soundcard's sample rate, using a narrow- band phase detector which can lock the sample rate to a precise reference signal like the 15625 Hz TV sync etc. Nice in combination with the phase meter. - Experiments with an audio chopper circuit to have DC-capability for the analog input. V1.67, October 2001 - January 2002: - Implemented a simple "real-time plotter" so you can see graphs of analyzed data without using a spreadsheet program. - Some programs compiled with C++ Builder V4 which use Yariv Kaplan's WinIO.DLL don't run properly under Win XP (they seem to crash on EXIT). As I am not switching to Win XP for several reasons, these problems will probably never be fixed. WinIO has been removed in V1.67b4 for testing.. - Help system converted to HTML (to get rid of the lousy WinHelp system, and the need for RTF files and the nasty help compiler) - Started some experiments with "named pipes" to carry audio data in real-time over local networks (discontinued) - Added the option to select one of possibly many soundcards. Never tested because only one "audio device" available here. - Added the "blackbox" component in the test circuit, can be used as delay line / echo effect / hum canceller. - Minor bugfixes and improvements in the circuit window. V1.66, August 2001: - Someone asked to support 48 ksamples/second, hope it works for you. Nice for the 'software VLF radio' if you want to listen to a station at 23.x kHz. - a bit of cleanup in the settings-dialog, now it's a "multi-line" tab to avoid scrolling - JPEG encoder implemented. Uses PAINTLIB Copyright (c) 1996-1998, Ulrich von Zadow IJG's JPEG library Copyright (C) 1994-1997, Thomas G. Lane - an Image viewer with the option to look at all saved images in a directory, just like a slideshow. - a windows message interface which allows other applications to use some of SpecLab's internal functions. Uses WM_COPYDATA. (this was later thrown out again, using "named pipes" instead) V1.65, April 2001 - June 2001: - Improvements and bugfixes, tnx DF6NM and CT1DRP - test signal generator supports versatile AM and FM now - frequency converter improved, useful as "S/W VLF radio" now - duplication of waterfall display lines now only 'optional' - non-scrolling waterfall option - 'full-window' waterfall OR spectrum graph option (and more..) - now 8 instead of 6 FFT decimation stages (even more resolution) - display range increased to -60dB..+90dB, because of 'gain' from the FFT and decimation can give much more dynamic range - displayed ampitude range no longer fixed to 0...100dB - FFT averaging improved (less smearing for SLOW waterfalls !) - amplitudes of test generators can be attenuated down to -60db - sample rate 5512 samp/sec (from SOUNDCARD) now possible - experimental narrow-band multi-tone HELL transmission implemented - separate columns in the sample rate calibration table for ADC and DAC (example: 8002.87 for DAC and 7938.09 for ADC) - removed the small "FFT control panel" because it's obsolete now V1.64, March 2001: - Fast Waterfall mode allows calculation of 200 spectra per second (5ms scroll interval), good for analyzing FSK modes (like RTTY etc). Use low FFT resolution like 256..2048. - Complex FFT calculation with adjustable center frequency and decimation ratio up to 700 allows resolution in the 'sub-millihertz' range. Use slow scrolling speed ! V1.61 - V1.63, Dec.2000 - Jan.2001 - PSK modulator and detector implemented, basic routines taken from WinPSK31, but symbol rate now adjustable (down to 1 symbol/second). - WAVE-file-logging can now be 'tapped' to the sound INPUT or the sound OUTPUT. - Audio chunk size increased to 2048 samples/chunk, reducing "dropouts" in the TX signal for the expense of a longer delay between filter input and output. - Did some experiments with "constant amplitude PSK" with slowly moving phase, but sidebands too broad so doesn't seem to be worth all the effort yet :-( - Some experiments with Minimum Shift Keying (MSK) planned, but a good(!) decoder is complicated. - Some new filter designers (for FIR filters), for example the Remez Exchange (Parks/McClellan) algorithm (included since SpecLab V1.63). - Filter algorithm for the sample rate decimation is now under user control: use integrate-and-dump filter for very slow PCs (like the one at DF0WD) or proper FIR filtering if the PC is fast enough. - proper filtering also possible when logging samples into a wave file (formerly only integrate-and-dump, which may cause aliasing problems). To keep the program running on slow PCs, this new feature can also be turned off from the config dialog. V1.5r2, December 2000: - Implemented a "time signal decoder" for some time signal transmitters on longwave (MSF on 60kHz, HBG on 75kHz, DCF on 77.5kHz). Allows you to adjust your PCs clock very accurately. The intention for this decoder was to have a "precision timebase" for some "very special" modes (like coherent CW etc). V1.5r1, October 11th, 2000: - FFT resolution increased by "downsampling" the audio samples taken from the soundcard before feeding them into the FFT. The effect is a lower "internal" sample rate (adjustable) which allows a resolution of about 20mHz (m=milli!) for the expense of a maximum detectable frequency of about 900Hz, using an FFT size of 64k. - Started working on a "Spectrum Alert Function". Description will follow after completion of this feature. - Thought about a simple BPSK decoder but not enough background info available (just the "basic facts"). V1.4, September 10th, 2000: - IIR-Filter designers modified. Chained 2nd-order IIR-filters of any type can be generated and combined. The filter design (not only the coefficients) can be saved as file. - Programmable periodic screen capture of the waterfall implemented. Allows automatic saving of a sequence of bitmaps for "long-term" or "late-night" recordings. Thanks to Petr, OK1FIG for the idea (from his EasyGram). - A time-domain signal multiplier ("mixer") has been implemented to transform the frequency of input signals to a comfortable 600-Hz (or so..) audio. Based on an idea from Christer, SM6PXJ. V1.3, September 2nd, 2000: - Analysis of audio WAVE file now possible - "File logging" of audio samples into a WAVE file included - Some control windows simplified ("Apply"-buttons removed) - Minimum interval for waterfall scroll reduced from 200ms to 100ms, but slower PCs will not be able and scroll slower - a simple but still "experimental" audio filter with programmable coefficients has been implemented - a small Online-Help-System with context sensitive help is now included (and replaces the old "manual") - Deciced to rename the project from "Spectrum" to "SpecLab" which will also be the name of the executable files. ( SpecLab will be the short form for "Spectrum Laboratory", so everyone knows what we're talking about ?? ;-) V1.2 beta, August 21st, 2000: - Waterfall scroll speed is now independent of the FFT size (tnx DF8ZR and G3XDV), may now be reduced to 200ms per scroll even when using 32768 samples per FFT. The trick is to use "old" samples that have been analyzed before and NOT to wait until there are enough samples for a completely new FFT analysis. - Intended to add a "WAV file analyzer"-mode, but the WAV file format is more complicated than expected :-( , so V1.2 is an "intermediate" version again ! - Source code has not been published for this version, because it will be OLD very soon... V1.1 beta, August 19th, 2000: - minor bugs fixed: program crashed if window was minimized and size of the waterfall window became "negative". - default settings (if SETTINGS.INI not found) optimized. - possibility to save the waterfall image as a bitmap now V1.0 beta, July 2000: - Conversion from DOS to WIN95 using Borland C++Builder. The old integer FFT algorithm was later replaced by a floating point FFT algorithm because the floating point algorithm proved to be **FASTER** than the integer FFT, because CPU and FPU operate "parallel" in a Pentium. Wolfgang "Wolf" Buescher, DL4YHF.