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

From Vigyanwiki
m (Abhishek moved page रैखिक कोड to लीनियर कोड without leaving a redirect)
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 का एक रैखिक कोड सदिश स्थान <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> के समान है।
लंबाई 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 की पंक्तियों में एकत्रित किया जाता है, जिसे कोड C के लिए [[जेनरेटर मैट्रिक्स|जेनरेटर आव्यूह]] के रूप में जाना जाता है। जब G के पास ब्लॉक आव्यूह फॉर्म <math>\boldsymbol{G} = [I_k | P]</math> होता है, तो हम <math>I_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> c<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> हैं वे रैखिक रूप से निर्भर हैं। इसलिए, 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> में रैखिक रूप से निर्भर स्तंभों की न्यूनतम संख्या है। इसलिए प्रमाणित की गई प्रोपर्टी सिद्ध है।
प्रमाण: क्योंकि <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> में लीनियर रूप से निर्भर स्तंभों की न्यूनतम संख्या है। इसलिए प्रमाणित की गई प्रोपर्टी सिद्ध है।


== उदाहरण: हैमिंग कोड                                                                                                                                                                                        ==
== उदाहरण: हैमिंग कोड                                                                                                                                                                                        ==
Line 29: Line 29:
{{main|हैमिंग कोड}}
{{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 38:
{{main|हैडामर्ड कोड}}
{{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> त्रुटियों को सही कर सकता है।
हैडामर्ड कोड एक <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>.
Line 59: Line 59:
*वृद्धि <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|ब्लॉक कोड#लोकप्रिय नोटेशन}}
{{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] नोटेशन को (n, m, d) नोटेशन के साथ भ्रमित नहीं किया जाना चाहिए, जिसका उपयोग लंबाई n, आकार m (अर्थात, m कोड शब्द वाले) और न्यूनतम हैमिंग के गैर-रेखीय कोड को दर्शाने के लिए किया जाता है।)
Line 70: Line 70:
==[[सिंगलटन बाध्य|सिंगलटन बाउंड]]                                                                                                                                                                                    ==
==[[सिंगलटन बाध्य|सिंगलटन बाउंड]]                                                                                                                                                                                    ==


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


==सामान्यीकरण                                                                                                                                                                    ==
==सामान्यीकरण                                                                                                                                                                    ==
गैर-क्षेत्रीय अक्षरों पर हैमिंग रिक्त स्थान पर भी विचार किया गया है, विशेष रूप से परिमित वलयों पर, विशेष रूप से 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> से वलय-लीनियर कोड की छवियां होती हैं।
गैर-क्षेत्रीय अक्षरों पर हैमिंग रिक्त स्थान पर भी विचार किया गया है, विशेष रूप से परिमित वलयों पर, विशेष रूप से 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> से वलय-लीनियर कोड की छवियां होती हैं।


== यह भी देखें                                                                                                                                                                                  ==
== यह भी देखें                                                                                                                                                                                  ==

Revision as of 14:31, 24 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.

बाहरी संबंध