Ich stehe vor einer kniffligen Herausforderung: Binärdaten von einem iPhone-Magnetkartenleser zu extrahieren . So sieht die Magnetisierung auf der Karte aus:
Hier ist die .WAV-Datei, die das iPhone empfängt, wenn Sie eine Karte durchziehen (setzen Sie nicht zu große Hoffnungen, es handelt sich um eine Bonus-Treuekarte;)). Das sind übrigens drei Wischbewegungen mit unterschiedlichen Geschwindigkeiten. Dies ist der Raw-SInt16-Dump für den von mir verwendeten Swipe.
Jemand scheint es hier getan zu haben, aber die von mir erfassten Daten sind nicht besonders einfach zu verarbeiten.
Der Lesevorgang beginnt (und endet) mit einer unbestimmten Anzahl von 'Nullen' - beachten Sie, dass sich die Welle erst wiederholt, nachdem 2 NULLEN gesammelt wurden. Dies stellt NS dar, gefolgt von SN:
(Beachten Sie, dass ich in jeder der drei Linien eine andere Karte wische. Die untere Karte in diesem Bild ist 15 Jahre alt, sodass das Magnetfeld an einigen Stellen deutlich beeinträchtigt ist und in dieser Aufnahme nicht sichtbar ist.)
Auf diese Weise kann ein Algorithmus einen Takt ermitteln.
Das Magnetfeld kehrt sich bei jedem Takt um. Auch bei einer binären 1 kehrt sich das Magnetfeld genau in der Mitte eines Ticks um:
Die Sequenz beginnt immer mit einem Start-Sentinel von 1101 + 0 (Paritätsbit). Sie können dies in allen drei Ablesungen in der obigen Grafik herausgreifen. Dies wird in dem Cosmodro-Artikel, den ich oben in der Frage verlinkt habe, deutlicher angegeben.
Hier ist ein Beispiel für die magnetische Degradation (weiter unten auf der Karte):
Ich versuche einen vernünftigen Weg zu finden, um diese Wellenform in die entsprechende Binärsequenz umzuwandeln.
Ich habe ein PDF gefunden , das einige Details enthält, aber ich kann den verwendeten Algorithmus nicht herausfinden.
Dieses PDF enthält ein interessantes Bild:
Wenn ich die roten und blauen Linien gemäß diesem Diagramm extrahieren könnte, könnte ich eine von ihnen zum Extrahieren der Daten verwenden, aber ich kann die Logik hinter der Konstruktion nicht herausfinden.
Das ist also meine Frage: Wie extrahiere ich die Binärsequenz?
PS. Beachten Sie, dass die Wischgeschwindigkeit nicht konstant sein wird. Sobald die Uhr ermittelt wurde, muss sie ständig von einem Tick zum nächsten angepasst werden.
PPS. Würde Fang Autokorrelationspaare von Zecken? (Da Zecken abwechseln werden NS SN ...)
BEARBEITEN (Juni '12): Ich brauchte eine Menge Hilfe, habe aber endlich einen soliden Reader fertiggestellt ( http://www.magstripedecoder.com/ ). Vielen Dank für alle, die mitgeholfen haben! Ich empfehle #musicdsp im efnet-Kanal des IRC für alle, die sich der Herausforderung stellen, die Mathematik in den Griff zu bekommen - es ist wirklich sehr, sehr schwer!