कोडिंग थ्योरी

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

कोडिंग चार प्रकार की होती है:
 * 1) डेटा संपीड़न (या स्रोत कोडिंग)
 * 2) त्रुटि नियंत्रण (या  माध्यम कोडिंग)
 * 3) क्रिप्टोग्राफी
 * 4) लाइन कोड

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

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

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

बाइनरी भाषा में कोड 1949 में विकसित किया गया था। यह एक त्रुटि-सुधार कोड है जो प्रत्येक 24-बिट शब्द में तीन त्रुटियों को ठीक करने और चौथे का पता लगाने में सक्षम है।

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

1972 में, एन. अहमद ने असतत कोज्या परिवर्तन (डीसीटी) का प्रस्ताव रखा, जिसे उन्होंने 1973 में टी. नटराजन और के.आर. राव के साथ विकसित किया। डीसीटी सबसे व्यापक रूप से इस्तेमाल किया जाने वाला लॉसी संपीड़न एल्गोरिदम है, जो जेपीईजी, एमपीईजी और एमपी3 जैसे मल्टीमीडिया प्रारूपों का आधार है।

स्रोत कोडिंग
बेचा स्रोत कोडिंग का उद्देश्य स्रोत डेटा लेना और उसे छोटा करना है।

परिभाषा
डेटा को एक यादृच्छिक चर के रूप में देखा जा सकता है $$X:\Omega\to\mathcal{X}$$, जहाँ पे $$x \in \mathcal{X}$$ संभावना $$\mathbb{P}[X=x]$$ से प्रकट होता है|

डेटा वर्णमाला $\Sigma$ पर स्ट्रिंग्स (शब्दों) द्वारा एन्कोड किया गया है|

कोड एक फलन है


 * $$C:\mathcal{X}\to\Sigma^*$$ (या $$\Sigma^+$$ अगर खाली स्ट्रिंग वर्णमाला का हिस्सा नहीं है)।

$$C(x)$$ से जुड़ा कोड वर्ड $$x$$ है |

कूट शब्द की लंबाई इस रूप में लिखी जाती है


 * $$l(C(x)).$$

कोड की अपेक्षित लंबाई है


 * $$l(C) = \sum_{x\in\mathcal{X}}l(C(x))\mathbb{P}[X=x] .$$

कूट शब्दों का योग $$C(x_1, \ldots, x_k) = C(x_1)C(x_2) \cdots C(x_k)$$.

खाली स्ट्रिंग का कोड शब्द ही खाली स्ट्रिंग है:


 * $$C(\epsilon) = \epsilon$$

गुण

 * 1) $$C:\mathcal{X}\to\Sigma^*$$ गैर-एकवचन अगर अंत:क्षेपक है।
 * 2) $$C:\mathcal{X}^*\to\Sigma^*$$विशिष्ट रूप से डिकोड करने योग्य कोड यदि अंत:क्षेपक है।
 * 3) $$C:\mathcal{X}\to\Sigma^*$$ तात्कालिक यदि $$C(x_1)$$, $$C(x_2)$$का उपसर्ग नहीं है (और इसके विपरीत भी)।

सिद्धांत
किसी स्रोत की एन्ट्रापी सूचना का माप है। मूल रूप से, स्रोत कोड स्रोत में मौजूद अतिरेक को कम करने का प्रयास करते हैं, और स्रोत का प्रतिनिधित्व कम से कम बिट्स में करते हैं जो अधिक जानकारी रखते हैं।

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

स्रोत कोडिंग योजनाओं द्वारा उपयोग की जाने वाली विभिन्न तकनीकें स्रोत की एन्ट्रापी की सीमा को प्राप्त करने का प्रयास करती हैं। C(x) ≥ H(x), जहां H(x) स्रोत (बिटरेट) की एन्ट्रापी है, और C(x) संपीड़न के बाद बिटरेट है। विशेष रूप से, स्रोत की एंट्रॉपी से बेहतर कोई स्रोत कोडिंग योजना नहीं हो सकती है।

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

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

डिस्क पर डेटा को लिखने के लिए सीडी क्रॉस-इंटरलीव्ड रीड-सोलोमन कोडिंग का उपयोग करती हैं।

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

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

रैखिक कोड
बीजगणितीय कोडिंग सिद्धांत शब्द कोडिंग सिद्धांत के उप-क्षेत्र को दर्शाता है जहां कोड के गुणों को बीजगणितीय पदों में व्यक्त किया जाता है और फिर आगे शोध किया जाता है।

बीजगणितीय कोडिंग सिद्धांत को मूल रूप से दो प्रमुख प्रकार के कोड में विभाजित किया गया है:
 * रैखिक ब्लॉक कोड
 * कोंवोलुशनल कोड

यह कोड के निम्नलिखित तीन गुणों का विश्लेषण करता है - मुख्य रूप से:
 * कोड शब्द की लंबाई
 * मान्य कोड शब्दों की कुल संख्या
 * मुख्य रूप से हैमिंग दूरी का उपयोग करते हुए दो वैध कोड शब्दों के बीच न्यूनतम दूरी, कभी-कभी ली-दूरी जैसी अन्य दूरी भी

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

