लीनियर कोड: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Class of error-correcting code}} कोडिंग सिद्धांत में, एक रैखिक कोड एक त्रुटि-स...")
 
No edit summary
Line 1: Line 1:
{{Short description|Class of error-correcting code}}
{{Short description|Class of error-correcting code}}
[[कोडिंग सिद्धांत]] में, एक रैखिक कोड एक त्रुटि-सुधार करने वाला कोड होता है जिसके लिए [[कोड शब्द]] का कोई भी [[रैखिक संयोजन]] भी एक कोडवर्ड होता है। रैखिक कोड को पारंपरिक रूप से [[ब्लॉक कोड]] और [[कन्वोल्यूशनल कोड]] में विभाजित किया जाता है, हालांकि [[टर्बो कोड]] को इन दो प्रकारों के हाइब्रिड के रूप में देखा जा सकता है।<ref>{{cite book|title=Channel Codes: Classical and Modern|url=https://archive.org/details/channelcodesclas00ryan|url-access=limited|author=William E. Ryan and Shu Lin|page=[https://archive.org/details/channelcodesclas00ryan/page/n21 4]|year=2009|publisher=Cambridge University Press|isbn=978-0-521-84868-8}}</ref> रैखिक कोड अन्य कोड की तुलना में अधिक कुशल एन्कोडिंग और डिकोडिंग एल्गोरिदम की अनुमति देते हैं (सीएफ [[सिंड्रोम डिकोडिंग]])।{{citation needed|date=April 2018}}
[[कोडिंग सिद्धांत]] में, रैखिक कोड त्रुटि-सुधार करने वाला कोड होता है जिसके लिए [[कोड शब्द]] का कोई भी [[रैखिक संयोजन]] भी कोडवर्ड होता है। रैखिक कोड को पारंपरिक रूप से [[ब्लॉक कोड]] और [[कन्वोल्यूशनल कोड]] में विभाजित किया जाता है, हालांकि [[टर्बो कोड]] को इन दो प्रकारों के हाइब्रिड के रूप में देखा जा सकता है।<ref>{{cite book|title=Channel Codes: Classical and Modern|url=https://archive.org/details/channelcodesclas00ryan|url-access=limited|author=William E. Ryan and Shu Lin|page=[https://archive.org/details/channelcodesclas00ryan/page/n21 4]|year=2009|publisher=Cambridge University Press|isbn=978-0-521-84868-8}}</ref> रैखिक कोड अन्य कोड की तुलना में अधिक कुशल एन्कोडिंग और डिकोडिंग एल्गोरिदम की अनुमति देते हैं (सीएफ [[सिंड्रोम डिकोडिंग]])।


रैखिक कोड का उपयोग आगे की त्रुटि सुधार में किया जाता है और [[संचार चैनल]] पर प्रतीकों (जैसे, [[ अंश ]]्स) को प्रसारित करने के तरीकों में लागू किया जाता है ताकि, यदि संचार में त्रुटियां होती हैं, तो संदेश ब्लॉक के प्राप्तकर्ता द्वारा कुछ त्रुटियों को ठीक किया जा सके या पता लगाया जा सके। एक रैखिक ब्लॉक कोड में कोडवर्ड प्रतीकों के ब्लॉक होते हैं जिन्हें भेजे जाने वाले मूल मान से अधिक प्रतीकों का उपयोग करके एन्कोड किया जाता है।<ref name="DrMacKayECC">{{cite book| last=MacKay | first=David, J.C.| authorlink=David J.C. MacKay| title=सूचना सिद्धांत, अनुमान और शिक्षण एल्गोरिदम|year=2003 | pages=9|publisher=[[Cambridge University Press]]| isbn=9780521642989|url=http://www.inference.phy.cam.ac.uk/itprnn/book.pdf | quote="In a ''linear'' block code, the extra <math>N - K</math> bits are linear functions of the original <math>K</math> bits; these extra bits are called ''parity-check bits''"| bibcode=2003itil.book.....M}}</ref> लंबाई n का एक रैखिक कोड n प्रतीकों वाले ब्लॉक को प्रसारित करता है। उदाहरण के लिए, [7,4,3] [[हैमिंग कोड]] एक रैखिक [[बाइनरी कोड]] है जो 7-बिट कोडवर्ड का उपयोग करके 4-बिट संदेशों का प्रतिनिधित्व करता है। दो अलग-अलग कोडवर्ड कम से कम तीन बिट में भिन्न होते हैं। परिणामस्वरूप, प्रति कोडवर्ड अधिकतम दो त्रुटियों का पता लगाया जा सकता है जबकि एक त्रुटि को ठीक किया जा सकता है।<ref name="Cover_and_Thomas">{{cite book|title=सूचना सिद्धांत के तत्व|author=Thomas M. Cover and Joy A. Thomas|pages=[https://archive.org/details/elementsofinform0000cove/page/210 210–211]|year=1991|publisher=John Wiley & Sons, Inc|isbn=978-0-471-06259-2|url=https://archive.org/details/elementsofinform0000cove/page/210}}</ref> इस कोड में 2 शामिल हैं<sup>4</sup>=16 कोडवर्ड.
रैखिक कोड का उपयोग आगे की त्रुटि सुधार में किया जाता है और [[संचार चैनल]] पर प्रतीकों (जैसे, [[ अंश |अंश]] ्स) को प्रसारित करने के तरीकों में लागू किया जाता है ताकि, यदि संचार में त्रुटियां होती हैं, तो संदेश ब्लॉक के प्राप्तकर्ता द्वारा कुछ त्रुटियों को ठीक किया जा सके या पता लगाया जा सके। रैखिक ब्लॉक कोड में कोडवर्ड प्रतीकों के ब्लॉक होते हैं जिन्हें भेजे जाने वाले मूल मान से अधिक प्रतीकों का उपयोग करके एन्कोड किया जाता है।<ref name="DrMacKayECC">{{cite book| last=MacKay | first=David, J.C.| authorlink=David J.C. MacKay| title=सूचना सिद्धांत, अनुमान और शिक्षण एल्गोरिदम|year=2003 | pages=9|publisher=[[Cambridge University Press]]| isbn=9780521642989|url=http://www.inference.phy.cam.ac.uk/itprnn/book.pdf | quote="In a ''linear'' block code, the extra <math>N - K</math> bits are linear functions of the original <math>K</math> bits; these extra bits are called ''parity-check bits''"| bibcode=2003itil.book.....M}}</ref> लंबाई n का रैखिक कोड n प्रतीकों वाले ब्लॉक को प्रसारित करता है। उदाहरण के लिए, [7,4,3] [[हैमिंग कोड]] रैखिक [[बाइनरी कोड]] है जो 7-बिट कोडवर्ड का उपयोग करके 4-बिट संदेशों का प्रतिनिधित्व करता है। दो अलग-अलग कोडवर्ड कम से कम तीन बिट में भिन्न होते हैं। परिणामस्वरूप, प्रति कोडवर्ड अधिकतम दो त्रुटियों का पता लगाया जा सकता है जबकि त्रुटि को ठीक किया जा सकता है।<ref name="Cover_and_Thomas">{{cite book|title=सूचना सिद्धांत के तत्व|author=Thomas M. Cover and Joy A. Thomas|pages=[https://archive.org/details/elementsofinform0000cove/page/210 210–211]|year=1991|publisher=John Wiley & Sons, Inc|isbn=978-0-471-06259-2|url=https://archive.org/details/elementsofinform0000cove/page/210}}</ref> इस कोड में 2 शामिल हैं<sup>4</sup>=16 कोडवर्ड.


==परिभाषा और पैरामीटर==
==परिभाषा और पैरामीटर==
लंबाई ''n'' और आयाम ''k'' का एक रैखिक कोड [[सदिश स्थल]] के [[आयाम (रैखिक बीजगणित)]] ''k'' के साथ एक [[रैखिक उपस्थान]] ''C'' है <math>\mathbb{F}_q^n</math> कहाँ <math>\mathbb{F}_q</math> q तत्वों वाला [[परिमित क्षेत्र]] है। ऐसे कोड को q-ary कोड कहा जाता है। यदि q = 2 या q = 3, तो कोड को क्रमशः 'बाइनरी कोड', या 'टर्नरी कोड' के रूप में वर्णित किया जाता है। C में वेक्टर को कोडवर्ड कहा जाता है। किसी कोड का 'आकार' कोडवर्ड की संख्या है और q के बराबर है<sup>क</sup>.
लंबाई ''n'' और आयाम ''k'' का रैखिक कोड [[सदिश स्थल]] के [[आयाम (रैखिक बीजगणित)]] ''k'' के साथ [[रैखिक उपस्थान]] ''C'' है <math>\mathbb{F}_q^n</math> कहाँ <math>\mathbb{F}_q</math> q तत्वों वाला [[परिमित क्षेत्र]] है। ऐसे कोड को q-ary कोड कहा जाता है। यदि q = 2 या q = 3, तो कोड को क्रमशः 'बाइनरी कोड', या 'टर्नरी कोड' के रूप में वर्णित किया जाता है। C में वेक्टर को कोडवर्ड कहा जाता है। किसी कोड का 'आकार' कोडवर्ड की संख्या है और q के बराबर है<sup>क</sup>.


किसी कोडवर्ड का 'वजन' उसके उन तत्वों की संख्या है जो शून्य नहीं हैं और दो कोडवर्ड के बीच की 'दूरी' उनके बीच की [[हैमिंग दूरी]] है, यानी उन तत्वों की संख्या जिनमें वे भिन्न हैं। रैखिक कोड की दूरी d उसके गैर-शून्य कोडवर्ड का न्यूनतम वजन है, या समकक्ष रूप से, अलग-अलग कोडवर्ड के बीच की न्यूनतम दूरी है। लंबाई n, आयाम k और दूरी d के एक रैखिक कोड को [n,k,d] कोड कहा जाता है (या, अधिक सटीक रूप से, <math>[n,k,d]_q</math> कोड).
किसी कोडवर्ड का 'वजन' उसके उन तत्वों की संख्या है जो शून्य नहीं हैं और दो कोडवर्ड के बीच की 'दूरी' उनके बीच की [[हैमिंग दूरी]] है, यानी उन तत्वों की संख्या जिनमें वे भिन्न हैं। रैखिक कोड की दूरी d उसके गैर-शून्य कोडवर्ड का न्यूनतम वजन है, या समकक्ष रूप से, अलग-अलग कोडवर्ड के बीच की न्यूनतम दूरी है। लंबाई n, आयाम k और दूरी d के रैखिक कोड को [n,k,d] कोड कहा जाता है (या, अधिक सटीक रूप से, <math>[n,k,d]_q</math> कोड).


हम देना चाहते हैं <math>\mathbb{F}_q^n</math> मानक आधार क्योंकि प्रत्येक समन्वय एक बिट का प्रतिनिधित्व करता है जो ट्रांसमिशन त्रुटि (एक [[द्विआधारी सममित चैनल]]) की कुछ छोटी संभावना के साथ एक शोर चैनल में प्रसारित होता है। यदि किसी अन्य आधार का उपयोग किया जाता है तो इस मॉडल का उपयोग नहीं किया जा सकता है और हैमिंग मीट्रिक ट्रांसमिशन में त्रुटियों की संख्या को नहीं मापता है, जैसा कि हम चाहते हैं।
हम देना चाहते हैं <math>\mathbb{F}_q^n</math> मानक आधार क्योंकि प्रत्येक समन्वय बिट का प्रतिनिधित्व करता है जो ट्रांसमिशन त्रुटि (एक [[द्विआधारी सममित चैनल]]) की कुछ छोटी संभावना के साथ शोर चैनल में प्रसारित होता है। यदि किसी अन्य आधार का उपयोग किया जाता है तो इस मॉडल का उपयोग नहीं किया जा सकता है और हैमिंग मीट्रिक ट्रांसमिशन में त्रुटियों की संख्या को नहीं मापता है, जैसा कि हम चाहते हैं।


== जेनरेटर और चेक मैट्रिसेस ==
== जेनरेटर और चेक मैट्रिसेस ==
के एक रैखिक उपस्थान के रूप में <math>\mathbb{F}_q^n</math>, संपूर्ण कोड C (जो बहुत बड़ा हो सकता है) को एक सेट के स्पैन (रैखिक बीजगणित) के रूप में दर्शाया जा सकता है <math>k</math> कोडवर्ड (रैखिक बीजगणित में [[आधार (रैखिक बीजगणित)]] के रूप में जाना जाता है)। ये आधार कोडवर्ड अक्सर मैट्रिक्स जी की पंक्तियों में एकत्रित किए जाते हैं जिन्हें कोड ''सी'' के लिए [[जेनरेटर मैट्रिक्स]] के रूप में जाना जाता है। जब G के पास ब्लॉक मैट्रिक्स फॉर्म है <math>\boldsymbol{G} = [I_k | P]</math>, कहाँ <math>I_k</math> को दर्शाता है <math>k \times k</math> पहचान मैट्रिक्स और पी कुछ है <math>k \times (n-k)</math> मैट्रिक्स, तो हम कहते हैं कि G मानक रूप में है।
के रैखिक उपस्थान के रूप में <math>\mathbb{F}_q^n</math>, संपूर्ण कोड C (जो बहुत बड़ा हो सकता है) को सेट के स्पैन (रैखिक बीजगणित) के रूप में दर्शाया जा सकता है <math>k</math> कोडवर्ड (रैखिक बीजगणित में [[आधार (रैखिक बीजगणित)]] के रूप में जाना जाता है)। ये आधार कोडवर्ड अक्सर मैट्रिक्स जी की पंक्तियों में एकत्रित किए जाते हैं जिन्हें कोड ''सी'' के लिए [[जेनरेटर मैट्रिक्स]] के रूप में जाना जाता है। जब G के पास ब्लॉक मैट्रिक्स फॉर्म है <math>\boldsymbol{G} = [I_k | P]</math>, कहाँ <math>I_k</math> को दर्शाता है <math>k \times k</math> पहचान मैट्रिक्स और पी कुछ है <math>k \times (n-k)</math> मैट्रिक्स, तो हम कहते हैं कि G मानक रूप में है।


एक मैट्रिक्स ''H'' एक रैखिक फ़ंक्शन का प्रतिनिधित्व करता है <math>\phi : \mathbb{F}_q^n\to \mathbb{F}_q^{n-k}</math> जिसका [[कर्नेल (मैट्रिक्स)]] C है, उसे C का '[[ मैट्रिक्स की जाँच करें ]]' (या कभी-कभी पैरिटी चेक मैट्रिक्स) कहा जाता है। समान रूप से, H एक मैट्रिक्स है जिसका शून्य स्थान C है। यदि C मानक रूप में जेनरेटिंग मैट्रिक्स G वाला एक कोड है, <math>\boldsymbol{G} = [I_k | P]</math>, तब <math>\boldsymbol{H} = [-P^{T} | I_{n-k} ]</math> C के लिए एक चेक मैट्रिक्स है। H द्वारा उत्पन्न कोड को C का 'डुअल कोड' कहा जाता है। यह सत्यापित किया जा सकता है कि G एक है <math>k \times n</math> मैट्रिक्स, जबकि H एक है <math>(n-k) \times n</math> आव्यूह।
एक मैट्रिक्स ''H'' रैखिक फ़ंक्शन का प्रतिनिधित्व करता है <math>\phi : \mathbb{F}_q^n\to \mathbb{F}_q^{n-k}</math> जिसका [[कर्नेल (मैट्रिक्स)]] C है, उसे C का '[[ मैट्रिक्स की जाँच करें ]]' (या कभी-कभी पैरिटी चेक मैट्रिक्स) कहा जाता है। समान रूप से, H मैट्रिक्स है जिसका शून्य स्थान C है। यदि C मानक रूप में जेनरेटिंग मैट्रिक्स G वाला कोड है, <math>\boldsymbol{G} = [I_k | P]</math>, तब <math>\boldsymbol{H} = [-P^{T} | I_{n-k} ]</math> C के लिए चेक मैट्रिक्स है। H द्वारा उत्पन्न कोड को C का 'डुअल कोड' कहा जाता है। यह सत्यापित किया जा सकता है कि G है <math>k \times n</math> मैट्रिक्स, जबकि H है <math>(n-k) \times n</math> आव्यूह।


रैखिकता गारंटी देती है कि एक कोडवर्ड c के बीच न्यूनतम हैमिंग दूरी d है<sub>0</sub> और कोई भी अन्य कोडवर्ड c ≠ c<sub>0</sub> सी से स्वतंत्र है<sub>0</sub>. इस गुण से यह पता चलता है कि अंतर c − c है<sub>0</sub> C में दो कोडवर्ड का एक कोडवर्ड भी है (यानी, सबस्पेस C का एक [[तत्व (गणित)]], और वह गुण जो d(c,c) है<sub>0</sub>) = d(c − c<sub>0</sub>,0). ये गुण यही दर्शाते हैं
रैखिकता गारंटी देती है कि कोडवर्ड c के बीच न्यूनतम हैमिंग दूरी d है<sub>0</sub> और कोई भी अन्य कोडवर्ड c ≠ c<sub>0</sub> सी से स्वतंत्र है<sub>0</sub>. इस गुण से यह पता चलता है कि अंतर c − c है<sub>0</sub> C में दो कोडवर्ड का कोडवर्ड भी है (यानी, सबस्पेस C का [[तत्व (गणित)]], और वह गुण जो d(c,c) है<sub>0</sub>) = d(c − c<sub>0</sub>,0). ये गुण यही दर्शाते हैं


:<math>\min_{c \in C,\ c \neq c_0}d(c,c_0)=\min_{c \in C,\ c \neq c_0}d(c-c_0, 0)=\min_{c \in C,\ c \neq 0}d(c, 0)=d.</math>
:<math>\min_{c \in C,\ c \neq c_0}d(c,c_0)=\min_{c \in C,\ c \neq c_0}d(c-c_0, 0)=\min_{c \in C,\ c \neq 0}d(c, 0)=d.</math>
दूसरे शब्दों में, एक रैखिक कोड के कोडवर्ड के बीच न्यूनतम दूरी का पता लगाने के लिए, किसी को केवल गैर-शून्य कोडवर्ड को देखने की आवश्यकता होगी। सबसे छोटे वजन वाले गैर-शून्य कोडवर्ड में शून्य कोडवर्ड की न्यूनतम दूरी होती है, और इसलिए कोड की न्यूनतम दूरी निर्धारित होती है।
दूसरे शब्दों में, रैखिक कोड के कोडवर्ड के बीच न्यूनतम दूरी का पता लगाने के लिए, किसी को केवल गैर-शून्य कोडवर्ड को देखने की आवश्यकता होगी। सबसे छोटे वजन वाले गैर-शून्य कोडवर्ड में शून्य कोडवर्ड की न्यूनतम दूरी होती है, और इसलिए कोड की न्यूनतम दूरी निर्धारित होती है।


एक रैखिक कोड C की दूरी d, चेक मैट्रिक्स H के रैखिक रूप से निर्भर स्तंभों की न्यूनतम संख्या के बराबर होती है।
एक रैखिक कोड C की दूरी d, चेक मैट्रिक्स H के रैखिक रूप से निर्भर स्तंभों की न्यूनतम संख्या के बराबर होती है।


प्रमाण: क्योंकि <math>\boldsymbol{H} \cdot \boldsymbol{c}^T = \boldsymbol{0}</math>, जो के बराबर है <math>\sum_{i=1}^n (c_i \cdot \boldsymbol{H_i}) = \boldsymbol{0}</math>, कहाँ <math>\boldsymbol{H_i}</math> है <math>i^{th}</math> का स्तंभ <math>\boldsymbol{H}</math>. उन वस्तुओं को हटा दें <math>c_i=0</math>, वे <math>\boldsymbol{H_i}</math> साथ <math>c_i \neq 0</math> रैखिक रूप से निर्भर हैं. इसलिए, <math>d</math> कम से कम रैखिक रूप से निर्भर स्तंभों की न्यूनतम संख्या है। दूसरी ओर, रैखिक रूप से निर्भर स्तंभों के न्यूनतम सेट पर विचार करें <math>\{ \boldsymbol{H_j} | j \in S \}</math> कहाँ <math>S</math> कॉलम इंडेक्स सेट है. <math>\sum_{i=1}^n (c_i \cdot \boldsymbol{H_i}) = \sum_{j \in S} (c_j \cdot \boldsymbol{H_j}) + \sum_{j \notin S} (c_j \cdot \boldsymbol{H_j}) =  \boldsymbol{0}</math>. अब वेक्टर पर विचार करें <math>\boldsymbol{c'}</math> ऐसा है कि <math>c_j'=0</math> अगर <math>j \notin S</math>. टिप्पणी <math>\boldsymbol{c'} \in C</math> क्योंकि <math>\boldsymbol{H} \cdot \boldsymbol{c'}^T = \boldsymbol{0}</math> . इसलिए, हमारे पास है <math>d \le wt(\boldsymbol{c'}) </math>, जो कि रैखिक रूप से निर्भर स्तंभों की न्यूनतम संख्या है <math>\boldsymbol{H}</math>. इसलिए दावा की गई संपत्ति प्रमाणित है।
प्रमाण: क्योंकि <math>\boldsymbol{H} \cdot \boldsymbol{c}^T = \boldsymbol{0}</math>, जो के बराबर है <math>\sum_{i=1}^n (c_i \cdot \boldsymbol{H_i}) = \boldsymbol{0}</math>, कहाँ <math>\boldsymbol{H_i}</math> है <math>i^{th}</math> का स्तंभ <math>\boldsymbol{H}</math>. उन वस्तुओं को हटा दें <math>c_i=0</math>, वे <math>\boldsymbol{H_i}</math> साथ <math>c_i \neq 0</math> रैखिक रूप से निर्भर हैं. इसलिए, <math>d</math> कम से कम रैखिक रूप से निर्भर स्तंभों की न्यूनतम संख्या है। दूसरी ओर, रैखिक रूप से निर्भर स्तंभों के न्यूनतम सेट पर विचार करें <math>\{ \boldsymbol{H_j} | j \in S \}</math> कहाँ <math>S</math> कॉलम इंडेक्स सेट है. <math>\sum_{i=1}^n (c_i \cdot \boldsymbol{H_i}) = \sum_{j \in S} (c_j \cdot \boldsymbol{H_j}) + \sum_{j \notin S} (c_j \cdot \boldsymbol{H_j}) =  \boldsymbol{0}</math>. अब वेक्टर पर विचार करें <math>\boldsymbol{c'}</math> ऐसा है कि <math>c_j'=0</math> अगर <math>j \notin S</math>. टिप्पणी <math>\boldsymbol{c'} \in C</math> क्योंकि <math>\boldsymbol{H} \cdot \boldsymbol{c'}^T = \boldsymbol{0}</math> . इसलिए, हमारे पास है <math>d \le wt(\boldsymbol{c'}) </math>, जो कि रैखिक रूप से निर्भर स्तंभों की न्यूनतम संख्या है <math>\boldsymbol{H}</math>. इसलिए दावा की गई संपत्ति प्रमाणित है।


== उदाहरण: हैमिंग कोड ==
== उदाहरण: हैमिंग कोड ==
Line 29: Line 29:
{{main|Hamming code}}
{{main|Hamming code}}


त्रुटि सुधार के उद्देश्य से विकसित रैखिक कोड की पहली श्रेणी के रूप में, डिजिटल संचार प्रणालियों में हैमिंग कोड का व्यापक रूप से उपयोग किया गया है। किसी भी सकारात्मक पूर्णांक के लिए <math>r \ge 2 </math>, वहाँ एक मौजूद है <math> [2^r-1, 2^r-r-1,3]_2</math> हैमिंग कोड. तब से <math>d=3</math>, यह हैमिंग कोड 1-बिट त्रुटि को ठीक कर सकता है।
त्रुटि सुधार के उद्देश्य से विकसित रैखिक कोड की पहली श्रेणी के रूप में, डिजिटल संचार प्रणालियों में हैमिंग कोड का व्यापक रूप से उपयोग किया गया है। किसी भी सकारात्मक पूर्णांक के लिए <math>r \ge 2 </math>, वहाँ मौजूद है <math> [2^r-1, 2^r-r-1,3]_2</math> हैमिंग कोड. तब से <math>d=3</math>, यह हैमिंग कोड 1-बिट त्रुटि को ठीक कर सकता है।


उदाहरण: निम्नलिखित जनरेटर मैट्रिक्स और पैरिटी चेक मैट्रिक्स के साथ रैखिक ब्लॉक कोड एक है <math> [7,4,3]_2</math> हैमिंग कोड.
उदाहरण: निम्नलिखित जनरेटर मैट्रिक्स और पैरिटी चेक मैट्रिक्स के साथ रैखिक ब्लॉक कोड है <math> [7,4,3]_2</math> हैमिंग कोड.


: <math>\boldsymbol{G}=\begin{pmatrix} 1\ 0\ 0\ 0\ 1\ 1\ 0 \\ 0\ 1\ 0\ 0\ 0\ 1\ 1 \\ 0\ 0\ 1\ 0\ 1\ 1\ 1 \\ 0\ 0\ 0\ 1\ 1\ 0\ 1 \end{pmatrix}  ,</math> <math>\boldsymbol{H}=\begin{pmatrix} 1\ 0\ 1\ 1\ 1\ 0\ 0 \\ 1\ 1\ 1\ 0\ 0\ 1\ 0 \\ 0\ 1\ 1\ 1\ 0\ 0\ 1  \end{pmatrix}</math>
: <math>\boldsymbol{G}=\begin{pmatrix} 1\ 0\ 0\ 0\ 1\ 1\ 0 \\ 0\ 1\ 0\ 0\ 0\ 1\ 1 \\ 0\ 0\ 1\ 0\ 1\ 1\ 1 \\ 0\ 0\ 0\ 1\ 1\ 0\ 1 \end{pmatrix}  ,</math> <math>\boldsymbol{H}=\begin{pmatrix} 1\ 0\ 1\ 1\ 1\ 0\ 0 \\ 1\ 1\ 1\ 0\ 0\ 1\ 0 \\ 0\ 1\ 1\ 1\ 0\ 0\ 1  \end{pmatrix}</math>




Line 40: Line 40:
{{main|Hadamard code}}
{{main|Hadamard code}}


Hadamard कोड एक है <math>[2^r, r, 2^{r-1}]_2 </math> रैखिक कोड और कई त्रुटियों को ठीक करने में सक्षम है। हैडामर्ड कोड को कॉलम दर कॉलम बनाया जा सकता है: द <math>i^{th}</math> स्तंभ पूर्णांक के द्विआधारी प्रतिनिधित्व का बिट है <math>i</math>, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है। हैडामर्ड कोड में न्यूनतम दूरी होती है <math>2^{r-1}</math> और इसलिए सही कर सकते हैं <math>2^{r-2}-1</math> त्रुटियाँ.
Hadamard कोड है <math>[2^r, r, 2^{r-1}]_2 </math> रैखिक कोड और कई त्रुटियों को ठीक करने में सक्षम है। हैडामर्ड कोड को कॉलम दर कॉलम बनाया जा सकता है: द <math>i^{th}</math> स्तंभ पूर्णांक के द्विआधारी प्रतिनिधित्व का बिट है <math>i</math>, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है। हैडामर्ड कोड में न्यूनतम दूरी होती है <math>2^{r-1}</math> और इसलिए सही कर सकते हैं <math>2^{r-2}-1</math> त्रुटियाँ.


उदाहरण: निम्नलिखित जनरेटर मैट्रिक्स के साथ रैखिक ब्लॉक कोड एक है <math> [8,3,4]_2</math> हैडामर्ड कोड:
उदाहरण: निम्नलिखित जनरेटर मैट्रिक्स के साथ रैखिक ब्लॉक कोड है <math> [8,3,4]_2</math> हैडामर्ड कोड:
<math>\boldsymbol{G}_{Had}=\begin{pmatrix} 0\ 0\ 0\ 0\ 1\ 1\ 1\ 1\\ 0\ 0\ 1\ 1\ 0\ 0\ 1\ 1\\ 0\ 1\ 0\ 1\ 0\ 1\ 0\  1\end{pmatrix}</math>.
<math>\boldsymbol{G}_{Had}=\begin{pmatrix} 0\ 0\ 0\ 0\ 1\ 1\ 1\ 1\\ 0\ 0\ 1\ 1\ 0\ 0\ 1\ 1\\ 0\ 1\ 0\ 1\ 0\ 1\ 0\  1\end{pmatrix}</math>.


हैडामर्ड कोड रीड-मुलर कोड का एक विशेष मामला है। यदि हम पहला कॉलम (सर्व-शून्य कॉलम) निकालते हैं <math>\boldsymbol{G}_{Had}</math>, हम पाते हैं <math>[7,3,4]_2</math> सिम्प्लेक्स कोड, जो हैमिंग कोड का दोहरा कोड है।
हैडामर्ड कोड रीड-मुलर कोड का विशेष मामला है। यदि हम पहला कॉलम (सर्व-शून्य कॉलम) निकालते हैं <math>\boldsymbol{G}_{Had}</math>, हम पाते हैं <math>[7,3,4]_2</math> सिम्प्लेक्स कोड, जो हैमिंग कोड का दोहरा कोड है।


==निकटतम पड़ोसी एल्गोरिदम==
==निकटतम पड़ोसी एल्गोरिदम==
Line 53: Line 53:
इनपुट: ए प्राप्त वेक्टर वी इन <math>\mathbb{F}_q^n</math> .
इनपुट: ए प्राप्त वेक्टर वी इन <math>\mathbb{F}_q^n</math> .


आउटपुट: एक कोडवर्ड <math>w</math> में <math>C</math> से नजदीकी <math>v</math>, यदि कोई।
आउटपुट: कोडवर्ड <math>w</math> में <math>C</math> से नजदीकी <math>v</math>, यदि कोई।


*प्रारंभ स्थल <math>t=0</math>, निम्नलिखित दो चरणों को दोहराएँ।
*प्रारंभ स्थल <math>t=0</math>, निम्नलिखित दो चरणों को दोहराएँ।
Line 60: Line 60:
*वृद्धि <math>t</math>. असफल तभी जब <math>t > (d - 1)/2</math> इसलिए गणना पूरी हो गई है और कोई समाधान नहीं निकला है।
*वृद्धि <math>t</math>. असफल तभी जब <math>t > (d - 1)/2</math> इसलिए गणना पूरी हो गई है और कोई समाधान नहीं निकला है।


हम कहते हैं कि एक रैखिक <math>C</math> है <math>t</math>-यदि अधिकतम एक कोडवर्ड है तो त्रुटि सुधारना <math>B_t(v)</math>, प्रत्येक के लिए <math>v</math> में <math>\mathbb{F}_q^n</math>.
हम कहते हैं कि रैखिक <math>C</math> है <math>t</math>-यदि अधिकतम कोडवर्ड है तो त्रुटि सुधारना <math>B_t(v)</math>, प्रत्येक के लिए <math>v</math> में <math>\mathbb{F}_q^n</math>.


==लोकप्रिय संकेतन==
==लोकप्रिय संकेतन==
{{main|Block code#Popular notation}}
{{main|Block code#Popular notation}}
सामान्य तौर पर [[कोड]] को अक्सर C अक्षर से दर्शाया जाता है, और लंबाई n और आयाम (रैखिक बीजगणित) k (यानी, इसके आधार में k कोड शब्द और इसके जेनरेटिंग मैट्रिक्स में k पंक्तियाँ) वाले कोड को आम तौर पर एक ( n,k) कोड। रैखिक ब्लॉक कोड को अक्सर [n,k,d] कोड के रूप में दर्शाया जाता है, जहां d किन्हीं दो कोड शब्दों के बीच कोड की न्यूनतम हैमिंग दूरी को संदर्भित करता है।
सामान्य तौर पर [[कोड]] को अक्सर C अक्षर से दर्शाया जाता है, और लंबाई n और आयाम (रैखिक बीजगणित) k (यानी, इसके आधार में k कोड शब्द और इसके जेनरेटिंग मैट्रिक्स में k पंक्तियाँ) वाले कोड को आम तौर पर ( n,k) कोड। रैखिक ब्लॉक कोड को अक्सर [n,k,d] कोड के रूप में दर्शाया जाता है, जहां d किन्हीं दो कोड शब्दों के बीच कोड की न्यूनतम हैमिंग दूरी को संदर्भित करता है।


([एन, के, डी] नोटेशन को (एन, एम, डी) नोटेशन के साथ भ्रमित नहीं किया जाना चाहिए, जिसका उपयोग लंबाई एन, आकार एम (यानी, एम कोड शब्द वाले) और न्यूनतम हैमिंग के गैर-रेखीय कोड को दर्शाने के लिए किया जाता है। दूरी डी.)
([एन, के, डी] नोटेशन को (एन, एम, डी) नोटेशन के साथ भ्रमित नहीं किया जाना चाहिए, जिसका उपयोग लंबाई एन, आकार एम (यानी, एम कोड शब्द वाले) और न्यूनतम हैमिंग के गैर-रेखीय कोड को दर्शाने के लिए किया जाता है। दूरी डी.)
Line 76: Line 76:
यदि सी<sub>1</sub> और सी<sub>2</sub> लंबाई n के दो कोड हैं और यदि [[सममित समूह]] S में कोई क्रमपरिवर्तन p है<sub>n</sub> जिसके लिए (सी<sub>1</sub>,...,सी<sub>n</sub>) सी में<sub>1</sub> यदि और केवल यदि (सी<sub>p(1)</sub>,...,सी<sub>p(n)</sub>) सी में<sub>2</sub>, तो हम कहते हैं C<sub>1</sub> और सी<sub>2</sub> क्रमपरिवर्तन समतुल्य हैं। अधिक व्यापकता में, यदि कोई है <math>n\times n</math> [[एकपदी मैट्रिक्स]] <math>M\colon \mathbb{F}_q^n \to \mathbb{F}_q^n</math> जो C भेजता है<sub>1</sub> समरूपी रूप से C<sub>2</sub> तो हम कहते हैं सी<sub>1</sub> और सी<sub>2</sub> समतुल्य हैं.
यदि सी<sub>1</sub> और सी<sub>2</sub> लंबाई n के दो कोड हैं और यदि [[सममित समूह]] S में कोई क्रमपरिवर्तन p है<sub>n</sub> जिसके लिए (सी<sub>1</sub>,...,सी<sub>n</sub>) सी में<sub>1</sub> यदि और केवल यदि (सी<sub>p(1)</sub>,...,सी<sub>p(n)</sub>) सी में<sub>2</sub>, तो हम कहते हैं C<sub>1</sub> और सी<sub>2</sub> क्रमपरिवर्तन समतुल्य हैं। अधिक व्यापकता में, यदि कोई है <math>n\times n</math> [[एकपदी मैट्रिक्स]] <math>M\colon \mathbb{F}_q^n \to \mathbb{F}_q^n</math> जो C भेजता है<sub>1</sub> समरूपी रूप से C<sub>2</sub> तो हम कहते हैं सी<sub>1</sub> और सी<sub>2</sub> समतुल्य हैं.


''लेम्मा'': कोई भी रैखिक कोड एक कोड के समतुल्य क्रमपरिवर्तन है जो मानक रूप में है।
''लेम्मा'': कोई भी रैखिक कोड कोड के समतुल्य क्रमपरिवर्तन है जो मानक रूप में है।


==बोनिसोली का प्रमेय==
==बोनिसोली का प्रमेय==
एक कोड को समान दूरी के रूप में परिभाषित किया जाता है यदि और केवल तभी जब कुछ स्थिरांक ''d'' मौजूद हो, जैसे कि कोड के किन्हीं दो अलग-अलग कोडवर्ड के बीच की दूरी ''d'' के बराबर हो।<ref>{{cite arXiv|author=Etzion, Tuvi|author2=Raviv, Netanel|title=ग्रासमैनियन में समदूरस्थ कोड|year=2013|eprint=1308.6231|class=math.CO}}</ref> 1984 में एरिगो बोनीसोली ने परिमित क्षेत्रों पर रैखिक एक-भार कोड की संरचना निर्धारित की और साबित किया कि प्रत्येक समदूरस्थ रैखिक कोड w: दोहरे कोड हैमिंग कोड का एक अनुक्रम है।<ref>{{cite journal|author=Bonisoli, A.|year=1984|title=प्रत्येक समदूरस्थ रैखिक कोड दोहरे हैमिंग कोड का एक क्रम है|journal=Ars Combinatoria|volume=18|pages=181–186}}</ref>
एक कोड को समान दूरी के रूप में परिभाषित किया जाता है यदि और केवल तभी जब कुछ स्थिरांक ''d'' मौजूद हो, जैसे कि कोड के किन्हीं दो अलग-अलग कोडवर्ड के बीच की दूरी ''d'' के बराबर हो।<ref>{{cite arXiv|author=Etzion, Tuvi|author2=Raviv, Netanel|title=ग्रासमैनियन में समदूरस्थ कोड|year=2013|eprint=1308.6231|class=math.CO}}</ref> 1984 में एरिगो बोनीसोली ने परिमित क्षेत्रों पर रैखिक एक-भार कोड की संरचना निर्धारित की और साबित किया कि प्रत्येक समदूरस्थ रैखिक कोड w: दोहरे कोड हैमिंग कोड का अनुक्रम है।<ref>{{cite journal|author=Bonisoli, A.|year=1984|title=प्रत्येक समदूरस्थ रैखिक कोड दोहरे हैमिंग कोड का एक क्रम है|journal=Ars Combinatoria|volume=18|pages=181–186}}</ref>




Line 103: Line 103:


==सामान्यीकरण==
==सामान्यीकरण==
गैर-क्षेत्रीय वर्णमाला पर हैमिंग रिक्त स्थान पर भी विचार किया गया है, विशेष रूप से परिमित रिंगों पर, विशेष रूप से मॉड्यूलर अंकगणित पर [[गैलोज़ रिंग]]्स|Z<sub>4</sub>. यह वेक्टर स्पेस के बजाय [[मॉड्यूल (गणित)]] और रैखिक कोड के बजाय [[रिंग-लीनियर कोड]] ([[सबमॉड्यूल]] के साथ पहचाने गए) को जन्म देता है। इस मामले में उपयोग की जाने वाली विशिष्ट मीट्रिक [[ली दूरी]] है। इनके बीच एक [[ग्रे आइसोमेट्री]] मौजूद है <math>\mathbb{Z}_2^{2m}</math> (यानी जीएफ(2<sup>2 मी</sup>)) हैमिंग दूरी के साथ और <math>\mathbb{Z}_4^m</math> (ली दूरी के साथ जीआर(4,एम) के रूप में भी दर्शाया गया है); इसका मुख्य आकर्षण यह है कि यह कुछ अच्छे कोडों के बीच एक पत्राचार स्थापित करता है जो रैखिक नहीं होते हैं <math>\mathbb{Z}_2^{2m}</math> रिंग-लीनियर कोड की छवियों के रूप में <math>\mathbb{Z}_4^m</math>.<ref name="Greferath2009">{{cite book |editor=Massimiliano Sala |editor2=Teo Mora |editor3=Ludovic Perret |editor4=Shojiro Sakata |editor5=Carlo Traverso|title=Gröbner Bases, Coding, and Cryptography|year=2009|publisher=Springer Science & Business Media|isbn=978-3-540-93806-4|chapter=An Introduction to Ring-Linear Coding Theory|author=Marcus Greferath}}</ref><ref>{{Cite web|url=https://www.encyclopediaofmath.org/index.php/Main_Page|title=गणित का विश्वकोश|website=www.encyclopediaofmath.org}}</ref><ref name="Lint1999">{{cite book|author=J.H. van Lint|title=कोडिंग सिद्धांत का परिचय|url=https://archive.org/details/introductiontoco0000lint_a3b9|url-access=registration|year=1999|publisher=Springer|isbn=978-3-540-64133-9|edition=3rd|at=Chapter 8: Codes over ℤ<sub>4</sub>}}</ref>
गैर-क्षेत्रीय वर्णमाला पर हैमिंग रिक्त स्थान पर भी विचार किया गया है, विशेष रूप से परिमित रिंगों पर, विशेष रूप से मॉड्यूलर अंकगणित पर [[गैलोज़ रिंग]]्स|Z<sub>4</sub>. यह वेक्टर स्पेस के बजाय [[मॉड्यूल (गणित)]] और रैखिक कोड के बजाय [[रिंग-लीनियर कोड]] ([[सबमॉड्यूल]] के साथ पहचाने गए) को जन्म देता है। इस मामले में उपयोग की जाने वाली विशिष्ट मीट्रिक [[ली दूरी]] है। इनके बीच [[ग्रे आइसोमेट्री]] मौजूद है <math>\mathbb{Z}_2^{2m}</math> (यानी जीएफ(2<sup>2 मी</sup>)) हैमिंग दूरी के साथ और <math>\mathbb{Z}_4^m</math> (ली दूरी के साथ जीआर(4,एम) के रूप में भी दर्शाया गया है); इसका मुख्य आकर्षण यह है कि यह कुछ अच्छे कोडों के बीच पत्राचार स्थापित करता है जो रैखिक नहीं होते हैं <math>\mathbb{Z}_2^{2m}</math> रिंग-लीनियर कोड की छवियों के रूप में <math>\mathbb{Z}_4^m</math>.<ref name="Greferath2009">{{cite book |editor=Massimiliano Sala |editor2=Teo Mora |editor3=Ludovic Perret |editor4=Shojiro Sakata |editor5=Carlo Traverso|title=Gröbner Bases, Coding, and Cryptography|year=2009|publisher=Springer Science & Business Media|isbn=978-3-540-93806-4|chapter=An Introduction to Ring-Linear Coding Theory|author=Marcus Greferath}}</ref><ref>{{Cite web|url=https://www.encyclopediaofmath.org/index.php/Main_Page|title=गणित का विश्वकोश|website=www.encyclopediaofmath.org}}</ref><ref name="Lint1999">{{cite book|author=J.H. van Lint|title=कोडिंग सिद्धांत का परिचय|url=https://archive.org/details/introductiontoco0000lint_a3b9|url-access=registration|year=1999|publisher=Springer|isbn=978-3-540-64133-9|edition=3rd|at=Chapter 8: Codes over ℤ<sub>4</sub>}}</ref>
अभी हाल ही में,{{when|date=May 2015}} कुछ लेखकों ने रिंगों पर ऐसे कोड को केवल रैखिक कोड के रूप में भी संदर्भित किया है।<ref name="DoughertyFacchini2015">{{cite book |editor=Steven Dougherty |editor2=Alberto Facchini |editor3=Andre Gerard Leroy |editor4=Edmund Puczylowski |editor5=Patrick Sole|title=नॉनकम्यूटेटिव रिंग्स और उनके अनुप्रयोग|chapter-url=https://books.google.com/books?id=psrXBgAAQBAJ&pg=PA80|year=2015|publisher=American Mathematical Soc.|isbn=978-1-4704-1032-2|page=80|chapter=Open Problems in Coding Theory|author=S.T. Dougherty |author2=J.-L. Kim |author3=P. Sole}}</ref>
अभी हाल ही में,{{when|date=May 2015}} कुछ लेखकों ने रिंगों पर ऐसे कोड को केवल रैखिक कोड के रूप में भी संदर्भित किया है।<ref name="DoughertyFacchini2015">{{cite book |editor=Steven Dougherty |editor2=Alberto Facchini |editor3=Andre Gerard Leroy |editor4=Edmund Puczylowski |editor5=Patrick Sole|title=नॉनकम्यूटेटिव रिंग्स और उनके अनुप्रयोग|chapter-url=https://books.google.com/books?id=psrXBgAAQBAJ&pg=PA80|year=2015|publisher=American Mathematical Soc.|isbn=978-1-4704-1032-2|page=80|chapter=Open Problems in Coding Theory|author=S.T. Dougherty |author2=J.-L. Kim |author3=P. Sole}}</ref>



Revision as of 16:07, 22 July 2023

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

रैखिक कोड का उपयोग आगे की त्रुटि सुधार में किया जाता है और संचार चैनल पर प्रतीकों (जैसे, अंश ्स) को प्रसारित करने के तरीकों में लागू किया जाता है ताकि, यदि संचार में त्रुटियां होती हैं, तो संदेश ब्लॉक के प्राप्तकर्ता द्वारा कुछ त्रुटियों को ठीक किया जा सके या पता लगाया जा सके। रैखिक ब्लॉक कोड में कोडवर्ड प्रतीकों के ब्लॉक होते हैं जिन्हें भेजे जाने वाले मूल मान से अधिक प्रतीकों का उपयोग करके एन्कोड किया जाता है।[2] लंबाई n का रैखिक कोड n प्रतीकों वाले ब्लॉक को प्रसारित करता है। उदाहरण के लिए, [7,4,3] हैमिंग कोड रैखिक बाइनरी कोड है जो 7-बिट कोडवर्ड का उपयोग करके 4-बिट संदेशों का प्रतिनिधित्व करता है। दो अलग-अलग कोडवर्ड कम से कम तीन बिट में भिन्न होते हैं। परिणामस्वरूप, प्रति कोडवर्ड अधिकतम दो त्रुटियों का पता लगाया जा सकता है जबकि त्रुटि को ठीक किया जा सकता है।[3] इस कोड में 2 शामिल हैं4=16 कोडवर्ड.

परिभाषा और पैरामीटर

लंबाई n और आयाम k का रैखिक कोड सदिश स्थल के आयाम (रैखिक बीजगणित) k के साथ रैखिक उपस्थान C है कहाँ q तत्वों वाला परिमित क्षेत्र है। ऐसे कोड को q-ary कोड कहा जाता है। यदि q = 2 या q = 3, तो कोड को क्रमशः 'बाइनरी कोड', या 'टर्नरी कोड' के रूप में वर्णित किया जाता है। C में वेक्टर को कोडवर्ड कहा जाता है। किसी कोड का 'आकार' कोडवर्ड की संख्या है और q के बराबर है.

किसी कोडवर्ड का 'वजन' उसके उन तत्वों की संख्या है जो शून्य नहीं हैं और दो कोडवर्ड के बीच की 'दूरी' उनके बीच की हैमिंग दूरी है, यानी उन तत्वों की संख्या जिनमें वे भिन्न हैं। रैखिक कोड की दूरी d उसके गैर-शून्य कोडवर्ड का न्यूनतम वजन है, या समकक्ष रूप से, अलग-अलग कोडवर्ड के बीच की न्यूनतम दूरी है। लंबाई n, आयाम k और दूरी d के रैखिक कोड को [n,k,d] कोड कहा जाता है (या, अधिक सटीक रूप से, कोड).

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

जेनरेटर और चेक मैट्रिसेस

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

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

रैखिकता गारंटी देती है कि कोडवर्ड c के बीच न्यूनतम हैमिंग दूरी d है0 और कोई भी अन्य कोडवर्ड c ≠ c0 सी से स्वतंत्र है0. इस गुण से यह पता चलता है कि अंतर c − c है0 C में दो कोडवर्ड का कोडवर्ड भी है (यानी, सबस्पेस C का तत्व (गणित), और वह गुण जो d(c,c) है0) = d(c − c0,0). ये गुण यही दर्शाते हैं

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

एक रैखिक कोड C की दूरी d, चेक मैट्रिक्स H के रैखिक रूप से निर्भर स्तंभों की न्यूनतम संख्या के बराबर होती है।

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

उदाहरण: हैमिंग कोड

त्रुटि सुधार के उद्देश्य से विकसित रैखिक कोड की पहली श्रेणी के रूप में, डिजिटल संचार प्रणालियों में हैमिंग कोड का व्यापक रूप से उपयोग किया गया है। किसी भी सकारात्मक पूर्णांक के लिए , वहाँ मौजूद है हैमिंग कोड. तब से , यह हैमिंग कोड 1-बिट त्रुटि को ठीक कर सकता है।

उदाहरण: निम्नलिखित जनरेटर मैट्रिक्स और पैरिटी चेक मैट्रिक्स के साथ रैखिक ब्लॉक कोड है हैमिंग कोड.


उदाहरण: हैडामर्ड कोड

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

उदाहरण: निम्नलिखित जनरेटर मैट्रिक्स के साथ रैखिक ब्लॉक कोड है हैडामर्ड कोड: .

हैडामर्ड कोड रीड-मुलर कोड का विशेष मामला है। यदि हम पहला कॉलम (सर्व-शून्य कॉलम) निकालते हैं , हम पाते हैं सिम्प्लेक्स कोड, जो हैमिंग कोड का दोहरा कोड है।

निकटतम पड़ोसी एल्गोरिदम

पैरामीटर d कोड की त्रुटि सुधार क्षमता से निकटता से संबंधित है। निम्नलिखित निर्माण/एल्गोरिदम इसे दर्शाता है (जिसे निकटतम पड़ोसी डिकोडिंग एल्गोरिदम कहा जाता है):

इनपुट: ए प्राप्त वेक्टर वी इन .

आउटपुट: कोडवर्ड में से नजदीकी , यदि कोई।

  • प्रारंभ स्थल , निम्नलिखित दो चरणों को दोहराएँ।
  • (हैमिंग) त्रिज्या की गेंद के तत्वों की गणना करें प्राप्त शब्द के आसपास , निरूपित .
    • प्रत्येक के लिए में , अगर जांच में . यदि ऐसा है तो वापस लौटें समाधान के रूप में.
  • वृद्धि . असफल तभी जब इसलिए गणना पूरी हो गई है और कोई समाधान नहीं निकला है।

हम कहते हैं कि रैखिक है -यदि अधिकतम कोडवर्ड है तो त्रुटि सुधारना , प्रत्येक के लिए में .

लोकप्रिय संकेतन

सामान्य तौर पर कोड को अक्सर C अक्षर से दर्शाया जाता है, और लंबाई n और आयाम (रैखिक बीजगणित) k (यानी, इसके आधार में k कोड शब्द और इसके जेनरेटिंग मैट्रिक्स में k पंक्तियाँ) वाले कोड को आम तौर पर ( n,k) कोड। रैखिक ब्लॉक कोड को अक्सर [n,k,d] कोड के रूप में दर्शाया जाता है, जहां d किन्हीं दो कोड शब्दों के बीच कोड की न्यूनतम हैमिंग दूरी को संदर्भित करता है।

([एन, के, डी] नोटेशन को (एन, एम, डी) नोटेशन के साथ भ्रमित नहीं किया जाना चाहिए, जिसका उपयोग लंबाई एन, आकार एम (यानी, एम कोड शब्द वाले) और न्यूनतम हैमिंग के गैर-रेखीय कोड को दर्शाने के लिए किया जाता है। दूरी डी.)

सिंगलटन बाध्य

लेम्मा (सिंगलटन बाउंड): प्रत्येक रैखिक [n,k,d] कोड C संतुष्ट करता है .

एक कोड C जिसके पैरामीटर k+d=n+1 को संतुष्ट करते हैं, अधिकतम दूरी वियोज्य या MDS कहलाता है। ऐसे कोड, जब वे मौजूद होते हैं, कुछ अर्थों में सर्वोत्तम संभव होते हैं।

यदि सी1 और सी2 लंबाई n के दो कोड हैं और यदि सममित समूह S में कोई क्रमपरिवर्तन p हैn जिसके लिए (सी1,...,सीn) सी में1 यदि और केवल यदि (सीp(1),...,सीp(n)) सी में2, तो हम कहते हैं C1 और सी2 क्रमपरिवर्तन समतुल्य हैं। अधिक व्यापकता में, यदि कोई है एकपदी मैट्रिक्स जो C भेजता है1 समरूपी रूप से C2 तो हम कहते हैं सी1 और सी2 समतुल्य हैं.

लेम्मा: कोई भी रैखिक कोड कोड के समतुल्य क्रमपरिवर्तन है जो मानक रूप में है।

बोनिसोली का प्रमेय

एक कोड को समान दूरी के रूप में परिभाषित किया जाता है यदि और केवल तभी जब कुछ स्थिरांक d मौजूद हो, जैसे कि कोड के किन्हीं दो अलग-अलग कोडवर्ड के बीच की दूरी d के बराबर हो।[4] 1984 में एरिगो बोनीसोली ने परिमित क्षेत्रों पर रैखिक एक-भार कोड की संरचना निर्धारित की और साबित किया कि प्रत्येक समदूरस्थ रैखिक कोड w: दोहरे कोड हैमिंग कोड का अनुक्रम है।[5]


उदाहरण

रैखिक कोड के कुछ उदाहरणों में शामिल हैं:

सामान्यीकरण

गैर-क्षेत्रीय वर्णमाला पर हैमिंग रिक्त स्थान पर भी विचार किया गया है, विशेष रूप से परिमित रिंगों पर, विशेष रूप से मॉड्यूलर अंकगणित पर गैलोज़ रिंग्स|Z4. यह वेक्टर स्पेस के बजाय मॉड्यूल (गणित) और रैखिक कोड के बजाय रिंग-लीनियर कोड (सबमॉड्यूल के साथ पहचाने गए) को जन्म देता है। इस मामले में उपयोग की जाने वाली विशिष्ट मीट्रिक ली दूरी है। इनके बीच ग्रे आइसोमेट्री मौजूद है (यानी जीएफ(22 मी)) हैमिंग दूरी के साथ और (ली दूरी के साथ जीआर(4,एम) के रूप में भी दर्शाया गया है); इसका मुख्य आकर्षण यह है कि यह कुछ अच्छे कोडों के बीच पत्राचार स्थापित करता है जो रैखिक नहीं होते हैं रिंग-लीनियर कोड की छवियों के रूप में .[6][7][8] अभी हाल ही में,[when?] कुछ लेखकों ने रिंगों पर ऐसे कोड को केवल रैखिक कोड के रूप में भी संदर्भित किया है।[9]


यह भी देखें

संदर्भ

  1. William E. Ryan and Shu Lin (2009). Channel Codes: Classical and Modern. Cambridge University Press. p. 4. ISBN 978-0-521-84868-8.
  2. MacKay, David, J.C. (2003). सूचना सिद्धांत, अनुमान और शिक्षण एल्गोरिदम (PDF). Cambridge University Press. p. 9. Bibcode:2003itil.book.....M. ISBN 9780521642989. In a linear block code, the extra bits are linear functions of the original bits; these extra bits are called parity-check bits{{cite book}}: CS1 maint: multiple names: authors list (link)
  3. Thomas M. Cover and Joy A. Thomas (1991). सूचना सिद्धांत के तत्व. John Wiley & Sons, Inc. pp. 210–211. ISBN 978-0-471-06259-2.
  4. Etzion, Tuvi; Raviv, Netanel (2013). "ग्रासमैनियन में समदूरस्थ कोड". arXiv:1308.6231 [math.CO].
  5. Bonisoli, A. (1984). "प्रत्येक समदूरस्थ रैखिक कोड दोहरे हैमिंग कोड का एक क्रम है". Ars Combinatoria. 18: 181–186.
  6. Marcus Greferath (2009). "An Introduction to Ring-Linear Coding Theory". In Massimiliano Sala; Teo Mora; Ludovic Perret; Shojiro Sakata; Carlo Traverso (eds.). Gröbner Bases, Coding, and Cryptography. Springer Science & Business Media. ISBN 978-3-540-93806-4.
  7. "गणित का विश्वकोश". www.encyclopediaofmath.org.
  8. J.H. van Lint (1999). कोडिंग सिद्धांत का परिचय (3rd ed.). Springer. Chapter 8: Codes over ℤ4. ISBN 978-3-540-64133-9.
  9. S.T. Dougherty; J.-L. Kim; P. Sole (2015). "Open Problems in Coding Theory". In Steven Dougherty; Alberto Facchini; Andre Gerard Leroy; Edmund Puczylowski; Patrick Sole (eds.). नॉनकम्यूटेटिव रिंग्स और उनके अनुप्रयोग. American Mathematical Soc. p. 80. ISBN 978-1-4704-1032-2.



ग्रन्थसूची

  • J. F. Humphreys; M. Y. Prest (2004). Numbers, Groups and Codes (2nd ed.). Cambridge University Press. ISBN 978-0-511-19420-7. Chapter 5 contains a more gentle introduction (than this article) to the subject of linear codes.


बाहरी संबंध