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

From Vigyanwiki
No edit summary
No edit summary
Line 3: Line 3:
{{redirect|इंटरलीवर|फाइबर ऑप्टिक डिवाइस|
{{redirect|इंटरलीवर|फाइबर ऑप्टिक डिवाइस|
ऑप्टिकल इंटरलीवर}}
ऑप्टिकल इंटरलीवर}}
{{Use dmy dates|date=August 2022}}[[कम्प्यूटिंग|'''कम्प्यूटिंग''']], '''[[दूरसंचार]], [[सूचना सिद्धांत]]''' और [[कोडिंग सिद्धांत|'''कोडिंग सिद्धांत''']] में, एक त्रुटि सुधार कोड, कभी-कभी त्रुटि सुधार कोड, (ईसीसी) का उपयोग अविश्वसनीय या शोर संचार चैनलों पर डेटा में [[त्रुटि नियंत्रण]] के लिए किया जाता है।<ref>{{cite book |author-last1=Glover |author-first1=Neal |author-last2=Dudley |author-first2=Trent |title=इंजीनियरों के लिए व्यावहारिक त्रुटि सुधार डिजाइन|edition=Revision 1.1, 2nd |publisher=[[Cirrus Logic]] |location=CO, USA |date=1990 |isbn=0-927239-00-0 }}</ref><ref name="Hamming">{{cite journal |author-last=Hamming |author-first=Richard Wesley |author-link=Richard Wesley Hamming  |title=त्रुटि का पता लगाने और कोड को ठीक करने में त्रुटि|journal=[[Bell System Technical Journal]] |volume=29 |issue=2 |pages=147–160 |publisher=[[AT&T]] |location=USA |date=April 1950 |doi=10.1002/j.1538-7305.1950.tb00463.x|s2cid=61141773 }}</ref> केंद्रीय विचार यह है कि प्रेषक ईसीसी के रूप में [[अतिरेक (सूचना सिद्धांत)]] के साथ संदेश को कूटबद्ध करता है। अतिरेक रिसीवर को सीमित संख्या में त्रुटियों का पता लगाने की अनुमति देता है जो संदेश में कहीं भी हो सकती हैं, और अक्सर इन त्रुटियों को बिना पुनर्प्रसारण के ठीक करने के लिए। अमेरिकी गणितज्ञ [[रिचर्ड हैमिंग]] ने 1940 के दशक में इस क्षेत्र का नेतृत्व किया और 1950 में पहला त्रुटि-सुधार कोड का आविष्कार किया: हैमिंग (7,4) कोड।<ref name="Hamming" />
{{Use dmy dates|date=August 2022}}[[कम्प्यूटिंग|'''कम्प्यूटिंग''']], '''[[दूरसंचार]], [[सूचना सिद्धांत]]''' और [[कोडिंग सिद्धांत|'''कोडिंग सिद्धांत''']] में, कभी-कभी त्रुटि सुधार कोड, (ईसीसी) का उपयोग अविश्वसनीय या मुखरसंचार चैनलों पर डेटा में त्रुटियों को नियंत्रित करने के लिए किया जाता है। <ref>{{cite book |author-last1=Glover |author-first1=Neal |author-last2=Dudley |author-first2=Trent |title=इंजीनियरों के लिए व्यावहारिक त्रुटि सुधार डिजाइन|edition=Revision 1.1, 2nd |publisher=[[Cirrus Logic]] |location=CO, USA |date=1990 |isbn=0-927239-00-0 }}</ref><ref name="Hamming">{{cite journal |author-last=Hamming |author-first=Richard Wesley |author-link=Richard Wesley Hamming  |title=त्रुटि का पता लगाने और कोड को ठीक करने में त्रुटि|journal=[[Bell System Technical Journal]] |volume=29 |issue=2 |pages=147–160 |publisher=[[AT&T]] |location=USA |date=April 1950 |doi=10.1002/j.1538-7305.1950.tb00463.x|s2cid=61141773 }}</ref> केंद्रीय विचार यह है कि प्रेषक ईसीसी के रूप में अनावश्यक जानकारी के साथ संदेश को कूटबद्ध करता है। अतिरेक रिसीवर को सीमित संख्या में त्रुटियों का पता लगाने की अनुमति देता है, जो संदेश में कहीं भी हो सकती हैं, और अक्सर इन त्रुटियों को बिना पुनर्प्रसारण के ठीक करने के लिए। अमेरिकी गणितज्ञ रिचर्ड हैमिंग ने 1940 के दशक में इस क्षेत्र का नेतृत्व किया और 1950 में पहली त्रुटि-सुधार कोड का आविष्कार किया: हैमिंग (7,4) कोड<ref name="Hamming" />


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


