हैमिंग कोड: उदाहरणों के साथ त्रुटि का पता लगाना और सुधार करना

त्रुटि क्या है?

संचार के दौरान प्रेषित डेटा दूषित हो सकता है। यह बाहरी शोर या अन्य भौतिक विफलताओं से प्रभावित होने की संभावना है। ऐसी स्थिति में, इनपुट डेटा आउटपुट डेटा के समान नहीं हो सकता है। इस बेमेल को "त्रुटि" के रूप में जाना जाता है।

डेटा त्रुटियों के परिणामस्वरूप महत्वपूर्ण या सुरक्षित डेटा की हानि हो सकती है। डिजिटल सिस्टम में अधिकांश डेटा ट्रांसफर 'बिट ट्रांसफर' के रूप में होगा। यहां तक ​​कि एक छोटा सा बदलाव भी पूरे सिस्टम के प्रदर्शन को प्रभावित कर सकता है। डेटा अनुक्रम में, यदि 1 को 0 में बदल दिया जाता है या 0 को 1 में बदल दिया जाता है, तो इसे "बिट त्रुटि" कहा जाता है।

त्रुटियों के प्रकार

प्रेषक से प्राप्तकर्ता तक डेटा संचरण में मुख्यतः तीन प्रकार की बिट त्रुटियाँ होती हैं।

  • एकल बिट त्रुटियाँ
  • एकाधिक बिट त्रुटियाँ
  • बर्स्ट त्रुटियाँ

त्रुटियों के प्रकार

एकल बिट त्रुटियाँ

संपूर्ण डेटा अनुक्रम में एक बिट में किए गए परिवर्तन को "सिंगल बिट त्रुटि" के रूप में जाना जाता है। हालाँकि, सिंगल-बिट त्रुटि की घटना इतनी आम नहीं है। इसके अलावा, यह त्रुटि केवल समानांतर संचार प्रणाली में होती है क्योंकि डेटा एक ही पंक्ति में बिटवाइज़ स्थानांतरित होता है। इसलिए, इस बात की अधिक संभावना है कि एक ही पंक्ति शोर कर सकती है।

एकाधिक बिट त्रुटियाँ

डेटा अनुक्रम में, यदि ट्रांसमीटर से रिसीवर तक के डेटा अनुक्रम के दो या अधिक बिट्स में परिवर्तन होता है, तो इसे "एकाधिक बिट त्रुटियाँ" के रूप में जाना जाता है।

इस प्रकार की त्रुटि अधिकतर धारावाहिक और समानांतर दोनों प्रकार के डेटा संचार नेटवर्क में होती है।

बर्स्ट त्रुटियाँ

डेटा अनुक्रम में बिट्स के सेट में परिवर्तन को "बर्स्ट त्रुटि" के रूप में जाना जाता है। इस प्रकार की डेटा त्रुटि की गणना पहले बिट परिवर्तन से लेकर अंतिम बिट परिवर्तन तक की जाती है।

त्रुटि पहचान एवं त्रुटि सुधार क्या है?

डिजिटल संचार प्रणाली में त्रुटियाँ एक संचार प्रणाली से दूसरी संचार प्रणाली में स्थानांतरित हो जाएँगी। यदि इन त्रुटियों का पता नहीं लगाया जाता और उन्हें ठीक नहीं किया जाता, तो डेटा नष्ट हो जाएगा। प्रभावी संचार के लिए, सिस्टम डेटा को उच्च सटीकता के साथ स्थानांतरित किया जाना चाहिए। यह पहले त्रुटियों की पहचान करके और उन्हें ठीक करके किया जाएगा।

त्रुटि पहचान, डेटा संचार प्रणाली में ट्रांसमीटर से रिसीवर तक प्रेषित डेटा में मौजूद त्रुटियों का पता लगाने की एक विधि है।

यहाँ, आप इन त्रुटियों को खोजने के लिए रिडंडेंसी कोड का उपयोग कर सकते हैं, जब डेटा स्रोत से प्रसारित होता है तो डेटा में जोड़कर। इन कोड को "त्रुटि का पता लगाने वाले कोड" कहा जाता है।

