मुझे एक कठिन चुनौती का सामना करना पड़ रहा है: एक iPhone चुंबकीय पट्टी कार्ड रीडर से द्विआधारी डेटा निकालने के लिए । यह वह है जो कार्ड पर चुंबकत्व जैसा दिखता है:
यहां .WAV तब प्राप्त करता है जब आप कार्ड स्वाइप करते हैं (अपनी उम्मीदें बहुत अधिक न बढ़ाएं, यह एक बोनस लॉयल्टी कार्ड है;))। यह तीन स्वाइप्स हैं अलग-अलग गति से। यह स्वाइप मैं उपयोग कर रहा है के लिए कच्चे SInt16 डंप है ।
ऐसा लगता है कि किसी ने इसे यहां किया है, लेकिन मैं जिस वास्तविक डेटा को कैप्चर करता हूं, उसे संसाधित करना आसान नहीं है।
रीडिंग शुरू (और खत्म) 'शून्य' की एक अनिश्चित संख्या के साथ - ध्यान दें कि तरंग केवल 2 ZEROS के बाद दोहराती है, यह NS का प्रतिनिधित्व करता है और उसके बाद SN:
(ध्यान दें कि तीन पंक्तियों में से प्रत्येक मुझे एक अलग कार्ड स्वाइप करने का प्रतिनिधित्व करता है; इस छवि में निचला कार्ड 15 साल पुराना है, इसलिए चुंबकीय क्षेत्र स्पष्ट रूप से कुछ स्थानों पर गंभीर रूप से नीचा है, इस शॉट में दिखाई नहीं देता है)
यह एक एल्गोरिथ्म को एक घड़ी की टिक का पता लगाने की अनुमति देगा।
चुंबकीय क्षेत्र प्रत्येक घड़ी टिक पर उलट जाता है। एक बाइनरी 1 के लिए, चुंबकीय क्षेत्र एक टिक के बीच में बिल्कुल उलट होता है:
अनुक्रम हमेशा एक 1101 + 0 (समता बिट) प्रहरी के साथ शुरू होता है। आप उपरोक्त ग्राफ में तीनों रीडिंग में इसे चुन सकते हैं। यह प्रश्न के शीर्ष पर जुड़े हुए कॉस्मोड्रो लेख में अधिक स्पष्ट रूप से इंगित किया गया है।
यहाँ चुंबकीय गिरावट का एक उदाहरण है (नीचे कार्ड पढ़ने पर साथ लिया गया):
मैं इस तरंग को अपने संबंधित बाइनरी अनुक्रम में बदलने के लिए एक समझदार तरीका निकालने की कोशिश कर रहा हूं।
मुझे एक पीडीएफ मिला है जो कुछ विस्तार में जाता है, लेकिन मैं उनके द्वारा उपयोग किए जा रहे एल्गोरिदम का पता नहीं लगा सकता।
इस पीडीएफ में एक दिलचस्प छवि है:
यदि मैं इस आरेख के अनुसार लाल और नीली रेखाएं निकाल सकता हूं, तो मैं डेटा निकालने के लिए उनमें से किसी एक का उपयोग कर सकता हूं, लेकिन मैं निर्माण के पीछे के तर्क का पता नहीं लगा सकता।
तो यह मेरा सवाल है: मैं बाइनरी अनुक्रम कैसे निकालूं?
पुनश्च। ध्यान दें कि स्वाइप स्पीड स्थिर नहीं रहने वाली है। इसलिए एक बार घड़ी का निर्धारण हो जाने के बाद, लगातार एक टिक से दूसरे में समायोजित होने की आवश्यकता होती है।
पी पी एस। क्या ऑटोकैरेक्शन टिक्स के जोड़े को पकड़ पाएगा? (टिक के रूप में देखेंगे NS SN ...)
EDIT (जून '12): मुझे इस पर बहुत मदद की ज़रूरत थी, लेकिन आखिरकार मैंने एक ठोस पाठक ( http://www.magstripedecoder.com/ ) पूरा कर लिया है । सभी की मदद के लिए धन्यवाद! मैं आईआरसी के एफ़नेट चैनल पर #musicdsp की सिफारिश करता हूं कि किसी को भी गणित के साथ पकड़ पाने की चुनौती लेने के लिए पर्याप्त समर्पित है - यह वास्तव में बहुत कठिन है!