रीड-सोलोमन कोड को डिकोड करने के लिए वेल्च-बर्लेकैंप एल्गोरिदम में, किसी को अज्ञात स्थानों में पर त्रुटियों के साथ एक संदेश का प्रतिनिधित्व करने वाले अंक जाते हैं (और एल्गोरिथ्म को दिया जाता है)। आउटपुट एक बहुपद है जो दिए गए सभी बिंदुओं से गुजर रहा है, सिवाय इसके कि जिसमें त्रुटियां हुईं।
विधि में फार्म के रैखिक समीकरणों की एक प्रणाली को हल करना शामिल है
सभी के लिए जहां डिग्री है और ज्यादा से ज्यादा डिग्री है । चर और के गुणांक हैं ।
यह सुनिश्चित करने के लिए कि में डिग्री है आमतौर पर बाधा को जोड़ता है कि का गुणांक ऊपर रैखिक प्रणाली से 1 है। हालांकि, व्यवहार में जरूरी नहीं जानता है । इससे निपटने के लिए एक अकुशल (लेकिन अभी भी बहुपद समय) तरीका साथ शुरू होने वाले सभी मूल्यों के लिए कोशिश करना है जब तक कि समाधान नहीं मिलता है।
मेरा सवाल है: निर्धारित करने के लिए एक अधिक कुशल तरीका है ? वैकल्पिक रूप से, क्या रैखिक प्रणाली का एक संशोधन है जो सटीक मान के बजाय पर ऊपरी बाउंड का उपयोग करने की अनुमति देता है ?
विशेष रूप से मैं रीड-सोलोमन कोड के लिए इस विशिष्ट डिकोडर का उपयोग करना चाहता हूं, और अन्य तकनीकों के आधार पर पूरी तरह से अलग एल्गोरिथ्म नहीं।
डीडब्ल्यू के जवाब के जवाब में, यहां मेरा काम करने का उदाहरण है। सब कुछ किया है modulo 7।
plain message is: [2, 3, 2]
polynomial is: 2 + 3 t^1 + 2 t^2
encoded message is: [[0, 2], [1, 0], [2, 2], [3, 1], [4, 4]]
corrupted message is: [[0, 2], [1, 0], [2, 3], [3, 1], [4, 4]]
तो त्रुटि तीसरे बिंदु में है।
जब प्रश्न में बहुपद समीकरण है
और में प्लगिंग सिस्टम को मैट्रिक्स रूप में देता है:
[2, 0, 0, 6, 0, 0, 0, 0, 0]
[0, 0, 0, 6, 6, 6, 6, 6, 0]
[3, 6, 5, 6, 5, 3, 6, 5, 0]
[1, 3, 2, 6, 4, 5, 1, 3, 0]
[4, 2, 1, 6, 3, 5, 6, 3, 0]
[0, 0, 1, 0, 0, 0, 0, 0, 1]
अंतिम पंक्ति बाधा है कि । गाऊसी उन्मूलन हम प्राप्त करते हैं
[1, 0, 0, 0, 0, 0, 1, 4, 0]
[0, 1, 0, 0, 0, 0, 3, 3, 1]
[0, 0, 1, 0, 0, 0, 0, 0, 1]
[0, 0, 0, 1, 0, 0, 2, 1, 0]
[0, 0, 0, 0, 1, 0, 2, 2, 5]
[0, 0, 0, 0, 0, 1, 4, 5, 2]
और दोनों फ्री वैरिएबल के लिए 1 चुनने पर हमें सॉल्यूशन वेक्टर मिलता है
[2, 2, 1, 4, 1, 0, 1, 1]
जिसका अनुवाद है
E is 2 + 2 t^1 + 1 t^2
Q is 4 + 1 t^1 + 0 t^2 + 1 t^3 + 1 t^4
और विभाजित नहीं करता है । ध्यान दें कि कारक
के लिए मैं एक अच्छा समाधान प्राप्त करें:
system is:
[2, 0, 6, 0, 0, 0, 0]
[0, 0, 6, 6, 6, 6, 0]
[3, 6, 6, 5, 3, 6, 0]
[1, 3, 6, 4, 5, 1, 0]
[4, 2, 6, 3, 5, 6, 0]
[0, 1, 0, 0, 0, 0, 1]
reduced system is:
[1, 0, 0, 0, 0, 0, 5]
[0, 1, 0, 0, 0, 0, 1]
[0, 0, 1, 0, 0, 0, 3]
[0, 0, 0, 1, 0, 0, 3]
[0, 0, 0, 0, 1, 0, 6]
[0, 0, 0, 0, 0, 1, 2]
solution is [5, 1, 3, 3, 6, 2]
Q is 3 + 3 t^1 + 6 t^2 + 2 t^3
E is 5 + 1 t^1
P(x) = 2 + 3 t^1 + 2 t^2 # this is correct!
r(x) = 0
ध्यान दें कि जब उपर्युक्त प्रतिधारण कोड मैं स्क्रैच से लिखे गए कोड द्वारा उत्पन्न किया गया था (यह मूल रूप से मैंने पहली कोशिश की थी), कोई भी समाधान की जांच हाथ से कर सकता है, इसलिए भले ही मेरा कोड छोटी गाड़ी हो लेकिन यह दावे के लिए अभी भी एक वैध प्रतिधारण है। कि काम करता है।