Стъпка 2:⊕
Стъпка 3:10110000 10011
⊕
10100 10011 1110 10011
остатък
10110000 1110
⊕
10111110
CRC – декодиранеПри декодиране на кодови комбинации на циклични кодове се използва същото деление на образуващия полином на кода. Всяка пристигнала в приемника комбинация се дели на образуващия полином, при което се определя остатъка от делението
F`(x): P(x) →
S(x) – синдром на цикличния код – показва дали в приетата комбинация има грешка или не. Ако получената комбинация се
дели без остатък на Р(x), означава че тя принадлежи на множеството от разрешени кодови комбинации.
Алгоритъм на декодера /в режим на коригиране само на еднократни грешки/:
1. определя се полиномът
F`(x), съответстващ на
приетата кодова комбинация2. F`(x) се разделя на образуващия полином
Р(x) на кода. Определя се остатъка от това деление –
S(x).
3. ако
S(x) = 0, се счита, че в приетата кодова комбинация няма грешки и се преминава към декодиране на следващата трета кодова комбинация. При
S(x) ≠
0, към 4.
4.
определя се теглото t на единичните елементи в комбинацията, съотвестваща на
S(x).
5. ако
t е по-малко от коригиращата способност на кода /кратността на
грешката, която може да коригира дадения код/, т.е.
t ≤
1, то коригирането се извършава чрез
⊕ на приетата кодова комбинация и остатъка
S(x), т.е.
F`(x) +S(x) при
t >
1 – към 6.
6. извършва се циклично преместване на една позиция на приетата кодова комбинация, след което новополученият
полином се дели на Р(x). Определя се теглото
t` на новополучения синдром
S`(x).
7. ако
t` ≤
1, то
S`(x) ⊕
делимото, след което се извършва циклично
преместване на резултата, в посока, обратна на предишните премествания. Крайният резултат представлява коригирана кодова комбинация /разрешена/. С това приключва декодирането и се преминава към декодиране на следваща такава. Ако
t`>
1 – към 8.
8. извършва се циклично преместване на делимото още една позиция в същата посока, след
което се повтаря делението на Р(х) и се определя
t` за новия остатък.
9. преход към точка 7.
Пример:Сподели с приятели: