2009-08-05 8 views
5

कल्पना कीजिए कि आपके पास संचार का एक चैनल है जो स्वाभाविक रूप से हानिकारक और एक तरफा है। यही है, कुछ अंतर्निहित शोर है जो कि कारणों को हटाने के लिए असंभव है, कहें, यादृच्छिक बिट्स को टॉगल किया जाना है। यह भी कल्पना करें कि यह एक तरीका है - आप रीट्रान्समिशन का अनुरोध नहीं कर सकते हैं।हानिकारक एक-तरफा चैनल पर डेटा एन्कोड करने के लिए आप किस तकनीक का उपयोग कर सकते हैं?

लेकिन आपको इसके बावजूद डेटा भेजने की आवश्यकता है। संख्या और टेक्स्ट उस चैनल पर भेजने के लिए आप किस तकनीक का उपयोग कर सकते हैं?

  1. यह संख्या एन्कोड करने के लिए इतना है कि यहां तक ​​कि साथ यादृच्छिक बिट twiddling वे अभी भी मूल (हानिपूर्ण Transmittion) के करीब मान के रूप में व्याख्या की जा सकती संभव है?

  2. क्या हानि रहित फैशन में वर्णों की एक स्ट्रिंग (ASCII, कहना) भेजने का कोई तरीका है?

यह सिर्फ मजेदार है। मुझे पता है कि आप मोर्स कोड या किसी भी बहुत कम आवृत्ति बाइनरी संचार का उपयोग कर सकते हैं। मैं त्रुटियों का पता लगाने और पुनः प्रयास करने के लिए समानता बिट्स और चेकसम के बारे में जानता हूं। मुझे पता है कि आप एक एनालॉग सिग्नल का भी उपयोग कर सकते हैं। अगर मैं इस सामान को एक हानिकारक चैनल पर भेजने के लिए कोई रोचक कंप्यूटर-विज्ञान तकनीक है तो मैं उत्सुक हूं।

उत्तर

9

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

Reed-Solomon और इसके प्रकार विशेष रूप से अच्छे हैं यदि आपके शोर एपिसोड छोटे विस्फोटों (कई बिट गलतियों के भीतर, एक बाइट) में होने की संभावना है, जो ग्रे कोडिंग के साथ अच्छी तरह से इंटरऑपरेट करना चाहिए (चूंकि बहु-बिट गलतियाँ हैं ग्रे के "हानि शमन" पहलू के लिए हत्यारों, तार पर सिंगल-बिट त्रुटियों के लिए गहराई से अपनाने के लिए डिज़ाइन किया गया)। ऐसा इसलिए है क्योंकि आर-एस आंतरिक रूप से एक ब्लॉक योजना है, और एक ब्लॉक के भीतर कई त्रुटियां मूल रूप से आर-एस के दृष्टिकोण से ,-) में एक त्रुटि के समान होती हैं।

आरएस विशेष रूप से कमाल है अगर कई त्रुटियां erasures हैं - इसे आसानी से रखने के लिए, एक मिरर एक प्रतीक है जो शायद ट्रांसमिशन में उलझा हुआ है, लेकिन जिसके लिए आप महत्वपूर्ण तथ्य जानते हैं कि इसे उलझाया गया है । भौतिक परत, यह कैसे डिजाइन की गई है, इस पर निर्भर करता है, अक्सर उस तथ्य के बारे में संकेत हो सकता है, और यदि उच्च परतों को सूचित करने के लिए कोई तरीका है, तो यह महत्वपूर्ण सहायता हो सकती है। मुझे थोड़ा सा त्रुटियों की व्याख्या करने दें ...:

