Tuesday, February 7, 2017

සන්නිවේදනය හා ආධුනික ගුවන් විදුලිය (Amateur radio) 39

කෙසේ හෝ අප කැමති දිගක් සහිත PRN කෝඩ් එකක් සාදන අයුරු අපි දැන් දන්නවා. හැමවිටම සංඥා/දත්ත වේගයට වඩා චිප් රේට් එක කිහිප ගුණයකින් විශාලය. එක් සංඥා/දත්ත බිට් එකක් සඳහා ගත වන කාලය තුලදී PRN බිට්/චිප් කිහිපයක්ම අනිවාර්යෙන්ම පවතිනවා. සංඥා බිට් 1කට PRN චිප් කොච්චරද යන අනුපාතය අපට අවශ්‍ය ප්‍රමාණයට සැකසිය හැකියි. අවශ්‍ය නම්, සංඥාවේ සෑම බිට් 1ක් වෙනුවෙන් PRN කෝඩ් එකේ මුලු දිගම (මුලු චිප් ගණනම) යෙදිය හැකිය. උදාහරණයක් ලෙස, PRN කෝඩ් එක බිට්/චිප් 1023ක් දිග නම්, සංඥාවේ එක් බිට් එකක් පවතින කාලය තුල PRN කෝඩ් එකේ චිප් 1023ම යෙදවිය හැකියි. එසෙත් නැතිනම්, සංඥා බිට් 1කට චිප් 1023,000ක් (එනම් චිප් 1023ක් දිග එකම කෝඩ් එක 1000 සැරයක් ආවර්ත/රිපීට් වන සේ) හෝ චිප් 4ක් හෝ වෙනත් ගණනක් හෝ සැකසිය හැකියි.

පහත රූපය බලන්න. උඩින්ම තිබෙන්නේ අඩුවේගි ඩිජිටල් සංඥාවයි. ඊට යටින් තිබෙන්නේ PRN කෝඩ් එකකි (ෆ්ලිප් ෆ්ලොප් 4ක් යොදා ගත් PRN ජෙනරේටරයකින් සාදා ගත්). දළ වශයෙන් දත්ත බිට් 4ක් සම්ප්‍රේෂණය කිරීමට ගත වන කාලය තුලදී PRN බිට් 16ක් යැවේ. ඒ කියන්නේ PRN බිට් පෙල යනු දත්ත බිට් පෙලට වඩා වේගවත් කියන එකයි (රූපය බැලූ විටත් එය පැහැදිලි වෙනවනෙ). මෙවිට සෑම දත්ත බිට් 1ක් සඳහාම PRN බිට් 16/4 = 4ක් යෙදේ (1:4 අනුපාතය). ඉන්පසු දත්ත බිට් හා PRN බිට්/චිප් යන දෙක පහත ඡේදවල විස්තර කෙරෙන පරිදි යම් “මිශ්‍ර කිරීමකට” ලක් කෙරෙන අතර, ඉන් අවුට්පුට් වන බිට් පෙල තමයි යටම රූපයෙන් දැක්වෙන්නේ (සමහර පතපොතවල මෙම “මිශ්‍ර කිරීම” හෙවත් “ස්ප්‍රෙඩ් කිරීම” modulation කිරීමක් ලෙසත් හඳුන්වන බව මතක තබා ගන්න).

ඉන්පුට් කරපු දත්ත බිට් වන්නේ 1 0 1 1 (කොල පාට බිට්) වේ. PRN bit/chip ඊට පහලින් දැක්වේ (1 හා -1 වලින්). ඇත්තටම මෙම චිප් පෙල සාමාන්‍ය ඩිජිටල් සංඥාවක් සේම ඇඳ තිබුණත්, ඒවා දැන් හැසිරෙන්නේ වෙනස් ආකාරයකිනි. එම චිප්වල රාජකාරිය වන්නේ දත්ත බිට්වල කලා (phase) පරිවර්තනයක් (transition) සිදු කිරීමයි. එනම්, චිප් අගය 1 නම් දත්ත බිට්වලට කලා මාරු නොවී එලෙසම අවුට්පුට් කෙරෙනවා. එහෙත් චිප් අගය -1 නම්, දත්ත බිට් එකෙහි කලාව ප්‍රතිවිරුද්ධ වේ (එනම් 1 → 0 බවටත් 0 → 1 බවටත් පත් වේ). ඉහත a, b, c, d යන රතු රේඛා මා ඇඳ තිබෙන්නේ මේ බව තවත් පැහැදිලිව දැකීමටයි.

