त्रुटि संसूचन और सुधार

फ़ाइल: रीड-Solomon error correction Mona Lisa LroLrLasercomFig4.jpg|thumb|पृथ्वी के वायुमंडल (बाएं) द्वारा शुरू की गई संचरण त्रुटियों को साफ करने के लिए, गोडार्ड वैज्ञानिकों ने रीड-सोलोमन त्रुटि सुधार (दाएं) लागू किया, जो आमतौर पर सीडी और डीवीडी में उपयोग किया जाता है। विशिष्ट त्रुटियों में लापता पिक्सेल (सफेद) और झूठे संकेत (काला) शामिल हैं। सफेद पट्टी एक संक्षिप्त अवधि को इंगित करती है जब संचरण बाधित हुआ था।

कंप्यूटर विज्ञान और दूरसंचार में अनुप्रयोगों के साथ सूचना सिद्धांत और कोडिंग सिद्धांत में, त्रुटि का पता लगाने और सुधार (ईडीएसी) या त्रुटि नियंत्रण ऐसी तकनीकें हैं जो अविश्वसनीय संचार चैनलों पर डिजिटल डेटा की विश्वसनीयता (कंप्यूटर नेटवर्किंग) को सक्षम करती हैं। कई संचार चैनल चैनल शोर के अधीन हैं, और इस प्रकार स्रोत से रिसीवर तक संचरण के दौरान त्रुटियां पेश की जा सकती हैं। त्रुटि का पता लगाने की तकनीक ऐसी त्रुटियों का पता लगाने की अनुमति देती है, जबकि त्रुटि सुधार कई मामलों में मूल डेटा के पुनर्निर्माण को सक्षम बनाता है।

परिभाषाएं
त्रुटि का पता लगाना ट्रांसमीटर से रिसीवर तक संचरण के दौरान शोर या अन्य हानियों के कारण होने वाली त्रुटियों का पता लगाना है।

त्रुटि सुधार मूल, त्रुटि मुक्त डेटा के त्रुटियों का पता लगाने और पुनर्निर्माण है।

इतिहास
शास्त्रीय पुरातनता में, हिब्रू बाइबिल के प्रतिवादियों को उनके काम के लिए विक्षनरी की संख्या के अनुसार भुगतान किया गया था: स्टिच (कविता की पंक्तियां)। चूँकि बाइबल की गद्य पुस्तकें शायद ही कभी टाँके में लिखी जाती थीं, नकल करने वालों को, काम की मात्रा का अनुमान लगाने के लिए, अक्षरों को गिनना पड़ता था। इससे बाद की प्रतियों के उत्पादन के साथ पाठ के प्रसारण में सटीकता सुनिश्चित करने में भी मदद मिली। 7वीं और 10वीं शताब्दी के बीच एक मासोरेट्स ने पवित्र पाठ के सटीक पुनरुत्पादन को सुनिश्चित करने के लिए मासोरेटिक टेक्स्ट # न्यूमेरिकल मसोरा बनाने के लिए इसे औपचारिक और विस्तारित किया। इसमें एक पंक्ति, खंड, पुस्तक और पुस्तकों के समूहों में शब्दों की संख्या, एक पुस्तक के मध्य स्टिच को ध्यान में रखते हुए, शब्द उपयोग के आँकड़े और कमेंट्री शामिल थे। मानक ऐसे बन गए कि टोरा स्क्रॉल में एक भी अक्षर में विचलन को अस्वीकार्य माना जाता था। उनकी त्रुटि सुधार पद्धति की प्रभावशीलता को 1947-1956 में मृत सागर स्क्रॉल की खोज द्वारा प्रदर्शित सदियों के माध्यम से प्रतिलिपि बनाने की सटीकता से सत्यापित किया गया था, जो 150 ईसा पूर्व-75 सीई से डेटिंग है। त्रुटि सुधार कोड के आधुनिक विकास का श्रेय 1947 में रिचर्ड हैमिंग को दिया जाता है। हैमिंग कोड का विवरण | हैमिंग का कोड क्लाउड शैनन के ए मैथमैटिकल थ्योरी ऑफ कम्युनिकेशन में दिखाई दिया और मार्सेल जेई गोले द्वारा जल्दी से सामान्यीकृत किया गया था।

