Мы нанесли на пластину данные в таком порядке:
начальная комбинация|данные|конечная комбинация
Считывание начинается с нарастающего фронта(первый бит = 1), мы включаем счетчик, засекаем время до спадающего фронта и потом считываем через половину данного времени значение с пластины. Это должно быть примерно середина бита(если скорость не меняется или меняется не сильно). Но так не получается, т.к. первый бит получается больше, чем одиночный бит в конце считывания, примерно в полтора-два раза.
1. естественно, учитывая девиацию несущей частоты и возможные помехи (например блики, или просто пролетевшая муха

), одного бита для синхронизации недостаточно. Чем больше может быть разброс частоты (скорости в вашем случае), тем длинее нужна синхронизирующая последовательность.
2. дискретность выборки равная 1/2 от частоты несущей недостаточна, т.к. несущая значительно меняется. Такую дискретность можно было бы задавать если бы скорость была очень стабильной, и задавалась с очень высокой точностью.
Дискретность выборки в вашем случае лучше выбирать так чтобы на один бит сигнала приходилось хотябы 50 выборок.
Выборки можно анализировать либо на лету, либо записывать в оперативную память и производить анализ по окончании записи.
Если скорость может меняться резко - сделайте на пластинке дырки в два ряда....
кстати неплохая идея, если нет понимания как реализовать самосинхронизирующийся декодер, то сделайте второй ряд на котором прожгите синхроимпульсы, которые будут указывать границы битов в первом ряду.
Если есть желание разобраться с кодированием для одного потока, рекомендую почитать как устроена запись на магнитный диск, там полностью аналогичный вашему случай - точная скорость диска неизвестна (огромная погрешность) с и более того - может меняться в течении одого оборота.
Запись на диск производится аналогичным описанным мною выше способом. Если детальнее - биты данных записывается магнитными доменами с помощью
MFM кодировки. Но есть специальные маркерные байты (A1 либо C1), биты старшей тетрады которых записываются с нарушением правил кодирования методом MFM путем пропуска одного бита синхросигнала. Это делает его отличным от любого другого байта A1. Эти специальные маркерные байты записываются для идентификации начала данных. В самом блоке данных значения байт A1 и C1 записываются обычным образом.
Запись на дорожке диска состоит из адреса дорожки (содержит идентификатор дорожки), после которой последовательно идут адрес сектора (идентификатор сектора) и массив с данными сектора.
Запись адреса и массива данных производится следующей последовательностью:
4E \
4E GAP (пробел), записывается обычным способом (как данные),
... этот участок может содержать другие значения, что часто используется для сокрытия ключей
... в защитах от копирования
4E /
00 \
00 SYNC (синхропробел), записывается обычным образом (как данные), служит
... для подстройки частоты и фазы несущей декодера.
00 /
A1 либо C2 \
A1 либо C2 AM (адресный маркер), записывается особым образом (не так как кодируются биты данных),
A1 либо C2 / служит для идентификации начала данных
FE либо F8 либо FB - идентификатор данных (FE - адрес дорожки, F8 - активный массив данных, FB - удаленный массив данных)
XX \
XX массив данных, либо данные идентификатора дорожки или сектора
...
XX /
RR \ CRC блока данных, включая идентификатор данных и адресные маркеры
RR /
4E \
4E GAP (пробел), записывается обычным способом (как данные),
... этот участок может содержать другие значения, что часто используется для сокрытия ключей
... в защитах от копирования
4E /