Introduction
This is an ongoing development taking place within that part of the radio amateur fraternity involved with the use of digital signal processing to further communication via meteor scatter and other transient reflective phenomena. One focus for this interest can be found in the group:
HellScatter@yahoogroups.com
Slowfel3 is an EXPERIMENTAL freeware Hellschreiber (FeldHell) Tx/Rxprogram evolved while experimenting with DSP of a PC plus soundcard. It uses a highly cut down font of 5 pixels per vertical character 'stripe' and these are coded into audio tones of 1000 and 750Hz representing white and black respectively. Each pixel is sent in a block of 2048 samples at the soundcard sampling frequency of 8000Hz, and since most characters occupy 5 or 6 vertical 'stripes' this results in a character rate of around 5 seconds per character. The decoding is by a Fast Fourier Transform running at the transmission rate and the character pixels are decoded by taking the strongest bin between preset limits in the frequency spectrum for "black" at 1000Hz and "white" at 750Hz. There is provision for manual synchronization of the receive FFT's with the incoming signal to maximise sensitivity. This makes for an extremely sensitive ultra simple decoding method.
This program has some advantages over its predecessor program SLOWFELD in that it is an FSK system giving increased sensitivity, it is some 6 times faster and it is much less sensitive to frequency drift.
Program overview
The program is written in Borland C++ Builder and uses a PC plus soundcard running under Windows95. Reception commences with a FFT (Fast Fourier Transform) stage as a precursor to some filtering and to provide a waterfall tuning display. The incoming audio is sampled at 8000Hz 16-bit resolution, and then a decimation of 2 is applied giving a Nyquist frequency of 2000Hz. Note that frequencies above 2000Hz will alias and fold back over the spectrum of 0 to 2000Hz and this can be avoided by deploying receiver functions such as suitable filters or pass band tuning. The spectrum between 0 to 2000 Hz is displayed on a waterfall display, which has a red bars representing 750 and 1000Hz to help tuning, with pale blue bars showing the bandwidth limits.
The character set A-Z, 0-9, plus ,.<>;:/? and space is encoded in a very crude 5 pixel per vertical element font. The character throughput is around 1 character per 5 seconds.
On receive, the program plots the output to a 512 bit long display image. When this is full it is copied to an image above, covering what was there before.
On transmit, data typed into the transmit buffer is taken out one character at a time and transmitted. Note that the output consists of two tones with the switching taking place when the two tones are in phase resulting in a constant output with relatively few switching transients. As with all methods where audio is fed to an SSB transmitter there are ENORMOUS possibilities for overloading...it will be safest to ensure that the transmitter ALC does not come into play. Also please do not exceed the rating of the transmitter for this sort of continuous duty. Note that the first two data blocks fed to the soundcard on switching to transmit are silent to avoid hot switching problems.
CQ and QSL buttons with other macros are available which enter simple messages compounded with the callsign entered at the set-up stage into the transmit buffer.
Minimum System Requirements
Slowfel3 requires Windows 95 running on a Pentium and it MUST have floating point capability. The program is very demanding on CPU time. Screen savers should be disabled and other processor intensive programs should probably be suspended while runningSlowfel3. If the CPU runs short of time there will be an obvious jerkiness in the operation. This may not be disastrous but if it is persistent then you need a faster PC or you need to turn off whatever is hogging CPU time.
Program Installation
Unzip the file "slowfel3.zip" into a suitable folder (directory). This folder can be placed anywhere but is probably best to create a new one for it at, for instance, C:\slowfel3\. If online help is desired then the file "slowfel3.htm" needs to be in the same directory. The program consists of a single .exe file, slowfel3.exe, which may be run from the Windows95 Start/Run menu or a short cut can be set up in the normal way.
To remove this program, just delete all the files in the folder where slowfel3.exe resides.
Hardware Installation
Connect a screened audio cable from the audio output of your SSB receiver to the line-input jack of your soundcard. Either left or right input (or both) will work. Don't use the microphone input of the soundcard. It is best to use a dedicated auxiliary audio output on the receiver that does not vary in level with speaker volume.
Connect a screened audio cable from the soundcard audio output to the microphone input of a suitable SSB rig. Some rigs provide an accessory input that may be more suitable.
Operation
On running the program, there will be a pause and then the waterfall display should appear and show a moving representation of the audio spectrum. Adjust the input level to the soundcard line input so that no red lines appear on the waterfall display and then adjust the sensitivity of the waterfall display to suit conditions using the TrackBar provided. If the lines across the waterfall display are shown as red then the input is overloaded and the soundcard audio-control window should be called up and the line-input level adjusted accordingly. It is vital to get this part right before going further, as you need to use all of the soundcard 16 bit dynamic range.
By the same means the audio output level may be set to suit the transmitter, and it may be considered an option to leave this window displayed
Run set-up from the dropdown menu to enter your callsign for the CW ident. You can also enter a COM Port setting to allow TX switching. Once the callsign has been entered then the CQ and QRZ macros will operate and when clicked, will place CQ and QRZ texts into the transmit window ready for transmission.
Tune in the signal so that the two tones occupy the two zones at 750 and 1000Hz, There are three bandwidths selectable from a radio group. The decoded signal should now appear on the bottom display and when this is full, the contents are transferred to a display above and the main display cleared. Adjust the "Main Display Sensitivity" control to maximum sensitivity, if the signal is amplified beyond maximum blackness then the displayed pixels will be displayed red and if this happens back off the control. Finally adjust the "Set FFT Sampling Phase" control for maximum sensitivity and clarity. This ensures that the receiving FFT's are in phase with the blocks sent by the other station.
There is a small screen provided for entry of the callsign of the station with which you are in contact. When this is entered the two macros will allow "callsign de callsign" messages to be placed in the transmit window ready for transmission The soundcard audio control window may have "advanced" tone control setting facilities, if so set these for mid range i.e. response as flat as possible.
There is no "Tune Up Tone" facility, although I can provide one later. Note that there is always great potential for OVERLOADING. Please keep an eye on your ALC so that this does not occur; it is safest to run with NO ALC indication occurring.
Type your message into the type-ahead buffer when in receive and do not terminate with an Enter character. When you switch to transmit the message will be sent until the buffer is empty.
The CW ID button is enabled when the TX button is operated and stops the sending of data and sends "DE <callsign>" if the callsign has been entered in the "Set Up" routine
Note that because the soundcard input and output functions are now separated, it is possible to externally connect the centre connection of the soundcard line input and line output with a screened lead, and record msfscw6 output to a .WAV file. Any simple recording program such as the Windows generic one may be used. Please use 8000Hz sampling frequency 16-bit mono. In the same way, pre-recorded .WAV files may be played into the program, but they MUST be 8000Hz 16 bit mono also. This procedure is highly recommended to allow the user to gain familiarity with the program.,
Note that when the decoding display is full, its contents are copied to an identical display above, where it is shown until the decoding display is full again.
Problems
Writing programs for soundcards is notoriously difficult, and I cannot guarantee that the program will work on any given set-up, especially if "clone" soundcards are involved. One or two specific problems have arisen:
One property of C++ Builder that I can do nothing about is when a video display greater than 640X480 is used and then configured for zoomed fonts. This gives rise to all sorts of strange effects with some parts of the display not appearing or working wrongly. If this is suspected try reconfiguring the display to 640X480 with no zooming.
The program has now been written to separate completely the soundcard input and output functions, and this should have overcome the previous requirement for the soundcard to be capable of and be set up for full duplex operation.
I am neither a professional computer programmer nor a radio engineer. This is for fun...
History
24/3/2001
Slowfel2
26/3/2001
Slowfel3.
Changed tones to 750/1000 Hz.
Enlarged displayed characters X 4.
Improved to deal with grey scales of display, with maximum blackness being displayed in red.
Incorporated system to manually synchronize sampling of blocks to match incoming signal for maximum sensitivity and clarity.
73
Lionel Sear G3PPT lionel@lsear.freeserve.co.uk
24th March 2001.