परिचय
सभी त्रुटि-पहचान और सुधार योजनाएं एक संदेश में कुछ अतिरेक (सूचना सिद्धांत) (यानी, कुछ अतिरिक्त डेटा) जोड़ती हैं, जिसका उपयोग रिसीवर वितरित संदेश की स्थिरता की जांच करने के लिए कर सकते हैं, और डेटा को पुनर्प्राप्त करने के लिए जो दूषित होने के लिए निर्धारित किया गया है। त्रुटि-पहचान और सुधार योजनाएं या तो व्यवस्थित कोड या गैर-व्यवस्थित हो सकती हैं। एक व्यवस्थित योजना में, ट्रांसमीटर मूल डेटा भेजता है, और एक निश्चित संख्या में चेक बिट्स (या समता डेटा) संलग्न करता है, जो कुछ नियतात्मक एल्गोरिथ्म द्वारा डेटा बिट्स से प्राप्त होते हैं। यदि केवल त्रुटि का पता लगाने की आवश्यकता है, तो एक रिसीवर केवल प्राप्त डेटा बिट्स पर समान एल्गोरिदम लागू कर सकता है और प्राप्त चेक बिट्स के साथ इसके आउटपुट की तुलना कर सकता है; यदि मान मेल नहीं खाते हैं, तो ट्रांसमिशन के दौरान किसी बिंदु पर एक त्रुटि हुई है। एक सिस्टम में जो एक गैर-व्यवस्थित कोड का उपयोग करता है, मूल संदेश एक एन्कोडेड संदेश में बदल जाता है जिसमें समान जानकारी होती है और इसमें मूल संदेश के रूप में कम से कम कई बिट्स होते हैं।

अच्छा त्रुटि नियंत्रण प्रदर्शन के लिए संचार चैनल की विशेषताओं के आधार पर योजना का चयन करने की आवश्यकता होती है। सामान्य चैनल मॉडल में मेमोरीलेस मॉडल शामिल होते हैं जहां त्रुटियां बेतरतीब ढंग से और एक निश्चित संभावना के साथ होती हैं, और गतिशील मॉडल जहां त्रुटियां मुख्य रूप से फट त्रुटि में होती हैं। नतीजतन, त्रुटि-पहचान और सुधार कोड को आम तौर पर यादृच्छिक-त्रुटि-पता लगाने/सुधारने और फट-त्रुटि-पहचान/सुधार के बीच प्रतिष्ठित किया जा सकता है। कुछ कोड यादृच्छिक त्रुटियों और बर्स्ट त्रुटियों के मिश्रण के लिए भी उपयुक्त हो सकते हैं।

यदि चैनल विशेषताओं को निर्धारित नहीं किया जा सकता है, या अत्यधिक परिवर्तनशील हैं, तो त्रुटि-पहचान योजना को गलत डेटा के पुन: प्रसारण के लिए सिस्टम के साथ जोड़ा जा सकता है। इसे ऑटोमेटिक रिपीट रिक्वेस्ट (एआरक्यू) के रूप में जाना जाता है, और इसका इंटरनेट में सबसे अधिक उपयोग किया जाता है। त्रुटि नियंत्रण के लिए एक वैकल्पिक दृष्टिकोण हाइब्रिड स्वचालित दोहराव अनुरोध (HARQ) है, जो ARQ और त्रुटि-सुधार कोडिंग का एक संयोजन है।

त्रुटि सुधार के प्रकार
त्रुटि सुधार के तीन प्रमुख प्रकार हैं।

स्वचालित दोहराने का अनुरोध
ऑटोमैटिक रिपीट रिक्वेस्ट (एआरक्यू) डेटा ट्रांसमिशन के लिए एक एरर कंट्रोल मेथड है जो विश्वसनीय डेटा ट्रांसमिशन प्राप्त करने के लिए एरर-डिटेक्शन कोड, पावती और / या नकारात्मक पावती संदेशों और टाइमआउट (कंप्यूटिंग) का उपयोग करता है। एक पावती एक संदेश है जो प्राप्तकर्ता द्वारा यह इंगित करने के लिए भेजा जाता है कि उसने सही ढंग से एक फ़्रेम (नेटवर्किंग) प्राप्त किया है।

आमतौर पर, जब ट्रांसमीटर को टाइमआउट होने से पहले पावती प्राप्त नहीं होती है (यानी, डेटा फ्रेम भेजने के बाद उचित समय के भीतर), यह फ्रेम को तब तक फिर से भेजता है जब तक कि यह सही ढंग से प्राप्त नहीं हो जाता है या त्रुटि पूर्व निर्धारित संख्या से परे बनी रहती है।.

तीन प्रकार के एआरक्यू प्रोटोकॉल स्टॉप-एंड-वेट एआरक्यू, गो-बैक-एन एआरक्यू और सेलेक्टिव रिपीट एआरक्यू हैं।

एआरक्यू उपयुक्त है यदि संचार चैनल में अलग-अलग या अज्ञात चैनल क्षमता है, जैसे कि इंटरनेट पर मामला है। हालांकि, एआरक्यू को एक बैकवर्ड चैनल की उपलब्धता की आवश्यकता होती है, जिसके परिणामस्वरूप संभावित रूप से रिट्रांसमिशन के कारण विलंबता (इंजीनियरिंग) बढ़ जाती है, और रीट्रांसमिशन के लिए बफर और टाइमर के रखरखाव की आवश्यकता होती है, जो नेटवर्क की भीड़ के मामले में सर्वर पर और समग्र रूप से दबाव डाल सकता है। नेटवर्क क्षमता। उदाहरण के लिए, एआरक्यू का उपयोग एआरक्यू-ई के रूप में शॉर्टवेव रेडियो डेटा लिंक पर किया जाता है, या एआरक्यू-एम के रूप में मल्टीप्लेक्सिंग के साथ जोड़ा जाता है।

