1

Тема: Вопросик про MFM кодирование

Привет!

Тут вот как бы из ничего возникла такая задачка или вопросик.

MFM кодирование устроено просто: случайный поток данных, которые нужно закодировать, чередуется с битами синхронизации. Их значения выбираются исходя из предыдущего и последующего бит данных по правилу ИЛИ-НЕ:

Данные:   0 1 0 0 0 1 1 1 0 1 0 1
Синхро:  x 0 0 1 1 0 0 0 0 0 0 0 0
Резуль:  x00100101001010100010001

Вопрос: а можно сгенерировать такой поток данных, чтобы получить заданный синхропоток ?

Синхро:   0 1 0 0 0 1 1 1 0 1 0 1
Данные: ???????

Как расчитать данные таким образом, чтобы получить заданный синхропоток ?

2

Re: Вопросик про MFM кодирование

Данный синхропоток не имеет смысла. Над 1 прописываются 0 0 но тогда выйдет противоречие с 9 и 11 нулями в синхро.

3

Re: Вопросик про MFM кодирование

Ну по идее мы должны получит последовательность данных: 0 0 1 1 0 0 0 0 0 0 0

4

Re: Вопросик про MFM кодирование

Похоже, что, хотя задача из первого сообщения имеет решение, но это не имеет пользы, так как
из одного и того же синхропотока можно получить несколько разных потоков данных:

Синхро 0 0 0 0 может соответствовать как потоку данных 1 0 1, так и 1 1 1.

Т.е. из синхро нельзя восстановить первоначальные данные.
Разве что использовать какую-то дополнительную информацию (какую-нибудь CRC, например, и смотреть, какой вариант декодирования окажется верным).