2012-07-04 10:40:11 -04:00
|
|
|
JTMS v3.0: Possible New Mode for Meteor Scatter
|
|
|
|
-----------------------------------------------
|
|
|
|
|
|
|
|
1. Transmitting
|
|
|
|
|
2012-07-12 15:10:39 -04:00
|
|
|
Messages are sent character-by character, 6 bits plus even parity.
|
2012-07-13 11:54:03 -04:00
|
|
|
Message length can be one of {5 7 9 11 13 17 19 23 29}; messages are
|
|
|
|
padded with blanks up to the next available length.
|
2012-07-04 10:40:11 -04:00
|
|
|
|
2012-07-12 15:10:39 -04:00
|
|
|
Modulation is BPSK at 2000 baud. The baseband waveform is built by
|
|
|
|
inserting a tapered sinc function for each bit, then multiplying by a
|
2012-07-13 11:54:03 -04:00
|
|
|
sine wave at frequency f0 = 10000.0/7 = 1428.57 Hz. At fsample=48000
|
|
|
|
Hz there are 24 samples per PSK symbol and 7*24=168 samples per
|
|
|
|
character. Carrier phase increment over one character is
|
|
|
|
f0*(168/48000) = 5 cycles, exactly.
|
2012-07-04 10:40:11 -04:00
|
|
|
|
2012-07-12 15:10:39 -04:00
|
|
|
2. Receiving
|
2012-07-04 10:40:11 -04:00
|
|
|
|
2012-07-12 15:10:39 -04:00
|
|
|
a. Pings are detected (or mouse-picked data is selected) as in
|
2012-07-13 11:54:03 -04:00
|
|
|
WSJT9. Pings can also be detected from the squared analytic
|
|
|
|
signal. Experience may tell which is better.
|
2012-07-04 10:40:11 -04:00
|
|
|
|
2012-07-12 15:10:39 -04:00
|
|
|
b. Compute real-to-complex FFT. Zap birdies, remove frequency
|
|
|
|
components outside the range 300 - 2700 Hz, and convert to analytic
|
|
|
|
time-domain signal. (analytic)
|
2012-07-04 10:40:11 -04:00
|
|
|
|
2012-07-12 15:10:39 -04:00
|
|
|
c. Square the complex signal, cx2=cx*cx, and compute FFT. Look for
|
|
|
|
carrier at frequency 3000 + 2*DF +/- 2*Tol. (msdf)
|
2012-07-04 10:40:11 -04:00
|
|
|
|
2012-07-12 15:10:39 -04:00
|
|
|
d. If carrier is found, measure frequency f and phase phi. Multiply
|
2012-07-04 10:40:11 -04:00
|
|
|
cx by exp(-twopi*i*f*t - phi) to recover the real baseband signal
|
2012-07-12 15:10:39 -04:00
|
|
|
x() to within a sign ambiguity. (tweak1)
|
2012-07-04 10:40:11 -04:00
|
|
|
|
2012-07-12 15:10:39 -04:00
|
|
|
e. Apply matched filter for the Tx pulse shape to x(). This is
|
|
|
|
essentially a rectangular BPF, -1000 to +1000 Hz ? (Or convolve
|
|
|
|
with the generated PSK pulse shape, the tapered sinc() function.)
|
2012-07-04 10:40:11 -04:00
|
|
|
|
2012-07-12 15:10:39 -04:00
|
|
|
f. Establish symbol and character sync by cross-correlating with
|
|
|
|
conjg(cwb), where cwb is the baseband PSK waveform for the
|
|
|
|
<space> character.
|
2012-07-04 10:40:11 -04:00
|
|
|
|
2012-07-12 15:10:39 -04:00
|
|
|
g. Find message length by computing ACF (of what? cdat? soft
|
|
|
|
symbol values?)
|
2012-07-04 10:40:11 -04:00
|
|
|
|
2012-07-12 15:10:39 -04:00
|
|
|
h. Decode the message by cross-correlating character-length segments
|
|
|
|
of cdat against complex waveforms for each possible character.
|
2012-07-04 10:40:11 -04:00
|
|
|
|
2012-07-12 15:10:39 -04:00
|
|
|
i. If msglen is established and long enough, try folding the data and
|
|
|
|
determining best-fit characters as above.
|
2012-07-04 10:40:11 -04:00
|
|
|
|