त्रुटि सुधार कोड: Difference between revisions

From Vigyanwiki
Line 63: Line 63:
* इंटरलीविंग ईसीसी कोडेड डेटा प्रेषित ईसीसी कोड के सभी या कुछ गुणों को कम कर सकता है जब चैनल त्रुटियां टूटने में होती हैं। चूंकि, इस पद्धति की सीमाएँ हैं; यह नैरोबैंड डेटा पर सबसे अच्छा उपयोग किया जाता है।
* इंटरलीविंग ईसीसी कोडेड डेटा प्रेषित ईसीसी कोड के सभी या कुछ गुणों को कम कर सकता है जब चैनल त्रुटियां टूटने में होती हैं। चूंकि, इस पद्धति की सीमाएँ हैं; यह नैरोबैंड डेटा पर सबसे अच्छा उपयोग किया जाता है।


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


== ईसीसी के प्रकार ==
== ईसीसी के प्रकार ==
Line 75: Line 71:


[[File:BlockCont.png|right|upright=2.25|thumb|त्रुटि सुधार कोड का संक्षिप्त वर्गीकरण]]ईसीसी कोड की दो मुख्य श्रेणियां [[ब्लॉक कोड]] और दृढ़ कोड हैं।
[[File:BlockCont.png|right|upright=2.25|thumb|त्रुटि सुधार कोड का संक्षिप्त वर्गीकरण]]ईसीसी कोड की दो मुख्य श्रेणियां [[ब्लॉक कोड]] और दृढ़ कोड हैं।
* ब्लॉक कोड बिट्स या पूर्व निर्धारित आकार के प्रतीकों के निश्चित आकार के ब्लॉक (पैकेट) पर काम करते हैं। प्रैक्टिकल ब्लॉक कोड सामान्यतः बहुपद समय में उनकी ब्लॉक लंबाई में हार्ड-डीकोड किए जा सकते हैं।
* ब्लॉक कोड बिट्स के निश्चित आकार के ब्लॉक (पैकेट) या पूर्व निर्धारित आकार के प्रतीकों पर काम करते हैं। प्रायोगिक ब्लॉक कोड सामान्यतः बहुपद समय में उनकी ब्लॉक अवधि में हार्ड-डीकोड किए जा सकते हैं।
* संवादात्मक कोड मनमाना लंबाई के बिट या प्रतीक धाराओं पर काम करते हैं। वे अक्सर [[विटरबी एल्गोरिथ्म]] के साथ सॉफ्ट डीकोडेड होते हैं,चूँकि अन्य एल्गोरिदम कभी-कभी उपयोग किए जाते हैं। विटरबी डिसंकेतन असम्बद्ध रूप से इष्टतम डिसंकेतन दक्षता की अनुमति देता है, जो [[दृढ़ संहिता]] की बढ़ती बाधा लंबाई के साथ है, लेकिन [[घातीय समय]] बढ़ती जटिलता की कीमत पर। एक कनवल्शनल कोड जिसे टर्मिनेट किया जाता है, वह भी एक 'ब्लॉक कोड' होता है, जिसमें यह इनपुट डेटा के एक ब्लॉक को एनकोड करता है, लेकिन एक कन्वेन्शनल कोड का ब्लॉक आकार सामान्यतः मनमाना होता है, जबकि ब्लॉक कोड का एक निश्चित आकार होता है जो उनके बीजगणितीय विशेषताओं द्वारा निर्धारित होता है। कनवल्शनल कोड्स के टर्मिनेशन के प्रकारों में टेल-बाइटिंग और बिट-फ्लशिंग सम्मलित  हैं।
* संवादात्मक कोड मनचाही अवधी के बिट या प्रतीक धाराओं पर काम करते हैं। वे अक्सर [[विटरबी एल्गोरिथ्म]] के साथ सॉफ्ट डीकोडेड होते हैं, चूँकि अन्य एल्गोरिदम कभी-कभी उपयोग किए जाते हैं। विटरबी डिसंकेतन असम्बद्ध रूप से इष्टतम डिसंकेतन दक्षता की अनुमति देता है, जो [[दृढ़ संहिता]] की बढ़ती अवधी के साथ है, लेकिन [[घातीय समय]] बढ़ती जटिलता की कीमत पर एक संवलन कोड जिसे निलम्बित किया जाता है, वह भी एक 'ब्लॉक कोड' होता है, जिसमें यह इनपुट डेटा के एक ब्लॉक को एनकोड करता है, लेकिन एक संवलन कोड का ब्लॉक आकार सामान्यतः मनमाना होता है, जबकि ब्लॉक कोड का एक निश्चित आकार होता है जो उनके बीजगणितीय विशेषताओं द्वारा निर्धारित होता है। संवलन कोड्स के समाप्ति के प्रकारों में टेल-बाइटिंग और बिट-फ्लशिंग सम्मलित  हैं।
   
   
कई प्रकार के ब्लॉक कोड हैं; रीड-सोलोमन त्रुटि सुधार|रीड-सोलोमन संकेतन [[कॉम्पैक्ट डिस्क]], [[डीवीडी]] और हार्ड डिस्क ड्राइव#त्रुटि दर और हैंडलिंग में इसके व्यापक उपयोग के लिए उल्लेखनीय है। शास्त्रीय ब्लॉक कोड के अन्य उदाहरणों में गोले कोड (बहुविकल्पी), [[बीसीएच कोड]], बहुआयामी समानता-जांच कोड और [[हैमिंग कोड]] सम्मलित हैं।
कई प्रकार के ब्लॉक कोड हैं; कॉम्पैक्ट डिस्क, डीवीडी और हार्ड डिस्क ड्राइव में व्यापक उपयोग के लिए रीड-सोलोमन कोडिंग उल्लेखनीय है। शास्त्रीय ब्लॉक कोड के अन्य उदाहरणों में गोले, बीसीएच, बहुआयामी समता और हैमिंग कोड सम्मलित हैं।


