كود هامنج
كود هامنج (بالإنجليزية: hamming code) هو ترميز خطي يستخدم لكشف وتصحيح أخطاء البيانات الرقمية وحفظها، والذي طُور من طرف ريتشارد ويسلي هامنج.[1] هناك إمكانية لاستخدام هامنج كود مع ما يعرف ببت التماثل، واللذان يستخدمان في المرسل والمستقبل لمعرفة إذا ما ما حدث تغير أو خطأ في الكود الرقمي المرسل وتصحيح الخطأ في حال حدوثه، من أجل ضمان وصول البيانات المرسلة بدقة.
كود هامينغ الثنائي | |
---|---|
سميت باسم | ريتشارد هامينغ |
تصنيف | |
نوع | كود خطي |
طول الكتلة | 2r − 1 حيث r ≥ 2 |
طول الرسالة | 2r − r − 1 |
معدل | 1 − r(2r − 1) |
مسافة | 3 |
حجم الالفبائية | 2 |
تدوين رياضي | [2r − 1, 2r − r − 1, 3]2-كود |
خصائص | |
كود مثالي |
نظرية الترميز (التكويد) |
---|
|
مثال يبين كيفية استكشاف الخطأ
نفرض ان المرسل سوف يقوم بارسال الكود التالي المكون من 8 بت بمساعدة هامنج كود:
طريقة هامنج كود انه يقوم بارسال بت اضافية تسمى البت المساعدة إلى الكود المرسل في المواقع 32,16,8,4,2,1 إلى اخره على حسب طول الكود المرسل.
على سبيل المثال إذا اراد المرسل إرسال 4 بت يتم إضافة البت المساعدة في الكود في المواقع 1 و2 و4 فيصبح الكود المعدل مكون من 7 بت مثال اخر عند إرسال كود مكون من 8 بت يتم إضافة البت المساعدة في الكود في المواقع 1 و2 و4 و8 فيصبح الكود المعدل مكون من 12 بت كما موضح في الجدول 2.
لاستخراج قيمة البت المساعدة يقوم بتحويل البت التي قيمتها 1 من الكود المرسل إلى نظام عدد ثنائي ثم عمل بوابة اكس أور (XOR)ما بينها وبعدها يتم تعويض الناتج في المواقع 1 و2 و4 و8 كما هو موضح في الجدولين 3 و4.
نفترض أن المستقبل استقبل الكود من غير أخطاء فيقوم المستقبل بمعرفة الخطأ.
عن طرق تحويل المواقع التي قيمتها 1 في الكود إلى نظام عدد ثنائي وعمل بوابة (XOR) ما بينها والناتج مع البت المساعدة أيضا عن طريق البوابة اكس اور كما هوموضح في الجدولين 5 و6.
وإذا كان الناتج 0 فهذا يدل ان الكود لم يحصل به اي خطأ خلال الإرسال والاستقبال.
مصادر
- Hamming-Code – Wikipedia [الألمانية]
- بوابة اتصال عن بعد
- بوابة علم الحاسوب
- معرض صور من كومنز