WSJT-X/jtms3.txt

51 lines
2.1 KiB
Plaintext
Raw Normal View History

JTMS v3.0: Possible New Mode for Meteor Scatter
-----------------------------------------------
1. Transmitting
Messages are sent character-by character, 6 bits plus even parity.
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.
Modulation is BPSK at 2000 baud. The baseband waveform is built by
inserting a tapered sinc function for each bit, then multiplying by a
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.
2. Receiving
a. Pings are detected (or mouse-picked data is selected) as in
WSJT9. Pings can also be detected from the squared analytic
signal. Experience may tell which is better.
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)
c. Square the complex signal, cx2=cx*cx, and compute FFT. Look for
carrier at frequency 3000 + 2*DF +/- 2*Tol. (msdf)
d. If carrier is found, measure frequency f and phase phi. Multiply
cx by exp(-twopi*i*f*t - phi) to recover the real baseband signal
x() to within a sign ambiguity. (tweak1)
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.)
f. Establish symbol and character sync by cross-correlating with
conjg(cwb), where cwb is the baseband PSK waveform for the
<space> character.
g. Find message length by computing ACF (of what? cdat? soft
symbol values?)
h. Decode the message by cross-correlating character-length segments
of cdat against complex waveforms for each possible character.
i. If msglen is established and long enough, try folding the data and
determining best-fit characters as above.