थ्रेशोल्ड डिकोडर

दोस्तों, सभी को नमस्कार!

कुछ महीने पहले, मैंने पहले ही त्रुटि-सुधार कोडिंग विधियों के बारे में बात करना शुरू कर दिया था। पहला लेख चेस एल्गोरिथ्म के बारे में था। वह यहां है । कई लोग इस क्षेत्र में रुचि रखते थे, इसलिए मैंने इसे जारी रखने का फैसला किया। अगली पंक्ति में एक बहुत ही जिज्ञासु, होनहार, और सबसे महत्वपूर्ण बात, थ्रेशोल्ड डिकोडर को समझना आसान है। चलो शुरू हो जाओ!

यह कैसे काम करता है


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

हम कह सकते हैं कि प्रस्तुत एनकोडर को "जनन बहुपद" जी (x) = 1 + x + x ^ 4 + x ^ 6 का उपयोग करके परिभाषित किया गया है।
इस प्रकार, एन्कोडिंग प्रक्रिया के साथ, एन्क्रिप्टेड संदेश के दो भाग प्राप्त होंगे, जो बाद में संयुक्त होकर एकल वेक्टर के रूप में चैनल को प्रेषित किए जाएंगे। पहले - सूचनात्मक (यू) में एन्कोडेड संदेश के शून्य रजिस्टर सेल से सीधे प्रेषित मूल संदेश के बिट्स होंगे। दूसरे - परीक्षण (v) में बिट्स को रजिस्टर कोशिकाओं से जोड़कर प्राप्त बिट्स होंगे, जो "उत्पन्न बहुपद" जी (x) की गैर-एक्सो शक्तियों के अनुरूप सूचकांक के साथ होंगे।

एनकोडर का एक उदाहरण


मान लीजिए हमें निम्नलिखित संदेश को एन्क्रिप्ट करने की आवश्यकता है: 0111011011011। सूचना शाखा (यू) पूरी तरह से मूल संदेश के अनुरूप होगी, अर्थात "1101101101110" के बराबर होगा।
सत्यापन शाखा (v) 0, 1, 4 थी और 6 ठीं कोशिकाओं से "modulo two" बिट्स को जोड़कर प्राप्त बिट्स से मिलकर बनेगी।
एक उदाहरण:
1. रजिस्टर में: 1 0 1 1 1 1 0 1 1 0 1 1 0 1
वी = 1 1 0 ⊕ 1 1 1 = 1;
2. रजिस्टर में: 1 1 0 1 1 1 0 1 1 0 0 1 1 0
वी = 1 = 1 ⊕ 1 ⊕ 0 = 1;
......
13. रजिस्टर में: 0 1 1 1 0 0 1 1 0 1 1 0 1 1
वी = 0 = 1 ⊕ 0 0 1 = 0;
एनकोडर के "सर्कल" के बाद, सत्यापन भाग एक वेक्टर होगा: "111000000010"।
इसलिए, वेक्टर "10111011011011110000000010" चैनल पर भेजा जाएगा।

यह ध्यान देने योग्य है कि वेक्टर का प्रारूप [यू | v] केवल सच नहीं है। और इसे आसानी से किसी अन्य प्रारूप से बदला जा सकता है, उदाहरण के लिए: [u1 | v1 | u2 | v2 ... संयुक्त राष्ट्र | vn]।

विकोडक संचालन


थ्रेशोल्ड डिकोडर के संचालन पर विचार करें। डिकोडर के पहले चरण में, इसमें शामिल एन्कोडर का उपयोग करके, चेक बिट्स की गणना की जाती है, चैनल से प्राप्त शाखा यू की सूचना बिट्स के लिए, "मॉडुलो दो" को शाखा वी से प्राप्त चेक बिट्स के साथ जोड़ा जाता है। नतीजतन, एक सिंड्रोम सिंड्रोम रजिस्टर में बनता है, जो त्रुटियों की उपस्थिति को इंगित करता है। डिकोडर में एनकोडर रजिस्टर के सामने एक कुंजी है जो एनकोडर में कुंजी के समान काम करता है। पहली स्थिति में, वे चैनल में "इन" बिट्स को एनकोडर में डालते हैं, और डिकोडिंग की शुरुआत के बाद, एनकोडर रजिस्टर के बारहवें सेल से आने वाले बिट्स को शून्य सेल में भेजा जाता है। सिंड्रोम रजिस्टर की कुंजी एक समान तरीके से काम करती है। अंतर केवल इतना है कि पहले राज्य में यह बिट्स को चैनल से तुरंत रजिस्टर में नहीं बल्कि कुंजी के सामने स्थित योजक से गुजरता है।
छवि
सिंड्रोमिक रजिस्टर में भरने के बाद, सूचना प्रतीक को 0 वें सेल से डिकोड किया जाता है, जिसके लिए एक थ्रेसहोल्ड तत्व (पीई) डीकोड किए गए प्रतीक के अनुरूप सिंड्रोमिक रजिस्टर तत्वों के योग की तुलना करता है। यदि राशि थ्रेशोल्ड से अधिक हो जाती है, तो पीई आउटपुट 1 के बराबर सेट होता है, जो सूचना प्रतीक और संबंधित चेक में परिवर्तन की ओर जाता है। अन्यथा, पीई 0 होगी।
माना डिकोडर प्रतिक्रिया के साथ एक डिकोडर है, क्योंकि फीडबैक के कारण सूचना रजिस्टर में सुधार भी सिंड्रोम रजिस्टर से हटा दिया जाता है।
"10111 1 1101101 1110000000010" त्रुटि को मूल संदेश "10111011011011110000000010" में पेश किया जाए।
सिंड्रोम रजिस्टर में निम्नलिखित मूल्य शामिल होंगे: "00000011001010" (चित्र में सिंड्रोम रजिस्टर का बहुत पहला बिट सेल "0" है)
1. सिंड्रोम रजिस्टर में: "0000011001010" → "0000011001010"
दहलीज पर: 1, 1 <2 → कोई परिवर्तन नहीं हैं। परिणाम "1" का एक मूल्य है;
2. सिंड्रोम रजिस्टर में: "0000110010100" → "0000110010100"
दहलीज 1, 1 <2 → में कोई परिवर्तन नहीं हैं। परिणाम "1" का एक मूल्य है;
......
6 सिंड्रोम रजिस्टर में: "1100101000000" → "0000000000000"।
दहलीज पर 4, 4> 2 → एक बदलाव है। परिणाम "0" का एक मूल्य है, परिवर्तन सिंड्रोम के लिए किए जाते हैं;
परिणामस्वरूप, डिकोडिंग के बाद, हमें "1 1 0 1 1 0 0 1 1 1 1 1 1 0" संदेश मिलता है। त्रुटि को ठीक कर दिया गया है। और सभी बिट्स के पदों को प्राप्त करने के बाद, हमें प्रारंभिक संदेश "0 1 1 1 0 0 1 1 0 0 1 1 0 1 1" मिलता है।

उपसंहार


दहलीज डिकोडर कार्यान्वयन, दक्षता और गति में आसानी का एक सफल संयोजन है। इसका विकास एक बहु-सीमा विकोडक है। जिसके बारे में मैं निकट भविष्य में कोशिश करूंगा।
इसे पढ़ने वाले सभी को धन्यवाद। मुझे रचनात्मक टिप्पणियों / टिप्पणियों पर खुशी होगी। मैंने समझदारी की कोशिश की :)

Source: https://habr.com/ru/post/In219159/


All Articles