अग्रेषित त्रुटि सुधार
फॉरवर्ड एरर करेक्शन (FEC) एक संदेश में रिडंडेंसी (सूचना सिद्धांत) जैसे त्रुटि-सुधार कोड (ECC) को जोड़ने की एक प्रक्रिया है ताकि इसे एक रिसीवर द्वारा पुनर्प्राप्त किया जा सके, भले ही कई त्रुटियां (क्षमता तक) कोड का उपयोग किया जा रहा है) या तो ट्रांसमिशन की प्रक्रिया के दौरान या स्टोरेज पर पेश किए जाते हैं। चूंकि रिसीवर को डेटा के पुन: प्रेषण के लिए प्रेषक से पूछने की आवश्यकता नहीं होती है, आगे त्रुटि सुधार में बैकचैनल की आवश्यकता नहीं होती है। त्रुटि-सुधार कोड का उपयोग भौतिक परत में किया जाता है | निचली परत संचार जैसे सेलुलर नेटवर्क, उच्च गति फाइबर-ऑप्टिक संचार और वाई-फाई, साथ ही फ्लैश मेमोरी, हार्ड डिस्क और ईसीसी मेमोरी जैसे मीडिया में विश्वसनीय भंडारण के लिए। त्रुटि-सुधार कोड आमतौर पर दृढ़ कोड और ब्लॉक कोड के बीच प्रतिष्ठित होते हैं:
 * कनवल्शनल कोड को बिट-बाय-बिट आधार पर प्रोसेस किया जाता है। वे हार्डवेयर में कार्यान्वयन के लिए विशेष रूप से उपयुक्त हैं, और Viterbi डिकोडर अधिकतम संभावना डिकोडिंग की अनुमति देता है।
 * ब्लॉक कोड को ब्लॉक (दूरसंचार) | ब्लॉक-दर-ब्लॉक आधार पर संसाधित किया जाता है। ब्लॉक कोड के शुरुआती उदाहरण दोहराव कोड, हैमिंग कोड और बहुआयामी समता-जांच कोड हैं। उनके बाद कई कुशल कोड थे, रीड-सोलोमन कोड उनके वर्तमान व्यापक उपयोग के कारण सबसे उल्लेखनीय हैं। टर्बो कोड और लो-डेंसिटी पैरिटी-चेक कोड (LDPC) अपेक्षाकृत नए निर्माण हैं जो लगभग :Category:Capacity-approaching codes प्रदान कर सकते हैं।

शैनन का प्रमेय आगे त्रुटि सुधार में एक महत्वपूर्ण प्रमेय है, और अधिकतम सूचना दर का वर्णन करता है जिस पर एक चैनल पर विश्वसनीय संचार संभव है जिसमें एक निश्चित त्रुटि संभावना या सिग्नल-टू-शोर अनुपात (एसएनआर) है। यह सख्त ऊपरी सीमा चैनल क्षमता के संदर्भ में व्यक्त की जाती है। अधिक विशेष रूप से, प्रमेय कहता है कि ऐसे कोड मौजूद हैं जैसे कि एन्कोडिंग लंबाई बढ़ने के साथ एक चैनल मॉडल पर त्रुटि की संभावना को मनमाने ढंग से छोटा बनाया जा सकता है, बशर्ते कि कोड दर चैनल क्षमता से छोटी हो। कोड दर को k स्रोत प्रतीकों और n एन्कोडेड प्रतीकों के अंश k/n के रूप में परिभाषित किया गया है।

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

हाइब्रिड योजनाएं
हाइब्रिड एआरक्यू एआरक्यू और फॉरवर्ड एरर करेक्शन का एक संयोजन है। दो बुनियादी दृष्टिकोण हैं: * संदेश हमेशा FEC समता डेटा (और त्रुटि-पहचान अतिरेक) के साथ प्रेषित होते हैं। एक रिसीवर समता जानकारी का उपयोग करके एक संदेश को डीकोड करता है, और एआरक्यू का उपयोग करके पुन: प्रेषण का अनुरोध करता है, यदि समता डेटा सफल डिकोडिंग के लिए पर्याप्त नहीं था (एक असफल अखंडता जांच के माध्यम से पहचाना गया)।
 * संदेश समता डेटा के बिना प्रसारित किए जाते हैं (केवल त्रुटि-पहचान जानकारी के साथ)। यदि कोई रिसीवर किसी त्रुटि का पता लगाता है, तो वह एआरक्यू का उपयोग करके ट्रांसमीटर से एफईसी जानकारी का अनुरोध करता है, और इसका उपयोग मूल संदेश के पुनर्निर्माण के लिए करता है।

फाउंटेन कोड का उपयोग करते समय बाद वाला दृष्टिकोण बाइनरी इरेज़र चैनल पर विशेष रूप से आकर्षक होता है।