a අවස්ථාවේදී දත්ත බිට් අගය 1 ලෙසත්, චිප් අගය 1 ලෙසත් තිබෙන නිසා අවුට්පුට් වන්නේ දත්ත බිට් අගයමයි - එනම්, 1යි. b අවස්ථාවේදී දත්ත බිට් 1 වන අතර චිප් අගය -1 වේ. එවිට අවුට්පුට් වන්නේ දත්ත බිට් එකෙහි ප්‍රතිවිරුද්ධ අගය වන 0 වේ (කලාව අංශක 180කින් පරිවර්තනය වෙලා). c අවස්ථාවේදී දත්ත බිට් අගය 0 වන අතර චිප් අගය 1 වන නිසා කිසිදු කලා වෙනසක් නැතිව දත්ත බිට් අගය වන 0 එලෙසම අවුට්පුට් වේ. d හිදි දත්ත බිට් අගය 1 හා චිප් අගය -1 නිසා, අවුට්පුට් වන්නේ දත්ත බිට් අගයේ කලාව මාරු වී 1යි (කලාව අංශක 180කින් පරිවර්තනය වෙලා).

ඉහත පැහැදිලි කළ ආකාරයට PRN කෝඩ් එකෙන් සිදු කරන්නේ දත්ත සංඥාවල කලා මාරු කිරීමයි. එම ක්‍රියාව බැලූබැල්මට අමාරු වගේ පෙනුනත් එය ඉතාම පහසුවෙන් සිදු කළ හැකිය. චිප් අගයන් 1 හා -1 ලෙස නොගෙන 1 හා 0 (මෙවිට 0 යනු -1 වේ) ලෙස ගමු (එමඟින් PRN චිප් සාමාන්‍ය ඩිජිටල් බිට් ලෙස සලකනවා). එවිට එතැන සිදු වන්නේ XNOR gate එකේ ක්‍රියාකාරිත්වයමයි. එනම් එම ගේටයට ඉන්පුට් වන දත්ත දෙකම එකම වර්ගයේ නම් (දෙකම 0 හෝ දෙකම 1), අවුට්පුට් අගය 1 වේ; නැතිනම් 0 වේ

සටහන
XNOR ගේටයේ ටෲත් ටේබල් එක පහත දැක්වේ. ටෲත් ටේබල් එකට අමතරව එම ගේටයේ සංඛේතය හා XOR හා NOT යන ගේට් දෙකක් මඟින් XNOR ගේටයක් සාදා ගන්නා අයුරුත් එම රූපයේ දැක්වේ.





ඒ කියන්නේ මීට පෙර අප දුටු PRN generator හි අවසානයේ තිබූ phase transition පරිපථය යනු හුදු XNOR ගේටයකි. ඒ අනුව එම ජෙනරේටර් පරිපථයේ අවසාන ෆ්ලිප් ෆ්ලොප් එකේ අග්‍රයත් දත්ත බිට් එන අග්‍රයත් මෙම ගේටයට ඉන්පුට් කළ විට සිදු වන්නේ එම දත්ත බිට් ප්‍රවාහයන් දෙක අපට අවශ්‍ය පරිදි එකිනෙකට XNOR ක්‍රමයට මිශ්‍රවීම තමයි (ඉහත රූපයේ ආකාරයට).

නැවතත් පටුපරාස සංඥාව පුලුල් පරාස වීම (හෙවත් පැතිරීම) කෙරෙහි අවධානය යොමු කරමු. ඉහත රූපයෙන් සංඥාව පැතිරීම පහසුවෙන්ම පෙන්වා දිය හැකියි. බලන්න එක් සංඥා බිට් එකක් අවසානයේදී බිට් 4ක් බවට පත්ව ඇත. එම උදාහරණය බලන විට පෙනෙනවා, සංඥා දත්ත බිට් 4 අවසානයේ බිට් 4x4 = 16 ක් බවට පත්ව තිබෙනවා. එය සිදු කරන්නේ PRN කෝඩ් එක විසින් බව පෙනෙනවා.

