Berger code
টেলিযোগাযোগে, বার্জার কোড হল একটি একমুখী ত্রুটি সনাক্তকারী কোড, যার উদ্ভাবক জে. এম. বার্জারের নামে নামকরণ করা হয়েছে। বার্জার কোডগুলি সমস্ত একমুখী ত্রুটি সনাক্ত করতে পারে। একমুখী ত্রুটিগুলি হল এমন ত্রুটি যা শুধুমাত্র একটিটিকে শূন্যে বা শুধুমাত্র শূন্যকে শূন্যে পরিণত করে, যেমন অসম চ্যানেলগুলিতে। বার্জার কোডের চেক বিটগুলি তথ্য শব্দের সমস্ত শূন্য গণনা করে এবং প্রাকৃতিক বাইনারিতে সেই সংখ্যাটি প্রকাশ করে গণনা করা হয়। যদি তথ্য শব্দটি বিট নিয়ে গঠিত হয়, তবে বার্জার কোডের "চেক বিট" প্রয়োজন, যা k + n দৈর্ঘ্যের একটি বার্জার কোড দেয়। (অন্য কথায়, চেক বিটগুলি তথ্য বিটগুলি পরীক্ষা করার জন্য যথেষ্ট)। বার্জার কোডগুলি যে কোনও সংখ্যক এক-থেকে-শূন্য বিট-উল্টানোর ত্রুটি সনাক্ত করতে পারে, যতক্ষণ না একই কোড শব্দে কোনও শূন্য-থেকে-এক ত্রুটি ঘটে না। একইভাবে, বার্জার কোডগুলি যে কোনও সংখ্যক শূন্য-থেকে-এক বিট-উল্টানোর ত্রুটি সনাক্ত করতে পারে, যতক্ষণ না একই কোড শব্দের মধ্যে কোনও এক-থেকে-শূন্য বিট-উল্টানোর ত্রুটি না ঘটে। বার্জার কোডগুলি কোনও ত্রুটি সংশোধন করতে পারে না। সমস্ত একমুখী ত্রুটি সনাক্তকরণ কোডের মতো, বার্জার কোডগুলি বিলম্ব-সংবেদনশীল সার্কিটগুলিতেও ব্যবহার করা যেতে পারে। একমুখী ত্রুটি সনাক্তকরণ যেমন উপরে বলা হয়েছে, বার্জার কোডগুলি যে কোনও সংখ্যক একমুখী ত্রুটি সনাক্ত করে। একটি প্রদত্ত কোড শব্দের জন্য, যদি শুধুমাত্র ত্রুটিগুলি ঘটে থাকে যে মান 1 সহ কিছু (বা সমস্ত) বিট মান 0 তে পরিবর্তিত হয়েছে, তবে এই রূপান্তরটি বার্জার কোড বাস্তবায়নের মাধ্যমে সনাক্ত করা হবে। কেন, তা বোঝার জন্য বিবেচনা করুন যে এই ধরনের তিনটি ঘটনা রয়েছেঃ কোড শব্দের তথ্য অংশে কিছু 1s বিট 0s-এ পরিবর্তিত হয়েছে। কোড শব্দের চেক (বা অপ্রয়োজনীয়) অংশে কিছু 1s বিট 0-এ পরিবর্তিত হয়েছে। তথ্য এবং চেক অংশ উভয়ের কিছু 1s বিট 0-এ পরিবর্তিত হয়েছে। কেস 1-এর জন্য, তথ্য বিভাগে 0-মূল্যবান বিটের সংখ্যা, ত্রুটির সংজ্ঞা অনুসারে, বৃদ্ধি পাবে। অতএব, আমাদের বার্জার চেক কোড তথ্যের জন্য প্রকৃত 0-বিট-গণনার চেয়ে কম হবে, এবং তাই চেকটি ব্যর্থ হবে। কেস 2-এর জন্য, তথ্য বিভাগে 0-মূল্যবান বিটের সংখ্যা একই রয়েছে, তবে চেক ডেটার মান পরিবর্তিত হয়েছে। যেহেতু আমরা জানি যে কিছু 1s 0s-এ পরিণত হয়েছে, তবে কোনও 0s 1s-এ পরিণত হয়নি (এইভাবে আমরা এই ক্ষেত্রে ত্রুটি মডেলকে সংজ্ঞায়িত করেছি), চেক ডেটার এনকোডেড বাইনারি মান হ্রাস পাবে (যেমন, বাইনারি 1011 থেকে 1010, বা 1001, বা 0011)। যেহেতু তথ্যের তথ্য একই রয়েছে, তাই এটিতে আগের মতো একই সংখ্যক শূন্য রয়েছে এবং এটি আর পরিবর্তিত চেক মানের সাথে মেলে না। কেস 3-এর ক্ষেত্রে, যেখানে তথ্য এবং চেক বিভাগ উভয় ক্ষেত্রেই বিট পরিবর্তিত হয়েছে, লক্ষ্য করুন যে তথ্য বিভাগে শূন্যের সংখ্যা বেড়েছে, যেমন কেস 1-এর জন্য বর্ণিত হয়েছে, এবং চেক অংশে সঞ্চিত বাইনারি মান কমে গেছে, যেমন কেস 2-এর জন্য বর্ণিত হয়েছে। অতএব, এমন কোনও সম্ভাবনা নেই যে দুটি এমনভাবে পরিবর্তিত হবে যাতে একটি ভিন্ন বৈধ কোড শব্দ হয়ে যায়। একটি অনুরূপ বিশ্লেষণ করা যেতে পারে, এবং এটি পুরোপুরি বৈধ, যেখানে শুধুমাত্র ত্রুটিগুলি ঘটে যে কিছু 0-মূল্যবান বিট 1-এ পরিবর্তিত হয়। অতএব, যদি একটি নির্দিষ্ট কোডওয়ার্ডে ঘটে যাওয়া সমস্ত ত্রুটি একই দিকে ঘটে, তবে এই ত্রুটিগুলি সনাক্ত করা হবে। পরবর্তী কোড শব্দটি প্রেরণের জন্য (উদাহরণস্বরূপ), ত্রুটিগুলি বিপরীত দিকে যেতে পারে এবং যতক্ষণ না তারা একে অপরের মতো একই দিকে যায় ততক্ষণ সেগুলি সনাক্ত করা হবে। নির্দিষ্ট কিছু পরিস্থিতিতে একমুখী ত্রুটি সাধারণ। উদাহরণস্বরূপ, ফ্ল্যাশ মেমরিতে, বিটগুলি 1-এ পুনরায় সেট করার চেয়ে সহজেই 0-তে প্রোগ্রাম করা যেতে পারে। সুভাশীষ মিত্র এবং এডওয়ার্ড জে ম্যাকক্লুস্কির উদ্ধৃতি, "কোন সমবর্তী ত্রুটি সনাক্তকরণ প্রকল্পটি বেছে নিতে হবে? ", সেন্টার ফর রিলায়েবল কম্পিউটিং, স্ট্যানফোর্ড বিশ্ববিদ্যালয়, 2000। কোডিং তত্ত্ব ত্রুটি সনাক্তকরণ এবং সংশোধন