STANAG 4529 (maritime, 1240 Hz)
hfmodem.bateleur.s4529 sends and receives STANAG 4529: the single-tone waveform for maritime HF links in 1240 Hz. It was written from the Joint Interoperability Test Command's *STANAG 4529 Conformance Test Procedures* (April 2004). Its paragraph 1.2 and appendix B restate the STANAG's requirements one by one (reference numbers 1–17). The STANAG's own text was not available. No other implementation was read, and nothing has been tested against another sender.
The waveform
| Part | Test procedures |
|---|---|
| 8-PSK at 1200 Bd on a sub-carrier selectable from 800 to 2400 Hz in 100 Hz steps, 1700 Hz by default; 99% of the power within 1240 Hz | 1.2 b, d |
| A frame of 256 symbols (213.3 ms): 80 symbols of 2-PSK sync, then three blocks of 32 data and 16 reference symbols and a last of 32 data | 1.2 e |
| Sync from x⁵ + x² + 1 loaded with 11010 at every frame, the first symbol its least significant bit | 1.2 f; the 80 bits printed in table 1.6 |
| The 176 reference and data symbols scrambled by an 8-phase sequence from x⁹ + x⁴ + 1 loaded with ones, three bits a symbol | 1.2 g, h |
| One, two or three bits a symbol at channel rates of 600, 1200 and 1800 bit/s | 1.2 c, tables 1.2–1.4 |
| Coding, interleaving, interleaver synchronization and message protocol as STANAG 4285 annex E for the next higher data rate; 32 rows, each delayed 48, 24 or 12 more (long, 20.48 s) or 4, 2 or 1 (short, 1.706 s); the flush for each | 1.2 j, table 1.5 |
| Uncoded channel rates of 600, 1200 and 1800 bit/s | 1.2 k |
| An offset of up to 37.5 Hz, drifting up to 3.5 Hz/s | 1.2 i |
Every part of that is STANAG 4285's, symbol for symbol. That covers the frame, the sync sequence (the procedures' 80-bit pattern is 4285's), the scrambler, the bit-to-symbol tables, and the coding, interleaving and flush of the 4285 mode at twice the rate: the procedures' flush counts are what 4285's give. So a 4529 transmission here is a 4285 transmission at half speed, moved to the 4529 sub-carrier (stretch). The receiver brings the audio back to 4285's time scale and carrier (Squeeze, which streams) and runs the 4285 receiver, reporting offsets and times on the real scale.
Modes
Modes are named by user rate and interleaver as for 4285: 1200L, 1200S, 600L … 75S. Uncoded modes take the channel rate: 1800U, 1200U, 600U. A sub-carrier other than 1700 Hz goes after a slash: 600L/2000. Both ends set the mode beforehand (MODE 4529 <mode> on the host port; offair render|decode 4529 --mode). On the station, a sub-carrier is keyed only if the whole pulse (±660 Hz) lies in the span the station declares (365–2985 Hz), which means 1100 to 2300 Hz.
How it is tested
Against itself through bateleur.sim's channels:
- The procedures' own figures. The 80-bit sync pattern; the flush counts for every rate and both interleavers; 99% of the power within 1240 Hz; every symbol twice 4285's length.
- Round trips. 1200S at 20 dB, 15 Hz off; 600L on 2000 Hz at 15 dB, 20 Hz off; 300S at 8 dB; 75S at 3 dB, 30 Hz off; 150L on CCIR poor at 12 dB; 1800U at 25 dB.
- Streaming. The streaming receiver gives what the offline one 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.
Its performance follows 4285's, scaled to half the symbol rate. The same multipath delay spans half as many symbols, while a Doppler spread is twice as large against the symbol rate. So 4529 on a channel is 4285 on one with half its delays and twice its spread, as measured in bateleur's implementation notes.