বুলিয়ান বীজগণিত ও সংখ্যা পদ্ধতি/গ্রে কোড
গ্রে কোড হলো এমন একটি বাইনারি কোড পদ্ধতি যেখানে পরপর দুটো সংখ্যার মধ্যে মাত্র একটি বিট পরিবর্তন হয়। সাধারণ বাইনারিতে ৭ (০১১১) থেকে ৮ (১০০০)-এ যেতে চারটি বিট একসাথে পরিবর্তন হয়, কিন্তু গ্রে কোডে সবসময় একটিমাত্র বিট পরিবর্তন হয়। এই বিশেষ গুণের কারণে গ্রে কোড শিল্প নিয়ন্ত্রণ, যোগাযোগ ব্যবস্থা এবং ডিজিটাল সার্কিটে ব্যাপকভাবে ব্যবহৃত হয়।
ভূমিকা: কেন গ্রে কোড দরকার?
সিঁড়ি দিয়ে ওঠার উপমা
ধরো তুমি সিঁড়ি দিয়ে উঠছ। প্রতিটি ধাপে তুমি একটি পা সামনে রাখো। দুটো পা একসাথে তোলো না। কারণ একসাথে দুটো পা তুললে পড়ে যাওয়ার ভয় থাকে।
গ্রে কোডও এই নীতিতে কাজ করে। একটা সংখ্যা থেকে পরের সংখ্যায় যেতে মাত্র একটি বিট পরিবর্তন হয়, যেন এক পায়ে ধাপ বাড়ানো।
সাধারণ বাইনারির সমস্যা
সাধারণ বাইনারি কাউন্টারে ৭ থেকে ৮-এ যেতে চারটি বিট একসাথে পরিবর্তন হয়:
।
হার্ডওয়্যারে এই পরিবর্তন মুহূর্তে ক্ষণিকের জন্য ভুল মান দেখা দিতে পারে। যেমন ০১১১ থেকে ১০০০-এ যাওয়ার পথে ০১১০, ০১০০, ০০০০ এইসব মাঝামাঝি অবস্থা আসতে পারে।
যদি কোনো যন্ত্র এই মুহূর্তে পাঠ নেয়, ভুল তথ্য পাবে। গ্রে কোডে প্রতিটি পরিবর্তনে মাত্র একটি বিট বদলায়, তাই এই ভুলের সম্ভাবনা থাকে না।
| দশমিক | বাইনারি | গ্রে কোড | পরিবর্তিত বিট (গ্রেতে) |
|---|---|---|---|
| শুরু | |||
| বিট ০ | |||
| বিট ১ | |||
| বিট ০ | |||
| বিট ২ | |||
| বিট ০ | |||
| বিট ১ | |||
| বিট ০ | |||
| বিট ৩ | |||
| বিট ০ | |||
| বিট ১ | |||
| বিট ০ | |||
| বিট ২ | |||
| বিট ০ | |||
| বিট ১ | |||
| বিট ০ |
গ্রে কোডের ইতিহাস
ফ্র্যাংক গ্রে-এর অবদান
গ্রে কোডের নামকরণ হয়েছে আমেরিকান পদার্থবিজ্ঞানী ফ্র্যাংক গ্রে-এর নামে। তিনি ১৯৫৩ সালে বেল ল্যাবসে কাজ করার সময় এই কোড ব্যবস্থা পেটেন্ট করেন।
তবে এই ধারণাটা আরো আগে থেকে ছিল। ফরাসি গণিতবিদ এমিল বোডো ১৮৮০-এর দশকে টেলিগ্রাফ সার্কিটে একই ধরনের কোড ব্যবহার করেছিলেন।
প্রথম ব্যবহার
গ্রে কোড প্রথমে টেলিভিশন সংকেত পাঠানোয় ব্যবহার হয়েছিল। পরে এটি রোটারি এনকোডার, কার্নো মানচিত্র এবং ত্রুটি সংশোধনে ব্যাপকভাবে ছড়িয়ে পড়ে।
বাইনারি থেকে গ্রে কোড রূপান্তর
প্রতিবেশী বিট XOR পদ্ধতি
বাইনারি থেকে গ্রে কোড :
- (বাকি সব বিটের জন্য)
সবচেয়ে বাম দিকের বিট অপরিবর্তিত থাকে। বাকি প্রতিটি বিট তার বাম প্রতিবেশী এবং নিজের XOR।
উদাহরণ ১: বাইনারি ১০১১ থেকে গ্রে কোড
| ধাপ | হিসাব | গ্রে বিট |
|---|---|---|
গ্রে কোড: ।
উদাহরণ ২: বাইনারি ১১০১০ থেকে গ্রে কোড
গ্রে কোড: ।
দ্রুত পদ্ধতি
বাইনারি সংখ্যাকে এক বিট ডানে শিফট করো। তারপর মূল সংখ্যার সাথে XOR করো।
উদাহরণ: ১০১১ → G = ১০১১ XOR ০১০১ = ১১১০।
গ্রে কোড থেকে বাইনারি রূপান্তর
ক্রমানুসারে XOR পদ্ধতি
গ্রে কোড থেকে বাইনারি :
সবচেয়ে বাম বিট অপরিবর্তিত। বাকি প্রতিটি বিট: আগের বাইনারি বিট XOR বর্তমান গ্রে বিট।
উদাহরণ ১: গ্রে কোড ১১১০ থেকে বাইনারি
| ধাপ | হিসাব | বাইনারি বিট |
|---|---|---|
বাইনারি: ।
যাচাই: ১০১১ থেকে গ্রে = ১১১০। সঠিক!
উদাহরণ ২: গ্রে কোড ১০১১১ থেকে বাইনারি
বাইনারি: ।
| বাইনারি | গ্রে কোড | যাচাই (গ্রে→বাইনারি) |
|---|---|---|
গ্রে কোডের বিশেষ গুণ
প্রতিফলন সম্পত্তি
গ্রে কোড তৈরি হয় একটি প্রতিফলন প্রক্রিয়ায়। এই কারণেই এটাকে কখনো কখনো প্রতিফলিত বাইনারি কোডও বলা হয়।
বিটের গ্রে কোড তৈরি হয়:
ধাপ ১: বিটের গ্রে কোড নাও। ধাপ ২: উল্টো ক্রমে লেখো (প্রতিফলন)। ধাপ ৩: মূল তালিকার প্রতিটিতে ০ এবং প্রতিফলিত তালিকার প্রতিটিতে ১ যোগ করো।
১ বিট: ০, ১
২ বিট: ০০, ০১, ১১, ১০
৩ বিট: ০০০, ০০১, ০১১, ০১০, ১১০, ১১১, ১০১, ১০০
চক্রাকার সম্পত্তি
গ্রে কোডের শেষ মান এবং প্রথম মানের মধ্যেও মাত্র একটি বিট পরিবর্তন হয়।
৩ বিটে: শেষ মান ১০০ (দশমিক ৭) থেকে প্রথম মান ০০০ (দশমিক ০)-এ যেতে মাত্র এক বিট পরিবর্তন।
এই গুণের কারণে গ্রে কোড ঘূর্ণনশীল যন্ত্রে আদর্শ।
স্বয়ংপরিপূরক সম্পত্তি
বিটের গ্রে কোডে, যে সংখ্যার গ্রে কোড নেওয়া হয় এবং তার পরিপূরক (দশমিকে ) এর গ্রে কোডের মধ্যে কেবল সর্বোচ্চ বিট আলাদা।
গ্রে কোড ও কার্নো মানচিত্র
কার্নো মানচিত্রে গ্রে কোডের ভূমিকা
বুলিয়ান বীজগণিত সরলীকরণের জনপ্রিয় পদ্ধতি কার্নো মানচিত্রে গ্রে কোড ব্যবহার করা হয়।
কার্নো মানচিত্রে সারি ও কলামের লেবেল গ্রে কোড ক্রমে সাজানো হয়:
| ০০ | ০১ | ১১ | ১০ | |
|---|---|---|---|---|
| ০০ | ||||
| ০১ | ||||
| ১১ | ||||
| ১০ |
লেবেলগুলো গ্রে কোড ক্রমে: ০০, ০১, ১১, ১০। পাশের যেকোনো দুটো ঘরে কেবল একটি চলক আলাদা।
কেন গ্রে কোড ব্যবহার হয়?
কার্নো মানচিত্রে পাশের ঘরগুলো একটি মিনটার্ম দল তৈরি করতে পারে যদি তারা একটি চলকে আলাদা হয়।
গ্রে কোড ক্রমে সাজানো থাকায় পাশের প্রতিটি ঘর ঠিক একটি চলকে আলাদা। তাই সহজে দল বানানো যায়।
রোটারি এনকোডারে গ্রে কোড
ঘূর্ণনশীল যন্ত্রের উপমা
কারখানায় একটা মোটর ঘুরছে। মোটরের শ্যাফট কত ডিগ্রি ঘুরেছে তা জানতে হবে।
একটা ডিস্কে বিভিন্ন সংকেত এঁকে মোটরের সাথে লাগানো হয়। ডিস্ক ঘুরলে সেন্সর সংকেত পড়ে এবং কোণ জানা যায়।
যদি সাধারণ বাইনারি ব্যবহার হয়: ৩ (০১১) থেকে ৪ (১০০)-এ যাওয়ার মুহূর্তে ডিস্কের তিনটি ট্র্যাক একসাথে পরিবর্তন হয়। সেন্সর ঠিক সেই মুহূর্তে পড়লে ০০০ বা ১১১ বা যেকোনো ভুল মান পাবে।
গ্রে কোডে শুধু একটা ট্র্যাক পরিবর্তন হয়। তাই ভুল পড়ার সম্ভাবনা শূন্য।
রোটারি এনকোডারের গঠন
একটা ডিস্কে কয়েকটা বৃত্তাকার ট্র্যাক আছে। প্রতিটি ট্র্যাকে স্বচ্ছ ও অস্বচ্ছ অংশ আছে (১ ও ০)। ট্র্যাকের সংখ্যা বিটের সংখ্যার সমান।
| কোণ (ডিগ্রি) | দশমিক অবস্থান | গ্রে কোড | পরিবর্তিত ট্র্যাক |
|---|---|---|---|
| শুরু | |||
| ট্র্যাক ১ | |||
| ট্র্যাক ২ | |||
| ট্র্যাক ১ | |||
| ট্র্যাক ৩ | |||
| ট্র্যাক ১ | |||
| ট্র্যাক ২ | |||
| ট্র্যাক ১ |
গ্রে কোডের বাস্তব প্রয়োগ
শিল্প নিয়ন্ত্রণ
কারখানার রোবোটিক বাহু, সিএনসি মেশিন, লিফট নিয়ন্ত্রণ এবং স্বয়ংক্রিয় উৎপাদন লাইনে গ্রে কোড এনকোডার ব্যবহার হয়।
একটা গাড়ির কারখানায় রোবোটিক বাহু ঠিকঠাক কোণে বাঁকতে পারছে কিনা তা গ্রে কোড এনকোডার দিয়ে পরিমাপ হয়।
যোগাযোগ ব্যবস্থা
ডিজিটাল যোগাযোগে ত্রুটি সংশোধনে গ্রে কোড ব্যবহার হয়। যখন সংকেত দুর্বল হয় এবং একটি বিট ভুল হয়, গ্রে কোডে সেই ভুলের প্রভাব সর্বনিম্ন।
অ্যানালগ থেকে ডিজিটাল রূপান্তর
অনেক অ্যানালগ-থেকে-ডিজিটাল রূপান্তরক গ্রে কোড ব্যবহার করে। কারণ রূপান্তরের সময় গ্রে কোডে কোয়ান্টাইজেশন ত্রুটি কম।
ভিডিও গেম ও গ্রাফিক্স
কিছু ভিডিও গেমে এবং কম্পিউটার গ্রাফিক্সে ডিদারিং অ্যালগরিদমে গ্রে কোডের ধারণা ব্যবহার হয়।
| ক্ষেত্র | কেন গ্রে কোড ব্যবহার হয় |
|---|---|
| রোটারি এনকোডার | একটি বিট পরিবর্তনে ভুল পড়া হয় না |
| কার্নো মানচিত্র | পাশের ঘরগুলো একটি চলকে আলাদা |
| ত্রুটি সংশোধন | একটি বিট ভুল হলে মান সামান্য পরিবর্তিত হয় |
| এডিসি সার্কিট | রূপান্তরের সময় বড় লাফ হয় না |
| পাজল সমাধান | হ্যানয়ের টাওয়ার পাজলের ন্যূনতম পদক্ষেপ |
গ্রে কোড ও হ্যানয়ের টাওয়ার
একটি চমকপ্রদ সংযোগ
হ্যানয়ের টাওয়ার একটি বিখ্যাত গাণিতিক পাজল। টি চাকতি এক খুঁটি থেকে আরেক খুঁটিতে সরাতে হয়, একটা বড় চাকতির উপর ছোট চাকতি রাখা যাবে না।
দারুণ সংযোগ হলো: চাকতির হ্যানয়ের টাওয়ারের প্রতিটি পদক্ষেপ ঠিক বিটের গ্রে কোডের একটি পরিবর্তনের সমতুল্য।
চাকতির ক্ষেত্রে ৭টি পদক্ষেপ লাগে। এবং তিন বিটের গ্রে কোডে ০ থেকে ৭ পর্যন্ত ৭টি পরিবর্তন আছে।
| পদক্ষেপ | গ্রে কোড | পরিবর্তিত বিট | কোন চাকতি সরানো হয় |
|---|---|---|---|
| শুরু | প্রাথমিক অবস্থা | ||
| বিট ০ | সবচেয়ে ছোট চাকতি | ||
| বিট ১ | মাঝের চাকতি | ||
| বিট ০ | সবচেয়ে ছোট চাকতি | ||
| বিট ২ | সবচেয়ে বড় চাকতি | ||
| বিট ০ | সবচেয়ে ছোট চাকতি | ||
| বিট ১ | মাঝের চাকতি | ||
| বিট ০ | সবচেয়ে ছোট চাকতি |
বিস্তারিত উদাহরণ
উদাহরণ ১: ৫ বিটের গ্রে কোড তালিকা তৈরি
৪ বিটের গ্রে কোড থেকে ৫ বিটের তৈরি করো।
৪ বিটের গ্রে কোড (ক্রম): ০০০০, ০০০১, ০০১১, ০০১০, ০১১০, ০১১১, ০১০১, ০১০০, ১১০০, ১১০১, ১১১১, ১১১০, ১০১০, ১০১১, ১০০১, ১০০০।
৫ বিটের তৈরি:
- মূল তালিকায় সামনে ০ যোগ করো।
- উল্টো তালিকায় সামনে ১ যোগ করো।
প্রথম ১৬টি (সামনে ০): ০০০০০, ০০০০১, ০০০১১, ০০০১০, ০০১১০, ০০১১১, ০০১০১, ০০১০০, ০১১০০, ০১১০১, ০১১১১, ০১১১০, ০১০১০, ০১০১১, ০১০০১, ০১০০০।
পরের ১৬টি (সামনে ১, উল্টো ক্রমে): ১১০০০, ১১০০১, ১১০১১, ১১০১০, ১১১১০, ১১১১১, ১১১০১, ১১১০০, ১০১০০, ১০১০১, ১০১১১, ১০১১০, ১০০১০, ১০০১১, ১০০০১, ১০০০০।
উদাহরণ ২: গ্রে কোড দিয়ে কার্নো মানচিত্র সরলীকরণ
ফাংশন সরলীকরণ করো।
কার্নো মানচিত্র:
| ০০ | ০১ | ১১ | ১০ | |
|---|---|---|---|---|
| ০ | ০ | ১ | ১ | ১ |
| ১ | ০ | ১ | ১ | ০ |
গ্রে কোড ক্রমে: BC = ০০, ০১, ১১, ১০।
দল ১: মিনটার্ম ১, ৩, ৫, ৭ (BC=০১ ও BC=১১ উভয় সারিতে)। এরা -এর দল। ।
দল ২: মিনটার্ম ২, ৩ (A=০, BC=১১ ও BC=১০)। ।
অপেক্ষা, BC=১০ হলো মিনটার্ম ২ (ABC=010)। BC=১১ হলো মিনটার্ম ৩ (ABC=011)।
মিনটার্ম ১=001, ২=010, ৩=011, ৫=101, ৭=111।
দল ১: ১, ৩, ৫, ৭। সবগুলোতে C=1। ।
দল ২: ২, ৩। এরা A=0, B=1। ।
সরলীকৃত: ।
উদাহরণ ৩: রোটারি এনকোডার অবস্থান বের করা
একটি ৪ বিটের রোটারি এনকোডার গ্রে কোড ১০১১ পাঠাচ্ছে। এটা কত ডিগ্রি বোঝায়?
প্রথমে গ্রে কোড ১০১১ থেকে বাইনারি বের করো।
। । । ।
বাইনারি: ১১০১ = ১৩।
৪ বিটের এনকোডারে মোট ১৬টি অবস্থান। প্রতিটি অবস্থান = ৩৬০/১৬ = ২২.৫ ডিগ্রি।
কোণ = ১৩ × ২২.৫ = ২৯২.৫ ডিগ্রি।
অনুশীলনী
১. বাইনারি ১১০১০১ থেকে গ্রে কোড বের করো।
উত্তর:
গ্রে কোড: ।
২. গ্রে কোড ১০১১১১ থেকে বাইনারি বের করো।
উত্তর:
বাইনারি: । যাচাই: ১১০১০১ থেকে গ্রে = ১০১১১১। সঠিক!
৩. কার্নো মানচিত্রে গ্রে কোড কেন ব্যবহার হয়?
উত্তর: কার্নো মানচিত্রে পাশের ঘরগুলো একটি মিনটার্ম দল তৈরি করতে পারে যদি তারা ঠিক একটি চলকে আলাদা হয়। গ্রে কোড ক্রমে লেবেল সাজালে পাশের প্রতিটি ঘর ঠিক একটি চলকে আলাদা থাকে। তাই সহজে দল বানানো যায় এবং বুলিয়ান ফাংশন সরলীকরণ সহজ হয়।
৪. সাধারণ বাইনারি কাউন্টারের চেয়ে গ্রে কোড কাউন্টার কোন ক্ষেত্রে ভালো?
উত্তর: যেখানে কাউন্টারের আউটপুট সরাসরি যন্ত্রের অবস্থান বা কোণ নির্ধারণ করে। সাধারণ বাইনারিতে একাধিক বিট একসাথে পরিবর্তন হলে ক্ষণিকের জন্য ভুল মান পড়া যেতে পারে। গ্রে কোডে একটিমাত্র বিট পরিবর্তন হয়, তাই ভুল পড়ার সম্ভাবনা থাকে না। রোটারি এনকোডার, লিফট নিয়ন্ত্রণ এবং শিল্প যন্ত্রপাতিতে গ্রে কোড আদর্শ।
৫. ৩ বিটের গ্রে কোডে ৫ (দশমিক) এর গ্রে কোড বের করো এবং এর আগের ও পরের গ্রে কোডের সাথে তুলনা করো।
উত্তর: ৫ = ১০১ বাইনারি।
গ্রে কোড ৫ = ১১১।
৪ = ১০০ বাইনারি। গ্রে কোড ৪: = ১১০। ৬ = ১১০ বাইনারি। গ্রে কোড ৬: = ১০১।
তুলনা:
- ৪ → ৫: ১১০ → ১১১। বিট ০ পরিবর্তন। মাত্র ১ বিট।
- ৫ → ৬: ১১১ → ১০১। বিট ১ পরিবর্তন। মাত্র ১ বিট।
সঠিক! প্রতিটি ধাপে একটিমাত্র বিট পরিবর্তন।