एक रिसीवर में ईसीसी प्रसंस्करण एक डिजिटल बिटस्ट्रीम या डिजिटल रूप से संग्राहक वाहक के डिमॉड्यूलेशन में लागू किया जा सकता है। उत्तरार्द्ध के लिए, ईसीसी प्रारंभिक [[एनॉलॉग से डिजिटल परिवर्तित करने वाला उपकरण]] | रिसीवर में एनालॉग-टू-डिजिटल रूपांतरण का एक अभिन्न अंग है। Viterbi डिकोडर एक त्रुटि सुधार कोड # ECC के प्रकार लागू करता है | शोर से दूषित एनालॉग सिग्नल से डिजिटल डेटा को डिमॉड्यूलेट करने के लिए सॉफ्ट-डिसीजन एल्गोरिदम। कई ECC एनकोडर/डिकोडर [[बिट त्रुटि दर]] (BER) सिग्नल भी उत्पन्न कर सकते हैं, जिसका उपयोग एनालॉग रिसीविंग इलेक्ट्रॉनिक्स को फाइन-ट्यून करने के लिए फीडबैक के रूप में किया जा सकता है।
एक रिसीवर में ईसीसी प्रसंस्करण एक डिजिटल बिटस्ट्रीम या डिजिटल रूप से संग्राहक वाहक के डिमॉड्यूलेशन में लागू किया जा सकता है। उत्तरार्द्ध के लिए, ईसीसी प्रारंभिक [[एनॉलॉग से डिजिटल परिवर्तित करने वाला उपकरण]] | रिसीवर में एनालॉग-टू-डिजिटल रूपांतरण का एक अभिन्न अंग है। Viterbi डिकोडर एक त्रुटि सुधार कोड # ईसीसी के प्रकार लागू करता है | शोर से दूषित एनालॉग सिग्नल से डिजिटल डेटा को डिमॉड्यूलेट करने के लिए सॉफ्ट-डिसीजन एल्गोरिदम। कई ईसीसी एनकोडर/डिकोडर [[बिट त्रुटि दर]] (BER) सिग्नल भी उत्पन्न कर सकते हैं, जिसका उपयोग एनालॉग रिसीविंग इलेक्ट्रॉनिक्स को फाइन-ट्यून करने के लिए फीडबैक के रूप में किया जा सकता है।
   
   
त्रुटियों या लापता बिट्स के अधिकतम अंश जिन्हें ठीक किया जा सकता है, ECC कोड के डिज़ाइन द्वारा निर्धारित किए जाते हैं, इसलिए विभिन्न स्थितियों के लिए अलग-अलग त्रुटि सुधार कोड उपयुक्त होते हैं। सामान्य तौर पर, एक मजबूत कोड अधिक अतिरेक उत्पन्न करता है जिसे उपलब्ध बैंडविड्थ का उपयोग करके प्रसारित करने की आवश्यकता होती है, जो प्राप्त प्रभावी सिग्नल-टू-शोर अनुपात में सुधार करते हुए प्रभावी बिट-दर को कम करता है। [[क्लाउड शैनन]] के [[शोर-चैनल कोडिंग प्रमेय]] का उपयोग किसी अधिकतम स्वीकार्य त्रुटि संभावना के लिए अधिकतम प्राप्त करने योग्य संचार बैंडविड्थ की गणना के लिए किया जा सकता है। यह कुछ दिए गए आधार शोर स्तर के साथ एक चैनल की सैद्धांतिक अधिकतम सूचना अंतरण दर पर सीमा स्थापित करता है। हालांकि, सबूत रचनात्मक नहीं है, और इसलिए क्षमता प्राप्त करने वाले कोड को बनाने के तरीके की कोई अंतर्दृष्टि नहीं देता है। वर्षों के शोध के बाद, कुछ [[ध्रुवीय कोड (कोडिंग सिद्धांत)]]<ref name=":0" />सैद्धांतिक अधिकतम के बहुत करीब आओ।
त्रुटियों या लापता बिट्स के अधिकतम अंश जिन्हें ठीक किया जा सकता है, ईसीसी कोड के डिज़ाइन द्वारा निर्धारित किए जाते हैं, इसलिए विभिन्न स्थितियों के लिए अलग-अलग त्रुटि सुधार कोड उपयुक्त होते हैं। सामान्य तौर पर, एक मजबूत कोड अधिक अतिरेक उत्पन्न करता है जिसे उपलब्ध बैंडविड्थ का उपयोग करके प्रसारित करने की आवश्यकता होती है, जो प्राप्त प्रभावी सिग्नल-टू-शोर अनुपात में सुधार करते हुए प्रभावी बिट-दर को कम करता है। [[क्लाउड शैनन]] के [[शोर-चैनल कोडिंग प्रमेय]] का उपयोग किसी अधिकतम स्वीकार्य त्रुटि संभावना के लिए अधिकतम प्राप्त करने योग्य संचार बैंडविड्थ की गणना के लिए किया जा सकता है। यह कुछ दिए गए आधार शोर स्तर के साथ एक चैनल की सैद्धांतिक अधिकतम सूचना अंतरण दर पर सीमा स्थापित करता है। हालांकि, सबूत रचनात्मक नहीं है, और इसलिए क्षमता प्राप्त करने वाले कोड को बनाने के तरीके की कोई अंतर्दृष्टि नहीं देता है। वर्षों के शोध के बाद, कुछ [[ध्रुवीय कोड (कोडिंग सिद्धांत)]]<ref name=":0" />सैद्धांतिक अधिकतम के बहुत करीब आओ।


