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

From Vigyanwiki
No edit summary
No edit summary
 
(12 intermediate revisions by 4 users not shown)
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 का एक लीनियर कोड सदिश स्थान <math>\mathbb{F}_q^n</math> के आयाम k के साथ एक लीनियर उपस्थान C है, जहां <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> कोड).
किसी कोडवर्ड का 'वजन' उसके उन अवयवो की संख्या है जो शून्य नहीं हैं और दो कोडवर्ड के बीच की 'दूरी' उनके बीच की [[हैमिंग दूरी]] है, अर्थात उन अवयवो की संख्या जिनमें वे भिन्न हैं। लीनियर कोड की दूरी 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 की पंक्तियों में एकत्रित किया जाता है, जिसे कोड 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>
== उदाहरण: हैडामर्ड कोड                                                                                                                                                              ==


{{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> त्रुटियों को सही कर सकता है।


{{main|Hadamard code}}
उदाहरण: निम्नलिखित जनरेटर आव्यूह वाला लीनियर ब्लॉक कोड एक <math> [8,3,4]_2</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>\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 कोड की त्रुटि सुधार क्षमता से निकटता से संबंधित है। निम्नलिखित निर्माण/एल्गोरिदम इसे दर्शाता है (जिसे निकटतम नेबर डिकोडिंग एल्गोरिदम कहा जाता है):


इनपुट: प्राप्त वेक्टर वी इन <math>\mathbb{F}_q^n</math> .
इनपुट: A प्राप्त सदिश v <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|Block code#Popular notation}}
{{main|ब्लॉक कोड#लोकप्रिय नोटेशन}}
सामान्य तौर पर [[कोड]] को अक्सर C अक्षर से दर्शाया जाता है, और लंबाई n और आयाम (रैखिक बीजगणित) k (यानी, इसके आधार में k कोड शब्द और इसके जेनरेटिंग मैट्रिक्स में k पंक्तियाँ) वाले कोड को आम तौर पर ( n,k) कोड। रैखिक ब्लॉक कोड को अक्सर [n,k,d] कोड के रूप में दर्शाया जाता है, जहां d किन्हीं दो कोड शब्दों के बीच कोड की न्यूनतम हैमिंग दूरी को संदर्भित करता है।


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


एक कोड C जिसके पैरामीटर k+d=n+1 को संतुष्ट करते हैं, अधिकतम दूरी वियोज्य या MDS कहलाता है। ऐसे कोड, जब वे मौजूद होते हैं, कुछ अर्थों में सर्वोत्तम संभव होते हैं।
लेम्मा (सिंगलटन बाउंड): प्रत्येक लीनियर [n,k,d] कोड C <math>k+d \leq n+1</math> संतुष्ट करता है


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


''लेम्मा'': कोई भी रैखिक कोड कोड के समतुल्य क्रमपरिवर्तन है जो मानक रूप में है।
यदि 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}}
* [[दोहराव कोड]]
* [[पुनरावृत्ति कोड]]
* [[समता कोड]]
* [[समता कोड]]
* [[चक्रीय कोड]]
* [[चक्रीय कोड]]
* हैमिंग कोड
* हैमिंग कोड
* गोले कोड (बहुविकल्पी), [[ बाइनरी भाषा में कोड ]] और [[ टेनेरी गले में कोड ]] दोनों संस्करण
* गोले कोड (बहुविकल्पी), [[ बाइनरी भाषा में कोड ]] और [[ टेनेरी गले में कोड ]] दोनों संस्करण
* [[बहुपद कोड]], जिनमें से BCH कोड एक उदाहरण हैं
* [[बहुपद कोड]], जिनमें से बीसीएच कोड एक उदाहरण हैं
* रीड-सोलोमन त्रुटि सुधार|रीड-सोलोमन कोड
* रीड-सोलोमन त्रुटि सुधार|रीड-सोलोमन कोड
* रीड-मुलर कोड
* रीड-मुलर कोड
* [[बीजगणितीय ज्यामिति कोड]]
* [[बीजगणितीय ज्यामिति कोड]]
* [[ बाइनरी बढ़िया कोड है ]]
* [[ बाइनरी गोप्पा कोड ]]
* कम-घनत्व समता-जांच कोड
* कम-घनत्व समता-जांच कोड
* [[विस्तारक कोड]]
* [[विस्तारक कोड]]
Line 102: Line 101:
{{div col end}}
{{div col end}}


==सामान्यीकरण==
==सामान्यीकरण                                                                                                                                                                     ==
गैर-क्षेत्रीय वर्णमाला पर हैमिंग रिक्त स्थान पर भी विचार किया गया है, विशेष रूप से परिमित रिंगों पर, विशेष रूप से मॉड्यूलर अंकगणित पर [[गैलोज़ रिंग]]्स|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>
गैर-क्षेत्रीय अक्षरों पर हैमिंग रिक्त स्थान पर भी विचार किया गया है, विशेष रूप से परिमित वलयों पर, विशेष रूप से Z4 पर [[गैलोज़ रिंग|गैलोज़]] वलय यह सदिश समिष्ट के अतिरिक्त मॉड्यूल और लीनियर कोड के अतिरिक्त [[रिंग-लीनियर कोड|वलय-लीनियर कोड]] (सबमॉड्यूल के साथ पहचाने गए) को उत्पन्न करता है। इस स्थिति में उपयोग की जाने वाली विशिष्ट मीट्रिक ली दूरी है। हैमिंग दूरी के साथ <math>\mathbb{Z}_4^m</math> (अर्थात GF(2<sup>2</sup>m)) और ली दूरी के साथ <math>\mathbb{Z}_2^{2m}</math> (जिसे GR(4,m) के रूप में भी दर्शाया जाता है) के बीच एक ग्रे आइसोमेट्री उपस्थित है; इसका मुख्य आकर्षण यह है कि यह कुछ "अच्छे" कोडों के बीच एक पत्राचार स्थापित करता है जो <math>\mathbb{Z}_2^{2m}</math> पर लीनियर नहीं होते हैं, जैसा कि <math>\mathbb{Z}_4^m</math> से वलय-लीनियर कोड की छवियां होती हैं।
अभी हाल ही में,{{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>


== यह भी देखें                                                                                                                                                                                  ==
* [[डिकोडिंग के तरीके|डिकोडिंग की विधि]]


== यह भी देखें ==
==संदर्भ                                                                                                                                                                         ==
* [[डिकोडिंग के तरीके]]
 
==संदर्भ==
<references/>
<references/>
===ग्रन्थसूची===
===ग्रन्थसूची===
* {{cite book|author1=J. F. Humphreys|author2=M. Y. Prest|title=Numbers, Groups and Codes|year=2004|publisher=Cambridge University Press|isbn=978-0-511-19420-7|edition=2nd}} Chapter 5 contains a more gentle introduction (than this article) to the subject of linear codes.
* {{cite book|author1=J. F. Humphreys|author2=M. Y. Prest|title=Numbers, Groups and Codes|year=2004|publisher=Cambridge University Press|isbn=978-0-511-19420-7|edition=2nd}} Chapter 5 contains a more gentle introduction (than this article) to the subject of linear codes.
==बाहरी संबंध==
==बाहरी संबंध==
* [https://web.archive.org/web/20070927213247/http://jason.mchu.com/QCode/index.html ''q''-ary code generator program]
* [https://web.archive.org/web/20070927213247/http://jason.mchu.com/QCode/index.html ''q''-ary code generator program]
Line 125: Line 116:
* [http://z4codes.info/ The database of Z4 codes] Online, up to date database of optimal Z4 codes.
* [http://z4codes.info/ The database of Z4 codes] Online, up to date database of optimal Z4 codes.


{{DEFAULTSORT:Linear Code}}[[Category: कोडिंग सिद्धांत]] [[Category: परिमित क्षेत्र]]
{{DEFAULTSORT:Linear Code}}
 
 


[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page|Linear Code]]
[[Category:Created On 14/07/2023]]
[[Category:Created On 14/07/2023|Linear Code]]
[[Category:Lua-based templates|Linear Code]]
[[Category:Machine Translated Page|Linear Code]]
[[Category:Multi-column templates|Linear Code]]
[[Category:Pages using div col with small parameter|Linear Code]]
[[Category:Pages with script errors|Linear Code]]
[[Category:Templates Vigyan Ready|Linear Code]]
[[Category:Templates that add a tracking category|Linear Code]]
[[Category:Templates that generate short descriptions|Linear Code]]
[[Category:Templates using TemplateData|Linear Code]]
[[Category:Templates using under-protected Lua modules|Linear Code]]
[[Category:Wikipedia fully protected templates|Div col]]
[[Category:कोडिंग सिद्धांत|Linear Code]]
[[Category:परिमित क्षेत्र|Linear Code]]

Latest revision as of 09:38, 26 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 पर गैलोज़ वलय यह सदिश समिष्ट के अतिरिक्त मॉड्यूल और लीनियर कोड के अतिरिक्त वलय-लीनियर कोड (सबमॉड्यूल के साथ पहचाने गए) को उत्पन्न करता है। इस स्थिति में उपयोग की जाने वाली विशिष्ट मीट्रिक ली दूरी है। हैमिंग दूरी के साथ (अर्थात GF(22m)) और ली दूरी के साथ (जिसे GR(4,m) के रूप में भी दर्शाया जाता है) के बीच एक ग्रे आइसोमेट्री उपस्थित है; इसका मुख्य आकर्षण यह है कि यह कुछ "अच्छे" कोडों के बीच एक पत्राचार स्थापित करता है जो पर लीनियर नहीं होते हैं, जैसा कि से वलय-लीनियर कोड की छवियां होती हैं।

यह भी देखें

संदर्भ

  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.

ग्रन्थसूची

  • 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.

बाहरी संबंध