Задача эффективного кодирования – представить сообщение минимальным количеством канальных символов. Если кодировать отдельные знаки алфавита источника, то наиболее вероятные знаки следует представлять самыми короткими кодовыми комбинациями.
Пример кодирования блоков знаков с независимым появлением:
Источник , энтропия Н = – (0,9 log20,9 + 0,1 log20,1) = 0,47,
для передачи одного знака требуется один двоичный символ (1 бит).
Кодируем блоки из двух знаков (методом Шеннона –Фано)
блоки знаков | вероятности | разделение на группы | кодовые слова |
а = x 1 x 1 b = x 1 x 2 c = x 2 x 1 d = x 2 x 2 | 0,81 0,09 0,09 0,01 | 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 | 0 1 0 0 1 0 0 0 |
Для передачи блока в среднем требуется
1*0,81 + 2*0,09 + 3(0,09 + 0,01) = 1,29 бит, а для передачи знака – 0,65 бит.