මෙතෙක් දීර්ඝව පැහැදිලි කළ ක්‍රියාවලිය මෙසේ සාරාංශගත කළ හැකිය. දත්ත බිට් තොගය PRN බිට් තොගය සමඟ XNOR කරනවා (ස්ප්‍රෙඩ් කරනවා). මෙවිට දත්ත බිට් තොගය කිහිප ගුණයකින් විශාල වෙනවා (පැතිරෙනවා). එමනිසාම එම සමස්ථ ක්‍රියාවලිය spreading operation ලෙසත් හැඳින්විය හැකියි. දත්ත බිට් ටික ස්ප්‍රෙඩ් කරන නිසා PRN sequence යන්න spread code sequence ලෙසද හැඳින්වෙනවා. ඉන්පසු එම විශාල බිට් තොගය අපට කැමැති ඕනෑම ඩිජිටල් මූර්ජනය ක්‍රමයකින් රේඩියෝ තරංග ඔස්සේ විසුරුවා හරිනවා.

පෙර පැහැදිලි කළ ලෙසට දත්ත බිට් ටික පළමුව ස්ප්‍රෙඩ් කර, දෙවනුව සුදුසු ඩිජිටල් මූර්ජන ක්‍රමයකින් විසුරුවා හැරිය හැකිය. එහෙමත් නැතිනම්, පළමුව සුදුසු ඩිජිටල් මූර්ජන ක්‍රමයකින් දත්ත බිට් ටික මූර්ජනය කර, දෙවනුව PRN කෝඩ් එකෙන් ස්ප්‍රෙඩ් කළ හැකිය. මෙම දෙවැනි ක්‍රමය පහත රූප සටහනෙන් තවදුරටත් තේරුම් ගන්න.




ඉහත රූපයේ උඩින්ම තිබෙන්නේ දත්ත බිට් 3කි. එම දත්ත බිට් bpsk ක්‍රමයෙන් මූර්ජනය කළ විට sd (t) ලැබේ. මෙවිට තවදුරටත් කොටු ආකාර සංඥාවක් නොව සයිනාකාර සංඥාවකුයි ලැබෙන්නේ. ඉන්පසුව තිබෙන්නේ spreading code හෙවත් PRN කෝඩ් එකයි. මූර්ජනය කරපු සංඥාව දැන් මෙම කෝඩ් එකට අනුව phase transition ඇති කළ යුතුයි. (සයිනාකාර තරංග ඇති විට XNOR ගේට් ක්‍රමය යොදා ගෙන පැහැදිලි කිරීමේ අපහසුව ඇති වෙන නිසා මොන අවස්ථාවටත් ගැලපෙන phase transition සංකල්පය යොදා ගෙන පහසුවෙන් පැහැදිලි කළ හැකි බව පෙනෙනවානෙ.) බලන්න -1 ඇති සෑම අවස්ථාවකදීම අංශක 180ක කලා වෙනසක් ඇති වෙනවා. ඉහත ආකාරයට දත්ත සංඥාව සකස් කරගෙන අවසානයේ විසුරුවා හරින තෙක් ක්‍රියාවලිය පහත කැටි සටහනේ දැක්වෙනවා.


ඉතිං, ඉහත ආකාරයට විසුරුවා හැරි සංඥාවක් රිසීවරයකින් ග්‍රහණය කරගත් පසු සිදුවන ක්‍රියාදාමය පහත දැක්වේ. පළමුව ස්ප්‍රෙඩ් කර ඇති රේඩියෝ සංඥාව (s(t)) ග්‍රහණය කර ගනී. සම්ප්‍රේෂනයේදී සිදු කළ ක්‍රියාවල විලෝමය පිළිවෙලින් සිදු කළ යුතුය. සම්ප්‍රේෂකයේදී අවසානයට කළේ spread කිරීමනෙ. එනිසා රිසීවරයේදී පළමුව කරන්නේ එහි විලෝමය වන despread කිරීමයි (එනම් පලල් කරපු සංඥාව නැවත පටු කිරීමයි). මෙම despreading operation එකට අවශ්‍ය වෙනවා සංඥාව ස්ප්‍රෙඩ් කිරීමේදි යොදා ගත් PRN කෝඩ් එක. මේ ගැන විස්තර මොහොතකින් බලමු. ඉන්පසු අපට ලැබෙන්නේ සම්ප්‍රේෂකයේදී මූර්ජනය කරපු සංඥාවයි (sd (t)). එම සංඥාව දැන් ගැලපෙන විමූර්ජකයකින් විමූර්ජනය කළ යුතුය. අවසානයේ ලැබෙන්න දත්ත බිට් ටිකයි.


