Я столкнулся с непростой задачей: извлечь двоичные данные из устройства чтения магнитных карт iPhone . Вот как выглядит намагниченность на карте:
Вот .WAV, который iPhone получает, когда вы проводите карту (не надейтесь слишком сильно, это бонусная карта лояльности;)). Это, кстати, три удара на разных скоростях. Это необработанный дамп SInt16 для свайпа, который я использую.
Кто-то, кажется, сделал это здесь, но реальные данные, которые я собираю, не особенно легко обработать.
Чтение начинается (и заканчивается) с неопределенного числа «нулей» - обратите внимание, что волна повторяется только после того, как 2 ноля были собраны, это представляет NS, а затем SN:
(обратите внимание, что каждая из трех строк представляет меня, когда я проводил по другой карточке; нижней карточке на этом изображении 15 лет, поэтому магнитное поле в некоторых местах явно сильно ухудшилось, что не видно на этом снимке)
Это позволит алгоритму установить тик часов.
Магнитное поле меняется на каждый такт. Также для бинарного 1 магнитное поле меняется точно в середине тика:
Последовательность всегда начинается с 1101 + 0 (бит четности), запускаемого сторожем. Вы можете выбрать это во всех трех чтениях на графике выше. Это более четко указано в статье о космодро, на которую я ссылаюсь в верхней части вопроса.
Вот пример магнитной деградации (взятый далее при чтении нижней карты):
Я пытаюсь найти разумный способ преобразовать эту форму волны в соответствующую двоичную последовательность.
Я нашел один PDF-файл , в котором есть некоторые детали, но я не могу понять алгоритм, который они используют.
Этот PDF содержит одно интересное изображение:
Если бы я мог извлечь красные и синие линии в соответствии с этой диаграммой, я мог бы использовать любую из них для извлечения данных, но я не могу понять логику построения.
Итак, это мой вопрос: как извлечь двоичную последовательность?
PS. Обратите внимание, что скорость смахивания не будет постоянной. Таким образом, как только часы определены, их нужно постоянно настраивать от одного тика к другому.
PPS. Будет ли автокорреляция ловить пары клещей? (видя, как тики будут чередоваться NS SN ...)
РЕДАКТИРОВАТЬ (июнь '12): Мне нужно было много помощи по этому вопросу, но, наконец, я закончил твердый читатель ( http://www.magstripedecoder.com/ ). Спасибо всем, кто помог! Я рекомендую #musicdsp на канале IRC efnet для всех, кто достаточно предан, чтобы справиться с математикой - это действительно очень сложно!