কাঁচা ডাব্লুএইভি থেকে বাইনারি চৌম্বক-স্ট্রিপ কার্ডের ডেটা বের করা


23

আমি একটি জটিল চ্যালেঞ্জের মুখোমুখি হয়েছি: আইফোন চৌম্বকীয় স্ট্রিপ কার্ড রিডার থেকে বাইনারি ডেটা বের করা । কার্ডে চৌম্বকীয় দেখতে এটি দেখতে পাওয়া যায়:

এখানে চিত্র বর্ণনা লিখুন
সূত্র

আপনি যখন কার্ডটি সোয়াইপ করেন তখন আই.এফ.এ.ভি. আইফোনটি দেয় (আপনার আশা খুব বেশি বাড়িয়ে দেবেন না, এটি একটি বোনাস আনুগত্য কার্ড;))। এটি তিনটি সোয়াইপ, বিভিন্ন গতিতে। আমি যে সোয়াইপ ব্যবহার করছি তার জন্য এটি কাঁচা এসআইএনটি 16 ডাম্প

কেউ এখানে এটি করেছেন বলে মনে হচ্ছে তবে আমি যে প্রকৃত ডেটা ক্যাপচার করেছি তা প্রক্রিয়া করা বিশেষভাবে সহজ নয়।

'জিরো' এর একটি অনির্দিষ্ট সংখ্যার সাথে পঠন শুরু হয় (এবং শেষ হয়) - দ্রষ্টব্য যে কেবল 2 জেরোস সংগ্রহের পরে তরঙ্গটি পুনরাবৃত্তি করে, এটি এসএন এর পরে এনএসকে প্রতিনিধিত্ব করে:

এখানে চিত্র বর্ণনা লিখুন

(নোট করুন যে তিনটি লাইনের প্রত্যেকটিই আমাকে আলাদা কার্ড সোয়াইপ করে প্রতিনিধিত্ব করে; এই চিত্রের নীচের কার্ডটি 15 বছরের পুরানো, তাই চৌম্বকীয় ক্ষেত্রটি স্পষ্টভাবে কিছু জায়গায় মারাত্মকভাবে হ্রাস পেয়েছে, এই শটে দৃশ্যমান নয়)

এটি একটি অ্যালগরিদমকে একটি ঘড়ির টিক সনাক্ত করতে অনুমতি দেবে।

চৌম্বকীয় ক্ষেত্র প্রতিটি ঘড়ির টিকের বিপরীতে। বাইনারি 1 এর জন্যও চৌম্বকীয় ক্ষেত্রটি টিকের ঠিক মাঝে চলে যায়:

এখানে চিত্র বর্ণনা লিখুন

ক্রমটি সর্বদা একটি 1101 + 0 (প্যারিটি বিট) প্রারম্ভিক সেন্ডিনেল দিয়ে শুরু হয়। আপনি উপরের গ্রাফের তিনটি রিডিংয়ে এটি বাছাই করতে পারেন। এটি প্রশ্নের শীর্ষে আমি সংযুক্ত কসমোড্রো নিবন্ধে আরও স্পষ্টভাবে নির্দেশিত।

এখানে চৌম্বকীয় অবক্ষয়ের উদাহরণ রয়েছে (নীচের কার্ডের পাঠের সাথে আরও নেওয়া হয়েছে): এখানে চিত্র বর্ণনা লিখুন

আমি এই তরঙ্গরূপটিকে এর সাথে সম্পর্কিত বাইনারি ক্রমে রূপান্তর করার জন্য একটি বুদ্ধিমান উপায় বের করার চেষ্টা করছি।

আমি একটি পিডিএফ পেয়েছি যা কিছু বিশদে চলে গেছে তবে তারা যে অ্যালগরিদম ব্যবহার করছে তা আমি বুঝতে পারি না।

এই পিডিএফটিতে একটি আকর্ষণীয় চিত্র রয়েছে: এখানে চিত্র বর্ণনা লিখুন