හරි… මේ දක්වා එක් සංඥාවක් එක් PRN කෝඩ් එකක් යොදා ගෙන සම්ප්‍රේෂණය කරන අයුරුයි අප ඉගෙන ගත්තේ. එහෙත් CDM යනු සංඥා කිහිපයක්ම කෝඩ් යොදාගෙන යවන ක්‍රමයක්නෙ. දැන් බලමු PRN කෝඩ් එකෙන් කොහොමද එකම සංඛ්‍යාත පරාසය තුල අවුලක් නැතිව සංඥා කිහිපයක්ම පවතින්නේ කියා.

මෙහිදී අනෙක් සංඥා සඳහාද සිදු කරන්නේ මෙතෙක් ඉගෙන ගත් ක්‍රමයෙන්ම දත්ත බිට් ස්ප්‍රෙඩ් කර විසුරුවා හැරීමම තමයි. එකම වෙනස නම්, වෙනස් වෙනස් සංඥා සඳහා යොදා ගන්නේ වෙනස් වෙනස් PRN කෝඩ් වේ. ඒ කියන්නේ එකම කෝඩ් එක යොදා ගන්නේ නැහැ වෙනස් සංඥා දෙකක් ස්ප්‍රෙඩ් කිරීමට (හරියට එකම හැඳුනුම්පත කිහිප දෙනෙකුට භාවිතා කළ නොහැකියි සේ). එච්චරයි. පහත රූපයේ දැක්වෙන්නේ සංඥා 3ක් එකවර CDM ක්‍රමයෙන් යවන හැටි පෙන්වන කැටි සටහනකි.


ස්ප්‍රෙඩ් කරපු සංඥා කිහිපයක් එකම සංඛ්‍යාතයක් යොදා ගෙනනෙ විසුරුවා හරින්නේ. එවිට ඉහත රූපයෙත් දක්වා තිබෙන විදියට රිසීවරයට එකවරම පෙනෙන්නේ එම සියලු සංඥා එකට මිශ්‍රව ඇති ඝෝෂාවක් ලෙසයි. එහෙත් රිසීවරය සතුව ඒ ඒ සංඥා ස්ප්‍රෙඩ් කරපු කෝඩ් තිබේ නම්, කිසිදු ගැටලුවක් නැතිව නැවත වෙන වෙනම ඩිස්ප්‍රෙඩ් කර දත්ත වෙන් කර ගත හැකියි. එය සිදු කරන්නේ autocorrelation මඟිනි.

ඇත්තටම මෙහිදී යම් සීමාවක් තිබේ. අපට ඕන ඕන තරම් සංඥා ගණනක් වෙනස් වෙනස් ස්ප්‍රෙඩිං කෝඩ් යොදා ගනිමින් එකම සංඛ්‍යාතයේ විසුරුවා හැරිය නොහැකි වේ. එසේ සිතුවොත් සංඥා දස දහස් ගණනක් වුවද කුඩා සංඛ්‍යාත පරාසයක CDM ක්‍රමයෙන් යැවිය හැකි යැයි වැරදි අවබෝධයක් සමහරෙකුට ඇති විය හැකියි. එලෙස සංඥා ගණන වැඩි කරගෙන යන විට, ඊට සමානුපාතිකව පසුබිම් ඝෝෂාව වැඩි වේ (ඔබ දන්නවා සෑම සංඥාවක්ම රිසීවරයට පෙනෙන්නේ යම් ඝෝෂාවක් ලෙසයි; ඉතිං සංඥා ගණන වැඩි වන විට පසුබිම් ඝෝෂාව වැඩි වේ). මෙලෙස පසුබිම් ඝෝෂාව යම් මට්ටමකට වඩා වැඩි වූ විට, CDM ක්‍රමය බිඳ වැටේ.

