10.3  Кодовий синдром і виявлення помилок лінійним блоковим кодом

 

Нехай u=(u1, u2, …, un) - кодове слово, передане по каналу з шумом; y=(y1, y2, …, yn) - прийнята послідовність, що через вплив завад може відрізнятися від переданої.

Для описання виникаючих у двійковому симетричному каналі помилок використовується вектор помилок е=(e1, e2, …, en), що є двійковою послідовністю завдовжки n з одиницями у тих позиціях, де виникли помилки.

Наприклад, вектор помилок е=(0001000) означає однократну помилку у четвертому біті, е=(1100000) - двократну помилку у першому і другому бітах.

При передачі кодового слова u по каналу з шумом прийнята послідовність матиме вигляд  y = u+е, де u - передане кодове слово; e – вектор помилок у каналі.

Наприклад: u=(0001000), e=(0001000), тоді y=(0000000).

Щоб перевірити наявність помилок у прийнятій послідовності y, декодер обчислює таку (n-k)- послідовність:

S=(S1, S2, …, Sn-k)=y,

де y - прийнята кодована послідовність;  - транспонована перевірна матриця коду.

При цьому у є кодовим словом тоді, коли S=(0 0 … 0), і не є кодовим словом даного коду, якщо S≠0.

Послідовність S є ознакою наявності помилок у прийнятій послідовності y і називається кодовим синдромом.

Приклад 3  Для розглянутого прикладу лінійного блокового (4, 7)- коду знайдемо значення кодового синдрому.

Нехай y=(y1, y2, …, y7) - прийнята кодована послідовність. Тоді

                 S=y=(y1, y2, …, y7)×=((y1+y3+y4+y5), (y1+y2+y3+y6), (y2+y3+y4+y7)).

Деякі комбінації помилок, використовуючи кодовий синдром, виявити неможливо. Наприклад, якщо передане кодове слово під впливом завад перетвориться на інше кодове слово цього самого коду, то синдром S=y×=0, і декодер помилок не виявить.