एरर डिटेक्शन स्कीम्स
एक उपयुक्त हैश फ़ंक्शन (या विशेष रूप से, एक चेकसम, चक्रीय अतिरेक जाँच या अन्य एल्गोरिथम) का उपयोग करके त्रुटि का पता लगाना सबसे अधिक महसूस किया जाता है। एक हैश फ़ंक्शन एक संदेश में एक निश्चित-लंबाई वाला टैग जोड़ता है, जो रिसीवर को टैग की पुन: गणना करके और प्रदान किए गए संदेश के साथ तुलना करके वितरित संदेश को सत्यापित करने में सक्षम बनाता है।

विभिन्न हैश फ़ंक्शन डिज़ाइनों की एक विशाल विविधता मौजूद है। हालांकि, कुछ विशेष प्रकार की त्रुटियों का पता लगाने के लिए उनकी सादगी या उनकी उपयुक्तता के कारण विशेष रूप से व्यापक उपयोग के हैं (उदाहरण के लिए, बर्स्ट त्रुटियों का पता लगाने में चक्रीय अतिरेक जांच का प्रदर्शन)।

न्यूनतम दूरी कोडिंग
न्यूनतम दूरी कोडिंग के आधार पर एक यादृच्छिक-त्रुटि-सुधार कोड पता लगाने योग्य त्रुटियों की संख्या पर सख्त गारंटी प्रदान कर सकता है, लेकिन यह प्रीइमेज हमले के खिलाफ सुरक्षा नहीं कर सकता है।

दोहराव कोड
एक दोहराव कोड एक कोडिंग योजना है जो त्रुटि मुक्त संचार प्राप्त करने के लिए एक चैनल में बिट्स को दोहराती है। प्रेषित किए जाने वाले डेटा की एक धारा को देखते हुए, डेटा को बिट्स के ब्लॉक में विभाजित किया जाता है। प्रत्येक ब्लॉक को कुछ पूर्व निर्धारित संख्या में बार प्रेषित किया जाता है। उदाहरण के लिए, बिट पैटर्न 1011 भेजने के लिए, चार-बिट ब्लॉक को तीन बार दोहराया जा सकता है, इस प्रकार 1011 1011 1011 का उत्पादन होता है। यदि यह बारह-बिट पैटर्न 1010 1011 1011 के रूप में प्राप्त हुआ था - जहां पहला ब्लॉक अन्य दो के विपरीत है - एक त्रुटि हुई है।

एक दोहराव कोड बहुत अक्षम है, और यदि त्रुटि प्रत्येक समूह के लिए एक ही स्थान पर होती है (उदाहरण के लिए, पिछले उदाहरण में 1010 1010 1010 सही के रूप में पाया जाएगा) तो समस्याओं के लिए अतिसंवेदनशील हो सकता है। दोहराव कोड का लाभ यह है कि वे अत्यंत सरल हैं, और वास्तव में संख्या स्टेशनों के कुछ प्रसारणों में उपयोग किए जाते हैं।

समता बिट
एक समता बिट एक बिट है जिसे स्रोत बिट्स के समूह में जोड़ा जाता है ताकि यह सुनिश्चित हो सके कि परिणाम में सेट बिट्स (यानी, मान 1 के साथ बिट्स) की संख्या सम या विषम है। यह एक बहुत ही सरल योजना है जिसका उपयोग आउटपुट में त्रुटियों की एकल या किसी अन्य विषम संख्या (यानी, तीन, पांच, आदि) का पता लगाने के लिए किया जा सकता है। फ़्लिप किए गए बिट्स की एक सम संख्या समता बिट को सही दिखाएगी, भले ही डेटा गलत हो।

भेजे गए प्रत्येक शब्द में जोड़े गए समता बिट्स को अनुप्रस्थ अतिरेक जाँच कहा जाता है, जबकि शब्दों की एक धारा के अंत में जोड़े जाने वाले को अनुदैर्ध्य अतिरेक जाँच कहा जाता है। उदाहरण के लिए, यदि एम-बिट शब्दों की श्रृंखला में से प्रत्येक में एक समता बिट जोड़ा गया है, यह दर्शाता है कि उस शब्द में एक विषम या सम संख्या थी, तो उसमें एकल त्रुटि वाले किसी भी शब्द का पता लगाया जाएगा। हालांकि, यह पता नहीं चलेगा कि शब्द में त्रुटि कहां है। यदि, इसके अलावा, n शब्दों की प्रत्येक धारा के बाद एक समता राशि भेजी जाती है, जिनमें से प्रत्येक बिट यह दर्शाता है कि सबसे हाल के समूह में भेजी गई उस बिट-स्थिति में एक विषम या सम संख्या थी, तो त्रुटि की सटीक स्थिति निर्धारित किया जा सकता है और त्रुटि को ठीक किया जा सकता है। यह विधि केवल प्रभावी होने की गारंटी है, हालांकि, यदि n शब्दों के प्रत्येक समूह में 1 से अधिक त्रुटि नहीं है। अधिक त्रुटि सुधार बिट्स के साथ, अधिक त्रुटियों का पता लगाया जा सकता है और कुछ मामलों में ठीक किया जा सकता है।

