Devo affrontare una sfida difficile: estrarre dati binari da un lettore di schede a banda magnetica per iPhone . Ecco come appare la magnetizzazione sulla carta:
Ecco il .WAV che l'iPhone riceve quando scorri una carta (non esagerare troppo, è una carta fedeltà bonus;)). Sono tre colpi a proposito, a diverse velocità. Questa è la discarica SInt16 grezza per il colpo che sto usando.
Qualcuno sembra averlo fatto qui, ma i dati effettivi che acquisisco non sono particolarmente facili da elaborare.
La lettura inizia (e termina) con un numero indeterminato di 'zeri' - nota che l'onda si ripete solo dopo che sono stati raccolti 2 ZEROS, questo rappresenta NS seguito da SN:
(nota che ciascuna delle tre linee mi rappresenta mentre faccio scorrere una carta diversa; la carta in basso in questa immagine ha 15 anni, quindi il campo magnetico è chiaramente gravemente degradato in alcuni punti, non visibile in questo scatto)
Ciò consentirà a un algoritmo di accertare un segno di spunta dell'orologio.
Il campo magnetico si inverte su ogni segno di spunta dell'orologio. Anche per un binario 1, il campo magnetico si inverte esattamente nel mezzo di un segno di spunta:
La sequenza inizia sempre con una sentinella di avvio 1101 + 0 (bit di parità). Puoi sceglierlo in tutte e tre le letture nel grafico sopra. È indicato più chiaramente nell'articolo cosmodro che ho collegato all'inizio della domanda.
Ecco un esempio di degradazione magnetica (presa più avanti nella lettura della carta in basso):
Sto cercando di capire un modo sensato per convertire questa forma d'onda nella corrispondente sequenza binaria.
Ho trovato un PDF che fornisce alcuni dettagli, ma non riesco a capire l'algoritmo che stanno utilizzando.
Questo PDF contiene un'immagine interessante:
Se potessi estrarre le linee rosse e blu secondo questo diagramma, potrei usare una di esse per estrarre i dati, ma non riesco a capire la logica dietro la costruzione.
Quindi questa è la mia domanda: come estraggo la sequenza binaria?
PS. Si noti che la velocità di scorrimento non sarà costante. Quindi, una volta determinato l'orologio, deve essere costantemente regolato da un segno di spunta a quello successivo.
PPS. L'autocorrelazione catturerebbe coppie di zecche? (visto che le zecche si alterneranno NS SN ...)
EDIT (giugno '12): avevo bisogno di molto aiuto su questo, ma alla fine ho completato un lettore solido ( http://www.magstripedecoder.com/ ). Grazie per tutti quelli che hanno aiutato! Raccomando #musicdsp sul canale efnet di IRC a chiunque sia abbastanza dedicato da affrontare la sfida di affrontare la matematica - è davvero molto difficile!