त्रुटि पहचान कोड तीन प्रकार के होते हैं:

  • समता जाँच
  • चक्रीय अतिरेक जाँच (CRC)
  • अनुदैर्ध्य अतिरेकता जांच (एलआरसी)

समता जाँच

  • इसे समता जांच के नाम से भी जाना जाता है।
  • इसमें त्रुटि का पता लगाने के लिए लागत प्रभावी तंत्र है।
  • इस तकनीक में, अतिरिक्त बिट को पैरिटी बिट के रूप में जाना जाता है। इसे हर डेटा यूनिट के लिए जोड़ा जाता है। यूनिट में 1 की कुल संख्या सम होनी चाहिए, जिसे पैरिटी बिट के रूप में जाना जाता है।

अनुदैर्ध्य अतिरेक जाँच

इस त्रुटि पहचान तकनीक में, बिट्स का एक ब्लॉक सारणीबद्ध प्रारूप में व्यवस्थित किया जाता है। LRC विधि आपको प्रत्येक कॉलम के लिए समता बिट की गणना करने में मदद करती है। इस समता का सेट भी मूल डेटा के साथ भेजा जाता है। समता का ब्लॉक आपको अतिरेक की जाँच करने में मदद करता है।

चक्रीय अतिरिक्तता जांच

चक्रीय अतिरेक जाँच अतिरेक का एक क्रम है जिसे इकाई के अंत में जोड़ा जाना चाहिए। यही कारण है कि परिणामी डेटा इकाई को दूसरे, पूर्वनिर्धारित बाइनरी नंबर से विभाज्य होना चाहिए।

गंतव्य पर आने वाले डेटा को उसी संख्या से विभाजित करने की आवश्यकता होती है। यदि कोई शेष नहीं है, तो डेटा इकाई को सही माना जाता है और स्वीकार किया जाता है। अन्यथा, यह इंगित करता है कि डेटा इकाई संचरण में क्षतिग्रस्त है, और इसलिए इसे अस्वीकार कर दिया जाना चाहिए।

हैमिंग कोड क्या है?

हैमिंग कोड एक लाइनर कोड है जो दो तत्काल बिट त्रुटियों तक की त्रुटि का पता लगाने के लिए उपयोगी है। यह एकल-बिट त्रुटियों में सक्षम है।

हैमिंग कोड में, स्रोत संदेश में अनावश्यक बिट्स जोड़कर संदेश को एनकोड करता है। ये अनावश्यक बिट्स ज्यादातर त्रुटि का पता लगाने और सुधार प्रक्रिया को पूरा करने के लिए संदेश में कुछ निश्चित स्थानों पर डाले और उत्पन्न किए जाते हैं।

हैमिंग कोड का इतिहास

  • हैमिंग कोड त्रुटियों का पता लगाने के लिए RWHamming द्वारा निर्मित एक तकनीक है।
  • हैमिंग कोड को किसी भी लम्बाई की डेटा इकाइयों पर लागू किया जाना चाहिए और डेटा और रिडंडेंसी बिट्स के बीच संबंध का उपयोग किया जाना चाहिए।
  • उन्होंने त्रुटि-सुधार विधि की समस्या पर काम किया और हैमिंग कोड नामक एल्गोरिदम की एक शक्तिशाली श्रृंखला विकसित की।
  • 1950 में उन्होंने हैमिंग कोड प्रकाशित किया, जिसका आज ECC मेमोरी जैसे अनुप्रयोगों में व्यापक रूप से उपयोग किया जाता है।

हैमिंग कोड का अनुप्रयोग

हैमिंग कोड के उपयोग के कुछ सामान्य अनुप्रयोग इस प्रकार हैं:

  • उपग्रहों
  • स्मृति
  • मोडेम
  • प्लाज्माकैम
  • खुले कनेक्टर
  • परिरक्षण तार
  • एंबेडेड प्रोसेसर

हैमिंग कोड के लाभ

  • हैमिंग कोड विधि उन नेटवर्कों पर प्रभावी है जहां डेटा स्ट्रीम एकल-बिट त्रुटियों के लिए दी जाती हैं।
  • हैमिंग कोड न केवल बिट त्रुटि का पता लगाने में मदद करता है, बल्कि त्रुटि वाले बिट को इंडेंट करने में भी मदद करता है ताकि उसे ठीक किया जा सके।
  • हैमिंग कोड के उपयोग में आसानी के कारण यह कंप्यूटर मेमोरी और एकल-त्रुटि सुधार में उपयोग के लिए सर्वाधिक उपयुक्त है।