තවද, එක් එක් සංඥාවක් සඳහා ස්ප්‍රෙඩිං කෝඩ් ලබා දෙන විටත් සැලකිලිමත් විය යුතුය. ඕනෑම බයිනරි කෝඩ් එකක් ස්ප්‍රෙඩිං කෝඩ් ලෙස ලබා දෙන්නේ නැත. යම් කොන්දේසි සැපිරෙන සුදුසු බයිනරි කෝඩ් තමයි තෝරා ගන්නේ. ප්‍රධානතම කොන්දේසිය තමයි, දත්ත බිට් ටික මෙම කෝඩ් එක සමඟින් ස්ප්‍රෙඩ් කළ විට, එය දළ වශයෙන් අහඹු බිට් ටිකක් සහිත පසුබිම් ඝෝෂාවක් ලෙස පෙනිය යුතුය.

අහඹු” යනු මෙතැන “සාධාරණ” යන තේරුමින් ගැනීම වඩා උචිතය. උදාහරණයක් ලෙස, ඔබ කාසියක් උඩ දැමූ විට එහි නෝනා වැටීම හා පොල්ල වැටීම යන දෙකෙන් ඕනෑම එකක් ලැබීමේ සම්භාවිතාව සමානයිනෙ. දාදු කැටයක් ගතහොත් 1 සිට 6 දක්වා ඕනෑම අගයක් වැටීමේ හැකියාව/සම්භාවිතාව සමානයි. කිසිම අගයකට පක්ෂපාතිකමක් නැහැනෙ. අහඹුව කියන්නෙත් සාධාරණය කියන්නෙත් එයයි.

ඉතිං, ස්ප්‍රෙඩ් කළ පසු ලැබෙන අවසාන බිට් ගොන්න සාධාරණ/අහඹු විය යුතුයි කියන්නේ එහි තිබෙන 1 සහිත බිට් ගණන දළ වශයෙන් 0 සහිත බිට් ගණනට සමාන විය යුතුය යන්නයි. සෑම සංඥාවකින්ම මෙම කොන්දේසිය සැපිරෙන විට, රිසීවරයට එවැනි ස්ප්‍රෙඩ් කරපු සංඥාවක් ලැබුණු විට, ඊට එය ඝෝෂාවක් සේමයි දැනෙන්නේ (ඝෝෂාවක් කියන්නේ එම ඝෝෂාව පවතින සමස්ථ සංඛ්‍යාත පරාසය පුරාම එකම විස්තාර අගයන්ගෙන් හෙවත් එකම ජවයකින් යුතුව පවතිත කිසිම රටාවක් දක්නට නැති සංඥාවකි).


ඉහත රූපයේ දැක්වෙන්නේ පටුපරාස සාමාන්‍ය සංඥාවකුත් ඝෝෂාවකුත් (spectrum analyser උපකරණයකින් බැලූ විට) පෙනෙන අයුරුය. තිරස් රේඛාව නියෝජනය කරන්නේ සංඛ්‍යාතයයි. ඉතිං, ඝෝෂාව සමස්ථ සංඛ්‍යාත පරාසය පුරාම පැතිරී පවතිනවා පමණක් නොවේ, දළ වශයෙන් එකම උසකින් (විස්තාර අගයකින්) ඒවා පවතී. එහෙත් සාමාන්‍ය තරංගයක් එම පසුබිම් ඝෝෂාවට වඩා උසින් කන්දක් සේ නැඟී සිටී තිබෙනු පෙනේ.

