कोडिंग सिद्धांत में, 'कितना अच्छा कोड है' का अर्थ है कि कितने चैनल त्रुटियों को ठीक किया जा सकता है, या बेहतर तरीके से रखा जा सकता है, अधिकतम शोर स्तर जो कोड से निपट सकता है।
बेहतर कोड प्राप्त करने के लिए, कोड एक बड़ी वर्णमाला (बाइनरी एक के बजाय) का उपयोग करके डिज़ाइन किए गए हैं। और फिर, कोड अच्छा है अगर यह गलत "प्रतीकों" की एक बड़ी दर से निपट सकता है।
यह धोखा क्यों नहीं माना जाता है? मेरा मतलब है, क्या हमें केवल इस बात की परवाह नहीं करनी चाहिए कि जब हम प्रत्येक प्रतीक को एक बाइनरी स्ट्रिंग में "ट्रांसलेट" करते हैं, तो क्या होगा? "बिट एरर" की दर "सिंबल एरर" की दर से अलग है। उदाहरण के लिए, बिट-एरर की दर 1/2 से ऊपर नहीं जा सकती है (यदि मैं इसे सही ढंग से समझता हूं), बड़ी पर्याप्त वर्णमाला के साथ, प्रतीक-त्रुटि तक जा सकती है । क्या यह इसलिए है क्योंकि हम कृत्रिम रूप से बिट्स के बजाय केवल "प्रतीकों" को बदलने के लिए चैनल को प्रतिबंधित करते हैं, या यह इसलिए है क्योंकि कोड वास्तव में बेहतर है?