LaserScatter
By Andrew T. Flowers, K0SM
aflowers AT frontiernet.net
LaserScatter is a program designed to allow weak-signal communication on
light frequencies. The prime motivation for this project was the tropospheric
scattering experiments carried out by John Yurek,
K3PGP. LaserScatter attempts to make useful communication from these
incredibly weak signals. As you can see, the interface is highly influced by Joe
Taylor's WSJT
program and it incorporates a similar method of operation.
Click here
(or right-click and "Save As") to download LaserScatter v. 0.50 (30 July
2004)
Please use Netscape 6 or later, or the latest version of IE.
Netscape 4.x is *known* to corrupt the file. If you get a "Fatal exception" upon
launching the program this is likely the problem.
Click here (or
right-click and "Save As") to get short MS-Powerpoint presentation on
LaserScatter
-
System Requirements:
- Software:
- Hardware:
- CPU-It runs on my W98/233/64Mb, but more would be better
Untested
on other platforms
- Full-duplex sound capabilty (likely a problem on Linux systems)
- Driver circuit for laser
- Baseband AM laser receiver
- Method of keeping CPU clock within 1sec of NIST (eg., GPS)
-
Installation:
Place the JAR file in a folder of your choice. With the
current JRE installed you should be able to execute it with by
double-clicking. Alternatively, you can run it from the command prompt window
with:
java -jar laser.jar
This second method allow you to see any exceptions or program errors that
get dumped to the console.
-
Principle of operation
Messages are sent using multi-tone FSK. Each character is assigned a unique
audio frequency and is transmitted for 10 seconds. This is very similar to
Barry Larkin's PUA43 protocol. This slower transmission speed allows for
detection of extremely weak signals, orders of magnitude beneath what could be
detected by ear.
The tones are placed in two ranges: 20-25Hz ("bottom") and 26-31Hz ("top").
In a normal situation, a station transmits on the opposite band from the one
he is listening on. This should allow for full-duplex communication provided
that one's back-scatter signals do not bleed into the passband. These
frequencies were chosen to avoid any manmade interference from 50Hz or above
while passing through the input capacitors of most soundcards. Click here
for the table of characters and frequencies.
-
Trasmitting:
The program sends a square wave at 16x the transmission frequency from the
soundcard output. The benefits are two-fold. Firstly, this allows the use of a
divider (such as a 4060) to generate a 50% duty-cylce square wave at the
fundamental, which can easily drive a transmitter. Secondly, this eliminates
any interference through poor isolation between the inputs and outputs of the
soundcard. I have been able to drive a 4060 by using a step-up audio
transformer, though just barely. Click here
for a block diagram. This circuit amounts to using an audio transformer to
produce enough audio to replace the crystal in my super easy laser
transmitter. A better solution might be to amplify the output and drive a
Darlington pair to saturation to create a square wave at TTL voltages.
-
Receiving:
You will need to ensure that your soundcard is not saturated by audio from
the receiver. If it is, the signal will be clipped and you will loose
weak-signal sensitivity. Many audio programs provide a level input monitor to
help you adjust this. I'll likely provide one once I figure out how to do it.
Though it may seem counterintuitive, there is no need to filter out the strong
interference from city lights provided that system does not clip the signal
anywhere in the receive path-the FFT algorithm will sort it all out!
-
Operation:
- The program runs on an automatic timer, much like WSJT. Pressing the
"auto" button will toggle it to on. Transmission will start when the CPU
clock reaches the next integer multiple of 10 seconds. The program displays
the character it is currently sending in the "TX now" box. You may turn off
the automatic timer by pressing the "auto" button a second time. The TX and
TX bands can be selected with the check-boxes. It is possible to transmit
and receive on the same frequency band to allow for bench testing.
- The messages must contain uppercaseletters, numbers, spaces, or '/'. In
addition, the lowercase 'o' is provided for the signal report, $ for "RO" ,
and lowercase 'r' for "roger". Given the weak-signal nature of tropospheric
scatter EME practices seem appropriate.
- The program begins recording audio a moment after the start of the
transmission. This data is saved to a .wav file in the program directory.
(The filenames run in a loop between "0.wav" to "30.wav", so as not to eat
all space on the harddrive over several hours). After each 10-second cycle
the .wav file is analyzed and the data is displayed on the screen. The
amplitudes of the characters' frequencies are represented by the yellow bars
in the spectrum window. The strongest frequency in the range of characters
is mapped to a character which is printed below the spectrum window. With
relatively strong signals (though still at amplitudes that would be far from
audible) this will produce readable text, much like very slow teletype.
- To decode even weaker signals, one can enable averaging by checking the
box on the bottom right of the screen. Once must know the length of the
message to do this. The averaging should produce ~1.5dB of S/N improvement
for every doubling of the number of receive periods. The thin red bars in
the spectrum window are the relative amplitudes of the character frequencies
after averaging. The average message is printed in the top right textbox
after each receive period.
- You may wish to create test files with an audio editor and open them
here. (The program will only look at the first 8.2 seconds of the file.) One
can open files from the File menu for analysis. You may select multiple
files which will be read in alphabetial order. This is a quick way of
testing the averaging algorithm.
- There are various FFT windows on the bottom left. These are provided for
your experimentation. The rectangular window seems to be the best on the
bench, but perhaps under certain conditions others will be better. Let me
know what you find out.
- The "fudge" parameter is an adjustment of the computer's transmitter
frequency, similar to an XIT. This is in place because two soundcards often
do not agree on what the "correct frequency is". The frequency accuracy on
many laptops is often no better than a few parts per thousand. The way to
adjust this is to get both computers in the same room and exchange data with
strong signals. The spectrum may be unbalanced, causing energy to spill over
on one side of the correct tone, or possibly even be off by a character. The
fudge factor is multiplied by the tone frequency, so this is only likely to
move a few thousandths. Setting it to "1.000" means that the computer is
transmitting and receiving in the same place, wherever it thinks that is.
Presumably most soundcards use the same time source for both input and
output, so if one computer has to fudge upward in frequency, the other
probably has to fudge down.