अन्य बिट-ग्रुपिंग तकनीकें भी हैं।

चेकसम
एक संदेश का चेकसम एक निश्चित शब्द लंबाई (जैसे, बाइट मान) के संदेश कोड शब्दों का एक मॉड्यूलर अंकगणितीय योग है। अनजाने में सभी-शून्य संदेशों का पता लगाने के लिए ट्रांसमिशन से पहले ओन्स के पूरक | वाले-पूरक ऑपरेशन के माध्यम से योग को नकारा जा सकता है।

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

चक्रीय अतिरेक जाँच
एक चक्रीय अतिरेक जांच (सीआरसी) एक गैर-सुरक्षित हैश फ़ंक्शन है जिसे कंप्यूटर नेटवर्क में डिजिटल डेटा में आकस्मिक परिवर्तनों का पता लगाने के लिए डिज़ाइन किया गया है। यह दुर्भावनापूर्ण रूप से शुरू की गई त्रुटियों का पता लगाने के लिए उपयुक्त नहीं है। यह एक जनरेटर बहुपद के विनिर्देशन की विशेषता है, जिसका उपयोग एक परिमित क्षेत्र में बहुपद लंबे विभाजन में भाजक के रूप में किया जाता है, इनपुट डेटा को लाभांश के रूप में लेते हुए। शेष परिणाम बन जाता है।

CRC में ऐसे गुण होते हैं जो इसे बर्स्ट त्रुटियों का पता लगाने के लिए उपयुक्त बनाते हैं। सीआरसी हार्डवेयर में लागू करना विशेष रूप से आसान है और इसलिए आमतौर पर कंप्यूटर नेटवर्क और स्टोरेज डिवाइस जैसे हार्ड डिस्क ड्राइव में उपयोग किया जाता है।

समता बिट को विशेष-केस 1-बिट सीआरसी के रूप में देखा जा सकता है।

क्रिप्टोग्राफिक हैश फ़ंक्शन
क्रिप्टोग्राफिक हैश फ़ंक्शन का आउटपुट, जिसे संदेश डाइजेस्ट के रूप में भी जाना जाता है, डेटा अखंडता के बारे में मजबूत आश्वासन प्रदान कर सकता है, चाहे डेटा में परिवर्तन आकस्मिक हो (जैसे, ट्रांसमिशन त्रुटियों के कारण) या दुर्भावनापूर्ण रूप से पेश किया गया हो। डेटा में किसी भी संशोधन का पता बेमेल हैश मान के माध्यम से लगाया जाएगा। इसके अलावा, कुछ हैश मान दिए जाने पर, कुछ इनपुट डेटा (दिए गए एक के अलावा) को ढूंढना आम तौर पर संभव नहीं है जो समान हैश मान प्राप्त करेगा। यदि कोई हमलावर न केवल संदेश बल्कि हैश मान को भी बदल सकता है, तो अतिरिक्त सुरक्षा के लिए एक कुंजी हैश या संदेश प्रमाणीकरण कोड (मैक) का उपयोग किया जा सकता है। कुंजी को जाने बिना, हमलावर के लिए संशोधित संदेश के लिए सही कुंजी वाले हैश मान की आसानी से या आसानी से गणना करना संभव नहीं है।

त्रुटि सुधार कोड
किसी भी त्रुटि-सुधार कोड का उपयोग त्रुटि का पता लगाने के लिए किया जा सकता है। न्यूनतम हैमिंग दूरी वाला एक कोड, d, एक कोड वर्ड में d-1 त्रुटियों तक का पता लगा सकता है। त्रुटि का पता लगाने के लिए न्यूनतम-दूरी-आधारित त्रुटि-सुधार कोड का उपयोग करना उपयुक्त हो सकता है यदि त्रुटियों की न्यूनतम संख्या का पता लगाने की एक सख्त सीमा वांछित हो।

न्यूनतम हैमिंग दूरी d = 2 वाले कोड त्रुटि-सुधार करने वाले कोड के अपक्षयी मामले हैं, और एकल त्रुटियों का पता लगाने के लिए उपयोग किया जा सकता है। समता बिट एकल-त्रुटि-पहचान कोड का एक उदाहरण है।

अनुप्रयोग
कम विलंबता की आवश्यकता वाले एप्लिकेशन (जैसे टेलीफोन वार्तालाप) स्वचालित दोहराव अनुरोध (एआरक्यू) का उपयोग नहीं कर सकते हैं; उन्हें फॉरवर्ड एरर करेक्शन (FEC) का उपयोग करना चाहिए। जब तक एआरक्यू सिस्टम एक त्रुटि का पता लगाता है और उसे फिर से प्रसारित करता है, तब तक फिर से भेजा गया डेटा प्रयोग करने योग्य होने के लिए बहुत देर से पहुंचेगा।

