2016-06-17 12 views
7

के बारे में कुछ प्रश्न मैं एक इलेक्ट्रॉनिक इंजीनियर हूं और सीआरसी को पूरी तरह से गणितीय परिप्रेक्ष्य से विचार करना महत्वपूर्ण नहीं पाया है।सीआरसी मूल बातें

  1. क्यों हम जोड़ सकता हूँ n संदेश को शून्य जब हम सीआरसी की गणना, कर रहे थे n जनरेटर बहुपद की डिग्री है: हालांकि, मैं निम्नलिखित प्रश्न हैं? मैंने इसे मॉड्यूलो -2 लम्बी प्रभाग में और साथ ही सीआरसी

  2. हार्डवेयर कार्यान्वयन में देखा है क्यों हम चाहते हैं कि जनरेटर बहुपद (x + 1) द्वारा विभाजित हो?

  3. हम क्यों चाहते हैं कि जनरेटर बहुपद x द्वारा विभाजित नहीं किया जा सके?

उत्तर

6
  1. हम n शून्य जोड़ने जब एक n -बिट सीआरसी, क्योंकि जब संदेश को सीआरसी जोड़कर और (दूरसंचार में एक सामान्य अभ्यास) पूरे भेजने कंप्यूटिंग:
    • प्राप्त की अनुमति देता है कि सीआरसी के बिट्स को संसाधित करने के लिए पक्ष जैसा कि शेष संदेश है, किसी भी त्रुटि मुक्त संचरण के लिए ज्ञात शेष को जन्म देता है। यह विशेष रूप से उपयोगी होता है जब संदेश का अंत कुछ संकेत मिलता है जो सीआरसी (एक सामान्य अभ्यास) का पालन करता है; प्राप्त करने वाले पक्ष पर यह n बिट बफर बचाता है, और ट्रांसमिट पक्ष पर यह लगभग कोई जटिलता नहीं जोड़ता है (x(n) की अतिरिक्त शर्तें सीआरसी संचरण के दौरान शून्य पर संदेश बिट्स को मजबूर करने के लिए एक और गेट को कम करती हैं, और n अतिरिक्त कमी चरण के रूप में कार्य किया जाता है सीआरसी संचरित है)।
      गणितीय रूप से, सीआरसी भेजा गया है (M(x) * x^n) mod P(x) = R(x) (शायद, कुछ स्थिर, या/और शायद M(x) की शुरुआत में जोड़े गए कुछ निर्धारित बिट्स के साथ, सीआरसी रजिस्टर के प्रारंभ के अनुरूप), और प्राप्त पक्ष पर गणना की गई सीआरसी खत्म हो गई है M(x) और R(x) का संगतता,
      (M(x) * x^n + R(x)) mod P(x), जो शून्य है (या स्थिर कहा जाता है)।
    • यह बीमा करता है कि संदेश के अंत दोनों को प्रभावित करने वाली त्रुटियों का विस्फोट और बहुपद के विकल्प द्वारा प्रदान किए गए संरक्षण के पूर्ण स्तर से संगत सीआरसी लाभ। विशेष रूप से, अगर हमने C(x) को M(x) mod P(x) के रूप में गणना की है, तो M(x) के अंतिम बिट को फ़्लिप करना और C(x) का अंतिम बिट ज्ञात नहीं होगा, जब अधिकांश बहुपदों को त्रुटि का पता लगाने में उपयोग किया जाता है कि किसी भी दो-बिट त्रुटि को कुछ बड़े संदेश आकार में पता चला है।
  2. यह त्रुटि का पता लगाने x+1 से विभाज्य के लिए इस्तेमाल किया सीआरसी बहुआयामी पद के लिए आम बात है, क्योंकि यह सुनिश्चित करता है कि बिट्स की एक विषम संख्या को प्रभावित करने वाले किसी भी त्रुटि का पता लगाया है। हालांकि यह अभ्यास सार्वभौमिक नहीं है, और यह कभी-कभी बेहतर की कुछ उपयोगी परिभाषाओं के लिए बेहतर बहुपद के चयन को रोकता है, जिसमें m संदेशों की लंबाई को अधिकतम करने में m के कुछ संयोजनों के लिए त्रुटियों को हमेशा सिंक्रनाइज़ेशन हानि माना जाता है (n। विशेष रूप से, यदि हम सबसे लंबे संदेश के लिए किसी भी 2-बिट त्रुटि का पता लगाने में सक्षम होना चाहते हैं (जो 2 n -1 बिट्स n -bit सीआरसी समेत), हमें बहुपद होने की आवश्यकता है, इस प्रकार अपरिवर्तनीय, इस प्रकार (n> 1) x+1 द्वारा विभाजित नहीं है।
  3. यह सार्वभौमिक अभ्यास है कि त्रुटि पहचान के लिए सीआरसी बहुपदों का उपयोग x द्वारा विभाजित नहीं किया जा सकता है, अन्यथा उत्पन्न सीआरसी का अंतिम बिट निरंतर होगा, और शेष संदेश + सीआरसी में त्रुटियों का पता लगाने में मदद नहीं करेगा।
+3

बहुत अच्छा जवाब। +1। मैं केवल यह जोड़ूंगा कि _n_ शून्य जोड़ना सीआरसी की परिभाषा का हिस्सा है, लेकिन कार्यान्वयन का लगभग कभी हिस्सा नहीं है। सॉफ्टवेयर या हार्डवेयर में एक सीआरसी उन अतिरिक्त _n_ चरणों से बचने के लिए लगभग हमेशा लागू किया जा सकता है। 3 के लिए, मैं कहूंगा कि यह वास्तव में सार्वभौमिक है। यदि बहुपद में 1 शब्द नहीं है तो यह सीआरसी नहीं है। –

+0

@ मार्क एडलर: आपकी टिप्पणियां शामिल की गईं। मुझे लगता है कि आप एडलर -32 प्रसिद्धि से मार्क एडलर हैं, इसके लिए कुडोस! – fgrieu

+0

हम्मम्म मुझे जवाब के बारे में अधिक सोचने की आवश्यकता है 2. 2 में जिस तरह से आप इसका मतलब है "यह बहुपद को irreducible होने से रोकता है"। हम irreducible polynomial क्यों चाहते हैं? – quantum231

संबंधित मुद्दे