Je suis confronté à un défi délicat: extraire des données binaires d'un lecteur de carte à bande magnétique pour iPhone . Voici à quoi ressemble la magnétisation sur la carte:
Voici le .WAV que l'iPhone reçoit lorsque vous glissez une carte (n'espérez pas trop, c'est une carte de fidélité bonus;)). Soit dit en passant, trois coups à des vitesses différentes. Il s'agit du vidage SInt16 brut pour le balayage que j'utilise.
Quelqu'un semble l'avoir fait ici, mais les données réelles que je capture ne sont pas particulièrement faciles à traiter.
La lecture commence (et se termine) avec un nombre indéterminé de `` zéros '' - notez que l'onde ne se répète qu'après que 2 ZEROS ont été collectés, cela représente NS suivi de SN:
(notez que chacune des trois lignes me représente en train de glisser une carte différente; la carte du bas de cette image a 15 ans, donc le champ magnétique est clairement gravement dégradé à certains endroits, non visible sur cette photo)
Cela permettra à un algorithme de vérifier un tick d'horloge.
Le champ magnétique s'inverse à chaque tick d'horloge. Aussi pour un 1 binaire, le champ magnétique s'inverse exactement au milieu d'une tique:
La séquence commence toujours par une sentinelle de début 1101 + 0 (bit de parité). Vous pouvez le découvrir dans les trois lectures du graphique ci-dessus. Cela est indiqué plus clairement dans l'article cosmodro que j'ai lié en haut de la question.
Voici un exemple de dégradation magnétique (pris plus loin sur la lecture de la carte du bas):
J'essaie de trouver un moyen sensé de convertir cette forme d'onde en sa séquence binaire correspondante.
J'ai trouvé un PDF qui rentre dans les détails, mais je n'arrive pas à comprendre l'algorithme qu'ils utilisent.
Ce PDF contient une image intéressante:
Si je pouvais extraire les lignes rouges et bleues conformément à ce diagramme, je pourrais utiliser l'une ou l'autre pour extraire les données, mais je ne peux pas comprendre la logique derrière la construction.
Voici donc ma question: comment extraire la séquence binaire?
PS. Notez que la vitesse de balayage ne sera pas constante. Ainsi, une fois que l'horloge a été déterminée, elle doit être constamment ajustée d'un tick à l'autre.
PPS. L'autocorrélation attraperait-elle des paires de tiques? (vu que les tiques alterneront NS SN ...)
EDIT (juin '12): J'avais besoin de beaucoup d'aide sur celui-ci, mais finalement j'ai terminé un solide lecteur ( http://www.magstripedecoder.com/ ). Merci à tous ceux qui ont aidé! Je recommande #musicdsp sur la chaîne efnet de l'IRC à toute personne suffisamment dévouée pour relever le défi de se familiariser avec les mathématiques - c'est vraiment très difficile!