ترميز التحكم في الخطأ في الاتصالات الرقمية

اقرأ في هذا المقال


الضجيج أو الخطأ هو المشكلة الرئيسية في الإشارة، ممّا يزعج موثوقية نظام الاتصال حيث يُعد تشفير التحكم في الخطأ هو إجراء تشفير يتم تنفيذه للتحكم في حدوث الأخطاء، كما أنّ هناك العديد من رموز تصحيح الأخطاء المختلفة اعتماداً على المبادئ الرياضية المطبقة عليها، ولكن تم تصنيف هذه الرموز إلى أكواد كتلة خطية ورموز التفاف.

ما هو ترميز التحكم في الخطأ؟

ترميز التحكم في الخطأ: هو إجراء تشفير يتم تنفيذه للتحكم في حدوث الأخطاء، ممّا تساعد هذه التقنيات في اكتشاف الأخطاء وتصحيحها، وهو طريقة لتوفير نقل وتخزين موثوق للبيانات الرقمية عندما يكون لوسط الاتصال المستخدم معدل خطأ بتات غير مقبول (BER) ونسبة إشارة إلى ضوضاء منخفضة (SNR).

يستخدم ترميز الأخطاء في العديد من التطبيقات الرقمية مثل ذاكرة الكمبيوتر ووسائط تخزين البيانات المغناطيسية والبصرية واتصالات الأقمار الصناعية والفضاء العميق واتصالات الشبكة وشبكات الهاتف الخلوي، وبدلاً من نقل البيانات الرقمية في بت خام لشكل بت يتم تشفير البيانات بتات إضافية في المصدر، ومن ثم يتم إرسال كلمة الشفرة الأطول، ويمكن للمستقبل فك تشفيرها لاسترداد المعلومات المطلوبة كما تقوم البتات الإضافية بتحويل البيانات إلى كلمة شفرة صالحة في مخطط التشفير حيث إنّ مساحة كلمات الشفرة الصالحة أصغر من مساحة سلاسل البت المحتملة بهذا الطول، وبالتالي يمكن للوجهة التعرف على كلمات الشفرة غير الصالحة.

في الحوسبة والاتصالات السلكية واللاسلكية ونظرية المعلومات ونظرية التشفير، يتم استخدام رمز تصحيح الخطأ وأحياناً رمز تصحيح الخطأ (ECC) للتحكم في الأخطاء في البيانات عبر قنوات اتصال غير موثوقة أو مزعجة.

أصناف ترميز التحكم في الخطأ:

1. رموز الكتلة الخطية – Linear Block Codes:

في أكواد الكتل الخطية تحتوي بتات التكافؤ وبتات الرسالة على تركيبة خطية، ممّا يعني أنّ كلمة الشفرة الناتجة هي مزيج خطي من أي كلمتين رمزيتين.

في بعض كتل البيانات التي تحتوي على (k بت) في كل كتلة، يتم تعيين هذه البتات مع الكتل التي تحتوي على عدد (n بت) في كل كتلة، وهنا (n أكبر من k) حيث يضيف المرسل بتات زائدة عن الحاجة وهي (n – k بت) أمّا بالنسبة (k / n) هي معدل الشفرة حيث يتم الإشارة إليها بواسطة (r وقيمة r هي r <1).

تكون بتات (n – k) المضافة هنا هي بتات تكافؤ حيث تساعد بتات التكافؤ في اكتشاف الأخطاء وتصحيحها، وكذلك في تحديد موقع البيانات، أمّا في البيانات التي يتم إرسالها تتوافق معظم البتات اليسرى من كلمة الشفرة مع بتات الرسالة وتتوافق معظم البتات اليمنى من كلمة الشفرة مع بتات التكافؤ.

الكود المنهجي – Systematic Code:

يمكن أن تكون أي شفرة كتلة خطية رمزاً منهجياً حتى يتم تغييرها، ومن ثم يسمى رمز الكتلة غير المعدَّل بأنه رمز نظامي، وفي الشفرات الخطية تُعد الشفرة المنهجية غير المعدلة هي المفضلة بحيث أنّ بيانات إجمالي (n بت) إذا تم إرسالها و(k بتات) رسالة و(n – k بتات) هي بتات تعادلية.