ऐसे अनुप्रयोग जहां ट्रांसमीटर सूचना भेजते ही तुरंत भूल जाता है (जैसे कि अधिकांश टेलीविजन कैमरे) एआरक्यू का उपयोग नहीं कर सकते हैं; उन्हें FEC का उपयोग करना चाहिए क्योंकि जब कोई त्रुटि होती है, तो मूल डेटा अब उपलब्ध नहीं होता है।

एआरक्यू का उपयोग करने वाले अनुप्रयोगों में एक वापसी चैनल होना चाहिए; बिना रिटर्न चैनल वाले एप्लिकेशन एआरक्यू का उपयोग नहीं कर सकते हैं।

एफईसी के साथ अचूक त्रुटियों की संभावना के कारण जिन अनुप्रयोगों को बेहद कम त्रुटि दर (जैसे डिजिटल मनी ट्रांसफर) की आवश्यकता होती है, उन्हें एआरक्यू का उपयोग करना चाहिए।

विश्वसनीयता और निरीक्षण इंजीनियरिंग भी त्रुटि-सुधार कोड के सिद्धांत का उपयोग करते हैं।

इंटरनेट
एक विशिष्ट टीसीपी/आईपी स्टैक में, त्रुटि नियंत्रण कई स्तरों पर किया जाता है:
 * प्रत्येक ईथरनेट फ्रेम चक्रीय अतिरेक जांच का उपयोग करता है | CRC-32 त्रुटि का पता लगाने। पता की गई त्रुटियों वाले फ़्रेम को रिसीवर हार्डवेयर द्वारा त्याग दिया जाता है।
 * IPv4 हेडर में एक IPv4 हेडर चेकसम होता है जो हेडर की सामग्री की सुरक्षा करता है। गलत चेकसम वाले नेटवर्क पैकेट को नेटवर्क के भीतर या रिसीवर पर गिरा दिया जाता है।
 * नेटवर्क रूटिंग में प्रोसेसिंग लागत को कम करने के लिए चेकसम को IPv6 हेडर से हटा दिया गया था और क्योंकि वर्तमान लिंक लेयर तकनीक को पर्याप्त त्रुटि का पता लगाने के लिए माना जाता है (RFC 3819 भी देखें)।
 * उपयोगकर्ता डेटाग्राम प्रोटोकॉल में यूडीपी और आईपी हेडर में पेलोड और एड्रेसिंग जानकारी को कवर करने वाला एक वैकल्पिक चेकसम है। गलत चेकसम वाले पैकेट नेटवर्क स्टैक द्वारा त्याग दिए जाते हैं। चेकसम IPv4 के तहत वैकल्पिक है और IPv6 के तहत आवश्यक है। जब छोड़ा जाता है, तो यह माना जाता है कि डेटा-लिंक परत त्रुटि सुरक्षा का वांछित स्तर प्रदान करती है।
 * ट्रांसमिशन कंट्रोल प्रोटोकॉल टीसीपी और आईपी हेडर में पेलोड की सुरक्षा और जानकारी को संबोधित करने के लिए एक चेकसम प्रदान करता है। गलत चेकसम वाले पैकेट को नेटवर्क स्टैक द्वारा छोड़ दिया जाता है, और अंततः एआरक्यू का उपयोग करके या तो स्पष्ट रूप से (जैसे कि तीन-तरफा हैंडशेक के माध्यम से) या एक टाइमआउट (कंप्यूटिंग) के कारण परोक्ष रूप से पुनः प्रेषित किया जाता है।

डीप-स्पेस दूरसंचार
अंतर-ग्रहीय दूरी पर सिग्नल पावर के अत्यधिक कमजोर पड़ने और अंतरिक्ष जांच पर सीमित बिजली उपलब्धता के कारण त्रुटि-सुधार कोड का विकास गहरे अंतरिक्ष मिशन के इतिहास के साथ कसकर जोड़ा गया था। जबकि शुरुआती मिशनों ने अपने डेटा को बिना कोड के भेजा, 1968 से शुरू होकर, डिजिटल त्रुटि सुधार को (उप-इष्टतम रूप से डीकोडेड) कनवल्शनल कोड और रीड-मुलर कोड के रूप में लागू किया गया था। रीड-मुलर कोड उस शोर के अनुकूल था जो अंतरिक्ष यान के अधीन था (लगभग एक गाऊसी फ़ंक्शन से मेल खाता था), और इसे मेरिनर अंतरिक्ष यान के लिए लागू किया गया था और 1969 और 1977 के बीच मिशन पर इस्तेमाल किया गया था।

