लीनियर कोड: Difference between revisions
No edit summary |
No edit summary |
||
(5 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 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> के समान है। | ||
किसी कोडवर्ड का 'वजन' उसके उन अवयवो की संख्या है जो शून्य नहीं हैं और दो कोडवर्ड के बीच की 'दूरी' उनके बीच की [[हैमिंग दूरी]] है, अर्थात उन अवयवो की संख्या जिनमें वे भिन्न हैं। | किसी कोडवर्ड का 'वजन' उसके उन अवयवो की संख्या है जो शून्य नहीं हैं और दो कोडवर्ड के बीच की 'दूरी' उनके बीच की [[हैमिंग दूरी]] है, अर्थात उन अवयवो की संख्या जिनमें वे भिन्न हैं। लीनियर कोड की दूरी 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> के एक | <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'' | एक आव्यूह ''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). है) ये गुण यही दर्शाते हैं | |||
:<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 के लीनियर रूप से निर्भर स्तंभों की न्यूनतम संख्या के समान होती है। | ||
प्रमाण: क्योंकि <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>\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> [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>[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> सिंप्लेक्स कोड मिलता है, जो हैमिंग कोड का दोहरा कोड है। | ||
==निकटतम नेबर एल्गोरिदम == | ==निकटतम नेबर एल्गोरिदम == | ||
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> में अधिकतम एक कोडवर्ड है | ||
==लोकप्रिय नोटेशन == | ==लोकप्रिय नोटेशन == | ||
{{main|ब्लॉक कोड#लोकप्रिय नोटेशन}} | {{main|ब्लॉक कोड#लोकप्रिय नोटेशन}} | ||
सामान्यतः [[कोड]] को अधिकांशतः C अक्षर से दर्शाया जाता है, और लंबाई n और आयाम ( | सामान्यतः [[कोड]] को अधिकांशतः 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> संतुष्ट करता है | ||
एक कोड C जिसके मापदंड k+d=n+1 को संतुष्ट करते हैं, अधिकतम दूरी वियोज्य या एमडीएस कहलाता है। ऐसे कोड, जब वे उपस्थित होते हैं, कुछ अर्थों में सर्वोत्तम संभव होते हैं। | एक कोड 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> समतुल्य हैं। | यदि 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 में एरिगो बोनीसोली ने परिमित क्षेत्रों पर | एक कोड को समान दूरी के रूप में परिभाषित किया जाता है यदि और केवल तभी जब कुछ स्थिरांक ''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 101: | Line 102: | ||
==सामान्यीकरण == | ==सामान्यीकरण == | ||
गैर-क्षेत्रीय अक्षरों पर हैमिंग रिक्त स्थान पर भी विचार किया गया है, विशेष रूप से परिमित वलयों पर, विशेष रूप से Z4 पर [[गैलोज़ रिंग|गैलोज़]] वलय यह सदिश समिष्ट के अतिरिक्त मॉड्यूल और | गैर-क्षेत्रीय अक्षरों पर हैमिंग रिक्त स्थान पर भी विचार किया गया है, विशेष रूप से परिमित वलयों पर, विशेष रूप से 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> से वलय-लीनियर कोड की छवियां होती हैं। | ||
== यह भी देखें == | == यह भी देखें == | ||
Line 115: | 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}} | {{DEFAULTSORT:Linear Code}} | ||
[[Category: | [[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) के रूप में भी दर्शाया जाता है) के बीच एक ग्रे आइसोमेट्री उपस्थित है; इसका मुख्य आकर्षण यह है कि यह कुछ "अच्छे" कोडों के बीच एक पत्राचार स्थापित करता है जो पर लीनियर नहीं होते हैं, जैसा कि से वलय-लीनियर कोड की छवियां होती हैं।
यह भी देखें
संदर्भ
- ↑ William E. Ryan and Shu Lin (2009). Channel Codes: Classical and Modern. Cambridge University Press. p. 4. ISBN 978-0-521-84868-8.
- ↑ 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) - ↑ Thomas M. Cover and Joy A. Thomas (1991). सूचना सिद्धांत के तत्व. John Wiley & Sons, Inc. pp. 210–211. ISBN 978-0-471-06259-2.
- ↑ Etzion, Tuvi; Raviv, Netanel (2013). "ग्रासमैनियन में समदूरस्थ कोड". arXiv:1308.6231 [math.CO].
- ↑ 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.
बाहरी संबंध
- q-ary code generator program
- Code Tables: Bounds on the parameters of various types of codes, IAKS, Fakultät für Informatik, Universität Karlsruhe (TH)]. Online, up to date table of the optimal binary codes, includes non-binary codes.
- The database of Z4 codes Online, up to date database of optimal Z4 codes.