हैमिंग कोड के नुकसान

  • एकल-बिट त्रुटि पहचान और सुधार कोड। हालाँकि, यदि कई बिट्स में त्रुटि पाई जाती है, तो परिणाम में एक और बिट हो सकता है जिसे बदला जाना चाहिए। इससे डेटा में और त्रुटि हो सकती है।
  • हैमिंग कोड एल्गोरिथ्म केवल एकल बिट्स की समस्याओं को हल कर सकता है।

हैमिंग कोड में संदेश को एनकोड कैसे करें

संदेश को एनकोड करने के लिए प्रेषक द्वारा उपयोग की जाने वाली प्रक्रिया में निम्नलिखित तीन चरण शामिल हैं:

  • अनावश्यक बिट्स की कुल संख्या की गणना.
  • अनावश्यक बिट्स की स्थिति की जाँच करना।
  • अन्त में, इन अनावश्यक बिट्स के मानों की गणना करें।

जब उपरोक्त अनावश्यक बिट्स संदेश में अंतर्निहित हो जाते हैं, तो उसे उपयोगकर्ता को भेज दिया जाता है।

चरण 1) अनावश्यक बिट्स की कुल संख्या की गणना.

मान लीजिए कि संदेश में निम्नलिखित शामिल है:

  • n– डेटा बिट्स की संख्या
  • p - अनावश्यक बिट्स की संख्या जो इसमें जोड़ी जाती है ताकि np कम से कम (n + p + 1) विभिन्न अवस्थाओं को इंगित कर सके।

यहाँ, (n + p) प्रत्येक (n + p) बिट स्थिति में त्रुटि के स्थान को दर्शाता है और एक अतिरिक्त स्थिति कोई त्रुटि नहीं दर्शाती है। चूँकि p बिट 2 को इंगित कर सकते हैंp राज्य, 2p कम से कम (n + p + 1) के बराबर होना चाहिए।

चरण 2) अनावश्यक बिट्स को उनके सही स्थान पर रखना।

p अनावश्यक बिट्स को 2 की घात वाले बिट पदों पर रखा जाना चाहिए। उदाहरण के लिए, 1, 2, 4, 8, 16, आदि। इन्हें p कहा जाता है1 (स्थिति 1 पर), पी2 (स्थिति 2 पर), पी3 (स्थिति 4 पर), आदि.

चरण 3) अनावश्यक बिट के मानों की गणना.

अनावश्यक बिट्स समता बिट्स होने चाहिए जिससे 1 की संख्या सम या विषम हो जाती है।

समता के दो प्रकार हैं?

  • संदेश में कुल बिट्स की संख्या को सम कर दिया जाता है, जिसे सम समता कहते हैं।
  • संदेश में बिट्स की कुल संख्या को विषम बना दिया जाता है जिसे विषम समता कहा जाता है।

यहाँ, सभी अनावश्यक बिट, p1, को समता के रूप में परिकलित किया जाना चाहिए। इसमें सभी बिट स्थितियों को शामिल किया जाना चाहिए, जिनके बाइनरी प्रतिनिधित्व में p1 की स्थिति को छोड़कर पहली स्थिति में 1 शामिल होना चाहिए।

P1 उन स्थितियों में प्रत्येक डेटा बिट्स के लिए समता बिट है जिनके बाइनरी प्रतिनिधित्व में 1 शामिल है, जिसमें 1 शामिल नहीं है जैसे (3, 5, 7, 9, ...)

P2 उन प्रत्येक डेटा बिट्स के लिए समता बिट है जिनके बाइनरी प्रतिनिधित्व में दाईं ओर से 1वें स्थान पर 2 शामिल है, 2 को शामिल नहीं किया गया है जैसे (3, 6, 7, 10, 11,…)