ملاحظة:إذا لم يتم تغيير الرسالة فسيتم تسميتها كرمز منتظم، وهذا يعني أنّ تشفير البيانات يجب ألّا يغير البيانات.

2. رموز الالتواء – Convolution Codes:

في عملية الترميز، يتم طرح بتات التكافؤ من البيانات بأكملها ويتم تشفير بتات الرسالة حيث تتم إضافة بتات التكافؤ مرة أخرى ويتم تشفير البيانات بالكامل مرة أخرى.

يًعد تخصيص المخزن المؤقت مشكلة رئيسية هنا وذلك عندما يكون النظام مشغولاً حيث يتم مسح هذا العيب في أكواد الالتواء حيث يتم تعيين رموز لتيار البيانات بالكامل ثم يتم نقلها، ونظراً لأنّ البيانات عبارة عن دفق من البتات فلا حاجة إلى وجود مخزن مؤقت للتخزين.

3. رموز هامنج – Hamming Codes:

الخاصية الخطية لكلمة الشفرة هي أنّ مجموع كلمتين من الكود هو أيضاً كلمة مشفرة، وأكواد هامنج هي نوع أكواد تصحيح الخطأ الخطي، والتي يمكن أن تكتشف ما يصل إلى خطأين بت أو يمكنها تصحيح أخطاء بت واحد دون الكشف عن الأخطاء غير المصححة.

وأثناء استخدام رموز هامنج يتم استخدام بتات تكافؤ إضافية لتحديد خطأ بت واحد، أمّا للانتقال من نمط بت واحد إلى آخر يجب تغيير عدد قليل من البتات في البيانات، كما يمكن تسمية هذا العدد من البتات بمسافة هامينج فإذا كانت المسافة بين التكافؤ (2) فيمكن الكشف عن انعكاس بت واحد، ولكن هذا لا يمكن تصحيحه أيضاً ولا يمكن اكتشاف أي تقلبات ثنائية البت، ومع ذلك فإنّ كود (Hamming) هو إجراء أفضل من الإجراءات السابقة في اكتشاف الأخطاء وتصحيحها.

4. رموز BCH:

تمت تسمية رموز (BCH) على اسم المخترعين (Bose وChaudari وHocquenghem)، وأثناء تصميم كود (BCH) هناك تحكم في عدد الرموز التي يجب تصحيحها وبالتالي يكون تصحيح البتات المتعدد ممكناً، وأكواد (BCH) هي تقنية قوية في رموز تصحيح الأخطاء، ولأي عدد صحيح موجب (m ≥ 3 وt <2m-1) يوجد رمز ثنائي (BCH)، وفيما يلي معلومات هذا الرمز:

  • طول الكتلة (n = 2 m -1).
  • عدد أرقام التحقق من التكافؤ (n – k ≤ mt).
  • أدنى مسافة (dmin ≥ 2t + 1).
  • يمكن تسمية هذا الرمز على أنه كود (BCH) لتصحيح الخطأ (t) أي (t-error-correcting BCH code).

5. رموز دورية – Cyclic Codes:

الخاصية الدورية لكلمات الشفرة هي أنّ أي تحول دوري لكلمة مشفرة هو أيضاً كلمة مشفرة حيث تتبع الرموز الدورية هذه الخاصية الدورية، أمّا بالنسبة للرمز الخطي (C) فإذا كانت كل كلمة رمز أي (C = C1 ،C2 ،Cn) من (C) لها تحول دوري صحيح للمكونات، فإنّها تصبح كلمة مشفرة، وتُعد هذه الإزاحة لليمين تساوي (n-1) الانزياحات اليسرى الدورية ومن ثم فهو ثابت تحت أي تحول، لذلك يمكن تسمية الكود الخطي (C)، كما هو ثابت تحت أي تحول كرمز دوري.

