"कोड डिवीजन मल्टीपल एक्सेस": अवतरणों में अंतर

पंक्ति 56:
 
=== उदाहरण ===
[[Image:Cdma orthogonal signals.png|thumb|right|An example of 4 mutually orthogonal digital signals]]
 
वैक्टर के एक सेट से शुरू करें जो परस्पर [[ऑर्थोगोनैलिटी|ओर्थोगोनल]] हैं। (हालांकि पारस्परिक ऑर्थोगोनैलिटी ही एकमात्र शर्त है, किंतु ये वैक्टर आमतौर पर डिकोडिंग में आसानी के लिए बनाए जाते हैं, उदाहरण के लिए [[वॉल्श मैट्रिक्स|वॉल्श मैट्रिसेस]] से कॉलम या पंक्तियाँ) ऑर्थोगोनल फ़ंक्शंस का एक उदाहरण दाईं ओर चित्र में दिखाया गया है। इन वैक्टर को अलग-अलग उपयोगकर्ताओं को सौंपा जाएगा और इन्हें ''कोड'', ''चिप कोड'' या ''चिपिंग कोड'' कहा जाता है। संक्षिप्तता के लिये इस उदाहरण के बाकी हिस्सों में केवल दो बिट्स वाले कोड '''v''' का उपयोग किया गया है ।
 
प्रत्येक उपयोगकर्ता एक अलग कोड से जुड़ा होता है, जैसे मान लो '''v''' से। एक 1 बिट को एक धनात्मक कोड '''v''' संचारित करके दर्शाया गया है, और एक 0 बिट को एक नकारात्मक कोड '''−v''' द्वारा दर्शाया गया है। उदाहरण के लिए, यदि '''v''' = (''v''<sub>0</sub>, ''v''<sub>1</sub>) = (1, −1) और उपयोगकर्ता जो डेटा संचारित करना चाहता है वह (1, 0, 1, 1) है, तो संचरित प्रतीक होंगे:
 
:('''v''', '''−v''', '''v''', '''v''') = (''v''<sub>0</sub>, ''v''<sub>1</sub>, −''v''<sub>0</sub>, −''v''<sub>1</sub>, ''v''<sub>0</sub>, ''v''<sub>1</sub>, ''v''<sub>0</sub>, ''v''<sub>1</sub>) = (1, −1, −1, 1, 1, −1, 1, −1).
 
इस लेख के लिए, हम इस निर्मित वेक्टर को ''संचरित वेक्टर'' कहते हैं ।
 
प्रत्येक प्रेषक (सेन्डर) के पास उस सेट से चुना गया एक अलग, अद्वितीय वेक्टर '''v''' होता है, लेकिन संचरित वेक्टर की निर्माण विधि समान होती है।
 
अब, हस्तक्षेप के भौतिक गुणों के कारण, यदि किसी बिंदु पर दो संकेत चरण (फेज़) में हैं, तो वे प्रत्येक संकेत के आयाम को दोगुना करने के लिए जुड़ते हैं, लेकिन यदि वे चरण में नहीं हैं, तो वे घटते हैं और एक संकेत देते हैं जो कि उन आयामों का अंतर होता है। डिजिटल रूप से, इस व्यवहार को घटक-घटक जोड़कर ट्रांसमिशन वैक्टरों के जोड द्वारा ठीक किया जा सकता है।
 
यदि प्रेषक0 के पास कोड (1, -1) और डेटा (1, 0, 1, 1) है, और प्रेषक1 के पास कोड (1, 1) और डेटा (0, 0, 1, 1) है, और दोनों प्रेषक एक साथ संचारण करते हैं, तो यह तालिका कोडिंग चरणों का वर्णन करती है:
 
{| style="border: 1px #aaaaaa solid; background-color: #f7f8ff; margin-left: auto; margin-right: auto;"
| align=center bgcolor="#CCCCCC" | चरण
| align=center bgcolor="#CCCCCC" | एनकोड प्रेषक0
| align=center bgcolor="#CCCCCC" | एनकोड प्रेषक1
|-
| valign=top | 0
| कोड0 = (1, −1), डेटा0 = (1, 0, 1, 1)
| कोड1 = (1, 1), डेटा1 = (0, 0, 1, 1)
|-
| valign=top | 1
| एनकोड0 = 2(1, 0, 1, 1) − (1, 1, 1, 1) = (1, −1, 1, 1)
| एनकोड1 = 2(0, 0, 1, 1) − (1, 1, 1, 1) = (−1, −1, 1, 1)
|-
| valign=top | 2
| सिग्नल0 = एनकोड0 ⊗ कोड0<br />= (1, −1, 1, 1) ⊗ (1, −1)<br />= (1, −1, −1, 1, 1, −1, 1, −1)
| सिग्नल1 = एनकोड1 ⊗ कोड1<br />= (−1, −1, 1, 1) ⊗ (1, 1)<br />= (−1, −1, −1, −1, 1, 1, 1, 1)
|}
 
