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

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

कोडिंग चार प्रकार की होती है:
 * 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 छोटे ब्लॉक में बांटा जाता है। फिर हम ब्लॉक के माध्यम से साइकिल चलाते हैं और पहले से एक बिट भेजते हैं, फिर दूसरा, आदि। यह डिस्क की सतह पर डेटा को फैलाने के लिए तीन बार किया जाता है। सरल दोहराने वाले कोड के संदर्भ में, यह प्रभावी प्रतीत नहीं हो सकता है। हालांकि, अधिक शक्तिशाली कोड ज्ञात हैं जो इस इंटरलीविंग तकनीक का उपयोग करते समय खरोंच या धूल के धब्बे की फट त्रुटि को ठीक करने में बहुत प्रभावी होते हैं।

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

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

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

लाइन कोडिंग में डिजिटल सिग्नल (इलेक्ट्रॉनिक्स) का प्रतिनिधित्व एक आयाम- और समय-असतत सिग्नल द्वारा किया जाता है जो भौतिक चैनल (और प्राप्त करने वाले उपकरण) के विशिष्ट गुणों के लिए इष्टतम रूप से ट्यून किया जाता है। ट्रांसमिशन लिंक पर डिजिटल डेटा के 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.