वोयाजर 1 और वोयाजर 2 मिशन, जो 1977 में शुरू हुए थे, को बृहस्पति और शनि से रंगीन इमेजिंग और वैज्ञानिक जानकारी देने के लिए डिज़ाइन किया गया था। इसके परिणामस्वरूप कोडिंग आवश्यकताओं में वृद्धि हुई, और इस प्रकार, अंतरिक्ष यान को (बेहतर रूप से विटरबी डिकोडर | विटरबी-डिकोडेड) कनवल्शनल कोड द्वारा समर्थित किया गया था जिसे बाहरी बाइनरी गोले कोड | गोले (24,12,8) कोड के साथ कोडित किया जा सकता था। वोयाजर 2 शिल्प ने अतिरिक्त रूप से रीड-सोलोमन कोड के कार्यान्वयन का समर्थन किया। संयोजित रीड-सोलोमन-विटरबी (आरएसवी) कोड ने बहुत शक्तिशाली त्रुटि सुधार के लिए अनुमति दी, और यूरेनस और नेपच्यून के लिए अंतरिक्ष यान की विस्तारित यात्रा को सक्षम किया। 1989 में ECC सिस्टम अपग्रेड के बाद, दोनों क्राफ्ट्स ने V2 RSV कोडिंग का इस्तेमाल किया।

स्पेस डेटा सिस्टम्स के लिए सलाहकार समिति वर्तमान में कम से कम वोयाजर 2 आरएसवी कोड के समान प्रदर्शन के साथ त्रुटि सुधार कोड के उपयोग की सिफारिश करती है। संयोजित कोड तेजी से अंतरिक्ष मिशन के पक्ष में गिर रहे हैं, और टर्बो कोड या एलडीपीसी कोड जैसे अधिक शक्तिशाली कोड द्वारा प्रतिस्थापित किए जाते हैं।

विभिन्न प्रकार के गहरे अंतरिक्ष और कक्षीय मिशन जो आयोजित किए जाते हैं, सुझाव देते हैं कि एक आकार-फिट-सभी त्रुटि सुधार प्रणाली खोजने की कोशिश करना एक सतत समस्या होगी। पृथ्वी के निकट के मिशनों के लिए, संचार चैनल में शोर (इलेक्ट्रॉनिक्स) की प्रकृति उससे भिन्न होती है, जो एक अंतरग्रहीय मिशन पर एक अंतरिक्ष यान अनुभव करता है। इसके अतिरिक्त, जैसे-जैसे एक अंतरिक्ष यान पृथ्वी से अपनी दूरी बढ़ाता है, शोर को ठीक करने की समस्या और अधिक कठिन हो जाती है।

उपग्रह प्रसारण
सैटेलाइट ट्रांसपोंडर बैंडविड्थ की मांग बढ़ती जा रही है, जो टेलीविजन (नए चैनल और हाई-डेफिनिशन टेलीविजन सहित) और आईपी डेटा देने की इच्छा से प्रेरित है। ट्रांसपोंडर उपलब्धता और बैंडविड्थ बाधाओं ने इस वृद्धि को सीमित कर दिया है। ट्रांसपोंडर क्षमता चयनित मॉड्यूलेशन योजना और एफईसी द्वारा खपत क्षमता के अनुपात द्वारा निर्धारित की जाती है।

डेटा संग्रहण
डेटा स्टोरेज मीडिया की विश्वसनीयता में सुधार के लिए त्रुटि का पता लगाने और सुधार कोड का उपयोग अक्सर किया जाता है। 1951 में पहले चुंबकीय टेप डेटा भंडारण पर एकल-बिट त्रुटियों का पता लगाने में सक्षम एक समता ट्रैक मौजूद था। समूह कोडित रिकॉर्डिंग टेप में उपयोग किया जाने वाला इष्टतम आयताकार कोड न केवल पता लगाता है बल्कि एकल-बिट त्रुटियों को भी ठीक करता है। कुछ फ़ाइल स्वरूपों, विशेष रूप से संग्रह स्वरूपों में भ्रष्टाचार और कटाव का पता लगाने के लिए एक चेकसम (अक्सर CRC32) शामिल होता है और दूषित डेटा के हिस्से को पुनर्प्राप्त करने के लिए अतिरेक या समता फ़ाइलों को नियोजित कर सकता है। क्रॉस-इंटरलीव्ड रीड-सोलोमन कोडिंग | स्क्रैच के कारण होने वाली त्रुटियों को ठीक करने के लिए कॉम्पैक्ट डिस्क में रीड-सोलोमन कोड का उपयोग किया जाता है।

