hfmodemDocumentation

The 16-tone DPSK mode (MIL-STD-188-110 appendix A)

hfmodem.bateleur.tone16 sends and receives the 16-tone differential phase-shift keying mode of MIL-STD-188-110B appendix A, 75 to 2400 bit/s. It was written from the appendix. No other implementation was read, and no recording of another sender has been found to test against.

The waveform (appendix A)

PartWhereParagraphs
16 data tones, 935–2585 Hz, 110 Hz apart; a 13 1/3 ms signal element (75 baud, 128 samples at 9600) at every rateTONE_HZ, T, _elementA.5.1, A.5.2, table A-I
An unmodulated Doppler tone at 605 Hz, 7 dB over a data tone; nothing at 825 Hz, the synchronization slotDOPPLER_HZ, SLOT_HZA.5.4, A.5.5
Four-phase at 2400 and 1200 bit/s: (odd, even) bits (0,1) +45°, (0,0) +135°, (1,0) +225°, (1,1) +315°, MARK being 1; two-phase below, MARK +315°, SPACE +135°changes, _DPHI4, _DPHI2A.5.3, table A-II
In-band diversity: at 1200 tones 9–16 repeat 1–8; at 600, 300, 150 and 75 each bit on 2, 4, 8 or 16 tonescarriedA.5.6, table A-I
Preamble: 605 Hz and 1705 Hz, the latter turned 180° each element, the 605 Hz tone 7 dB up and the pair at the data's rms; then one element of every tone, the phase referencetransmitA.5.4

Where the text leaves a choice open:

Bytes. The appendix carries a bit stream: no coding, no framing, no end-of-message. Bytes go out least significant bit first by default. The last element is filled out with zero bits, which arrive as up to three NUL bytes (offair decode --trim drops them). The message ends when the signal does.

The receiver

stream.Receiver16 streams, and tone16.receive runs it over a recording. The signal does not carry its rate, so both ends set it beforehand, as for STANAG 4285.

How it is tested

Against itself only, through bateleur.sim's channels. Every rate round trips. Offsets reach ±41 Hz. CCIR poor (2 ms, 1 Hz) is covered. A sender's clock off by ±100 ppm is followed over a 20-second message. Two minutes of noise start nothing. The streaming receiver, fed in odd-sized pieces, gives what the whole recording gives. On the station, a message sent from the host port keys through the arbiter and decodes back, and a replayed transmission reaches the host port.

The earlier BER table used the old per-burst-normalized fading channel and did not give exact per-trial error counts, seeds or a source revision. Those figures are withdrawn. The corrected-channel harness recorded for the serial and 39-tone waveforms does not measure this waveform.

This mode is uncoded. The regression tests include one 75 bit/s message at 0 dB; that single simulation does not establish an acquisition rate.