ඉතිං, ස්ප්‍රෙඩ් කරපු සංඥාවකුත් පැවතිය යුත්තේ ඉහත රූපයේ කන්දක් මෙන් පෙනෙන ආකාරයෙන් නොව, නොයිස් එකක් සේ විශාල සංඛ්‍යාත පරාසයක් පුරා විහිදුනු ආකාරයකිනි. ඒ කියන්නේ සංඥාවේ සම්පූර්ණ බලය පටු තීරුවක් සේ සිරස්ව (උසට කන්දක් සේ) තිබෙනවා වෙනුවට, හරහාට පුලුල් සංඛ්‍යාත පරාසයක් පුරා විහිදී තිබෙනවා. එය හරියට වැලි ගොඩක් කන්දක් සේ ගොඩ ගසනවා වෙනුවට වටේටම පැතිරී යන සේ වැලි විහිදුවා තබනවා සේය.
පළමුවෙන්ම බලමු ස්ප්‍රෙඩ් කරපු එක සංඥාවක් ඩිස්ප්‍රෙඩ් කරන්නේ කෙලෙසද කියා. පහත රූපය බලන්න. මෙහි රතු ඉරට යටින් පෙන්වා තිබෙන්නේ අප මීට කලින් අධ්‍යනය කළ රූපයකුයි (දත්ත බිට් ස්ප්‍රෙඩ් කරන හැටි පෙන්වන රූපය). රතු ඉරට උඩින් තිබෙන්නේ එලෙස ස්ප්‍රෙඩ් කළ අවසාන සංඥාවෙන් නැවත දත්ත බිට් ටික ලබා ගන්නා හැටියි (ඩිස්ප්‍රෙඩ් කරන හැටියි).


රූපයෙන්ද පෙන්වා දෙන පරිදි ඩිස්ප්‍රෙඩ් කිරීම ඉතා පහසුය. එහිදී සිදු කරන්නේ ස්ප්‍රෙඩ් කරපු සංඥාව ආයෙත් එය ස්ප්‍රෙඩ් කරන්නට යොදා ගත් PRN කෝඩ් එක සමඟ phase transition එක සිදු කිරීමමයි (XNOR කිරීමයි). ඒ කියන්නේ සම්ප්‍රේෂකයේදී සිදු කළ ක්‍රියාවමයි රිසීවරයෙත් සිදු වන්නේ. එකම වෙනස රිසීවරයේදී එම phase transition (XNOR) ක්‍රියාව සිදු වන්නේ ස්ප්‍රෙඩ් කරපු සංඥාවට වන අතර අවසානයේ ලැබෙන්නේ ඔරිජිනල් දත්ත බිට් ටිකයි (ඔරිජිනල් සංඥාවයි).

යම් සංඛ්‍යාත පරාසයක් තුළ ඉහත ආකාරයට ස්ප්‍රෙඩ් කරපු එක සංඥාවක් පමණයි නම් තිබෙන්නේ, ඉහත පෙන්වා දුන් ලෙසට සංඥාව ඩිස්ප්‍රෙඩ් කළ හැකියිනෙ. එහෙත් එවැනි සංඥා කිහිපයක් තිබෙන විට තත්වය වෙනස් වේවිද? නැත. මෙවිටත් ඉහත පෙන්වා දුන් ලෙසමයි ඩිස්ප්‍රෙඩ් ක්‍රියාව සිදු වන්නේ. දැන් බලමු එම ක්‍රියාවලිය කොරිලේෂන් සංකල්පය ඍජුවම යොදා ගනිමින්

1 හා -1 යන බයිනරි අගයන් සමඟ කොරිලේෂන් ක්‍රියාව සිදු කිරීම ඉතාම පහසුය (ඒ කියන්නේ ඩිජිටල් සංඥා සමඟ කොරිලේෂන් පහසු බවයි). කොරිලේෂන් පමණක් නොව ඩිජිටල් සංඥා සමඟ සෑම ගණිත කර්මයක්ම සිදු කිරීම ඉතාම පහසුය (ඩිජිටල්කරණයේ තිබෙන බොහෝ වාසි අතර එක් ප්‍රධානතම වාසියක්ද වන්නේ එයයි). මෙහිදී අදාල සංඥා දෙකෙහි ගැලපෙන බිට් දෙක බැඟින් ගෙන එකිනෙකට ගුණ කරන්න. එවිට ගුණිතය ලෙස ලැබෙන්නේ 1 හෝ -1 පමණි. එනම්, 1x1=1, 1x-1=-1, -1x-1= 1 වේ. මෙය ගුණ කිරීමක් ලෙස මා සඳහන් කළද ඇත්තටම මෙතැන සිදු වන්නේ XNOR ක්‍රියාවයි (මෙම ගේටයේ ටෲත් ටේබල් එක මතක් කරගන්න). 1 හා -1 ලෙස නොගෙන සුපුරුදු 1 හා 0 ලෙස ගන්නේ නම් ඇත්තටම අපට සිදු කරන්නට වන්නේ XNOR තමයි (ගුණ කිරීම නොහැකි වේ).

