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

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

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

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

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

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

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

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

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

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

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

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

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

उदाहरण के लिए, एआरक्यू का उपयोग एआरक्यू-ई के रूप में शॉर्टवेव रेडियो डेटा लिंक पर किया जाता है, या एआरक्यू-एम के रूप में मल्टीप्लेक्सिंग के साथ जोड़ा जाता है।

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

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

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

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

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

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

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

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

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

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

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

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

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

अन्य बिट-समूहीकरण तकनीकें भी हैं।

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

यह भी देखें

 * बर्गर कोड
 * बर्स्ट एरर-करेक्टिंग कोड
 * 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