Saya dihadapkan pada tantangan yang sulit: Untuk mengekstrak data biner dari pembaca kartu strip magnetik iPhone . Seperti inilah bentuk magnetisasi pada kartu:
Ini adalah .WAV yang diterima iPhone saat Anda menggesek kartu (jangan terlalu berharap terlalu banyak, itu adalah kartu loyalitas bonus;)). Ngomong-ngomong, tiga gesekan dengan kecepatan berbeda. Ini adalah dump SInt16 mentah untuk babatan yang saya gunakan.
Seseorang tampaknya telah melakukannya di sini tetapi data aktual yang saya tangkap tidak terlalu mudah untuk diproses.
Pembacaan dimulai (dan selesai) dengan jumlah 'nol' - perhatikan bahwa gelombang hanya berulang setelah 2 ZEROS telah dikumpulkan, ini mewakili NS diikuti oleh SN:
(perhatikan bahwa masing-masing dari tiga garis mewakili saya menggesek kartu yang berbeda; kartu bawah dalam gambar ini berusia 15 tahun, sehingga medan magnet jelas sangat terdegradasi di beberapa tempat, tidak terlihat dalam bidikan ini)
Ini akan memungkinkan suatu algoritma untuk memastikan suatu tick jam.
Medan magnet terbalik pada setiap detak jam. Juga untuk biner 1, medan magnet terbalik tepat di tengah tanda centang:
Urutan selalu dimulai dengan 1101 + 0 (parity bit) mulai sentinel. Anda dapat memilih ini dalam ketiga bacaan di grafik di atas. Itu ditunjukkan lebih jelas dalam artikel cosmodro yang saya tautkan di bagian atas pertanyaan.
Berikut adalah contoh degradasi magnetik (diambil lebih lanjut pada pembacaan kartu bawah):
Saya mencoba mencari cara yang masuk akal untuk mengubah bentuk gelombang ini menjadi urutan biner yang sesuai.
Saya telah menemukan satu PDF yang menjelaskan beberapa detail, tetapi saya tidak dapat menemukan algoritma yang mereka gunakan.
PDF ini berisi satu gambar yang menarik:
Jika saya bisa mengekstrak garis merah dan biru sesuai diagram ini, saya bisa menggunakan salah satu dari mereka untuk mengekstraksi data, tetapi saya tidak dapat menemukan logika di balik konstruksi.
Jadi ini pertanyaan saya: Bagaimana cara mengekstrak urutan biner?
PS. Perhatikan bahwa kecepatan gesek tidak akan konstan. Jadi begitu jam telah ditentukan, perlu secara konstan disesuaikan dari satu centang ke yang berikutnya.
PPS. Apakah autokorelasi menangkap pasangan kutu? (melihat kutu akan menggantikan NS SN ...)
EDIT (Juni '12): Saya membutuhkan banyak bantuan untuk yang satu ini, tetapi akhirnya saya telah menyelesaikan pembaca yang solid ( http://www.magstripedecoder.com/ ). Terima kasih untuk semua yang telah membantu! Saya merekomendasikan #musicdsp di saluran efnet IRC untuk siapa pun yang berdedikasi cukup untuk mengambil tantangan untuk menguasai matematika - itu benar-benar sangat sulit!