Kodet

## Hyrje
Gjuha përmes së cilës njerëzit komunikojnë mes vete formohet si grumbull fjalësh, të cilat në fakt paraqesin kombinime të një numri të caktuar tingujsh - kur flasim, përkatësisht shkronjash - kur shkruajmë. Kështu, kur e themi fjalën lapsi, në atë rast e nënkuptojmë një mjet për shkruarje, kurse kur themi fletore, mendojmë në diçka për shkruarje, sepse ashtu është marrëveshja në gjuhën shqipe. Grumbulli i të gjitha fjalëve paraqet gjuhën, përkatësisht kodin (ang. code) për komunikim mes njerëzve të cilët e flasin atë gjuhë. Në jetën e përditshme njeriu shfrytëzon kode të ndryshme. P.sh., gjatë kalimit nëpër udhëkryq, ku komunikacioni rregullohet përmes semaforit, shfrytëzohet kodi sipas të cilit udhëkryqi mund të kalohet nëse është e ndezur ngjyra e gjelbër, kurse në ngjyrë të kuqe nuk lejohet kalimi i udhëkryqit. Te pajisjet digjitale, për përpunim dhe për transmetim të informatave, gjithashtu përdoren kode të ndryshme, te të cilët çdo shifre numerike, shkronje, ose simboli, i shoqërohet një kombinim i caktuar shifrash binare 1 dhe 0. Kombinimet e tilla, të cilat krijohen për kodimin e simboleve elementare të një kodi, quhen fjalë kodike (ang. code word). Në vazhdim do të përmenden disa lloj kodesh binare të cilët përdoren më shpesh.

## Kodet BCD
Njeriu gjatë llogaritjeve të ndryshme në jetën e përditshme e shfrytëzon sistemin decimal të numrave. Kurse te pajisjet digjitale, gjatë përpunimit dhe transmetimit të informatave, shfrytëzohen kode binare. Për këtë arsye, janë krijuar të ashtuquajturit kode BCD (nga Binary Coded Decimal), te të cilët çdo shifre decimale i shoqërohet një fjalë kodike binare, përkatësisht, bëhet kodimi binar i shifrave decimale. Gjatë krijimit të kodeve BCD tentohet që fjalët kodike të zgjidhen ashtu që kodi të jetë i përshtatshëm për numërim, llogaritje, konvertim, zbulim ose për korrigjim të gabimeve etj. Te këto kode çdo shifër decimale zëvendësohet me një grup shifrash binare, përkatësisht me fjalë kodike katërshifrore. Me katër shifra binare mund të krijohen gjithsej 16 fjalë kodike të ndryshme. Por, për kodimin e shifrave decimale zgjidhen vetëm 10 fjalë kodike, gjë që jep mundësi të krijimit të më shumë kodeve BCD. Zgjedhja e kombinimeve të shifrave binare brenda një kodi mund të bëhet duke e pasur, ose duke mospasur, parasysh peshën e pozicioneve brenda fjalëve kodike. Në këtë mënyrë dallohen kodet BCD me peshë dhe pa peshë.

## Kodet me peshë
Nëse shifrave binare x, y, z dhe v, brenda fjalës kodike xyzv, u korrespondojnë peshat a, b, c dhe d, për çdo fjalë kodike të kodit BCD mund të llogaritet ekuivalenti decimal përkatës kështu:

N = x ⋅ a + y ⋅ b + z⋅ c + v ⋅ d

Disa nga kodet me peshë të cilët përdoren më shpesh janë dhënë në tabelën e Fig.2.1, ku shifrave decimale u korrespondojnë fjalët kodike në kolonën e parë të tabelës.

Fig 2.1 Kodet BCD me peshë

## Kodi NBCD
Si kod BCD i cili përdoret më shpesh është kodi 8421, i cili ndryshe quhet edhe NBCD (nga Natural Binary Coded Decimal), sepse fjalët kodike të këtij kodi u korrespondojnë 10 numrave të sistemit binar natyror. Kodimi i numrave decimalë, në kodin NBCD, kryhet duke zëvendësuar shifrat
e veçanta brenda numrave me fjalët kodike përkatëse.

Skeda:NBCD Kodimi.jpg

### Mbledhja në kodin NBCD
Me qëllim që të tregohet se operacionet aritmetikore kryhen edhe mbi numrat e paraqitur përmes kodeve të ndryshme, në vazhdim është dhënë
procedura e mbledhjes së numrave në kodin NBCD. Fjalët kodike të cilat shfrytëzohen nga kodi NBCD paraqesin fjalë kodike të
lejuara, për dallim nga fjalët kodike të ndaluara, të cilat nuk i përkasin këtij kodi.

Skeda:mbledhjaNBCD.png

Mbledhja në kodin NBCD kryhet në dy faza:
   • Mblidhen numrat e dhënë, duke shfrytëzuar rregullat e mbledhjes binare.
   • Korrigjohen fjalët kodike që fitohen pas mbledhjes, nëse ato janë:
fjalë kodike të ndaluara, ose fjalë kodike me bartje. Fjalët kodike korrigjohen duke ua shtuar numrin decimal 6 (sa është numri i fjalëve kodike të ndaluara), përkatësisht ekuivalentin binar përkatës 0110. Pas korrigjimit të parë, vazhdon korrigjimi i fjalëve kodike të ndaluara. Por, korrigjimi i fjalëve prej të cilave ka bartje ndërpritet. Procesi i korrigjimit përfundon kur në rezultat nuk ka më fjalë kodike të ndaluara.

Shembuj te mbledhjes:

Skeda:mbledhjaNBCD2.png

## Kodet pa peshë
Si kod BCD pa peshë këtu do të përmendet kodi Excess-3, i cili shkurt shënohet edhe XS3. Ky kod fitohet nga kodi NBCD, duke ia shtuar çdo fjale kodike ekuivalentin binar të numrit 3, gjë që shihet edhe në tabelën e paraqitur më poshtë.

Kodi XS3 është i përshtatshëm për operacione aritmetikore, gjë që mund të shihet përmes operacionit të mbledhjes, i cili kryhet në dy hapa:
   • Mblidhen numrat e dhënë, duke shfrytëzuar rregullat e mbledhjes binare.
   • Korrigjohen të gjitha fjalët kodike që fitohen pas mbledhjes. Për korrigjim shfrytëzohet procedura vijuese.

Fjalëve kodike me bartje u shtohet numri 0011. Fjalëve kodike pa bartje u zbritet numri 0011. Fjala kodike e cila fitohet si rezultat i bartjes përfundimtare nuk korrigjohet

## Kodet ciklike
Kodet te të cilat fjalët kodike të njëpasnjëshme dallohen mes vete vetëm në një shifër, duke formuar njëkohësisht një tërësi të mbyllur, quhen kode ciklike (ang. cyclic code). Kodet e tilla shfrytëzohen kryesisht gjatë konvertimit të sinjaleve analoge në digjitale, sepse zbulohen lehtë gabimet eventuale gjatë konvertimit.
Si kod ciklik që përdoret më shpesh është kodi i Gray-it (ang. Gray code), i dhënë në tabelën e paraqitur me poshtë.

Nëse shikohen fjalët kodike të dhëna në tabelë do të vërehet ligjshmëria e theksuar më sipër, për dallim të fjalëve të njëpasnjëshme kodike vetëm në një shifër. Kjo ligjshmëri ruhet edhe mes fjalës kodike në fund dhe në fillim të tabelës, prandaj thuhet se kodi ciklik njëkohësisht formon edhe një tërësi të mbyllur. Ligjshmëria e lidhjes së fjalëve kodike të njëpasnjëshme te kodi i Gray-it më së miri shihet nëse fjalët kodike vendosen në tabelën për kodim:

Skeda:kodigray.png

prej ku, fjalët kodike përkatëse për numrat decimalë formohen si kombinim i vlerave numerike ABCD, ku fusha 0000 i përgjigjet fjalës së parë kodike.

## Kodet optimale
Gjatë transmetimit të informatave në distancë, për ta zvogëluar kohën e transmetimit, përdoren kodet optimale. Në pjesën paraprake u përmendën kodet me gjatësi fikse të fjalëve kodike. Por, për krijimin e kodeve optimale imponohet nevoja që fjalët kodike brenda një kodi të ke ë gjatësi të ndryshme. Për krijimin e kodit optimal, përmes të cilit kodohet një grumbull simbolesh elementare, përdoret parimi sipas të cilit gjatësia e fjalëve kodike varet nga frekuenca e përdorimit të informatave elementare. Në bazë të këtij parimi, simboleve elementare që
përdoren më shpesh u ndahen fjalë kodike më të shkurtra, gjë që mundëson transmetimin e inforamatave për kohë minimale.
Procedura e përcaktimit të fjalëve kodike mbështetet në frekuencat relative, përkatësisht gjasat e përdorimit të simboleve elementare që kodohen. Në literaturë përmenden metoda të ndryshme të kodimit optimal. Këtu, në vijim do të jepen dy metoda të kodimit optimal, metoda e Shannon-Fanos dhe metoda e Huffman-it.

## Shiko Gjithashtu
*Koduesit