एक सरलीकृत उदाहरण के लिए कहें कि 0 को -1 वोल्ट के स्तर के रूप में भेजा गया है और 1 को +1 वोल्ट (कुछ संदर्भ लहर wrt) के स्तर के रूप में भेजा जाता है, लेकिन शोर है (भौतिक शोर अक्सर अच्छी तरह से मॉडलिंग किया जा सकता है, किसी भी सक्षम संचार इंजीनियर से पूछें ;-); शोर मॉडल के आधार पर डीकोडिंग हो सकता है कि कुछ भी -0.7 वी और नीचे 0 बिट माना जाता है, कुछ भी +0.7 वी और ऊपर 1 बिट माना जाता है, बीच में कुछ भी एक मिरर माना जाता है, यानी, उच्च परत को बताया जाता है कि प्रश्न में थोड़ा संभवतः संचरण में उलझा हुआ था और इसलिए इसे अवहेलना किया जाना चाहिए। (मैं कभी-कभी इसे अपने थीसिस के एक उदाहरण के रूप में देता हूं जो कि कभी-कभी अवशोषण को "रिसाव" होना चाहिए - एक नियंत्रित और वास्तुशिल्प तरीके से: स्पॉल्स्की के Law of Leaky Abstractions पर मार्टेलि कोरोलीरी! -)।

किसी दिए गए रिडंडेंसी अनुपात के साथ एक आरएस कोड त्रुटियों को सही करने के लिए लगभग दोगुना प्रभावी हो सकता है (डीकोडर को त्रुटियों के बारे में बताया गया है) क्योंकि यह अन्यथा अज्ञात त्रुटियों को सही करने में हो सकता है - दोनों पहलुओं को ठीक करना भी संभव है कुछ त्रुटियां और कुछ अन्य अज्ञात त्रुटियां।

शीर्ष पर चेरी के रूप में, कस्टम आरएस कोड (उचित रूप से आसानी से) किसी भी आवश्यक थ्रेसहोल्ड θ के नीचे अनिश्चित त्रुटियों की संभावना को कम करने के लिए डिज़ाइन और तैयार किए जा सकते हैं, दोनों त्रुटियों के संदर्भ में भौतिक चैनल की विशेषताओं का एक सटीक मॉडल दिया गया है और ज्ञात त्रुटियां (संभावना और विस्फोट दोनों सहित)।

मैं इस पूरे क्षेत्र को "कंप्यूटर-विज्ञान" नहीं कहूंगा, वास्तव में: जब मैंने स्नातक किया था (एमएसईई, 30 साल पहले), मैं ज्यादातर चिप डिजाइन के पक्ष में "सीएस" सामान से बचने की कोशिश कर रहा था, सिस्टम डिज़ाइन, उन्नत रेडियो सिस्टम, & सी - फिर भी मुझे यह सामान सिखाया गया था (ठीक है, सबसेट जो व्यावहारिक इंजीनियरिंग उपयोग के क्षेत्र में पहले से ही था ;-) बहुत अच्छी तरह से।

और, यह पुष्टि करने के लिए कि चीजें एक पीढ़ी में इतनी ज्यादा नहीं बदली हैं: मेरी बेटी को सिर्फ एमएस को दूरसंचार इंजीनियरिंग (सख्ती से उन्नत रेडियो सिस्टम पर ध्यान केंद्रित करने) में मिला है - वह किसी भी गंभीर के बारे में डिजाइन नहीं कर सकती कार्यक्रम, एल्गोरिदम, या डेटा संरचना (हालांकि उसने सी और जावा पर अनिवार्य पाठ्यक्रमों में बस ठीक किया, हालांकि उन पाठ्यक्रमों में बिल्कुल सीएस गहराई नहीं थी, न ही उनके पाठ्यक्रम में कहीं और - उनकी दैनिक कामकाजी भाषा matlab है ... ! -) - फिर भी वह सूचना और कोडिंग सिद्धांत के बारे में और अधिक जानता है, मैंने कभी सीखा है, और से पहले पीएचडी स्तर का अध्ययन (वह पीएचडी के लिए रह रही है, लेकिन अभी तक शुरू नहीं हुई है)।

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

+0