आधुनिक हार्ड ड्राइव रीड-सोलोमन कोड का उपयोग सेक्टर रीड में छोटी त्रुटियों का पता लगाने और उन्हें ठीक करने के लिए करते हैं, और विफल क्षेत्रों से दूषित डेटा को पुनर्प्राप्त करने और उस डेटा को अतिरिक्त क्षेत्रों में संग्रहीत करने के लिए करते हैं। जब हार्ड ड्राइव पूरी तरह से विफल हो जाता है तो RAID सिस्टम डेटा को पुनर्प्राप्त करने के लिए विभिन्न प्रकार की त्रुटि सुधार तकनीकों का उपयोग करता है। ZFS या Btrfs जैसे फाइल सिस्टम, साथ ही कुछ RAID कार्यान्वयन, डेटा स्क्रबिंग और रिसिलवरिंग का समर्थन करते हैं, जो खराब ब्लॉकों का पता लगाने की अनुमति देता है और (उम्मीद है) उनके उपयोग से पहले पुनर्प्राप्त किया जाता है। पुनर्प्राप्त किए गए डेटा को ठीक उसी भौतिक स्थान पर फिर से लिखा जा सकता है, हार्डवेयर के एक ही टुकड़े पर कहीं और ब्लॉक करने के लिए, या डेटा को प्रतिस्थापन हार्डवेयर पर फिर से लिखा जा सकता है।

त्रुटि-सुधार स्मृति
डायनेमिक रैंडम-एक्सेस मेमोरी (DRAM) एरर-करेक्टिंग कोड पर भरोसा करके सॉफ्ट एरर के खिलाफ मजबूत सुरक्षा प्रदान कर सकती है। इस तरह की त्रुटि-सुधार स्मृति, जिसे ईसीसी या ईडीएसी-संरक्षित मेमोरी के रूप में जाना जाता है, विशेष रूप से मिशन-महत्वपूर्ण अनुप्रयोगों, जैसे वैज्ञानिक कंप्यूटिंग, वित्तीय, चिकित्सा, आदि के साथ-साथ अंतरिक्ष में बढ़ी हुई ब्रह्मांडीय किरण के कारण अलौकिक अनुप्रयोगों के लिए वांछनीय है।

त्रुटि-सुधार स्मृति नियंत्रक परंपरागत रूप से हैमिंग कोड का उपयोग करते हैं, हालांकि कुछ ट्रिपल मॉड्यूलर रिडंडेंसी का उपयोग करते हैं। त्रुटि सुधार कोड # इंटरलीविंग एक एकल ब्रह्मांडीय किरण के प्रभाव को वितरित करने की अनुमति देता है जो पड़ोसी बिट्स को अलग-अलग शब्दों से जोड़कर कई शब्दों में कई भौतिक रूप से पड़ोसी बिट्स को संभावित रूप से परेशान करता है। जब तक सिंगल-इवेंट अपसेट (एसईयू) एक्सेस के बीच किसी विशेष शब्द में एरर थ्रेशोल्ड (जैसे, सिंगल एरर) से अधिक नहीं है, तब तक इसे ठीक किया जा सकता है (जैसे, सिंगल-बिट एरर-करेक्टिंग कोड द्वारा), और एक त्रुटि मुक्त स्मृति प्रणाली का भ्रम बनाए रखा जा सकता है। ईसीसी मेमोरी के संचालन के लिए आवश्यक हार्डवेयर प्रदान करने वाली सुविधाओं के अलावा, ऑपरेटिंग सिस्टम में आमतौर पर संबंधित रिपोर्टिंग सुविधाएं होती हैं जिनका उपयोग सॉफ्ट त्रुटियों को पारदर्शी रूप से पुनर्प्राप्त होने पर सूचनाएं प्रदान करने के लिए किया जाता है। एक उदाहरण लिनक्स कर्नेल का EDAC सबसिस्टम (जिसे पहले ब्लूस्मोक के नाम से जाना जाता था) है, जो कंप्यूटर सिस्टम के अंदर त्रुटि-जांच-सक्षम घटकों से डेटा एकत्र करता है; ईसीसी मेमोरी से संबंधित घटनाओं को एकत्रित करने और वापस रिपोर्ट करने के अलावा, यह अन्य चेकसमिंग त्रुटियों का भी समर्थन करता है, जिनमें पारंपरिक पीसीआई पर पता चला है।  कुछ सिस्टम त्रुटियों को ठीक करने से पहले उन्हें ठीक करने के लिए मेमोरी स्क्रबिंग का भी समर्थन करता है।

यह भी देखें

 * बर्गर कोड
 * बर्स्ट एरर-करेक्टिंग कोड
 * ECC मेमोरी, एक प्रकार का कंप्यूटर डेटा स्टोरेज
 * लिंक अनुकूलन
 * हैश फ़ंक्शन की सूची
 * हैश फ़ंक्शन की सूची

अग्रिम पठन

 * SoftECC: A System for Software Memory Integrity Checking
 * A Tunable, Software-based DRAM Error Detection and Correction Library for HPC
 * Detection and Correction of Silent Data Corruption for Large-Scale High-Performance Computing
 * Detection and Correction of Silent Data Corruption for Large-Scale High-Performance Computing

बाहरी संबंध

 * The on-line textbook: Information Theory, Inference, and Learning Algorithms, by David J.C. MacKay, contains chapters on elementary error-correcting codes; on the theoretical limits of error-correction; and on the latest state-of-the-art error-correcting codes, including low-density parity-check codes, turbo codes, and fountain codes.
 * ECC Page - implementations of popular ECC encoding and decoding routines