Monday, March 09, 2009

MFSK Idle Tones

In tonight's TechNet (a weekly net held by the club I'm a member of) one caller (Ed, K9EW) asked about the idle tones that various MFSK implementations, given that he's noticed that different MFSK generators seem to generate different idle patterns. No clear answer was given on the net, although the discussion came to the conclusion that it was, at least to some degree, up to the programmer to decide how to do this.

The ARRL publishes formal technical specifications for some common digital modes, including MFSK. According to section 3.8 of this specification, compliant MFSK implementations must inject a non-printing character every 20 symbol periods, in order to avoid sending an extended period of a single tone. The standard does not specify which nonprinting character must be sent (although ASCII NUL, 0x00, is suggested). A programmer could elect to send any of several nonprinting characters, which would result in different bitstreams.

The reason for not allowing a extended single tone is that this would allow the symbol clock between the sender and the receiver to desynchronize. The specification requires that receivers maintain clock for at least 50 cycles, so sending a character every 20 cycles guarantees that sync is maintained as the receiver will resync its clock with each "diddle".

For more on the technical specifications of digital modes, see fldigi's excellent Digital Modes page.