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

From Vigyanwiki
No edit summary
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> रैखिक कोड अन्य कोड की तुलना में अधिक कुशल एन्कोडिंग और डिकोडिंग एल्गोरिदम की अनुमति देते हैं (सीएफ [[सिंड्रोम डिकोडिंग]])।
[[कोडिंग सिद्धांत]] में, '''रैखिक कोड''' त्रुटि-सुधार करने वाला कोड होता है जिसके लिए [[कोड शब्द]] का कोई भी [[रैखिक संयोजन]] भी कोडवर्ड होता है। रैखिक कोड को पारंपरिक रूप से [[ब्लॉक कोड]] और [[कन्वोल्यूशनल कोड]] में विभाजित किया जाता है, चूँकि [[टर्बो कोड]] को इन दो प्रकारों के हाइब्रिड के रूप में देखा जा सकता है।<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>k</sup> के समान है.


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


हम देना चाहते हैं <math>\mathbb{F}_q^n</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>, संपूर्ण कोड 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 की पंक्तियों में एकत्रित किया जाता है, जिसे कोड C के लिए [[जेनरेटर मैट्रिक्स|जेनरेटर आव्यूह]] के रूप में जाना जाता है। जब G के पास ब्लॉक आव्यूह फॉर्म <math>\boldsymbol{G} = [I_k | P]</math> होता है, तो हम <math>I_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> c<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> हैं वे रैखिक रूप से निर्भर हैं। इसलिए, d कम से कम रैखिक रूप से निर्भर स्तंभों की न्यूनतम संख्या है। दूसरी ओर, रैखिक रूप से निर्भर स्तंभों के न्यूनतम समुच्चय पर विचार करें <math>c_i \neq 0</math> जहां S स्तंभ सूचकांक समुच्चय है। <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>d \le wt(\boldsymbol{c'}) </math> है, जो <math>\boldsymbol{H}</math> में रैखिक रूप से निर्भर स्तंभों की न्यूनतम संख्या है। इसलिए प्रमाणित की गई प्रोपर्टी सिद्ध है।


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


{{main|Hamming code}}
{{main|हैमिंग कोड}}
 
त्रुटि सुधार के उद्देश्य से विकसित रैखिक कोड की पहली श्रेणी के रूप में, डिजिटल संचार प्रणालियों में हैमिंग कोड का व्यापक रूप से उपयोग किया गया है। किसी भी धनात्मक पूर्णांक <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 38: Line 42:
== उदाहरण: हैडामर्ड कोड ==
== उदाहरण: हैडामर्ड कोड ==


{{main|Hadamard code}}
{{main|हैडामर्ड कोड}}
 
 
हैडामर्ड कोड एक <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> सिंप्लेक्स कोड मिलता है, जो हैमिंग कोड का दोहरा कोड है।
 
==निकटतम नेबर एल्गोरिदम==


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


पैरामीटर d कोड की त्रुटि सुधार क्षमता से निकटता से संबंधित है। निम्नलिखित निर्माण/एल्गोरिदम इसे दर्शाता है (जिसे निकटतम पड़ोसी डिकोडिंग एल्गोरिदम कहा जाता है):
इनपुट: A प्राप्त वेक्टर v <math>\mathbb{F}_q^n</math> में


इनपुट: ए प्राप्त वेक्टर वी इन <math>\mathbb{F}_q^n</math> .


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


*प्रारंभ स्थल <math>t=0</math>, निम्नलिखित दो चरणों को दोहराएँ।
*प्रारंभ समिष्ट <math>t=0</math>, निम्नलिखित दो चरणों को दोहराएँ।
*(हैमिंग) त्रिज्या की गेंद के तत्वों की गणना करें <math>t</math> प्राप्त शब्द के आसपास <math>v</math>, निरूपित <math>B_t(v)</math>.
*प्राप्त शब्द <math>v</math> के चारों ओर (हैमिंग) त्रिज्या <math>t</math> की गेंद के अवयवो की गणना करें, जिसे <math>B_t(v)</math> दर्शाया गया है
**प्रत्येक के लिए <math>w</math> में <math>B_t(v)</math>, अगर जांच <math>w</math> में <math>C</math>. यदि ऐसा है तो वापस लौटें <math>w</math> समाधान के रूप में.
**<math>B_t(v)</math> में प्रत्येक <math>w</math> के लिए, जांचें कि क्या <math>C</math> में <math>w</math> है। यदि ऐसा है, तो समाधान के रूप में <math>w</math> लौटाएँ।
*वृद्धि <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|ब्लॉक कोड#लोकप्रिय नोटेशन}}


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


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


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


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


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


यदि सी<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> समतुल्य हैं.
यदि C<sub>1</sub> और C2 लंबाई n के दो कोड हैं और यदि सममित समूह Sn में एक क्रमपरिवर्तन p है जिसके लिए C<sub>1</sub> में (c<sub>1</sub>,...,c<sub>n</sub>) यदि और केवल यदि C<sub>2</sub> में (c<sub>p(1)</sub>,...,c<sub>p(n)</sub>) है, तो हम कहते हैं कि C<sub>1</sub> और C<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> पर भेजता है तो हम कहते हैं कि C<sub>1</sub> और C<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>




==उदाहरण==
==उदाहरण==
रैखिक कोड के कुछ उदाहरणों में शामिल हैं:
रैखिक कोड के कुछ उदाहरणों में सम्मिलित हैं:
{{div col|colwidth=27em}}
{{div col|colwidth=27em}}
* [[दोहराव कोड]]
* [[पुनरावृत्ति कोड]]
* [[समता कोड]]
* [[समता कोड]]
* [[चक्रीय कोड]]
* [[चक्रीय कोड]]
Line 94: Line 102:
* रीड-मुलर कोड
* रीड-मुलर कोड
* [[बीजगणितीय ज्यामिति कोड]]
* [[बीजगणितीय ज्यामिति कोड]]
* [[ बाइनरी बढ़िया कोड है ]]
* [[ बाइनरी गोप्पा कोड ]]
* कम-घनत्व समता-जांच कोड
* कम-घनत्व समता-जांच कोड
* [[विस्तारक कोड]]
* [[विस्तारक कोड]]
Line 103: Line 111:


==सामान्यीकरण==
==सामान्यीकरण==
गैर-क्षेत्रीय वर्णमाला पर हैमिंग रिक्त स्थान पर भी विचार किया गया है, विशेष रूप से परिमित रिंगों पर, विशेष रूप से मॉड्यूलर अंकगणित पर [[गैलोज़ रिंग]]्स|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,m) के रूप में भी दर्शाया गया है); इसका मुख्य आकर्षण यह है कि यह कुछ अच्छे कोडों के बीच पत्राचार स्थापित करता है जो रैखिक नहीं होते हैं <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 17:00, 22 July 2023

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

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

परिभाषा और मापदंड

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


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

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

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

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


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

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

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

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


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

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

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


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


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


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

उदाहरण: निम्नलिखित जनरेटर आव्यूह वाला रैखिक ब्लॉक कोड एक हैडामर्ड कोड है:

.

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

निकटतम नेबर एल्गोरिदम

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

इनपुट: A प्राप्त वेक्टर v में


आउटपुट: में एक कोडवर्ड , के निकटतम, यदि कोई हो।

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

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

लोकप्रिय नोटेशन

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

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

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

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

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

यदि C1 और C2 लंबाई n के दो कोड हैं और यदि सममित समूह Sn में एक क्रमपरिवर्तन p है जिसके लिए C1 में (c1,...,cn) यदि और केवल यदि C2 में (cp(1),...,cp(n)) है, तो हम कहते हैं कि C1 और C2 क्रमपरिवर्तन समतुल्य हैं। अधिक व्यापकता में, यदि कोई मोनोमियल मैट्रिक्स है जो C1 को आइसोमोर्फिक रूप से C2 पर भेजता है तो हम कहते हैं कि C1 और C2 समतुल्य हैं।

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

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

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


उदाहरण

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

सामान्यीकरण

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


बाहरी संबंध