Modified frequency modulation

MFM is a modification to the original frequency modulation encoding (FM) code specifically for use with magnetic storage.

MFM was also used in early hard disk designs, before the advent of more efficient types of RLL codes.

The exact nature of the media determines how many of these changes can occur within a given surface area, and when this is combined with the nominal speed of movement, it produces the maximum data rate for that system.

Disk drives are subject to a variety of mechanical and materials effects that cause the original pattern of data to "jitter" in time.

The drive controller includes an accurate clock running at half the selected data rate of the disk media.

[2] The upside to the FM approach is that it is extremely easy to implement the writing circuitry, and the clock recovery on reading is also relatively simple.

Instead, MFM drivers required the drive vendor to design their own clock recovery circuitry, a system known as the data separator.

The original FD1771 supported FM only, but it was quickly paired with the FD1781 and FD1791 which performed MFM based on an externally provided clock signal.

The WD2791 was the first to directly support MFM using an internal analog phase-locked loop, but it required a number of simple external components to implement a complete system.

Disks are typically formatted into fixed-sized sectors which contain additional header information to link them back to files.

In particular, the data bit pattern "100001" has a clock pulse inserted in the middle, where it would normally be omitted: This article incorporates public domain material from Federal Standard 1037C.

A byte encoded using FM (above) and MFM (below). Dashed blue line denotes clock pulse (the signal level change in it is ignored), and dashed red line, data pulse (signal level change encodes 1, and absence thereof, 0).