मैं पूरी तरह से सहमत हूं। आर-एस वह है जो नासा पृथ्वी पर उपग्रह संचार के लिए उपयोग करता है, और जब प्रकाश की गति भी कई घंटे की देरी पेश करती है, तो टीसीपी/आईपी जैसे प्रोटोकॉल काम नहीं करेंगे क्योंकि आप बैठे 12 घंटे के ट्रांसमिशन को सहेज नहीं सकते हैं। कोई "कंप्यूटर विज्ञान" उत्तर नहीं होगा क्योंकि यह त्रुटि कोडिंग और सुधार (जिसे आपने अलग गणित में स्पर्श किया) का मुद्दा है। सीडी और डीवीडी स्क्रैच (या अन्य "erasures") के लिए सही करने के लिए त्रुटि सुधार की कई परतों का उपयोग करते हैं - और यह एक "एक तरफ" संचार है क्योंकि आपका सीडी प्लेयर नई बिट्स के लिए रिकॉर्ड कंपनी को कॉल नहीं कर सकता है। – Tangurena

+0

@jug, बहुत अच्छे अंक, धन्यवाद! इसलिए ग्रे कोड सुगंधित गिरावट के साथ मदद नहीं करते हैं और (यदि जीडी महत्वपूर्ण है) तो डोमेन-विशिष्ट एन्कोडिंग की बड़ी बंदूकें जैसे कि मोहर एट अल द्वारा http://eprints.kfupm.edu.sa/ में दिखाया गया है, 43182/1/43182.pdf। –

+0

कोडिंग सिद्धांत को अधिक नेटवर्किंग उन्मुख सीएस डिग्री में काफी कुछ सिखाया जाता है (उनमें से बहुत से आप एक विभाग या दूसरे में विशेषज्ञ होने की अनुमति देते हैं)। मैंने नियमित रूप से पुरानी सीएस डिग्री के दौरान इस विषय पर कुछ पाठ्यक्रम लिया। – wds

2
  • redundant encoding used in optical media है जो बिट-लॉस पुनर्प्राप्त कर सकता है।
    • ECC भी कड़ी मेहनत से डिस्क में इस्तेमाल किया और राम
  • TCP protocol काफी पुनर्संचरण साथ डेटा हानि का एक बहुत संभाल कर सकते हैं है।
1

Sliding Window Protocol (जिसे टीसीपी द्वारा उपयोग किया जाता है) भी देखें।

हालांकि इसमें पैकेटों को फिर से आदेशित या खोने के साथ निपटने में शामिल है, जो आपकी समस्या परिभाषा का हिस्सा नहीं था।

3

शायद Hamming code का उपयोग करने के लिए बेहतर ज्ञात तरीकों में से एक है। यह बड़े पैमाने पर त्रुटियों को सही करने का सबसे अच्छा तरीका नहीं हो सकता है, लेकिन यह समझने के लिए अविश्वसनीय रूप से सरल है।

4

यह प्रश्न coding theory का विषय है।

+2

और सटीक होने के लिए, यह एफईसी: फॉरवर्ड त्रुटि सुधार के बारे में है। – MSalters

2

या तो Turbo Codes या Low-density parity-checking codes सामान्य डेटा के लिए, क्योंकि ये शैनन सीमा तक पहुंचने के करीब आते हैं - विकिपीडिया देखें।

+1

यदि शोर निकट-यादृच्छिक है, तो टर्बो कोड और एलडीपीसी आपको मनमाने ढंग से शैनन सीमा के करीब ले जाती है। यदि आपके पास अतिरिक्त प्रसंस्करण शक्ति है और शोर सांख्यिकीय विशेषताओं को नहीं जानते हैं, तो आगे देखने की कोई आवश्यकता नहीं है। – ima

0

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

1

जैसा कि एलेक्स मार्टेलि कहते हैं, दुनिया में बहुत सारे कोडिंग सिद्धांत हैं, लेकिन रीड-सोलोमन कोड निश्चित रूप से एक मीठा स्थान हैं। यदि आप वास्तव में कुछ बनाना चाहते हैं, तो Jim Plank ने nice tutorial on Reed-Solomon coding लिखा है। प्लैंक को इसे वापस करने के लिए बहुत व्यावहारिक विशेषज्ञता के साथ कोडिंग में पेशेवर रुचि है।

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

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