සිතන්න යම් සංඥාවක ස්ප්‍රෙඩිං කෝඩ් එක 1 1 -1 -1 -1 1 -1 -1 1 1 -1 1 -1 1 1 යැයි කියා. අපි සිතමු මෙම කෝඩ් එකම තමයි සංඥාව (දත්ත බිට්) කියාත් (මෙය ප්‍රායෝගිකව සිදු විය හැකි බව මොහොතකින් පෙනේවි). දැන් රිසීවරයෙත් මෙම කෝඩ් එක තිබිය යුතුයිනෙ ඩිස්ප්‍රෙඩ් කරන්නට නම්. එවිට රිසීවරයට හැකියි එම කෝඩ් එක හා සංඥාව සමඟ කොරිලේෂන් එක සිදු කරන්න. ඒකියන්නේ අපි මේ සසඳන්නට (කොරිලේෂන් කරන්නට) යන්නේ එකම සංඥාවේ කොපි දෙකක්ය. පියවර කිහිපයකින් එය ගණනය කෙරේ. මා ඉන් පියවරවල් දෙක තුනක් පමණක් දක්වන්නම්. ඉතිරි පියරවලවල් ඉන්පසු ඔබටම ගණනය කළ හැකියි.

a) 1 1 -1 -1 -1 1 -1 -1 1 1 -1 1 -1 1 1 සංඥාව එම සංඥාව සමඟම (සංඥා දෙකෙන් එකක් අනෙකට සාපේක්ෂව වමට හෝ දකුනට එහා මෙහා නොකර) කොරිලේෂන් සිදු කිරීම. පහත රූපයේ එය පැහැදිලිවම දැක්වේ. හැමවිටම ගුණ වෙන්නේ එම පදයෙන්ම බැවින් සියලු ගුණිත පද +1 වේ. ඉන්පසු එම +1 පද සියල්ල එකතු කළ විට 15 ලැබේ (කොරිලේෂන් අගය).
 

b) 1 1 -1 -1 -1 1 -1 -1 1 1 -1 1 -1 1 1 සංඥාවම දැන් කොරිලේෂන් කරන්න එම සංඥාවේම එක් බිට් අගයක් දකුණට ගිහිපු (right shift) අවස්ථාව සමඟ. මෙවිට වම් පැත්තේ හිස්වන තැනට එන්නේ දකුණු පැත්තෙන් ඉවත් වන බිට් එකයි (එනම් බිට් cycle වේ). මෙවිට ලැබෙන කොරිලේෂන් අගය -1 වේ.
 

c) 1 1 -1 -1 -1 1 -1 -1 1 1 -1 1 -1 1 1 සංඥාවම නැවතත් කොරිලේෂන් කරමු එම සංඥාවේම බිට් දෙකක් දකුණට ෂිෆ්ට් වෙච්ච අවස්ථාව සමඟ. මෙවිට වම් පැත්තේ බිට් ස්ථාන දෙකක් හිස් වේ. එම හිස්තැන් දෙක පුරවන්නේ දකුණු පැත්තෙන් ඉවත් වන බිට් දෙය බව පැහැදිලියිනෙ. මෙවිටත් කොරිලේෂන් අගය -1 වේ.
 

