> hamming | (7,4) | ecc <
// हैमिंग कोड – विश्वसनीय डेटा ट्रांसमिशन के लिए त्रुटि सुधार कोड
त्रुटि सुधार
डेटा में एकल-बिट त्रुटियों को स्वतः पहचान कर सुधारता है।
दोहरी त्रुटि का पता लगाना
प्रत्येक ब्लॉक में दो-बिट त्रुटियों का पता लगा सकता है (लेकिन उन्हें ठीक नहीं करता)।
न्यूनतम ओवरहेड
हर 4 डेटा बिट के लिए केवल 3 पैरिटी बिट (75% दक्षता)।
>> तकनीकी जानकारी
हैमिंग कोड कैसे काम करता है:
Hamming(7,4) कोड हर 4 डेटा बिट के साथ 3 पैरिटी बिट जोड़ता है और 7-बिट के ब्लॉक बनाता है। पैरिटी बिट्स उन स्थानों पर रखे जाते हैं जो 2 की घातें होते हैं (1, 2, 4)। जब त्रुटियाँ होती हैं, तो सिंड्रोम (पैरिटी जाँच का परिणाम) सीधे बताता है कि कौन सा बिट गलत है।
Hamming(7,4) संरचना:
डेटा: 1011 (4 बिट) स्थितियाँ: P1 P2 D1 P3 D2 D3 D4 Hamming: 1 0 1 1 0 1 1 P1 = D1 ⊕ D2 ⊕ D4 = 1 ⊕ 0 ⊕ 1 = 0 P2 = D1 ⊕ D3 ⊕ D4 = 1 ⊕ 1 ⊕ 1 = 1 P3 = D2 ⊕ D3 ⊕ D4 = 0 ⊕ 1 ⊕ 1 = 0
हैमिंग कोड क्यों उपयोग करें:
- >मेमोरी त्रुटि सुधार
- >उपग्रह संचार
- >डेटा भंडारण सिस्टम
- >नेटवर्क ट्रांसमिशन
- >RAID एरे
>> अक्सर पूछे जाने वाले प्रश्न
हैमिंग कोड क्या है?
हैमिंग कोड एक त्रुटि सुधार कोड है जिसे 1950 में रिचर्ड हैमिंग ने विकसित किया था। यह डेटा में पैरिटी बिट जोड़ता है, जिसके माध्यम से एकल-बिट त्रुटियों का स्वतः पता लगाकर उन्हें ठीक किया जा सकता है।
(7,4) का क्या अर्थ है?
Hamming(7,4) का अर्थ है 7 कुल बिट, जिनमें 4 डेटा बिट और 3 पैरिटी बिट होते हैं। यह 7-बिट ब्लॉक में किसी भी एकल-बिट त्रुटि को सुधार सकता है। अन्य वैरिएंट में (15,11) और (31,26) शामिल हैं।
त्रुटि सुधार कैसे काम करता है?
जब डेटा प्राप्त होता है, तो पैरिटी बिट दोबारा गणना की जाती है। यदि वे मेल नहीं खाते, तो सिंड्रोम (अंतर) सीधे यह बताता है कि कौन सा बिट गलत है। उस बिट को उलट कर त्रुटि ठीक की जाती है।
हैमिंग बनाम अन्य ECC कोड?
हैमिंग कोड एकल-बिट त्रुटियों के लिए सरल और कुशल है। Reed–Solomon जैसे अधिक जटिल कोड कई त्रुटियों को सुधार सकते हैं, लेकिन उनका ओवरहेड अधिक होता है। हैमिंग कम शोर वाले चैनलों के लिए आदर्श है।
// त्वरित संदर्भ
| Pos | bit | covered by |
|---|---|---|
| 1 | p1 | p1 |
| 2 | p2 | p2 |
| 3 | d1 | p1 p2 |
| 4 | p3 | p3 |
| 5 | d2 | p1 p3 |
| 6 | d3 | p2 p3 |
| 7 | d4 | p1 p2 p3 |
// हल किया गया उदाहरण
Data 1011 -> positions 3,5,6,7 = 1,0,1,1 p1 = d3^d5^d7 = 1^0^1 = 0 p2 = d3^d6^d7 = 1^1^1 = 1 p3 = d5^d6^d7 = 0^1^1 = 0 Codeword (pos 1..7) 0110011 Received 0110111 (bit 5 flipped) Syndrome s3 s2 s1 = 1 0 1 = 5 -> flip bit 5 -> 0110011 corrected
>> और प्रश्न
प्र: हैमिंग कोड में (7,4) का क्या अर्थ है?
उ: 4 डेटा बिट में 3 पैरिटी बिट जोड़कर 7-बिट कोडवर्ड बनता है। पैरिटी बिट 2 की घात वाले स्थानों (1, 2, 4) पर रहते हैं। न्यूनतम दूरी 3 है: 1 त्रुटि सुधारी जाती है, 2 त्रुटियाँ पकड़ी जाती हैं पर सुधारी नहीं जातीं।
प्र: सिंड्रोम त्रुटि का स्थान कैसे बताता है?
उ: हर पैरिटी बिट उन स्थानों को जाँचता है जिनकी संख्या में संबंधित बिट 1 है। तीनों परिणाम बाइनरी में गलत बिट का स्थान देते हैं (0 = कोई त्रुटि नहीं)। उदाहरण में 101 स्थान 5 बताता है।
प्र: एक्सटेंडेड हैमिंग (SECDED) क्या है?
उ: एक अतिरिक्त कुल-पैरिटी बिट (7,4) को (8,4) बना देता है: 1 त्रुटि सुधारता और 2 पकड़ता है। ECC मेमोरी यही सिद्धांत अपनाती है, आमतौर पर (72,64): 64 डेटा बिट पर 8 जाँच बिट।