P3 उन प्रत्येक बिट के लिए समता बिट है जिनके बाइनरी प्रतिनिधित्व में दाईं ओर से स्थिति 1 में 3 शामिल है, 4 शामिल नहीं है जैसे (5-7, 12-15,…)

हैमिंग कोड में संदेश को डिक्रिप्ट करना

रिसीवर को आने वाले संदेश प्राप्त होते हैं जिनमें त्रुटियों को खोजने और सुधारने के लिए पुनर्गणना करने की आवश्यकता होती है।

पुनर्गणना प्रक्रिया निम्नलिखित चरणों में की जाती है:

  • अनावश्यक बिट्स की संख्या की गणना करना।
  • सभी अनावश्यक बिट्स की सही स्थिति।
  • समता जांच

चरण 1) अनावश्यक बिट्स की संख्या की गणना

आप एनकोडिंग के लिए भी यही सूत्र उपयोग कर सकते हैं, अनावश्यक बिट्स की संख्या

2p ? एन + पी + १

यहाँ, डेटा बिट्स की संख्या और p अनावश्यक बिट्स की संख्या है।

चरण 2) सभी अनावश्यक बिट्स को सही ढंग से प्रस्तुत करना

यहाँ, p एक अनावश्यक बिट है जो 2 की घातों के बिट पदों पर स्थित है, उदाहरण के लिए, 1, 2, 4, 8, आदि।

चरण 3) समता जांच

समता बिट्स की गणना डेटा बिट्स और अनावश्यक बिट्स के आधार पर की जानी चाहिए।

p1 = समता(1, 3, 5, 7, 9, 11…)

p2 = समता(2, 3, 6, 7, 10, 11…)

p3 = समता(4-7, 12-15, 20-23… )

सारांश

  • संचार के दौरान प्रेषित डेटा दूषित हो सकता है
  • बिट त्रुटि के तीन प्रकार हैं 1) एकल बिट त्रुटियाँ 2) एकाधिक बिट त्रुटि 3) बर्स्ट बिट त्रुटियाँ
  • संपूर्ण डेटा अनुक्रम में एक बिट में किया गया परिवर्तन "एकल बिट त्रुटि" के रूप में जाना जाता है।
  • डेटा अनुक्रम में, यदि ट्रांसमीटर से रिसीवर तक के डेटा अनुक्रम के दो या अधिक बिट्स में परिवर्तन होता है, तो इसे "एकाधिक बिट त्रुटियाँ" के रूप में जाना जाता है।
  • डेटा अनुक्रम में बिट्स के सेट में परिवर्तन को "बर्स्ट त्रुटि" के रूप में जाना जाता है।
  • त्रुटि का पता लगाना एक ऐसी विधि है जिसमें डेटा संचार प्रणाली में ट्रांसमीटर से रिसीवर तक प्रेषित डेटा में मौजूद त्रुटियों का पता लगाया जाता है।
  • त्रुटि पहचान कोड तीन प्रकार के होते हैं: 1) समता जाँच 2) चक्रीय अतिरेक जाँच (सीआरसी) 3) अनुदैर्ध्य अतिरेक जाँच (एलआरसी)
  • हैमिंग कोड एक लाइनर कोड है जो दो तत्काल बिट त्रुटियों तक की त्रुटि का पता लगाने के लिए उपयोगी है। यह एकल-बिट त्रुटियों में सक्षम है।
  • हैमिंग कोड त्रुटियों का पता लगाने के लिए RWHamming द्वारा निर्मित एक तकनीक है।
  • हैमिंग कोड के सामान्य अनुप्रयोग हैं सैटेलाइट्स, कंप्यूटर मेमोरी, मोडेम, एम्बेडेड प्रोसेसर आदि।
  • हैमिंग कोड विधि का सबसे बड़ा लाभ यह है कि यह उन नेटवर्कों पर प्रभावी होती है जहां डेटा स्ट्रीम एकल-बिट त्रुटियों के लिए दी जाती है।
  • हैमिंग कोड विधि का सबसे बड़ा दोष यह है कि यह केवल एकल बिट्स की समस्याओं को ही हल कर सकती है।
  • हम हैमिंग कोड की सहायता से संदेश को एन्क्रिप्ट और डिकोड करने की प्रक्रिया कर सकते हैं।