>some controllers, many of which use a
less-than-ideal timebase to define
>the precompensation offsets imposed on the data stream.
This is true, or worse used oneshots. generally the
time base for the
bit encoding was always a crystal with not worse than 200ppm error
and less than 50ppm drift. The typical system was usually within
50ppm of exact and drifted less than 25ppm over temperature extremes.
Often the actual data rate was far lower than that reference(usually 1/4
or 1/8th).
IMHO it's very misleading - or even worse, foolish - to worry about errors in
the ppm range when the instantaneous rotation speed of the floppy can
vary a few percent.
Most data recovery circuits - even the most simplistic one-shot FM decoder -
can take a 25% change in data rate in stride. Sure, they don't have as
much error margin if you stray that far, but my point is that we're not
dealing with National Bureau of Standards platinum-iridium references
here.
I'd suggest some factor less than .5, flux shift
errors on floppies
rarely move a great amount unless the spindle bearings are rattling
loose. Actually based on media and expected recording rate it's
possible to plug in a set of expected timing windows and add/subtract
a "precompenstation" window amount based on adjacent bits. For
example adjacent ones or zeros (especially more than two bits)
tend to spread or compress over patterns like alternating ones
and zeros.
Look up "PRML" or "Partial Response Maximum Likelihood". It's a
branch of signal decoding for use in situations where adjacent pulses
most definitely have measureable effects on each other.
Further with all the "timing image" in a
memory it should be possible
to look at longer strings of transistions and do simple predictive
forcasting (software PLL). Add to that the encoding form (FM,
MFM, M2FM, RLL or GCR), and previous bits history it should be
straightforward enough to predict the likely next transistion(s)
be they one or zero.
Most uses of PRML look both forward *and* backwards.
--
Tim Shoppa Email: shoppa(a)trailing-edge.com
Trailing Edge Technology WWW:
http://www.trailing-edge.com/
7328 Bradley Blvd Voice: 301-767-5917
Bethesda, MD, USA 20817 Fax: 301-767-5927