रेखीय ब्लॉक कोड को उनके प्रतीक अक्षर (जैसे, बाइनरी या टर्नरी) और पैरामीटर (n,m,dmin) द्वारा संक्षेपित किया जाता है जहाँ पर


 * 1) n कोडवर्ड की लंबाई है, प्रतीकों में,
 * 2) m स्रोत प्रतीकों की संख्या है जो एक बार में एन्कोडिंग के लिए उपयोग की जाएगी,
 * 3) dmin कोड के लिए न्यूनतम हैमिंग दूरी है।

कई प्रकार के रैखिक ब्लॉक कोड हैं, जैसे


 * 1) चक्रीय कोड (जैसे, हैमिंग कोड)
 * 2) पुनरावृत्ति कोड
 * 3) समतुल्य कोड
 * 4) बहुपद कोड (जैसे, बीसीएच कोड)
 * 5) रीड-सोलोमन कोड
 * 6) बीजगणितीय ज्यामितीय कोड
 * 7) रीड-मुलर कोड
 * 8) संपन्न कोड

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

कोडिंग का सिद्धांत N-आयामी गोलाकार मॉडल का उपयोग करता है। उदाहरण के लिए, टेबलटॉप पर एक सर्कल में कितने सिक्के पैक किए जा सकते हैं, या 3 आयामों में कितने कंचे ग्लोब में पैक किए जा सकते हैं। अन्य विचार एक कोड की पसंद दर्शाते करते हैं। उदाहरण के लिए, आयताकार बॉक्स की सीमा में हेक्सागोन पैकिंग कोनों पर खाली जगह छोड़ देगी। जैसे-जैसे आयाम बड़े होते जाते हैं, रिक्त स्थान का प्रतिशत छोटा होता जाता है। लेकिन कुछ आयामों पर, पैकिंग सभी जगह का उपयोग करती है और ये कोड तथाकथित संपन्न कोड होते हैं। केवल अतुच्छ और उपयोगी संपन्न कोड दूरी -3 हैमिंग कोड हैं जो पैरामीटर संतोषजनक (2r - 1, 2r - 1 - r, 3), और [23,12,7] बाइनरी और [11,6,5] टर्नरी गोले-कोड के साथ हैं।

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

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

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

इसलिए हम आम तौर पर सिस्टम कोंवोलुशनल एनकोडर का आउटपुट पाते हैं, जो कि कोंवोलुशन एनकोडर, रजिस्टरों की स्थिति के विरुद्ध इनपुट बिट का कोंवोलुशन है।

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

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

कोंवोलुशनल कोड वॉयसबैंड मोडेम (वी.32, वी.17, वी.34) और जीएसएम मोबाइल फोन के साथ-साथ उपग्रह और सैन्य संचार उपकरणों में उपयोग किए जाते हैं।

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

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

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

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

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

कोडिंग सिद्धांत के अन्य अनुप्रयोग
कोडिंग सिद्धांत की एक और चिंता कोड डिजाइन करना है जो तुल्यकालन में मदद करती है। एक कोड डिज़ाइन किया जा सकता है ताकि फेज शिफ्ट को आसानी से पता लगाया जा सके और ठीक किया जा सके और एक ही माध्यम पर कई सिग्नल भेजे जा सकें।

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

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

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

एनालॉग कोडिंग
सूचना को दिमाग के तंत्रिका नेटवर्क, एनालॉग सिग्नल प्रोसेसिंग और एनालॉग इलेक्ट्रॉनिक्स में समान रूप से एन्कोड किया गया है। एनालॉग कोडिंग के पहलुओं में एनालॉग एरर करेक्शन शामिल है, एनालॉग डेटा संपीड़न और एनालॉग एन्क्रिप्शन।

न्यूरल कोडिंग
तंत्रिका कोडिंग एक तंत्रिका विज्ञान से संबंधित क्षेत्र है जो मस्तिष्क में न्यूरॉन्स के तंत्रिका नेटवर्क द्वारा संवेदी और अन्य जानकारी का प्रतिनिधित्व करता है। तंत्रिका कोडिंग का अध्ययन करने का मुख्य लक्ष्य उत्तेजना और व्यक्ति या पहनावा न्यूरोनल प्रतिक्रियाओं और पहनावा में न्यूरॉन्स की विद्युत गतिविधि के बीच संबंध को चिह्नित करना है। ऐसा माना जाता है कि न्यूरॉन्स डिजिटल डेटा और एनालॉग संकेत सूचना दोनों को एन्कोड कर सकते हैं, और वह न्यूरॉन सूचना सिद्धांत के सिद्धांतों का पालन करते हैं और सूचना को संकुचित करते हैं, और पूरे मस्तिष्क और व्यापक तंत्रिका तंत्र में भेजे जाने वाले संकेतों में त्रुटियों का पता लगाने और उन्हें ठीक करने के लिए पता लगाते और ठीक करते हैं।

यह भी देखें

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

संदर्भ

 * Elwyn R. Berlekamp (2014), Algebraic Coding Theory, World Scientific Publishing (revised edition), ISBN 978-9-81463-589-9.
 * MacKay, David J. C. Information Theory, Inference, and Learning Algorithms Cambridge: Cambridge University Press, 2003. ISBN 0-521-64298-1
 * Vera Pless (1982), Introduction to the Theory of Error-Correcting Codes, John Wiley & Sons, Inc., ISBN 0-471-08684-3.
 * Randy Yates, A Coding Theory Tutorial.