මෙලෙස බිට් තුනක් දකුණට ෂිෆ්ට් කර කොරිලේෂන් සොයන්න. මේ විදියට සංඥාවේ බිට් 15ක් තිබෙන බැවින්, දකුණට බිට් 15ක්ම ෂිෆ්ට් කරපු අවස්ථාව දක්වා කොරිලේෂන් සෙවිය හැකියි. දකුණු ෂිෆ්ට් කර කොරිලේෂන් සෙව්වා සේම, එකින් එක වමට ෂිෆ්ට් කරමින්ද කොරිලේෂන් සොයන්න. එලෙසත් 15 සැරයක් සිදු කළ හැකියි නේද? ඉන්පසු කොරිලේෂන් අගයන් විමර්ෂනය කරන විට අපූරු රටාවක් පෙනේ. පළමු අවස්ථාවේදී පමණයි විශාල ධන අගයක් වන 15 ලැබෙන්නේ. අන් සියලු අවස්ථාවලදී ලැබෙන කොරිලේෂන් අගය -1 යන ඉතාම කුඩා (0ටත් පහල) අගයක් වේ. ඒ කියන්නේ ඩිජිටල් සංඥා දෙකක් කොරිලේෂන් කරන විටත්, සංඥා දෙක එකිනෙකට සර්වසම වන විට පමණි විශාල ධන අගයක් ලැබෙන්නේ. ඉහත ආකාරයට ගණනය කිරීම් 30ක්ම සිදු කර ලබා ගත් කොරිලේෂන් අගයන් ප්‍රස්ථාර ගත කළ විට පහත ආකාරයට පෙනේ.
 

ඩිජිටල් සංඥා සමඟ කොරිලේෂන් සිදු කරන අයුරු දැන් දන්නා නිසා, CDM හිදිත් එය ඒ ආකාරයෙන්ම සිදුවන හැටිත් තේරුම් ගමු දැන්. ස්ප්‍රෙඩ් කළ සංඥා කිහිපයක් සහිත අවස්ථාවක් ගන්න. ඝෝෂාවක් ලෙස පෙනෙන එම සංඥා ගොඩේ අපට උකහා ගැනීමට අවශ්‍ය සංඥාවත් තිබෙනවානෙ. එම සංඥාවේ ස්ප්‍රෙඩිං කෝඩ් එකත් අප සතුව තිබෙනවා. ඉතිං එම ස්ප්‍රෙඩිං කෝඩ් එක හා අර “සමස්ථ ඝෝෂාව” කොරිලේෂන් කරනවා. ඉතිං කොරිලේෂන් පරිපථයෙන් අවුට්පුට් වන්නේ අර සැඟව තිබූ සංඥාව සමඟ 100%ක් ගැලපුණු අවස්ථාවට හිමි කොරිලේෂන් අගයයි. අනෙක් සියලු අගයන් මෙම කෝඩ් එක සමඟ ලබා දෙන්නේ ඉතාම කුඩා කොරිලේෂන් අගයන් බව අප මොහොතකට පෙරත් දුටුවා. එනිසා ඉහල එසවෙන්නේ අදාල සංඥාවේ බිට් අගයම තමයි. ඉහත රූපයෙන්ද දැක්වෙන පරිදි එම අගය ඝෝෂාවේ විස්තාර මට්ටමට වඩා විශාලයි. ඒ අනුව දැන් අපි ඝෝෂාව තුලින් අපට අවශ්‍ය සංඥාව ඉහලට ඔසවා ගත්තා.

තවමත් යම් කෙනෙකුට CDM හා ඒ හා සබැඳි විස්තරයන් තේරුම් ගත නොහැකි නම්, කිහිප පාරක්ම එම පාඩම් කියවා බලන්න. අවසාන වශයෙන් තවත් උපමාවකින් සැඟව තිබෙන සංඥාව කොරිලේෂන් මඟින් උඩට එන්නේ කෙසේදැයි පෙන්වා දෙන්නම් (ගණිතානුකූලව තේරුම්ගෙන මතක තබා ගත නොහැකි නම්, උපමා මඟින් හෝ මතක තබා ගැනීම වටිනවා).

කාන්දම් කැබැල්ලක් පොලවට උඩින් අල්ලාගෙන ඉන්න විට ඊට පොලොවේ සීසීකඩ පැතිර තිබෙන යකඩ කැබැලි ආකර්ෂනය වෙනවානෙ. අන්න එලෙසම ස්ප්‍රෙඩිං කෝඩ් එකකින් පුලුවන් පුලුලු සංඛ්‍යාත පරාසයක් පුරා පැතිරී තිබෙන එකම සංඥාවේ කොටස් එක්තැන් කර ප්‍රබල සංඥාවක් බවට පත් කරන්නට (කොරිලේෂන් එකෙන් සිදු වූයේ එයයි).
 

2 comments:

  1. Replies
    1. :) thawath kotasak man dan me paadamata athulu kalaa.ayeth kiyawala balanna...

      Delete