== आगे त्रुटि सुधार ==
== आगे त्रुटि सुधार ==
दूरसंचार, सूचना सिद्धांत और कोडिंग सिद्धांत में, अग्रेषित त्रुटि सुधार (FEC) या चैनल कोडिंग<ref>{{cite journal |author1=Charles Wang |author2=Dean Sklar |author3=Diana Johnson |title=फॉरवर्ड एरर-करेक्शन कोडिंग|journal=Crosslink |publisher=The Aerospace Corporation |volume=3 |issue=1 |date=Winter 2001–2002 |url=http://www.aero.org/publications/crosslink/winter2002/04.html |quote=[http://www.aero.org/publications/crosslink/winter2002/04_sidebar1.html त्रुटि सुधार कोड कैसे काम करते हैं]|access-date=5 March 2006 |archive-url=https://web.archive.org/web/20120314085127/http://www.aero.org/publications/crosslink/winter2002/04.html |archive-date=14 March 2012 |url-status=dead }}</ref><ref name=":0">{{Cite web|url=https://www.accelercomm.com/overview-channel-coding|title=चैनल कोडिंग का अवलोकन|last=Maunder|first=Robert|date=2016}}</ref> अविश्वसनीय या शोर संचार चैनलों पर [[डेटा ट्रांसमिशन]] में त्रुटि नियंत्रण के लिए उपयोग की जाने वाली तकनीक है। केंद्रीय विचार यह है कि प्रेषक एक अतिरेक (सूचना सिद्धांत) तरीके से संदेश को एन्कोड करता है, अक्सर एक ईसीसी का उपयोग करके।
दूरसंचार, सूचना सिद्धांत और कोडिंग सिद्धांत में, अग्रेषित त्रुटि सुधार (FEC) या चैनल कोडिंग<ref>{{cite journal |author1=Charles Wang |author2=Dean Sklar |author3=Diana Johnson |title=फॉरवर्ड एरर-करेक्शन कोडिंग|journal=Crosslink |publisher=The Aerospace Corporation |volume=3 |issue=1 |date=Winter 2001–2002 |url=http://www.aero.org/publications/crosslink/winter2002/04.html |quote=[http://www.aero.org/publications/crosslink/winter2002/04_sidebar1.html त्रुटि सुधार कोड कैसे काम करते हैं]|access-date=5 March 2006 |archive-url=https://web.archive.org/web/20120314085127/http://www.aero.org/publications/crosslink/winter2002/04.html |archive-date=14 March 2012 |url-status=dead }}</ref><ref name=":0">{{Cite web|url=https://www.accelercomm.com/overview-channel-coding|title=चैनल कोडिंग का अवलोकन|last=Maunder|first=Robert|date=2016}}</ref> अविश्वसनीय या शोर संचार चैनलों पर [[डेटा ट्रांसमिशन]] में त्रुटि नियंत्रण के लिए उपयोग की जाने वाली तकनीक है। केंद्रीय विचार यह है कि प्रेषक एक अतिरेक (सूचना सिद्धांत) तरीके से संदेश को एन्कोड करता है, अक्सर एक ईसीसी का उपयोग करके।


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


एक रिसीवर में एफईसी प्रसंस्करण एक डिजिटल बिट स्ट्रीम या डिजिटल रूप से संग्राहक वाहक के डिमॉड्यूलेशन में लागू किया जा सकता है। बाद के लिए, एफईसी प्रारंभिक एनालॉग-टू-डिजिटल कनवर्टर | रिसीवर में एनालॉग-टू-डिजिटल रूपांतरण का एक अभिन्न अंग है। Viterbi डिकोडर एक [[शीतल-निर्णय डिकोडर]] | सॉफ्ट-डिसीजन एल्गोरिथम को लागू करता है, जो शोर से दूषित एनालॉग सिग्नल से डिजिटल डेटा को डिमॉड्यूलेट करता है। कई FEC कोडर्स एक बिट-एरर रेट (BER) सिग्नल भी उत्पन्न कर सकते हैं, जिसका उपयोग एनालॉग प्राप्त इलेक्ट्रॉनिक्स को फाइन-ट्यून करने के लिए फीडबैक के रूप में किया जा सकता है।
एक रिसीवर में एफईसी प्रसंस्करण एक डिजिटल बिट स्ट्रीम या डिजिटल रूप से संग्राहक वाहक के डिमॉड्यूलेशन में लागू किया जा सकता है। बाद के लिए, एफईसी प्रारंभिक एनालॉग-टू-डिजिटल कनवर्टर | रिसीवर में एनालॉग-टू-डिजिटल रूपांतरण का एक अभिन्न अंग है। Viterbi डिकोडर एक [[शीतल-निर्णय डिकोडर]] | सॉफ्ट-डिसीजन एल्गोरिथम को लागू करता है, जो शोर से दूषित एनालॉग सिग्नल से डिजिटल डेटा को डिमॉड्यूलेट करता है। कई FEC कोडर्स एक बिट-एरर रेट (BER) सिग्नल भी उत्पन्न कर सकते हैं, जिसका उपयोग एनालॉग प्राप्त इलेक्ट्रॉनिक्स को फाइन-ट्यून करने के लिए फीडबैक के रूप में किया जा सकता है।
Line 21: Line 21:


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


ईसीसी का एक सरल उदाहरण प्रत्येक डेटा बिट को 3 बार प्रसारित करना है, जिसे (3,1) [[पुनरावृत्ति कोड]] के रूप में जाना जाता है। एक शोर चैनल के माध्यम से, एक रिसीवर आउटपुट के 8 संस्करण देख सकता है, नीचे दी गई तालिका देखें।
ईसीसी का एक सरल उदाहरण प्रत्येक डेटा बिट को 3 बार प्रसारित करना है, जिसे (3,1) [[पुनरावृत्ति कोड]] के रूप में जाना जाता है। एक शोर चैनल के माध्यम से, एक रिसीवर आउटपुट के 8 संस्करण देख सकता है, नीचे दी गई तालिका देखें।
Line 56: Line 56:
* त्रुटि में 1 बिट ट्रिपलेट तक, या
* त्रुटि में 1 बिट ट्रिपलेट तक, या
* ट्रिपलेट के 2 बिट तक छोड़े गए (मामलों को तालिका में नहीं दिखाया गया है)।
* ट्रिपलेट के 2 बिट तक छोड़े गए (मामलों को तालिका में नहीं दिखाया गया है)।
हालांकि लागू करने में सरल और व्यापक रूप से उपयोग किया जाता है, यह [[ट्रिपल मॉड्यूलर अतिरेक]] अपेक्षाकृत अक्षम ईसीसी है। बेहतर ईसीसी कोड आमतौर पर पिछले कई दसियों या यहां तक ​​कि पहले प्राप्त बिट्स के पिछले कई सैकड़ों की जांच करते हैं ताकि यह निर्धारित किया जा सके कि वर्तमान छोटे मुट्ठी भर बिट्स (आमतौर पर 2 से 8 बिट्स के समूह में) को कैसे डिकोड किया जाए।
हालांकि लागू करने में सरल और व्यापक रूप से उपयोग किया जाता है, यह [[ट्रिपल मॉड्यूलर अतिरेक]] अपेक्षाकृत अक्षम ईसीसी है। बेहतर ईसीसी कोड सामान्यतः पिछले कई दसियों या यहां तक ​​कि पहले प्राप्त बिट्स के पिछले कई सैकड़ों की जांच करते हैं ताकि यह निर्धारित किया जा सके कि वर्तमान छोटे मुट्ठी भर बिट्स (सामान्यतः 2 से 8 बिट्स के समूह में) को कैसे डिकोड किया जाए।


== त्रुटियों को कम करने के लिए औसत शोर ==
== त्रुटियों को कम करने के लिए औसत शोर ==
Line 65: Line 65:


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


Line 72: Line 72:


[[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-बिट एरर डिटेक्शन प्रदान करता है।
यह सिंगल-बिट एरर करेक्शन और 2-बिट एरर डिटेक्शन प्रदान करता है।
हैमिंग कोड केवल अधिक विश्वसनीय [[एकल-स्तरीय सेल]] (SLC) NAND के लिए उपयुक्त हैं।
हैमिंग कोड केवल अधिक विश्वसनीय [[एकल-स्तरीय सेल]] (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 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 101: Line 101:
अनावश्यक बिट्स जो जानकारी की रक्षा करते हैं उन्हें उसी संचार संसाधनों का उपयोग करके स्थानांतरित किया जाना चाहिए जिसकी वे रक्षा करने का प्रयास कर रहे हैं। यह विश्वसनीयता और डेटा दर के बीच एक मौलिक व्यापार का कारण बनता है।<ref>{{citation |author-first1=David |author-last1=Tse |author-first2=Pramod |author-last2=Viswanath |title=Fundamentals of Wireless Communication |publisher=[[Cambridge University Press]], UK |date=2005}}</ref> एक चरम में, एक मजबूत कोड (कम कोड-दर के साथ) प्रभावी डेटा दर को कम करने की कीमत पर, बिट त्रुटि दर को कम करने वाले रिसीवर एसएनआर (सिग्नल-टू-शोर-अनुपात) में एक महत्वपूर्ण वृद्धि को प्रेरित कर सकता है। दूसरी चरम पर, किसी भी ईसीसी (यानी, 1 के बराबर एक कोड-दर) का उपयोग नहीं करने से बिट्स को बिना किसी अतिरिक्त सुरक्षा के छोड़ने की कीमत पर सूचना हस्तांतरण उद्देश्यों के लिए पूर्ण चैनल का उपयोग किया जाता है।
अनावश्यक बिट्स जो जानकारी की रक्षा करते हैं उन्हें उसी संचार संसाधनों का उपयोग करके स्थानांतरित किया जाना चाहिए जिसकी वे रक्षा करने का प्रयास कर रहे हैं। यह विश्वसनीयता और डेटा दर के बीच एक मौलिक व्यापार का कारण बनता है।<ref>{{citation |author-first1=David |author-last1=Tse |author-first2=Pramod |author-last2=Viswanath |title=Fundamentals of Wireless Communication |publisher=[[Cambridge University Press]], UK |date=2005}}</ref> एक चरम में, एक मजबूत कोड (कम कोड-दर के साथ) प्रभावी डेटा दर को कम करने की कीमत पर, बिट त्रुटि दर को कम करने वाले रिसीवर एसएनआर (सिग्नल-टू-शोर-अनुपात) में एक महत्वपूर्ण वृद्धि को प्रेरित कर सकता है। दूसरी चरम पर, किसी भी ईसीसी (यानी, 1 के बराबर एक कोड-दर) का उपयोग नहीं करने से बिट्स को बिना किसी अतिरिक्त सुरक्षा के छोड़ने की कीमत पर सूचना हस्तांतरण उद्देश्यों के लिए पूर्ण चैनल का उपयोग किया जाता है।


एक दिलचस्प सवाल निम्नलिखित है: सूचना हस्तांतरण के मामले में एक ईसीसी कितना कुशल हो सकता है जिसमें नगण्य डिकोडिंग त्रुटि दर हो? इस प्रश्न का उत्तर क्लॉड शैनन ने अपने दूसरे प्रमेय के साथ दिया, जो कहता है कि चैनल क्षमता किसी भी ईसीसी द्वारा प्राप्त की जाने वाली अधिकतम बिट दर है जिसकी त्रुटि दर शून्य हो जाती है:<ref name="shannon paper">{{cite journal|first=C. E.|last=Shannon|title=संचार का एक गणितीय सिद्धांत|journal=[[Bell System Technical Journal]]|volume=27|issue=3–4|pages=379–423 & 623–656|date=1948|url=http://www.math.harvard.edu/~ctm/home/text/others/shannon/entropy/entropy.pdf|doi=10.1002/j.1538-7305.1948.tb01338.x|hdl=11858/00-001M-0000-002C-4314-2|hdl-access=free}}</ref> उनका प्रमाण गाऊसी यादृच्छिक कोडिंग पर निर्भर करता है, जो वास्तविक दुनिया के अनुप्रयोगों के लिए उपयुक्त नहीं है। शैनन के काम द्वारा दी गई ऊपरी सीमा ने ईसीसी को डिजाइन करने में लंबी यात्रा को प्रेरित किया जो अंतिम प्रदर्शन सीमा के करीब आ सकता है। विभिन्न कोड आज लगभग शैनन सीमा प्राप्त कर सकते हैं। हालांकि, ईसीसी हासिल करने की क्षमता आमतौर पर लागू करने के लिए बेहद जटिल होती है।
एक दिलचस्प सवाल निम्नलिखित है: सूचना हस्तांतरण के मामले में एक ईसीसी कितना कुशल हो सकता है जिसमें नगण्य डिकोडिंग त्रुटि दर हो? इस प्रश्न का उत्तर क्लॉड शैनन ने अपने दूसरे प्रमेय के साथ दिया, जो कहता है कि चैनल क्षमता किसी भी ईसीसी द्वारा प्राप्त की जाने वाली अधिकतम बिट दर है जिसकी त्रुटि दर शून्य हो जाती है:<ref name="shannon paper">{{cite journal|first=C. E.|last=Shannon|title=संचार का एक गणितीय सिद्धांत|journal=[[Bell System Technical Journal]]|volume=27|issue=3–4|pages=379–423 & 623–656|date=1948|url=http://www.math.harvard.edu/~ctm/home/text/others/shannon/entropy/entropy.pdf|doi=10.1002/j.1538-7305.1948.tb01338.x|hdl=11858/00-001M-0000-002C-4314-2|hdl-access=free}}</ref> उनका प्रमाण गाऊसी यादृच्छिक कोडिंग पर निर्भर करता है, जो वास्तविक दुनिया के अनुप्रयोगों के लिए उपयुक्त नहीं है। शैनन के काम द्वारा दी गई ऊपरी सीमा ने ईसीसी को डिजाइन करने में लंबी यात्रा को प्रेरित किया जो अंतिम प्रदर्शन सीमा के करीब आ सकता है। विभिन्न कोड आज लगभग शैनन सीमा प्राप्त कर सकते हैं। हालांकि, ईसीसी हासिल करने की क्षमता सामान्यतः लागू करने के लिए बेहद जटिल होती है।


सबसे लोकप्रिय ईसीसी में प्रदर्शन और कम्प्यूटेशनल जटिलता के बीच एक समझौता है। आमतौर पर, उनके पैरामीटर संभावित कोड दरों की एक श्रृंखला देते हैं, जिन्हें परिदृश्य के आधार पर अनुकूलित किया जा सकता है। आमतौर पर, यह अनुकूलन डेटा दर पर प्रभाव को कम करते हुए कम डिकोडिंग त्रुटि संभावना प्राप्त करने के लिए किया जाता है। कोड दर के अनुकूलन के लिए एक अन्य मानदंड संचार की ऊर्जा लागत के क्रम में कम त्रुटि दर और पुन: प्रसारण संख्या को संतुलित करना है।<ref>{{Cite conference |title=ऊर्जा-कुशल वायरलेस संचार प्राप्त करने के लिए कोड दर का अनुकूलन|first1=F. |last1=Rosas |first2=G. |last2=Brante |first3=R. D. |last3=Souza |first4=C. |last4=Oberli |url=https://ieeexplore.ieee.org/document/6952166 |date=2014 |pages=775–780 |doi=10.1109/WCNC.2014.6952166 |isbn=978-1-4799-3083-8 |book-title=Proceedings of the IEEE Wireless Communications and Networking Conference (WCNC)}}</ref>
सबसे लोकप्रिय ईसीसी में प्रदर्शन और कम्प्यूटेशनल जटिलता के बीच एक समझौता है। सामान्यतः, उनके पैरामीटर संभावित कोड दरों की एक श्रृंखला देते हैं, जिन्हें परिदृश्य के आधार पर अनुकूलित किया जा सकता है। सामान्यतः, यह अनुकूलन डेटा दर पर प्रभाव को कम करते हुए कम डिकोडिंग त्रुटि संभावना प्राप्त करने के लिए किया जाता है। कोड दर के अनुकूलन के लिए एक अन्य मानदंड संचार की ऊर्जा लागत के क्रम में कम त्रुटि दर और पुन: प्रसारण संख्या को संतुलित करना है।<ref>{{Cite conference |title=ऊर्जा-कुशल वायरलेस संचार प्राप्त करने के लिए कोड दर का अनुकूलन|first1=F. |last1=Rosas |first2=G. |last2=Brante |first3=R. D. |last3=Souza |first4=C. |last4=Oberli |url=https://ieeexplore.ieee.org/document/6952166 |date=2014 |pages=775–780 |doi=10.1109/WCNC.2014.6952166 |isbn=978-1-4799-3083-8 |book-title=Proceedings of the IEEE Wireless Communications and Networking Conference (WCNC)}}</ref>




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


कनेक्टेड कोड उपग्रह और गहरे अंतरिक्ष संचार में मानक अभ्यास रहे हैं क्योंकि वायेजर कार्यक्रम ने पहली बार यूरेनस के साथ 1986 की मुठभेड़ में तकनीक का उपयोग किया था। [[गैलीलियो (अंतरिक्ष यान)]] शिल्प ने असफल एंटीना होने के कारण बहुत उच्च त्रुटि दर स्थितियों की भरपाई के लिए पुनरावृत्त संघटित कोड का उपयोग किया।
कनेक्टेड कोड उपग्रह और गहरे अंतरिक्ष संचार में मानक अभ्यास रहे हैं क्योंकि वायेजर कार्यक्रम ने पहली बार यूरेनस के साथ 1986 की मुठभेड़ में तकनीक का उपयोग किया था। [[गैलीलियो (अंतरिक्ष यान)]] शिल्प ने असफल एंटीना होने के कारण बहुत उच्च त्रुटि दर स्थितियों की भरपाई के लिए पुनरावृत्त संघटित कोड का उपयोग किया।
Line 138: Line 138:
{{redirect|Interleaver|the fiber-optic device|optical interleaver}}
{{redirect|Interleaver|the fiber-optic device|optical interleaver}}


[[File:Interleaving1.png|right|upright=2.25|thumb|इंटरलीविंग विचार का एक छोटा उदाहरण]]आगे त्रुटि सुधार कोड के प्रदर्शन को बेहतर बनाने के लिए इंटरलीविंग का उपयोग अक्सर डिजिटल संचार और भंडारण प्रणालियों में किया जाता है। कई संचार चैनल मेमोरीलेस नहीं होते हैं: आमतौर पर त्रुटियाँ स्वतंत्र रूप से होने के बजाय फटने वाली त्रुटियों में होती हैं। यदि किसी [[कोड शब्द]] में त्रुटियों की संख्या त्रुटि-सुधार कोड की क्षमता से अधिक है, तो यह मूल कोड शब्द को पुनर्प्राप्त करने में विफल रहता है। इंटरलीविंग कई कोड शब्दों में स्रोत प्रतीकों को फेरबदल करके इस समस्या को दूर करता है, जिससे त्रुटियों का अधिक [[समान वितरण (निरंतर)]] बनता है।<ref name="turbo-principles">{{cite book |author-first1=B. |author-last1=Vucetic |author-first2=J. |author-last2=Yuan |title=टर्बो कोड: सिद्धांत और अनुप्रयोग|publisher=[[Springer Verlag]] |isbn=978-0-7923-7868-6 |date=2000}}</ref> इसलिए, इंटरलीविंग का व्यापक रूप से [[फट त्रुटि सुधार कोड]] | बर्स्ट एरर-करेक्शन के लिए उपयोग किया जाता है।
[[File:Interleaving1.png|right|upright=2.25|thumb|इंटरलीविंग विचार का एक छोटा उदाहरण]]आगे त्रुटि सुधार कोड के प्रदर्शन को बेहतर बनाने के लिए इंटरलीविंग का उपयोग अक्सर डिजिटल संचार और भंडारण प्रणालियों में किया जाता है। कई संचार चैनल मेमोरीलेस नहीं होते हैं: सामान्यतः त्रुटियाँ स्वतंत्र रूप से होने के बजाय फटने वाली त्रुटियों में होती हैं। यदि किसी [[कोड शब्द]] में त्रुटियों की संख्या त्रुटि-सुधार कोड की क्षमता से अधिक है, तो यह मूल कोड शब्द को पुनर्प्राप्त करने में विफल रहता है। इंटरलीविंग कई कोड शब्दों में स्रोत प्रतीकों को फेरबदल करके इस समस्या को दूर करता है, जिससे त्रुटियों का अधिक [[समान वितरण (निरंतर)]] बनता है।<ref name="turbo-principles">{{cite book |author-first1=B. |author-last1=Vucetic |author-first2=J. |author-last2=Yuan |title=टर्बो कोड: सिद्धांत और अनुप्रयोग|publisher=[[Springer Verlag]] |isbn=978-0-7923-7868-6 |date=2000}}</ref> इसलिए, इंटरलीविंग का व्यापक रूप से [[फट त्रुटि सुधार कोड]] | बर्स्ट एरर-करेक्शन के लिए उपयोग किया जाता है।


आधुनिक पुनरावृत्त कोड का विश्लेषण, जैसे टर्बो कोड और [[एलडीपीसी कोड]], आमतौर पर त्रुटियों का एक स्वतंत्र वितरण मानते हैं।<ref>{{cite journal |author-first1=Michael |author-last1=Luby |author-link1=Michael Luby |author-first2=M. |author-last2=Mitzenmacher |author-first3=A. |author-last3=Shokrollahi |author-first4=D. |author-last4=Spielman |author-first5=V. |author-last5=Stemann |title=प्रैक्टिकल लॉस-रेसिलिएंट कोड|journal=Proc. 29th Annual Association for Computing Machinery (ACM) Symposium on Theory of Computation |date=1997}}</ref> एलडीपीसी कोड का उपयोग करने वाले सिस्टम आमतौर पर कोड वर्ड के भीतर प्रतीकों में अतिरिक्त इंटरलीविंग को नियोजित करते हैं।<ref>{{Cite journal |title=डिजिटल वीडियो प्रसारण (डीवीबी); ब्रॉडकास्टिंग, इंटरएक्टिव सर्विसेज, न्यूज गैदरिंग और अन्य सैटेलाइट ब्रॉडबैंड एप्लिकेशन (DVB-S2) के लिए दूसरी पीढ़ी की फ्रेमिंग संरचना, चैनल कोडिंग और मॉड्यूलेशन सिस्टम|journal=En 302 307 |issue=V1.2.1 |publisher=[[ETSI]] |date=April 2009}}</ref>
आधुनिक पुनरावृत्त कोड का विश्लेषण, जैसे टर्बो कोड और [[एलडीपीसी कोड]], सामान्यतः त्रुटियों का एक स्वतंत्र वितरण मानते हैं।<ref>{{cite journal |author-first1=Michael |author-last1=Luby |author-link1=Michael Luby |author-first2=M. |author-last2=Mitzenmacher |author-first3=A. |author-last3=Shokrollahi |author-first4=D. |author-last4=Spielman |author-first5=V. |author-last5=Stemann |title=प्रैक्टिकल लॉस-रेसिलिएंट कोड|journal=Proc. 29th Annual Association for Computing Machinery (ACM) Symposium on Theory of Computation |date=1997}}</ref> एलडीपीसी कोड का उपयोग करने वाले सिस्टम सामान्यतः कोड वर्ड के भीतर प्रतीकों में अतिरिक्त इंटरलीविंग को नियोजित करते हैं।<ref>{{Cite journal |title=डिजिटल वीडियो प्रसारण (डीवीबी); ब्रॉडकास्टिंग, इंटरएक्टिव सर्विसेज, न्यूज गैदरिंग और अन्य सैटेलाइट ब्रॉडबैंड एप्लिकेशन (DVB-S2) के लिए दूसरी पीढ़ी की फ्रेमिंग संरचना, चैनल कोडिंग और मॉड्यूलेशन सिस्टम|journal=En 302 307 |issue=V1.2.1 |publisher=[[ETSI]] |date=April 2009}}</ref>
टर्बो कोड के लिए, एक इंटरलीवर एक अभिन्न अंग है और अच्छे प्रदर्शन के लिए इसका उचित डिज़ाइन महत्वपूर्ण है।<ref name="turbo-principles"/><ref>{{cite journal|first1=K. S.|last1=Andrews|first2=D.|last2=Divsalar|first3=S.|last3=Dolinar|first4=J.|last4=Hamkins|first5=C. R.|last5=Jones|first6=F.|last6=Pollara|title=डीप-स्पेस एप्लिकेशन के लिए टर्बो और एलडीपीसी कोड का विकास|journal=[[Proceedings of the IEEE]]|volume=95|issue=11|pages=2142–2156|date=November 2007|doi=10.1109/JPROC.2007.905132|s2cid=9289140}}</ref> पुनरावृत्त डिकोडिंग एल्गोरिथ्म सबसे अच्छा काम करता है जब डिकोडर का प्रतिनिधित्व करने वाले [[कारक ग्राफ]] में छोटे चक्र नहीं होते हैं; छोटे चक्रों से बचने के लिए इंटरलीवर को चुना जाता है।
टर्बो कोड के लिए, एक इंटरलीवर एक अभिन्न अंग है और अच्छे प्रदर्शन के लिए इसका उचित डिज़ाइन महत्वपूर्ण है।<ref name="turbo-principles"/><ref>{{cite journal|first1=K. S.|last1=Andrews|first2=D.|last2=Divsalar|first3=S.|last3=Dolinar|first4=J.|last4=Hamkins|first5=C. R.|last5=Jones|first6=F.|last6=Pollara|title=डीप-स्पेस एप्लिकेशन के लिए टर्बो और एलडीपीसी कोड का विकास|journal=[[Proceedings of the IEEE]]|volume=95|issue=11|pages=2142–2156|date=November 2007|doi=10.1109/JPROC.2007.905132|s2cid=9289140}}</ref> पुनरावृत्त डिकोडिंग एल्गोरिथ्म सबसे अच्छा काम करता है जब डिकोडर का प्रतिनिधित्व करने वाले [[कारक ग्राफ]] में छोटे चक्र नहीं होते हैं; छोटे चक्रों से बचने के लिए इंटरलीवर को चुना जाता है।


Line 187: Line 187:


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


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

Revision as of 23:03, 5 January 2023

x

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

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

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

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

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

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

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

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

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

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

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

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

Triplet received Interpreted as
000 0 (error-free)
001 0
010 0
100 0
111 1 (error-free)
110 1
101 1
011 1

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

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

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

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

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

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

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

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

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

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

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

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

हैमिंग ईसीसी का उपयोग सामान्यतः एनएएनडी फ्लैश मेमोरी त्रुटियों को ठीक करने के लिए किया जाता है।[5] यह सिंगल-बिट एरर करेक्शन और 2-बिट एरर डिटेक्शन प्रदान करता है। हैमिंग कोड केवल अधिक विश्वसनीय एकल-स्तरीय सेल (SLC) NAND के लिए उपयुक्त हैं। सघन बहु-स्तरीय सेल (एमएलसी) एनएएनडी बीसीएच या रीड-सोलोमन जैसे बहु-बिट सुधार ईसीसी का उपयोग कर सकता है।[6][7] NOR Flash सामान्यतः किसी त्रुटि सुधार का उपयोग नहीं करता है।[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, केवल एक बिट बदला गया है, इसलिए एक-बिट त्रुटि-सुधार कोड सब कुछ सही ढंग से डिकोड करेगा।

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

मूल प्रेषित वाक्य:                      ThisIsAnExampleOfInterleaving

बर्स्ट त्रुटि के साथ वाक्य प्राप्त हुआ: ThisIs______pleOfInterleaving अवधिAnExampleज्यादातर समझ से बाहर और सही करने के लिए मुश्किल समाप्त होता है।

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

प्रेषित वाक्य:                               ThisIsAnExampleOfInterleaving...

त्रुटि रहित संचरण: TIEpfeaghsxlIrv.iAaenli.snmOten. बर्स्ट त्रुटि के साथ वाक्य प्राप्त हुआ: TIEpfe______Irv.iAaenli.snmOten. deinterleaving के बाद सजा मिली: T_isI_AnE_amp_eOfInterle_vin_... कोई भी शब्द पूरी तरह से खोया नहीं है और कम से कम अनुमान के साथ लापता अक्षरों को पुनर्प्राप्त किया जा सकता है।

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

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

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

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

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

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

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

Distance Code
2 (single-error detecting) Parity
3 (single-error correcting) Triple modular redundancy
3 (single-error correcting) perfect Hamming such as Hamming(7,4)
4 (SECDED) Extended Hamming
5 (double-error correcting)
6 (double-error correct-/triple error detect) Nordstrom-Robinson code
7 (three-error correcting) perfect binary Golay code
8 (TECFED) extended binary Golay code

यह भी देखें

संदर्भ

  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.


आगे की पढाई


इस पेज में लापता आंतरिक लिंक की सूची

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

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

श्रेणी: त्रुटि पहचान और सुधार