تستخدم الرموز الدورية لتصحيح الخطأ، وهي تستخدم بشكل أساسي لتصحيح الأخطاء المزدوجة وأخطاء الرشقات فهذه بعض رموز تصحيح الأخطاء التي سيتم اكتشافها في جهاز الاستقبال حيث تمنع هذه الرموز الأخطاء من الظهور وتزعج الاتصال، كما أنّها تمنع الإشارة إلى التنصت عليها أجهزة استقبال غير مرغوب فيها، ويوجد هناك فئة من تقنيات الإشارات لتحقيق ذلك.

اكتشاف الخطأ – Error Detection:

في وقت مبكر من ثورة الكمبيوتر، تم تطوير بعض التقنيات القوية أولاً لاكتشاف الأخطاء في البيانات ثم تصحيحها لاحقاً، أمّا الطريقة الأكثر وضوحاً وربما الأقل كفاءة وللعثور على تغييرات البيانات هي تكرار كل وحدة بيانات عدة مرات ثم مقارنة النسخ، وهذه الطريقة غير فعالة لدرجة أنّها لا تستخدم لاكتشاف الأخطاء على الرغم من استخدام نفس الفكرة في (RAID-1) أي انعكاس القرص للتسامح مع الخطأ.

يُطلق على أفضل طريقة معروفة لاكتشاف الأخطاء اسم التكافؤ، حيث تتم إضافة بت واحد إضافي إلى كل بايت من البيانات ويتم تعيين قيمة (1 أو 0)، عادةً إذا كان هناك عدد زوجي أو فردي من (1) بتات يحسب نظام الاستلام ما يجب أن يكون عليه بت التكافؤ، وإذا كانت النتيجة غير متطابقة وذلك لأنّه تم تغيير بت واحد على الأقل لكن لا نعرف أي بت خاطئ، ومن الممكن أن تكون البيانات صحيحة تماماً وأنّ بت التكافؤ مشوه ومع ذلك إذا تم تغيير بتين فإنّ التغييرات تلغى وستكون البيانات خاطئة ولكن بت التكافؤ لن يشير إلى خطأ.

هناك طريقتان أخريان راسختان لاكتشاف الأخطاء هما المجموع الاختباري أي جمع كل بتات الرسالة بأكملها أو المستند أو البرنامج وإنتاج مبلغ واحد وفحص التكرار الدوري، والذي يعمل على مجموعات من البتات في كل مرة ويستخدم القسمة وليس الجمع حيث يتم حساب المجاميع الاختبارية و(CRCs) قبل وبعد الإرسال أو التكرار ثم مقارنتها، كما أنّه لا يمكن للمجموعات الاختبارية و(CRCs) وحدها التحقق من سلامة البيانات.

ونظراً لأنّ الخوارزميات معروفة ومن الممكن إدخال تغييرات مقصودة لن تكتشفها هذه الطرق، وقد تتضمن الطريقة الأكثر أماناً وظائف التجزئة المشفرة والعمليات الرياضية أحادية الاتجاه التي يحول استخدام مفاتيح التشفير السرية فيها دون إجراء تعديلات غير قابلة للكشف.

تصحيح الاخطاء – Error Correction:

توجد تقنيات تتيح لنا العثور على أخطاء في بياناتنا حيث تتمثل إحدى طرق الحصول على الأشياء الصحيحة في مطالبة الطرف أو الجهاز المرسل بإعادة إرسالها، وإذا كان هناك الكثير من الأخطاء أو كان هناك مسار اتصالات طويل، فعلى سبيل المثال عندما نرسل البيانات في منتصف الطريق حول هذا الكوكب الصاخب، يمكن أن تؤدي إعادة الإرسال إلى إبطاء الاتصالات بشكل كبير.

يمكن إنشاء مثل هذه الخوارزميات المعروفة باسم رموز تصحيح الأخطاء (ECC) بأي درجة من الدقة نريدها، ولكن مع مقايضة في الكفاءة، أمّا في معظم الأحيان نختار الأكواد التي يمكنها اكتشاف الأخطاء وتصحيحها في بت واحد واكتشاف الأخطاء ولكن لا تصححها في بتين أو أكثر.


شارك المقالة: