820 likes | 886 Views
Кодирање, детекција и корекција грешака. Увод Тежински кодови Нетежински кодови Детекција грешака Детекција и корекција грешака. Увод. Информације у окружењу постоје у различитим облицима. Оне могу бити неелектричног и електричног типа.
E N D
Кодирање, детекција и корекција грешака Увод Тежински кодови Нетежински кодови Детекција грешака Детекција и корекција грешака
Увод • Информације у окружењу постоје у различитим облицима. • Оне могу бити неелектричног и електричног типа. • Величине електричног типа могу бити аналогне и дигиталне. Притиснут одређени тастер на тастатури, температура, притисак, напон, струја, ...
Увод • Све неелектричне величине морају се претворити у електричне помоћу разних врста сензора, давача, и сл. • Аналогне електричне величине морају се претворити у дигиталне. • У крајњој линији, подаци којима барата рачунарски систем су у бинарном облику.
Увод • Стога је зе коришћење у рачунарским системима најпогоднији бинарни бројни систем. • Људи су навикнути на рад са децималним бројевима. • Компромис између ове две потребе је да се изврши бинарно кодирање децималних бројева.
Увод • Како постоји десет декадних цифара (0, 1, ..., 9) за кодирање сваке цифре потребна су четири бита. • Са четири бита можемо да направимо 24 комбинација, док нам је потребно свега 10. • Последица: постоји велики број кодова.
Увод • Бинарни кодови могу бити: • Тежински (пондерисани). • Нетежински (непондерисани). • Осим наведених разлога, бинарни кодови се користе и у сврху детекције и корекције грешака насталих у преносу података.
Тежински кодови • Код тежинских кодова свакој цифри се додељује тежина t. • Збир тежина оних цифара које имају вредност 1 еквивалентна је децималном броју који се представља помоћу четири бита.
Тежински кодови • У случају када је t0=20=1, t1=21=2, t2=22=4, t3=23=8 добијамо већ познати BCD код, или ’’8421’’.
Тежински кодови • Неки кодови имају особину да се код деветичног комплемента неке цифре добија као јединични комплемент њене кодне презентације. • То су аутокомплементарни кодови.
Тежински кодови • Најчешће се користи BCD код. • Сабирање бројева је исто као и код бинарних све док сума не прелази 9.
Тежински кодови • Када сума прелази 9, врши се децимално подешавање додавањем броја 6.
Тежински кодови • Подешавање се врши и када постоји пренос са једног цифарског места на друго.
Тежински кодови • Када је у питању операција одузимања, подешавање се врши одузимањем броја 6.
Нетежински кодови • Код нетежинских кодова не постоји одговарајућа тежина придружена појединим битовима у кодној речи.
Нетежински кодови • Код ’’вишак 3’’ Добија се додавањем броја три децималном броју. Добијени код је аутокомплементаран.
Нетежински кодови • Подешавање за случај појаве преноса се врши додавањем броја три на оба цифарска места.
Нетежински кодови • Када збир не прелази 9 подешавање вршимо одузимањем броја три.
Нетежински кодови • Код одузимања се подешавање врши додавањем броја три.
Нетежински кодови • Циклични код Узастопне кодне речи разликују се само на једној бит-позицији.
Нетежински кодови • Грејов код Још један тип цикличног кода је рефлективни код или Грејов код. Једна од особина овог кода је да су, осим MS цифре све колоне рефлективне (симетричне) у односу на средњу тачку.
Нетежински кодови • На MS позицији у горњој половини су нуле а у доњој јединице.
Нетежински кодови • Децимални број се конвертује у Грејов код најпре конверзијом у бинарни. • Бинарни број се конвертује у Грејов код формирањем суме по модулу 2 између текуће цифре (почевши од LS цифре) и суседне цифре веће тежине.
Нетежински кодови • Ако је бинарна презентација децималног броја дата у облику b3b2b1b0, тада се одговарајућа кодна реч из Грејовог кода, G3G2G1G0, одређује као G3= b3 G2= b3b2 G1= b2b1 G0= b1b0
Нетежински кодови Пример: Наћи Грејов код децималног броја 11. Одговор: Бинарна презентација броја 11 је 1011. G3= b3= 1; G2= b3b2 = 10 = 1; G1= b2b1 = 01 = 1; G0= b1b0 = 11 = 0; Одговарајући Грејов код је 1110.
Нетежински кодови • Конверзија Грејовог кода у децимални еквивалент такође се изводи најпре конверзијом у бинарни.
Нетежински кодови Пример: Одредимо децимални еквивалент Грејове кодне речи 1110. Одговор: b3= G3= 1; G2= b3b2 = 1b2= 1 b2= 0; G1= b2b1 = 0b1 = 1 b1= 1; G0= b1b0 = 1b0 = 0 b0= 1;
Нетежински кодови Бинарни еквивалент је 1011 што одговара декадном броју 11.
Детекција грешака • Број позиција на којима се два низа разликују назива се Хемингово растојање. • n-коцка има 2nчворова при чему сваки чвор одговара једном n-тобитном низу.
Детекција грешака • Два чвора n-коцке су повезана потегом акко је Хемингова дистанца између одговарајућих низова једнака 1.
1-коцка 0 1 10 11 2-коцка 00 01 Детекција грешака
101 111 110 100 3-коцка 001 011 000 010 Детекција грешака
1111 1110 1011 1010 1101 1100 1000 1001 0110 0111 0010 0011 0101 0100 0000 0001 Детекција грешака 4-коцка
Детекција грешака • У оквиру n-коцке постоји више m-субкоцки са по 2m чворова. • Код сваке од m-субкоцки n-m битова једног чвора има исту вредност, док осталих m битова представља једну од 2m бинарних комбинација.
Детекција грешака • n-коцка представља геометријску интерпретацију појма Хемингове дистанце.
Детекција грешака • Било који n-тобитни код може се посматрати као подскуп свих могућих n-тобитних низова. • Они низови који припадају том подскупу зову се кодне речи. • Остале низове ћемо звати не-кодним речима.
Детекција грешака • Ако, приликом преноса података, примимо не-кодну реч, то је знак да је дошло до грешке. • Да би се успешно детектовала грешка на једној бит позицији, кодне речи морају да имају растојање не мање од 2.
Детекција грешака • То значи да избор кодних речи из одговарајуће n-коцке мора да буде такав да се бирају кодне речи које одговарају несуседним чворовима.
101 111 110 100 001 011 000 010 Детекција грешака Ако изаберемо да тробитни код чине кодне речи 000, 011, 100, 111, онда грешка на једној бит позицији може да промени кодну реч 100 у 000 или 110 па овај код не може детектовати све грешке.
Детекција грешака • Ако би из кода изоставили кодну реч 100, и уместо ње узмемо кодну реч 101 добијамо код који може да детектује све грешке на једној бит позицији.
101 111 110 100 001 011 000 010 Детекција грешака Код парне парности
101 111 110 100 001 011 000 010 Детекција грешака Код непарне парности
Детекција грешака • Кодови за проверу парности • Да би се у произвољном коду очувало растојање 2, на nинформационих битова додаје се 1 редудантни бит. • Тако добијамо (n+1)-битни код за проверу парности: • Код парне парности. • Код непарне парности.
Детекција грешака • На претходним сликама кодови имају 2 MS бита информације и LS бит парности.
Детекција грешака • Кодови mодn. Ово је још једна класа кодова који могу да детектују једноструку грешку. Овде све важеће кодне речи имају n битова од којих је m увек постављено на 1.
Детекција грешака • За представљање декадних цифара погодан је код 2 од 5 (C52), јер има тачно 10 комбинација.
Детекција грешака • Дводелни (biquinary)кодови. Ради се о 7-битном коду који се састоји из два дела. Први део је тежински код 1 од 2, а други је такође тежински 1 од 5.