हैमिंग ईसीसी का उपयोग सामान्यतः एनएएनडी फ्लैश मेमोरी त्रुटियों को ठीक करने के लिए किया जाता है।<ref>[http://www.eetasia.com/ART_8800575062_499486_AN_7549c493.HTM "Hamming codes for NAND flash memory devices"] {{Webarchive|url=https://web.archive.org/web/20160821122453/http://www.eetasia.com/ART_8800575062_499486_AN_7549c493.HTM |date=21 August 2016 }}. EE Times-Asia. Apparently based on [http://www.micron.com/~/media/Documents/Products/Technical%20Note/NAND%20Flash/tn2908_NAND_hamming_ECC_code.pdf "Micron Technical Note TN-29-08: Hamming Codes for NAND Flash Memory Devices"]. 2005. Both say: "The Hamming algorithm is an industry-accepted method for error detection and correction in many SLC NAND flash-based applications."</ref>
एनएएनडी फ्लैश मेमोरी त्रुटियों को ठीक करने के लिए सामान्यतः हैमिंग ईसीसी का उपयोग किया जाता है।<ref>[http://www.eetasia.com/ART_8800575062_499486_AN_7549c493.HTM "Hamming codes for NAND flash memory devices"] {{Webarchive|url=https://web.archive.org/web/20160821122453/http://www.eetasia.com/ART_8800575062_499486_AN_7549c493.HTM |date=21 August 2016 }}. EE Times-Asia. Apparently based on [http://www.micron.com/~/media/Documents/Products/Technical%20Note/NAND%20Flash/tn2908_NAND_hamming_ECC_code.pdf "Micron Technical Note TN-29-08: Hamming Codes for NAND Flash Memory Devices"]. 2005. Both say: "The Hamming algorithm is an industry-accepted method for error detection and correction in many SLC NAND flash-based applications."</ref> यह सिंगल-बिट एरर करेक्शन और 2-बिट एरर डिटेक्शन प्रदान करता है। हैमिंग कोड केवल अधिक विश्वसनीय [[एकल-स्तरीय सेल]] (एसएलसी) एनएएनडी के लिए उपयुक्त हैं। सघन बहु-स्तरीय सेल (एमएलसी) एनएएनडी बीसीएच या रीड-सोलोमन जैसे बहु-बिट सुधार ईसीसी का उपयोग कर सकता है।<ref name="spansion">{{cite web|url=http://www.spansion.com/Support/Application%20Notes/Types_of_ECC_Used_on_Flash_AN.pdf|title =फ्लैश मेमोरी पर किस प्रकार के ईसीसी का उपयोग किया जाना चाहिए?|publisher=Spansion|format=Application note|year=2011|quote=रीड-सोलोमन एल्गोरिदम और बीसीएच एल्गोरिदम दोनों एमएलसी नंद फ्लैश के लिए सामान्य ईसीसी विकल्प हैं। ... हैमिंग आधारित ब्लॉक कोड एसएलसी के लिए सबसे अधिक उपयोग किए जाने वाले ईसीसी हैं... रीड-सोलोमन और बीसीएच दोनों ही कई त्रुटियों को संभालने में सक्षम हैं और एमएलसी फ्लैश पर व्यापक रूप से उपयोग किए जाते हैं।}}</ref><ref>{{cite web|author=Jim Cooke|url=https://cushychicken.github.io/assets/cooke_inconvenient_truths.pdf |title=नंद फ्लैश मेमोरी के असुविधाजनक सत्य|date=August 2007|page=28|quote=एसएलसी के लिए, 1 की सुधार सीमा वाला कोड पर्याप्त है। t=4 आवश्यक ... MLC के लिए.}}</ref> एनओआर फ्लैश सामान्यतः किसी त्रुटि सुधार का उपयोग नहीं करता है।<ref name="spansion"/>
यह सिंगल-बिट एरर करेक्शन और 2-बिट एरर डिटेक्शन प्रदान करता है।
हैमिंग कोड केवल अधिक विश्वसनीय [[एकल-स्तरीय सेल]] (SLC) NAND के लिए उपयुक्त हैं।
सघन बहु-स्तरीय सेल (एमएलसी) एनएएनडी बीसीएच या रीड-सोलोमन जैसे बहु-बिट सुधार ईसीसी का उपयोग कर सकता है।<ref name="spansion">{{cite web|url=http://www.spansion.com/Support/Application%20Notes/Types_of_ECC_Used_on_Flash_AN.pdf|title =फ्लैश मेमोरी पर किस प्रकार के ईसीसी का उपयोग किया जाना चाहिए?|publisher=Spansion|format=Application note|year=2011|quote=रीड-सोलोमन एल्गोरिदम और बीसीएच एल्गोरिदम दोनों एमएलसी नंद फ्लैश के लिए सामान्य ईसीसी विकल्प हैं। ... हैमिंग आधारित ब्लॉक कोड एसएलसी के लिए सबसे अधिक उपयोग किए जाने वाले ईसीसी हैं... रीड-सोलोमन और बीसीएच दोनों ही कई त्रुटियों को संभालने में सक्षम हैं और एमएलसी फ्लैश पर व्यापक रूप से उपयोग किए जाते हैं।}}</ref><ref>{{cite web|author=Jim Cooke|url=https://cushychicken.github.io/assets/cooke_inconvenient_truths.pdf |title=नंद फ्लैश मेमोरी के असुविधाजनक सत्य|date=August 2007|page=28|quote=एसएलसी के लिए, 1 की सुधार सीमा वाला कोड पर्याप्त है। t=4 आवश्यक ... MLC के लिए.}}</ref> NOR Flash सामान्यतः किसी त्रुटि सुधार का उपयोग नहीं करता है।<ref name="spansion"/>


शास्त्रीय ब्लॉक कोड सामान्यतः हार्ड-डिसीजन एल्गोरिदम का उपयोग करके डिकोड किए जाते हैं,<ref>{{cite journal |author-last1=Baldi |author-first1=M. |author-last2=Chiaraluce |author-first2=F. |title=मल्टीमीडिया प्रसारण में बीसीएच और आरएस कोड के विश्वास प्रचार डिकोडिंग के लिए एक सरल योजना|journal=[[International Journal of Digital Multimedia Broadcasting]] |volume=2008 |pages=1–12 |date=2008 |doi=10.1155/2008/957846 |doi-access=free }}</ref> जिसका अर्थ है कि प्रत्येक इनपुट और आउटपुट सिग्नल के लिए एक कठिन निर्णय लिया जाता है चाहे वह एक या शून्य बिट के अनुरूप हो। इसके विपरीत, विटरबी, एमएपी या [[बीसीजेआर एल्गोरिदम]] जैसे सॉफ्ट-डिसीजन एल्गोरिदम का उपयोग करके कन्वेन्शनल कोड को सामान्यतः डिकोड किया जाता है, जो एनालॉग सिग्नल को प्रोसेस (विघटित) करता है, और जो हार्ड-डिसीजन डिसंकेतन की तुलना में बहुत अधिक त्रुटि-सुधार प्रदर्शन की अनुमति देता है।
शास्त्रीय ब्लॉक कोड सामान्यतः हार्ड-डिसीजन एल्गोरिदम का उपयोग करके डिकोड किए जाते हैं,<ref>{{cite journal |author-last1=Baldi |author-first1=M. |author-last2=Chiaraluce |author-first2=F. |title=मल्टीमीडिया प्रसारण में बीसीएच और आरएस कोड के विश्वास प्रचार डिकोडिंग के लिए एक सरल योजना|journal=[[International Journal of Digital Multimedia Broadcasting]] |volume=2008 |pages=1–12 |date=2008 |doi=10.1155/2008/957846 |doi-access=free }}</ref> जिसका अर्थ है कि प्रत्येक इनपुट और आउटपुट सिग्नल के लिए एक कठिन निर्णय लिया जाता है चाहे वह एक या शून्य बिट के अनुरूप हो। इसके विपरीत, विटरबी, एमएपी या [[बीसीजेआर एल्गोरिदम]] जैसे सॉफ्ट-डिसीजन एल्गोरिदम का उपयोग करके संवलन कोड को सामान्यतः डिकोड किया जाता है, जो एनालॉग सिग्नल को प्रोसेस (विघटित) करता है, और जो हार्ड-डिसीजन डिसंकेतन की तुलना में बहुत अधिक त्रुटि-सुधार प्रदर्शन की अनुमति देता है।


लगभग सभी शास्त्रीय ब्लॉक कोड [[परिमित क्षेत्र]]ों के बीजगणितीय गुणों को लागू करते हैं। इसलिए शास्त्रीय ब्लॉक कोड को अक्सर बीजगणितीय कोड कहा जाता है।
लगभग सभी शास्त्रीय ब्लॉक कोड [[परिमित क्षेत्र]]ों के बीजगणितीय गुणों को लागू करते हैं। इसलिए शास्त्रीय ब्लॉक कोड को अक्सर बीजगणितीय कोड कहा जाता है।
Line 111: Line 104:
==बेहतर प्रदर्शन के लिए जुड़े हुए ईसीसी कोड==
==बेहतर प्रदर्शन के लिए जुड़े हुए ईसीसी कोड==
{{Main|श्रृंखलाबद्ध त्रुटि सुधार कोड}}
{{Main|श्रृंखलाबद्ध त्रुटि सुधार कोड}}
क्लासिकल (बीजगणितीय) ब्लॉक कोड और कन्वेन्शनल कोड अक्सर समेकित संकेतन योजनाओं में संयुक्त होते हैं जिसमें एक छोटी बाधा-लंबाई विटरबी-डीकोडेड कनवल्शनल कोड अधिकांश काम करता है और एक ब्लॉक कोड (सामान्यतः रीड-सोलोमन) बड़े प्रतीक आकार और ब्लॉक लंबाई के साथ कनवल्शनल डिकोडर द्वारा की गई किसी भी त्रुटि को मिटा देता है। त्रुटि सुधार कोड के इस परिवार के साथ एकल पास डिसंकेतन बहुत कम त्रुटि दर प्राप्त कर सकता है, लेकिन लंबी दूरी की संचरण स्थितियों (जैसे गहरे स्थान) के लिए पुनरावृत्त डिसंकेतन की सिफारिश की जाती है।
क्लासिकल (बीजगणितीय) ब्लॉक कोड और संवलन कोड अक्सर समेकित संकेतन योजनाओं में संयुक्त होते हैं जिसमें एक छोटी बाधा-लंबाई विटरबी-डीकोडेड संवलन कोड अधिकांश काम करता है और एक ब्लॉक कोड (सामान्यतः रीड-सोलोमन) बड़े प्रतीक आकार और ब्लॉक लंबाई के साथ कनवल्शनल डिकोडर द्वारा की गई किसी भी त्रुटि को मिटा देता है। त्रुटि सुधार कोड के इस परिवार के साथ एकल पास डिसंकेतन बहुत कम त्रुटि दर प्राप्त कर सकता है, लेकिन लंबी दूरी की संचरण स्थितियों (जैसे गहरे स्थान) के लिए पुनरावृत्त डिसंकेतन की सिफारिश की जाती है।


कनेक्टेड कोड उपग्रह और गहरे अंतरिक्ष संचार में मानक अभ्यास रहे हैं क्योंकि वायेजर कार्यक्रम ने पहली बार यूरेनस के साथ 1986 की मुठभेड़ में तकनीक का उपयोग किया था। [[गैलीलियो (अंतरिक्ष यान)]] शिल्प ने असफल एंटीना होने के कारण बहुत उच्च त्रुटि दर स्थितियों की भरपाई के लिए पुनरावृत्त संघटित कोड का उपयोग किया।
कनेक्टेड कोड उपग्रह और गहरे अंतरिक्ष संचार में मानक अभ्यास रहे हैं क्योंकि वायेजर कार्यक्रम ने पहली बार यूरेनस के साथ 1986 की मुठभेड़ में तकनीक का उपयोग किया था। [[गैलीलियो (अंतरिक्ष यान)]] शिल्प ने असफल एंटीना होने के कारण बहुत उच्च त्रुटि दर स्थितियों की भरपाई के लिए पुनरावृत्त संघटित कोड का उपयोग किया।
Line 129: Line 122:
{{Main|
{{Main|
टर्बो कोड}}
टर्बो कोड}}
[[टर्बो कोड]] एक पुनरावर्तित सॉफ्ट-डिसंकेतन योजना है जो दो या दो से अधिक अपेक्षाकृत सरल कनवल्शनल कोड और एक इंटरलीवर को एक ब्लॉक कोड बनाने के लिए जोड़ती है जो शैनन सीमा के डेसिबल के एक अंश के भीतर प्रदर्शन कर सकता है। व्यावहारिक अनुप्रयोग के संदर्भ में एलडीपीसी कोड से पहले, वे अब समान प्रदर्शन प्रदान करते हैं।
[[टर्बो कोड]] एक पुनरावर्तित सॉफ्ट-डिसंकेतन योजना है जो दो या दो से अधिक अपेक्षाकृत सरल संवलन कोड और एक इंटरलीवर को एक ब्लॉक कोड बनाने के लिए जोड़ती है जो शैनन सीमा के डेसिबल के एक अंश के भीतर प्रदर्शन कर सकता है। व्यावहारिक अनुप्रयोग के संदर्भ में एलडीपीसी कोड से पहले, वे अब समान प्रदर्शन प्रदान करते हैं।


टर्बो संकेतन के शुरुआती व्यावसायिक अनुप्रयोगों में से एक [[CDMA2000]] (TIA IS-2000) डिजिटल सेलुलर तकनीक थी जिसे [[क्वालकॉम]] द्वारा विकसित किया गया था और [[वेरिज़ॉन वायरलेस]], [[स्प्रिंट नेक्सटल]] और अन्य वाहकों द्वारा बेचा गया था। इसका उपयोग CDMA2000 1x के विकास के लिए विशेष रूप से इंटरनेट एक्सेस, [[Evolution-Data Optimized]]|1xEV-DO (TIA IS-856) के लिए भी किया जाता है। 1x की तरह, EV-DO क्वालकॉम द्वारा विकसित किया गया था, और वेरिज़ोन वायरलेस, स्प्रिंट नेक्स्टल और अन्य वाहकों द्वारा बेचा जाता है (1xEV-DO के लिए वेरिज़ोन का मार्केटिंग नाम ब्रॉडबैंड एक्सेस है, स्प्रिंट के उपभोक्ता और 1xEV-DO के लिए व्यावसायिक मार्केटिंग नाम पावर विजन हैं और मोबाइल ब्रॉडबैंड, क्रमशः)।
टर्बो संकेतन के शुरुआती व्यावसायिक अनुप्रयोगों में से एक [[CDMA2000]] (TIA IS-2000) डिजिटल सेलुलर तकनीक थी जिसे [[क्वालकॉम]] द्वारा विकसित किया गया था और [[वेरिज़ॉन वायरलेस]], [[स्प्रिंट नेक्सटल]] और अन्य वाहकों द्वारा बेचा गया था। इसका उपयोग CDMA2000 1x के विकास के लिए विशेष रूप से इंटरनेट एक्सेस, [[Evolution-Data Optimized]]|1xEV-DO (TIA IS-856) के लिए भी किया जाता है। 1x की तरह, EV-DO क्वालकॉम द्वारा विकसित किया गया था, और वेरिज़ोन वायरलेस, स्प्रिंट नेक्स्टल और अन्य वाहकों द्वारा बेचा जाता है (1xEV-DO के लिए वेरिज़ोन का मार्केटिंग नाम ब्रॉडबैंड एक्सेस है, स्प्रिंट के उपभोक्ता और 1xEV-DO के लिए व्यावसायिक मार्केटिंग नाम पावर विजन हैं और मोबाइल ब्रॉडबैंड, क्रमशः)।

Revision as of 02:19, 10 January 2023

कम्प्यूटिंग, दूरसंचार, सूचना सिद्धांत और संकेतन सिद्धांत में, कभी-कभी त्रुटि सुधार कोड, (ईसीसी) का उपयोग अविश्वसनीय या मुखरसंचार चैनलों पर डेटा में त्रुटियों को नियंत्रित करने के लिए किया जाता है।[1][2] केंद्रीय विचार यह है कि प्रेषक ईसीसी के रूप में अनावश्यक जानकारी के साथ संदेश को कूटबद्ध करता है। अतिरेक रिसीवर को सीमित संख्या में त्रुटियों का पता लगाने की अनुमति देता है, जो संदेश में कहीं भी हो सकते हैं, और अक्सर इन त्रुटियों को बिना पुनर्प्रसारण के ठीक किया जा सकता है। अमेरिकी गणितज्ञ रिचर्ड हैमिंग ने 1940 के दशक में इस क्षेत्र का नेतृत्व किया और 1950 में पहली त्रुटि-सुधार कोड का आविष्कार किया: हैमिंग (7,4) कोड[2]

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

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

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

आगे त्रुटि सुधार

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

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

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

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

यह कैसे काम करता है

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

ईसीसी का एक सरल उदाहरण प्रत्येक डेटा बिट को 3 बार प्रसारित करना है, जिसे (3,1) पुनरावृत्ति कोड के रूप में जाना जाता है। एक रव चैनल के माध्यम से, एक रिसीवर आउटपुट के 8 संस्करण देख सकता है, नीचे दी गई तालिका देखें।

त्रिगुण प्राप्त हुआ के रूप में व्याख्या की
000 0 (त्रुटि-मुक्त)
001 0
010 0
100 0
111 1 (त्रुटि-मुक्त)
110 1
101 1
011 1

यह तीन नमूनों में से किसी एक में त्रुटि को बहुसंख्यक वोट या लोकतांत्रिक मतदान द्वारा ठीक करने की अनुमति देता है। इस ईसीसी की सुधार क्षमता है:

  • त्रुटि में 1 बिट ट्रिपलेट तक, या
  • ट्रिपलेट के 2 बिट तक विलोपित किये गए है (मामलों को तालिका में नहीं दिखाया गया है)।

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

त्रुटियों को कम करने के लिए औसत रव

ईसीसी को रव के औसत से काम करने के लिए कहा जा सकता है; चूंकि प्रत्येक डेटा बिट कई संचरित प्रतीकों को प्रभावित करता है, रव द्वारा कुछ प्रतीकों का सामान्यतः मूल उपयोगकर्ता डेटा को दूसरे से निकालने की अनुमति देता है, अनियंत्रित प्राप्त प्रतीक जो समान उपयोगकर्ता डेटा पर भी निर्भर करते हैं।

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

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

ईसीसी के प्रकार

त्रुटि सुधार कोड का संक्षिप्त वर्गीकरण

ईसीसी कोड की दो मुख्य श्रेणियां ब्लॉक कोड और दृढ़ कोड हैं।

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

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

एनएएनडी फ्लैश मेमोरी त्रुटियों को ठीक करने के लिए सामान्यतः हैमिंग ईसीसी का उपयोग किया जाता है।[5] यह सिंगल-बिट एरर करेक्शन और 2-बिट एरर डिटेक्शन प्रदान करता है। हैमिंग कोड केवल अधिक विश्वसनीय एकल-स्तरीय सेल (एसएलसी) एनएएनडी के लिए उपयुक्त हैं। सघन बहु-स्तरीय सेल (एमएलसी) एनएएनडी बीसीएच या रीड-सोलोमन जैसे बहु-बिट सुधार ईसीसी का उपयोग कर सकता है।[6][7] एनओआर फ्लैश सामान्यतः किसी त्रुटि सुधार का उपयोग नहीं करता है।[6]

शास्त्रीय ब्लॉक कोड सामान्यतः हार्ड-डिसीजन एल्गोरिदम का उपयोग करके डिकोड किए जाते हैं,[8] जिसका अर्थ है कि प्रत्येक इनपुट और आउटपुट सिग्नल के लिए एक कठिन निर्णय लिया जाता है चाहे वह एक या शून्य बिट के अनुरूप हो। इसके विपरीत, विटरबी, एमएपी या बीसीजेआर एल्गोरिदम जैसे सॉफ्ट-डिसीजन एल्गोरिदम का उपयोग करके संवलन कोड को सामान्यतः डिकोड किया जाता है, जो एनालॉग सिग्नल को प्रोसेस (विघटित) करता है, और जो हार्ड-डिसीजन डिसंकेतन की तुलना में बहुत अधिक त्रुटि-सुधार प्रदर्शन की अनुमति देता है।

लगभग सभी शास्त्रीय ब्लॉक कोड परिमित क्षेत्रों के बीजगणितीय गुणों को लागू करते हैं। इसलिए शास्त्रीय ब्लॉक कोड को अक्सर बीजगणितीय कोड कहा जाता है।

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

अधिकांश आगे त्रुटि सुधार कोड केवल बिट-फ्लिप को सही करते हैं, लेकिन बिट-इंसर्शन या बिट-डिलीशन को नहीं। इस सेटिंग में, बिट त्रुटि दर को मापने के लिए हैमिंग दूरी उपयुक्त तरीका है। मार्कर कोड और वॉटरमार्क कोड जैसे बिट-प्रविष्टि और बिट-विलोपन को ठीक करने के लिए कुछ अग्रेषित त्रुटि सुधार कोड डिज़ाइन किए गए हैं। ऐसे कोड का उपयोग करते समय बिट त्रुटि दर को मापने के लिए लेवेनशेटिन दूरी एक अधिक उपयुक्त तरीका है। [9]

कोड-दर और विश्वसनीयता और डेटा दर के बीच तालमेल

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

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

एक दिलचस्प सवाल निम्नलिखित है: सूचना हस्तांतरण के मामले में एक ईसीसी कितना कुशल हो सकता है जिसमें नगण्य डिसंकेतन त्रुटि दर हो? इस प्रश्न का उत्तर क्लॉड शैनन ने अपने दूसरे प्रमेय के साथ दिया, जो कहता है कि चैनल क्षमता किसी भी ईसीसी द्वारा प्राप्त की जाने वाली अधिकतम बिट दर है जिसकी त्रुटि दर शून्य हो जाती है:[11] उनका प्रमाण गाऊसी यादृच्छिक संकेतन पर निर्भर करता है, जो वास्तविक दुनिया के अनुप्रयोगों के लिए उपयुक्त नहीं है। शैनन के काम द्वारा दी गई ऊपरी सीमा ने ईसीसी को डिजाइन करने में लंबी यात्रा को प्रेरित किया जो अंतिम प्रदर्शन सीमा के करीब आ सकता है। विभिन्न कोड आज लगभग शैनन सीमा प्राप्त कर सकते हैं।चूँकि, ईसीसी हासिल करने की क्षमता सामान्यतः लागू करने के लिए बेहद जटिल होती है।

सबसे लोकप्रिय ईसीसी में प्रदर्शन और कम्प्यूटेशनल जटिलता के बीच एक समझौता है। सामान्यतः, उनके पैरामीटर संभावित कोड दरों की एक श्रृंखला देते हैं, जिन्हें परिदृश्य के आधार पर अनुकूलित किया जा सकता है। सामान्यतः, यह अनुकूलन डेटा दर पर प्रभाव को कम करते हुए कम डिसंकेतन त्रुटि संभावना प्राप्त करने के लिए किया जाता है। कोड दर के अनुकूलन के लिए एक अन्य मानदंड संचार की ऊर्जा लागत के क्रम में कम त्रुटि दर और पुन: प्रसारण संख्या को संतुलित करना है।[12]


बेहतर प्रदर्शन के लिए जुड़े हुए ईसीसी कोड

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

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

लो-डेंसिटी पैरिटी-चेक (LDPC)

कम-घनत्व समता-चेक कोड | लो-डेंसिटी पैरिटी-चेक (LDPC) कोड अत्यधिक कुशल रैखिक ब्लॉक का एक वर्ग है कई एकल समानता जांच (एसपीसी) कोड से बने कोड। वे अपनी ब्लॉक लंबाई के संदर्भ में रैखिक समय जटिलता पर पुनरावृत्त नरम-निर्णय डिसंकेतन दृष्टिकोण का उपयोग करके शैनन सीमा (सैद्धांतिक अधिकतम) के बहुत करीब प्रदर्शन प्रदान कर सकते हैं। व्यावहारिक कार्यान्वयन समानांतर में घटक SPC कोड को डिकोड करने पर बहुत अधिक निर्भर करता है।

एलडीपीसी कोड सबसे पहले 1960 में रॉबर्ट जी. गैलागर ने अपनी पीएचडी थीसिस में पेश किए थे, लेकिन एनकोडर और डिकोडर को लागू करने और रीड-सोलोमन कोड की शुरूआत में कम्प्यूटेशनल प्रयास के कारण, 1990 के दशक तक उन्हें ज्यादातर नजरअंदाज किया गया था।

LDPC कोड अब हाल के कई हाई-स्पीड संचार मानकों में उपयोग किए जाते हैं, जैसे DVB-S2 (डिजिटल वीडियो ब्रॉडकास्टिंग - सैटेलाइट - सेकेंड जेनरेशन), WiMAX (माइक्रोवेव संचार के लिए IEEE 802.16e मानक), हाई-स्पीड वायरलेस LAN (IEEE 802.11n) ),[13] 802.3an#10GBASE-T|10GBase-T ईथरनेट (802.3an) और G.hn|G.hn/G.9960 (बिजली लाइनों, फोन लाइनों और समाक्षीय केबल पर नेटवर्किंग के लिए ITU-T मानक)। अन्य LDPC कोड 3GPP MBMS के भीतर वायरलेस संचार मानकों के लिए मानकीकृत हैं (मानकों में फाउंटेन कोड#फाउंटेन कोड देखें)।

टर्बो कोड

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

टर्बो संकेतन के शुरुआती व्यावसायिक अनुप्रयोगों में से एक CDMA2000 (TIA IS-2000) डिजिटल सेलुलर तकनीक थी जिसे क्वालकॉम द्वारा विकसित किया गया था और वेरिज़ॉन वायरलेस, स्प्रिंट नेक्सटल और अन्य वाहकों द्वारा बेचा गया था। इसका उपयोग CDMA2000 1x के विकास के लिए विशेष रूप से इंटरनेट एक्सेस, Evolution-Data Optimized|1xEV-DO (TIA IS-856) के लिए भी किया जाता है। 1x की तरह, EV-DO क्वालकॉम द्वारा विकसित किया गया था, और वेरिज़ोन वायरलेस, स्प्रिंट नेक्स्टल और अन्य वाहकों द्वारा बेचा जाता है (1xEV-DO के लिए वेरिज़ोन का मार्केटिंग नाम ब्रॉडबैंड एक्सेस है, स्प्रिंट के उपभोक्ता और 1xEV-DO के लिए व्यावसायिक मार्केटिंग नाम पावर विजन हैं और मोबाइल ब्रॉडबैंड, क्रमशः)।

स्थानीय डिसंकेतन और कोड का परीक्षण

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

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

इंटरलीविंग

इंटरलीविंग विचार का एक छोटा उदाहरण

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

आधुनिक पुनरावृत्त कोड का विश्लेषण, जैसे टर्बो कोड और एलडीपीसी कोड, सामान्यतः त्रुटियों का एक स्वतंत्र वितरण मानते हैं।[15] एलडीपीसी कोड का उपयोग करने वाले सिस्टम सामान्यतः कोड वर्ड के भीतर प्रतीकों में अतिरिक्त इंटरलीविंग को नियोजित करते हैं।[16] टर्बो कोड के लिए, एक इंटरलीवर एक अभिन्न अंग है और अच्छे प्रदर्शन के लिए इसका उचित डिज़ाइन महत्वपूर्ण है।[14][17] पुनरावृत्त डिसंकेतन एल्गोरिथ्म सबसे अच्छा काम करता है जब डिकोडर का प्रतिनिधित्व करने वाले कारक ग्राफ में छोटे चक्र नहीं होते हैं; छोटे चक्रों से बचने के लिए इंटरलीवर को चुना जाता है।

इंटरलीवर डिज़ाइन में सम्मलित हैं:

  • आयताकार (या एकसमान) इंटरलीवर्स (ऊपर वर्णित स्किप कारकों का उपयोग करने वाली विधि के समान)
  • दृढ़ इंटरलीवर
  • यादृच्छिक इंटरलीवर (जहां इंटरलीवर एक ज्ञात यादृच्छिक क्रमपरिवर्तन है)
  • एस-यादृच्छिक इंटरलीवर (जहां इंटरलीवर एक ज्ञात यादृच्छिक क्रमपरिवर्तन है जिसमें बाधा है कि दूरी एस के भीतर कोई इनपुट प्रतीक आउटपुट में एस की दूरी के भीतर दिखाई नहीं देता है)।[18]
  • एक विवाद-मुक्त द्विघात क्रमचय बहुपद (QPP)।[19] उपयोग का एक उदाहरण 3GPP लॉन्ग टर्म इवोल्यूशन मोबाइल दूरसंचार मानक में है।[20]

मल्टी-वाहक संकेत कम्युनिकेशन सिस्टम में, फ्रीक्वेंसी विविधता योजना प्रदान करने के लिए कैरियर्स के बीच इंटरलीविंग को नियोजित किया जा सकता है, उदाहरण के लिए, आवृत्ति-चयनात्मक लुप्त होती या नैरोबैंड इंटरफेरेंस को कम करने के लिए।[21]


उदाहरण

बिना इंटरलीविंग के ट्रांसमिशन:

त्रुटि रहित संदेश: aaaabbbbccccddddeeeeffffgggg प्रस्फोट त्रुटि के साथ संचरण: aaaabbbbccc____deeeeffffgggg

यहां, एक ही अक्षर का प्रत्येक समूह 4-बिट एक-बिट त्रुटि-सुधार कोडवर्ड का प्रतिनिधित्व करता है। कोडवर्ड cccc को एक बिट में बदल दिया जाता है, और इसे ठीक किया जा सकता है, लेकिन कोडवर्ड dddd को तीन बिट में बदल दिया जाता है, इसलिए या तो इसे डीकोड नहीं किया जा सकता है, या इसे गलत तरीके से डीकोड किया जा सकता है।

इंटरलीविंग के साथ:

त्रुटि रहित कूट शब्द: aaaabbbbccccddddeeeeffffgggg

इंटरलीव्ड: abcdefgabcdefgabcdefgabcdefg

फट त्रुटि के साथ संचरण: abcdefgabcd____bcdefgabcdefg

डीइंटरलीविंग के बाद प्राप्त कोड शब्द: aa_abbbbccccdddde_eef_ffg_gg

प्रत्येक कोडवर्ड में aaaa, eeee, ffff, औरgggg, में केवल एक बिट को बदला जाता है, इसलिए एक-बिट त्रुटि-सुधार कोड सब कुछ सही ढंग से डिकोड करेगा।

बिना इंटरलीविंग के ट्रांसमिशन:

मूल प्रेषित वाक्य: यह इंटरलीविंग का एक उदाहरण है

प्रस्फोट त्रुटि के साथ वाक्य प्राप्त हुआ: यह ______पल ऑफ इंटरलीविंग है

शब्द एक " अधिकांशतः समझ से बाहर और सही करने के अस्पष्ट रूप से मुश्किल होता है।

इंटरलीविंग के साथ:

प्रेषित वाक्य: यह इंटरलीविंग का एक उदाहरण है...

त्रुटि रहित संचरण: TIEpfeaghsxlIrv.iAaenli.snmOten.

प्रस्फोट त्रुटि के साथ वाक्य प्राप्त हुआ: TIEpfe______Irv.iAaenli.snmOten.

डिंटरलीविंग के बाद वाक्य प्राप्त हुआ: T_isI_AnE_amp_eOfInterle_vin_...

कोई भी शब्द पूरी तरह से लुप्त नहीं हुआ है, और विलुप्त अक्षरों को न्यूनतम अनुमान के साथ पुनः प्राप्त किया जा सकता है।

इंटरलीविंग के नुकसान

इंटरलीविंग तकनीकों का उपयोग कुल विलंब को बढ़ाता है। ऐसा इसलिए है, क्योंकि पैकेट को डिकोड किए जाने से पहले पूरे इंटरलीव्ड ब्लॉक को प्राप्त किया जाना चाहिए।[22] साथ ही इंटरलीवर त्रुटियों की संरचना को छिपाते हैं; एक इंटरलीवर के बिना, अधिक उन्नत डिकोडिंग एल्गोरिदम त्रुटि संरचना का लाभ उठा सकते हैं और एक इंटरलीवर के साथ संयुक्त सरल डिकोडर की तुलना में अधिक विश्वसनीय संचार प्राप्त कर सकते हैं[citation needed].ऐसे एल्गोरिदम का एक उदाहरण तंत्रिका नेटवर्क[23] संरचनाओं पर आधारित है।

त्रुटि-सुधार कोड के लिए सॉफ्टवेयर

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

इस संदर्भ में, विभिन्न उपलब्ध खुले स्रोत सॉफ़्टवेयर नीचे सूचीबद्ध हैं (गैर संपूर्ण)।

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

त्रुटि-सुधार कोड की सूची

दूरी कोड
2 (एकल त्रुटि का पता लगाने) समानता
3 (एकल-त्रुटि सुधार) ट्रिपल मॉड्यूलर अतिरेक
3 (एकल-त्रुटि सुधार) सही हैमिंग जैसे हैमिंग (7,4)
4 (सेकंडेड) विस्तारित हैमिंग
5 (दोहरी त्रुटि सुधार)
6 (डबल-त्रुटि सही-/ट्रिपल त्रुटि डिटेक्ट) नॉर्डस्ट्रॉम-रॉबिन्सन कोड
7 (तीन-त्रुटि सुधार) सही बाइनरी गोलय कोड
8 (टीईसीएफईडी) विस्तारित बाइनरी गोलय कोड
  • एएन कोड
  • बीसीएच कोड, जिसे प्रति कोड ब्लॉक किसी भी मनमानी संख्या में त्रुटियों को ठीक करने के लिए डिज़ाइन किया जा सकता है।
  • रडार, टेलीमेट्री, अल्ट्रा साउंड, वाईफाई, डीएसएसएस मोबाइल फोन नेटवर्क, जीपीएस आदि के लिए इस्तेमाल किया जाने वाला बार्कर कोड
  • बर्जर कोड
  • नियत भार कोड
  • संवलनात्मक कोड
  • प्रसारक कोड
  • समूह कोड
  • गोलय कोड, जिनमें से बाइनरी गोलय कोड व्यावहारिक रुचि का है
  • मैकएलीस क्रिप्टोसिस्टम में इस्तेमाल किया जाने वाला गोप्पा कोड
  • हैडमार्ड कोड
  • हैगलबर्गर कोड
  • हैमिंग कोड
  • गैर-श्वेत शोर के लिए लैटिन वर्ग आधारित कोड (उदाहरण के लिए पावरलाइन पर ब्रॉडबैंड में प्रचलित)
  • लेक्सिकोग्राफिक कोड
  • रैखिक नेटवर्क संकेतन, बिंदु से बिंदु लिंक के बजाय पूरे नेटवर्क में एक प्रकार का मिटाने वाला कोड
  • लंबा कोड
  • कम-घनत्व समता-चेक कोड, जिसे गैलेजर कोड के रूप में भी जाना जाता है, विरल ग्राफ कोड के लिए मूलरूप के रूप में
  • एलटी कोड, जो लगभग इष्टतम रेटलेस इरेज़र करेक्टिंग कोड (फाउंटेन कोड) है
  • एन कोड का एम
  • नॉर्डस्ट्रॉम-रॉबिन्सन कोड, ज्यामिति और समूह सिद्धांत में प्रयुक्त[24]
  • ऑनलाइन कोड, एक निकट-इष्टतम रेटलेस इरेज़र करेक्टिंग कोड
  • ध्रुवीय कोड (संकेतन सिद्धांत)
  • रैप्टर कोड, एक निकट-इष्टतम फाउंटेन कोड
  • रीड-सोलोमन त्रुटि सुधार
  • रीड-मुलर कोड
  • दोहराएँ-संचय कोड
  • पुनरावृत्ति कोड, जैसे ट्रिपल मॉड्यूलर अतिरेक
  • स्पाइनल कोड, छद्म-यादृच्छिक हैश फ़ंक्शंस पर आधारित एक रेटलेस, नॉनलाइनियर कोड[25]
  • बवंडर कोड, एक निकट-इष्टतम विलोपन कोड, और फाउंटेन कोड का अग्रदूत
  • टर्बो कोड
  • वॉल्श-हैडमार्ड कोड
  • चक्रीय अतिरेक जाँच (सीआरसी) संदेशों के लिए अधिक से अधिक 1-बिट त्रुटियों को ठीक कर सकते हैं डिग्री के इष्टतम जनरेटर बहुपदों के लिए बिट लंबा , चक्रीय अतिरेक जाँच #बिटफ़िल्टर का गणित देखें

यह भी देखें

संदर्भ

  1. Glover, Neal; Dudley, Trent (1990). इंजीनियरों के लिए व्यावहारिक त्रुटि सुधार डिजाइन (Revision 1.1, 2nd ed.). CO, USA: Cirrus Logic. ISBN 0-927239-00-0.
  2. 2.0 2.1 Hamming, Richard Wesley (April 1950). "त्रुटि का पता लगाने और कोड को ठीक करने में त्रुटि". Bell System Technical Journal. USA: AT&T. 29 (2): 147–160. doi:10.1002/j.1538-7305.1950.tb00463.x. S2CID 61141773.
  3. 3.0 3.1 3.2 Maunder, Robert (2016). "चैनल कोडिंग का अवलोकन".
  4. Charles Wang; Dean Sklar; Diana Johnson (Winter 2001–2002). "फॉरवर्ड एरर-करेक्शन कोडिंग". Crosslink. The Aerospace Corporation. 3 (1). Archived from the original on 14 March 2012. Retrieved 5 March 2006. त्रुटि सुधार कोड कैसे काम करते हैं {{cite journal}}: External link in |quote= (help)
  5. "Hamming codes for NAND flash memory devices" Archived 21 August 2016 at the Wayback Machine. EE Times-Asia. Apparently based on "Micron Technical Note TN-29-08: Hamming Codes for NAND Flash Memory Devices". 2005. Both say: "The Hamming algorithm is an industry-accepted method for error detection and correction in many SLC NAND flash-based applications."
  6. 6.0 6.1 "फ्लैश मेमोरी पर किस प्रकार के ईसीसी का उपयोग किया जाना चाहिए?" (Application note). Spansion. 2011. रीड-सोलोमन एल्गोरिदम और बीसीएच एल्गोरिदम दोनों एमएलसी नंद फ्लैश के लिए सामान्य ईसीसी विकल्प हैं। ... हैमिंग आधारित ब्लॉक कोड एसएलसी के लिए सबसे अधिक उपयोग किए जाने वाले ईसीसी हैं... रीड-सोलोमन और बीसीएच दोनों ही कई त्रुटियों को संभालने में सक्षम हैं और एमएलसी फ्लैश पर व्यापक रूप से उपयोग किए जाते हैं।
  7. Jim Cooke (August 2007). "नंद फ्लैश मेमोरी के असुविधाजनक सत्य" (PDF). p. 28. एसएलसी के लिए, 1 की सुधार सीमा वाला कोड पर्याप्त है। t=4 आवश्यक ... MLC के लिए.
  8. Baldi, M.; Chiaraluce, F. (2008). "मल्टीमीडिया प्रसारण में बीसीएच और आरएस कोड के विश्वास प्रचार डिकोडिंग के लिए एक सरल योजना". International Journal of Digital Multimedia Broadcasting. 2008: 1–12. doi:10.1155/2008/957846.
  9. Shah, Gaurav; Molina, Andres; Blaze, Matt (2006). "कीबोर्ड और गुप्त चैनल". USENIX. Retrieved 20 December 2018.
  10. Tse, David; Viswanath, Pramod (2005), Fundamentals of Wireless Communication, Cambridge University Press, UK
  11. Shannon, C. E. (1948). "संचार का एक गणितीय सिद्धांत" (PDF). Bell System Technical Journal. 27 (3–4): 379–423 & 623–656. doi:10.1002/j.1538-7305.1948.tb01338.x. hdl:11858/00-001M-0000-002C-4314-2.
  12. Rosas, F.; Brante, G.; Souza, R. D.; Oberli, C. (2014). "ऊर्जा-कुशल वायरलेस संचार प्राप्त करने के लिए कोड दर का अनुकूलन". Proceedings of the IEEE Wireless Communications and Networking Conference (WCNC). pp. 775–780. doi:10.1109/WCNC.2014.6952166. ISBN 978-1-4799-3083-8.
  13. IEEE Standard, section 20.3.11.6 "802.11n-2009" Archived 3 February 2013 at the Wayback Machine, IEEE, 29 October 2009, accessed 21 March 2011.
  14. 14.0 14.1 Vucetic, B.; Yuan, J. (2000). टर्बो कोड: सिद्धांत और अनुप्रयोग. Springer Verlag. ISBN 978-0-7923-7868-6.
  15. Luby, Michael; Mitzenmacher, M.; Shokrollahi, A.; Spielman, D.; Stemann, V. (1997). "प्रैक्टिकल लॉस-रेसिलिएंट कोड". Proc. 29th Annual Association for Computing Machinery (ACM) Symposium on Theory of Computation.
  16. "डिजिटल वीडियो प्रसारण (डीवीबी); ब्रॉडकास्टिंग, इंटरएक्टिव सर्विसेज, न्यूज गैदरिंग और अन्य सैटेलाइट ब्रॉडबैंड एप्लिकेशन (DVB-S2) के लिए दूसरी पीढ़ी की फ्रेमिंग संरचना, चैनल कोडिंग और मॉड्यूलेशन सिस्टम". En 302 307. ETSI (V1.2.1). April 2009.
  17. Andrews, K. S.; Divsalar, D.; Dolinar, S.; Hamkins, J.; Jones, C. R.; Pollara, F. (November 2007). "डीप-स्पेस एप्लिकेशन के लिए टर्बो और एलडीपीसी कोड का विकास". Proceedings of the IEEE. 95 (11): 2142–2156. doi:10.1109/JPROC.2007.905132. S2CID 9289140.
  18. Dolinar, S.; Divsalar, D. (15 August 1995). "यादृच्छिक और गैर-यादृच्छिक क्रमपरिवर्तन का उपयोग करके टर्बो कोड के लिए भार वितरण". TDA Progress Report. 122: 42–122. Bibcode:1995TDAPR.122...56D. CiteSeerX 10.1.1.105.6640.
  19. Takeshita, Oscar (2006). "क्रमपरिवर्तन बहुपद इंटरलीवर्स: एक बीजगणितीय-ज्यामितीय परिप्रेक्ष्य". IEEE Transactions on Information Theory. 53 (6): 2116–2132. arXiv:cs/0601048. Bibcode:2006cs........1048T. doi:10.1109/TIT.2007.896870. S2CID 660.
  20. 3GPP TS 36.212, version 8.8.0, page 14
  21. "डिजिटल वीडियो प्रसारण (डीवीबी); दूसरी पीढ़ी के डिजिटल स्थलीय टेलीविजन प्रसारण प्रणाली (DVB-T2) के लिए फ़्रेम संरचना, चैनल कोडिंग और मॉड्यूलेशन". En 302 755. ETSI (V1.1.1). September 2009.
  22. Techie (3 June 2010). "इंटरलीविंग की व्याख्या करना". W3 Techie Blog. Retrieved 3 June 2010.
  23. Krastanov, Stefan; Jiang, Liang (8 September 2017). "स्टेबलाइजर कोड्स के लिए डीप न्यूरल नेटवर्क प्रोबेबिलिस्टिक डिकोडर". Scientific Reports. 7 (1): 11003. arXiv:1705.09334. Bibcode:2017NatSR...711003K. doi:10.1038/s41598-017-11266-1. PMC 5591216. PMID 28887480.
  24. Nordstrom, A.W.; Robinson, J.P. (1967), "An optimum nonlinear code", Information and Control, 11 (5–6): 613–616, doi:10.1016/S0019-9958(67)90835-2
  25. Perry, Jonathan; Balakrishnan, Hari; Shah, Devavrat (2011). "रेटलेस स्पाइनल कोड्स". Proceedings of the 10th ACM Workshop on Hot Topics in Networks. pp. 1–6. doi:10.1145/2070562.2070568. hdl:1721.1/79676. ISBN 9781450310598.


आगे की पढाई


बाहरी कड़ियाँ