আমি যদি এই চিত্র অনুসারে লাল এবং নীল রেখাগুলি বের করতে পারি, তবে তথ্য বের করতে আমি এর মধ্যে একটিও ব্যবহার করতে পারি, তবে নির্মাণের পিছনে যুক্তিটি আমি খুঁজে বের করতে পারি না।

সুতরাং এটি আমার প্রশ্ন: আমি বাইনারি ক্রমটি কীভাবে বের করব?

গীত। নোট করুন যে সোয়াইপের গতি ধ্রুবক হতে যাচ্ছে না। তাই একবার ঘড়িটি নির্ধারিত হয়ে যাওয়ার পরে, একটানা থেকে অন্য টিককে নিয়মিতভাবে সামঞ্জস্য করা দরকার।

PPS। স্বতঃসংশ্লিষ্টরা কি জোড়া টিক্স ধরবে ? (টিক্স হিসাবে দেখা বিকল্প এনএস এসএন বিকল্প হবে ...)


সম্পাদনা (জুন '12): এটির জন্য আমার অনেক সাহায্যের প্রয়োজন হয়েছিল, তবে অবশেষে আমি একটি শক্ত পাঠক ( http://www.magstripedecoder.com/ ) সম্পন্ন করেছি। যারা সাহায্য করেছেন তাদের জন্য ধন্যবাদ! আমি গণিতগুলির সাথে আকস্মিকভাবে ধরা পড়ার চ্যালেঞ্জ গ্রহণ করার জন্য যথেষ্ট উত্সর্গীকৃত ব্যক্তির জন্য আইআরসি'র ইফনেট চ্যানেলে # মিউজিকএসএসপি সুপারিশ করছি - এটি সত্যিই কঠিন!


আপনি কি প্রকৃত wav ফাইল পোস্ট করতে পারেন?
এন্ডোলিথ

1
সম্পন্ন! 9876543210
পি i

হুম। আপনার তরঙ্গরূপটি আমি যে সমস্ত উদাহরণ খুঁজে পেতে পারি তার মতো দেখায় না। 2.bp.blogspot.com/_QF4k-mng6_A/TOzDBOzIB3I/AAAAAAAAAbM/... monografias.com/trabajos43/banda-magnetica/Image4228.gif embeddedsoftwareengineering.com/img/mag-flux.gif
endolith

প্রশ্নটি সম্পাদনা ও পরিষ্কার করার জন্য যোদা আপনাকে অনেক ধন্যবাদ।
পি i

আপনি আপনার প্রশ্নে তিনটি কার্ড উল্লেখ করেছেন। আপনি সংযুক্ত WAV ফাইলটি কোন কার্ডের সাথে যুক্ত?
জেসন আর

উত্তর:


10

একে বিফেস মার্ক কোড বলা হয় এবং আপনাকে নাড়ি প্রশস্ততার পরিবর্তে শূন্য-ক্রসিংগুলিতে ফোকাস করতে হবে। আপনার কাছে ডাল প্রতি একাধিক শূন্য ক্রসিং রয়েছে, যদিও পিকআপ এবং ফোনের মাইক ইনপুট অন্তর্নিহিত লো-কাট ফিল্টারগুলির কারণে। আপনার রূপান্তরগুলির মধ্যে এর চেয়ে আরও বেশি কমে যায় এবং শূন্যকে ছাড়িয়ে যায়:

এখানে চিত্র বর্ণনা লিখুন

আপনি নিম্ন-বুস্ট ফিল্টার ব্যবহার করে আরও পালসী আকৃতিটি পুনরুদ্ধার করতে পারেন:

এখানে চিত্র বর্ণনা লিখুন

এবং তারপরে কতটা সময় কিছুটা প্রান্তিকের উপরে ব্যয় করে নাড়ি দৈর্ঘ্যটি মাপুন। সম্ভবত আরও ভাল ধারণা হ'ল বড় স্পাইকগুলিতে রূপান্তর করতে ইনপুটটিকে আলাদা করা, নিখুঁত মান নেওয়া এবং যখন তারা কিছুদিকের উপরে চলে যায় তখন তাদের সনাক্ত করুন:

এখানে চিত্র বর্ণনা লিখুন

তারপরে ডালের মধ্যবর্তী সময়টি পরিমাপ করুন এবং যখন দুটি ডালের মধ্যে সময় প্রায় শেষ দুটি ডালের সমান হয় তখন এটি 0 হয়, যখন এটি শেষ দুটি ডালের মধ্যে প্রায় অর্ধেক ছিল, এটি 1।

আপনি যে চৌম্বকীয় অবক্ষয়ের কথা বলছেন তা লো-পাস ফিল্টার দিয়ে সরানো সহজ হওয়া উচিত।


ধন্যবাদ! দ্বিতীয় ডেরাইভেটিভের সাথে কাজ করে আমি খুব আকর্ষণীয় কিছু পারস্পরিক সম্পর্ক খুঁজে পেয়েছি যা আমি যথাযথভাবে পোস্ট করব। আপনি কি নিম্ন-বুস্ট ফিল্টারটি বিস্তারিতভাবে বর্ণনা করতে পারেন? আমি কীভাবে এটি বাস্তবায়ন করব সে সম্পর্কে আমার কোনও ধারণা নেই ...
P i

@endolith আপনি দয়া করে প্রশ্নের জন্য আরও ভাল ট্যাগ যুক্ত করতে পারেন? আমি আপনার উত্তরের ভিত্তিতে এটিকে ডিফারেনশিয়াল কোডিং ট্যাগ করেছি তবে আপনি এই বিষয়টিকে আরও ভাল জানেন।
Lorem Ipsum

@ ইয়োদা: হাহাহা না আমি করি না। এই উত্তরটি লিখতে আমি কয়েক ঘন্টা আগে এটি সম্পর্কে শিখেছি।
এন্ডোলিথ

@endolith আমি সবেমাত্র এদিকে এসেছি - এটি দুর্দান্ত - তবে আপনি কি এই 'লো বুস্ট ফিল্টার' ব্যাখ্যা করতে পারেন? সত্যিই আকর্ষণীয় বলে মনে হচ্ছে, এবং গুগল অনেক বেশি সহায়তা করছে না ...
স্পেসি

@ মোহাম্মদ: মাত্র একটি ফিল্টার যা হাইগুলি অপরিবর্তিত রেখে ছাড়িয়ে কম ফ্রিকোয়েন্সিগুলিকে উত্সাহ দেয়। আমি মনে করি আমি অ্যাডোব অডিশনে একটি গ্রাফিক সমতুল্য ব্যবহার করেছি। একটি তাক ফিল্টার চেষ্টা করুন crca.ucsd.edu/~msp/techniques/latest/book-html/node142.html
এন্ডোলিথ

4

এটি ছিল বেশ চ্যালেঞ্জ। আমি ক্র্যাক করার আগে কমপক্ষে চারটি পদ্ধতির চেষ্টা করেছি। আমি এটি এইভাবে করেছি:

এখানে চিত্র বর্ণনা লিখুন

আমি একটি সাধারণ দিয়ে ডেটা ( প্রথম পড়া ) মসৃণ করে শুরু করি ...

x_new = 0.9 * x_prev + 0.1 * x_in

... আইআইআর ফিল্টার। আমি উভয় দিকেই এটি করছি ( দ্বিতীয় পাঠ )। এটি সমস্ত অস্পষ্ট শব্দ থেকে পরিত্রাণ পায়, তবে এটি বিযুক্তি তৈরি করে যা ডেরাইভেটিভগুলিতে প্রতিশোধ নিয়ে ফিরে আসে।

তারপরে আমি চতুর্থ অবধি সমস্ত ডেরাইভেটিভ পেয়েছি ( তৃতীয় এবং চতুর্থ পাঠ তৃতীয় এবং চতুর্থ উপার্জনকে উপস্থাপন করে) এবং একটি নতুন ফাংশন তৈরি করি:

g(x) = f'''(x)^2 + k*f''''(x)^2

কেন? কারণ আমি লক্ষ্য করেছি যে আমরা তৃতীয় ডেরাইভেটিভের কাছে পৌঁছানোর সাথে সাথে আমাদের যা আছে তা কার্যকরভাবে একটি খামের ভিতরে সাইনোসয়েড:

এখানে চিত্র বর্ণনা লিখুন

... এবং প্রত্যেকে হাই স্কুল থেকে জানে যে:

sin^2 + cos^2=1 

এখানে চিত্র বর্ণনা লিখুন

এবং সেই পাপ এবং কোস একে অপরের মধ্যে পার্থক্য করে:

এখানে চিত্র বর্ণনা লিখুন

সুতরাং নিহিত খাম পুনরুদ্ধার করা যেতে পারে।

3 এবং 4 ডেরিভেটিভস কেন? মূলত প্রতিটি উচ্চতর ডেরিভেটিভ সিগন্যালকে বিশুদ্ধ করে। যা সাইনোসয়েডাল তা সাইনোসয়েডাল থেকে যায় (কেবলমাত্র 90 phase পর্বের স্থান পরিবর্তন করে পাপ-> কোস ইত্যাদি) যেখানে যা পড়ে না।

আমি 11 এবং 12 বা ক্রেজি কিছু ব্যবহার করতে চেয়েছিলাম, তবে ডেরাইভেটিভগুলি খুব দ্রুত বিচ্ছিন্ন হয়ে পড়ে, 4 জিনিসগুলি হাইওয়াইরে যাওয়ার আগে আমি যে সর্বোচ্চটি পেতে পারি, তারপরেও আপনি চিত্রটিতে দেখেন এমন কিছু ছোট ছোট ডেরাইভেটিভ লাইন খুব ভারী হয়।

এটি প্রতিটি ফ্লাক্স ট্রানজিশনে ( পঞ্চম পাঠ ) এক বিস্ময়কর ছোট্ট দ্বিধা তৈরি করে ।

এরপরে আমি টার্নিং পয়েন্টগুলি দিয়ে চলি, ডডস ( ষষ্ঠ পাঠ ) প্রত্যাখ্যান করে ..

পরিশেষে আমি ম্যাক্সিমা ( সপ্তম পাঠ ) দিয়ে চলেছি , প্রতিটি স্কিপ অর্ধ ধাপ বা পুরো পদক্ষেপ কিনা তা মূল্যায়ন করে এবং পরে বাইনারি পুনর্গঠন করি।

হ্যাঁ!

সম্পাদনা: আমি এই প্রকল্পটি শেষ করে এখন বেশ কয়েক মাস কেটে গেছে। সবচেয়ে কঠিন চ্যালেঞ্জটি এমন কিছু রূপান্তর করা যা ফ্লাক্স ট্রানজিশনকে বিচ্ছিন্ন করে তোলে; প্রযুক্তিগতভাবে বলতে গেলে, 'প্রশস্ততা খামটি পুনরুদ্ধার করা'। এটি মূল থেকে phase / 2 ফেজ শিফ্ট সংকেত তৈরি করে করা হয় (এটি চতুর্ভুজ সংকেত হিসাবেও পরিচিত)। তারপরে E (t) ^ 2 = S (t) ^ 2 + Q (S (t)) ^ 2।

চতুর্ভুজ সংকেত পেতে, আমি কেবল একটি এফএফটি করেছি, এবং প্রতিটি বিনকে একটি চতুর্থাংশ ঘুরিয়েছি, তারপরে পরিবর্তিত বর্ণালী উপাদানগুলিকে পুনরায় সংযুক্ত করেছি।

এই ক্ষেত্রে প্রচুর বিভ্রান্তিকর শ্লোগান রয়েছে; কীওয়ার্ডগুলি হ'ল বিশ্লেষণী সংকেত ',' হিলবার্ট ট্রান্সফর্ম '... আমি এই কীওয়ার্ডগুলি ব্যবহার করা এড়িয়ে চলেছি কারণ বিভিন্ন শাখা তাদের বিভিন্ন অর্থ দেয়।

ডিজিটাল ফিল্টারগুলি ব্যবহার করে এই প্রশস্ততা খামটি অর্জনের অনেকগুলি চূড়ান্ত উপায় রয়েছে, এইভাবে ফুরিয়ার রূপান্তর এড়ানো। এটি অ্যালগরিদমকে খুব কম চালিত মাইক্রোকন্ট্রোলারের উপর চালানোর অনুমতি দেয়।

এই প্রক্রিয়াটি একটি তরঙ্গরূপ তৈরি করে যা প্রতিটি ফ্লাক্স ট্রানজিশনের উপর একটি অনন্য umpষত হওয়া উচিত।

এই তরঙ্গরূপটিকে একটি বাইনারি ক্রম হিসাবে ডিকোড করা এখনও একটি অনিয়মিত কাজ। জটিলতা এবং এই উপাদানটি গাণিতিকের পরিবর্তে অ্যালগরিদমিক; অসুবিধা তুলনীয়।

সব মিলিয়ে একটি অত্যন্ত কঠিন সমস্যা। তাদের পারফরম্যান্স অ্যালগরিদম অর্জন করতে আমার তিন মাসের সেরা অংশটি লেগেছে। আমি সময়ের পুরোপুরি আমার পদ্ধতির ডকুমেন্ট করব এবং একটি সর্বজনীনভাবে উপলব্ধ ডিকোডার ইঞ্জিন প্রস্তুত করব।


1
রিড হেডগুলি সংলগ্ন চৌম্বকীয় ডোমেনগুলি পাশাপাশি পঠিত মাথার অধীনে অবস্থিত রূপান্তর দ্বারা প্রভাবিত হতে পারে, যা পার্শ্ববর্তী বিট প্যাটার্নের উপর নির্ভর করে সময়ের সাথে সাথে পঠন স্থানান্তরকে ধাক্কা দেয় push
হটপাউ 2

মনে রাখবেন যে এই কৌশলটি নির্ভরযোগ্য নয়। যদিও এটি বেশিরভাগ ট্র্যাকের জন্য দুর্দান্ত ফলাফল দেয়, এটি প্রতিটি ফ্লাক্স ট্রানজিশনের জন্য খুব শীঘ্রই কোনও অনন্য বাচ্চা উত্পাদন করতে ব্যর্থ হয়। অর্থাত্ এটি একটি ডাবল ফেলা সৃষ্টি করে। আমি অনুমান করছি কারণ ইনপুট তরঙ্গরূপটি এই মুহুর্তে উপযুক্ত সাইনোসয়েডাল নয়। সুতরাং আমি এখনও কৌশল খুঁজছি।
পি i

শুধু কৌতূহলী, "বিশ্লেষণী সংকেত" বা "হিলবার্ট ট্রান্সফর্ম" এর অন্যান্য কোন সংজ্ঞা আপনি খুঁজে পেয়েছেন? আপনি যদি সিগন্যালের খামটি খুঁজছেন, তবে আপনি এটি প্রথমে কোনও (জটিল) বিশ্লেষণী সংকেতে রূপান্তরিত করে খুঁজে পেতে পারেন। এটি করার কয়েকটি উপায় রয়েছে তবে আপনি যা নির্দেশ করেছেন তা সাধারণত ব্যবহৃত হয় না।
জেসন আর

@ জেআর কিছু সূত্র বিশ্লেষণী সংকেতকে 90 ° পর্বের শিফট অর্থাৎ কোয়াড (চ (এক্স)) হিসাবে সংজ্ঞায়িত করেছে বলে মনে হচ্ছে। অন্যদের f (x) + i.Quad (f (x)) হিসাবে। আমি মনে করি যে আমি হিলবার্ট রূপান্তরটি এই দুটি হিসাবে সংজ্ঞায়িতও দেখেছি। পুরোপুরি নিশ্চিত নয়, সুতরাং আমি এমন একটি স্বরলিপি আটকে রেখেছি যা স্পষ্ট নয়। আমি সিগন্যালের খাম পুনরুদ্ধার করার অন্যান্য কৌশলগুলিতে আগ্রহী; dsp.stackexchange.com/questions/424/… এই থ্রেডটি অনুসরণ করার উপযুক্ত জায়গা বলে মনে হচ্ছে।
পি i
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.