क्योंकि सिग्नल0 और सिग्नल1 एक ही समय में वायु में प्रसारित होते हैं, वे जुडकर कच्चे सिग्नल बनाते हैं
 
:(1, −1, −1, 1, 1, −1, 1, −1) + (−1, −1, −1, −1, 1, 1, 1, 1) = (0, −2, −2, 0, 2, 0, 2, 0).
 
इस कच्चे सिग्नल को इंटरफेरेंस (हस्तक्षेप) पैटर्न कहा जाता है। रिसीवर तब किसी भी ज्ञात प्रेषक के लिए प्रेषक के कोड को हस्तक्षेप पैटर्न के साथ जोड़कर एक उचित संकेत निकालता है। निम्न तालिका दर्शाती है कि यह कैसे काम करता है और दिखाती है कि सिग्नल एक दूसरे के साथ हस्तक्षेप नहीं करते हैं:
 
{|style="border: 1px #aaaaaa solid; background-color: #f7f8ff; margin-left: auto; margin-right: auto;"
|align=center bgcolor="#CCCCCC"|चरण
|align=center bgcolor="#CCCCCC"|डिकोड प्रेषक0
|align=center bgcolor="#CCCCCC"|डिकोड प्रेषक1
|-
|0
|कोड0 = (1, −1), सिग्नल = (0, −2, −2, 0, 2, 0, 2, 0)
|कोड1 = (1, 1), सिग्नल = (0, −2, −2, 0, 2, 0, 2, 0)
|-
|1
|डिकोड0 = पैटर्न.वेक्टर0
|डिकोड1 = पैटर्न.वेक्टर1
|-
|2
|डिकोड0 = ((0, −2), (−2, 0), (2, 0), (2, 0)) · (1, −1)
|डिकोड1 = ((0, −2), (−2, 0), (2, 0), (2, 0)) · (1, 1)
|-
|3
|डिकोड0 = ((0 + 2), (−2 + 0), (2 + 0), (2 + 0))
|डिकोड1 = ((0 − 2), (−2 + 0), (2 + 0), (2 + 0))
|-
|4
|डेटा0=(2, −2, 2, 2), अर्थ (1, 0, 1, 1)
|डेटा1=(−2, −2, 2, 2), अर्थ (0, 0, 1, 1)
|}
 
इसके अलावा, डिकोडिंग के बाद, 0 से अधिक के सभी मानों की व्याख्या 1 के रूप में की जाती है, जबकि शून्य से कम के सभी मानों की व्याख्या 0 के रूप में की जाती है। उदाहरण के लिए, डिकोडिंग के बाद, डेटा0 (2, -2, 2, 2) है, लेकिन रिसीवर इसकी व्याख्या करता है (1, 0, 1, 1)। ठीक 0 के मान का अर्थ है कि प्रेषक ने कोई डेटा संचारित नहीं किया, जैसा कि निम्न उदाहरण में है:
 
मान लें कि सिग्नल0 = (1, −1, −1, 1, 1, −1, 1, -1) अकेले प्रेषित होता है। निम्न तालिका रिसीवर का डीकोड दिखाती है:
 
{|style="border: 1px #aaaaaa solid; background-color: #f7f8ff; margin-left: auto; margin-right: auto;"
|align=center bgcolor="#CCCCCC"|चरण
|align=center bgcolor="#CCCCCC"|डिकोड प्रेषक0
|align=center bgcolor="#CCCCCC"|डिकोड प्रेषक1
|-
|0
|कोड0 = (1, −1), सिग्नल = (1, −1, −1, 1, 1, −1, 1, −1)
|कोड1 = (1, 1), सिग्नल = (1, −1, −1, 1, 1, −1, 1, −1)
|-
|1
|डिकोड0 = पैटर्न.वेक्टर0
|डिकोड1 = पैटर्न.वेक्टर1
|-
|2
|डिकोड0 = ((1, −1), (−1, 1), (1, −1), (1, −1)) · (1, −1)
|डिकोड1 = ((1, −1), (−1, 1), (1, −1), (1, −1)) · (1, 1)
|-
|3
|डिकोड0 = ((1 + 1), (−1 − 1), (1 + 1), (1 + 1))
|डिकोड1 = ((1 − 1), (−1 + 1), (1 − 1), (1 − 1))
|-
|4
|डेटा0 = (2, −2, 2, 2), अर्थ (1, 0, 1, 1)
|डेटा1 = (0, 0, 0, 0), जिसका अर्थ है कोई डेटा नहीं
|}
 
जब रिसीवर प्रेषक 1 के कोड का उपयोग करके सिग्नल को डीकोड करने का प्रयास करता है, तो डेटा सभी शून्य होता है, इसलिए क्रॉस-सहसंबंध शून्य के बराबर होता है और यह स्पष्ट होता है कि प्रेषक 1 ने कोई डेटा संचारित नहीं किया।
 
== सीडीएमए नेटवर्क ऑपरेटर ==