Закодируем кодом Хаффмана:
P1=1,043*
P2=2.494*
P3=1.601*
P4=6.457*
P5=1.765*
P6=3.349*
P7=4.465*
P8=4.207*
P9=2.812*
P10=0.013
P11=0.045
P12=0.109
P13=0.188
P14=0.231
P15=0.203
P16=0.127
P17=0.057
P18=0.018
P19=4.209*
P20=
В порядке убывания:
P14=0.231
P15=0.203
P13=0.188
P16=0.127
P12=0.109
P17=0.057
P11=0.045
P18=0.018
P10=0.013
P19=4.209*
P9=2.812*
P20=
P8=4.207*
P7=4.465*
P6=3.349*
|
|
|
|
P14=0.231
P15=0.203
P13=0.188
P16=0.127
P12=0.109
P17=0.057
P11=0.045
P18=0.018
P10=0.013
P19=4.209*
P9=2.812*
|
|
|
|
P14=0.231
P15=0.203
P13=0.188
P16=0.127
P12=0.109
P17=0.057
|
|
|
|
|
P20=
P14=0.231 P14=0.231 P14=0.231
P15=0.203 P15=0.203 P15=0.203
P13=0.188 P13=0.188 P13=0.188
P16=0.127 P16=0.127 P16=0.127
|
|
|
P=0.039
P=0.25 P=0.315 P=0.434
|
|
|
P=0.565
В результате получили коды:
A1=10110000000000000
A2=10110000000000001
A3=1011000000000001
A4=101100000000001
A5=10110000000001
A6=1011000000001
A7=101100000001
A8=10110000001
A9=101100001
A10=1011001
A11=10111
A12=100
A13=111
A14=01
A15=00
A16=110
A17=1010
A18=101101
A19=10110001
A20=1011000001
Минимальная длина кодовой комбинации равномерного кода, которым можно закодировать 20 сообщений определяется как наибольшее ближайшее целое к log20. Это будет 5.
nср = 2*(P14+P15)+3*(P12+P13+P16)+4*P17+5*P11+6*P18+7*P10+8*P19+9*P9+
+10*P20+11*P8+12*P7+13*P6+14*P5+15*P4+16*P3+17*(P1+P2)=2.863
Степень сжатия:
Энтропия источника сообщений:
=2.833
Таким образом, полученный код длиннее оптимального в процентах на:
Применение эффективного кодирования имеет смысл, так как средняя длина кодовой комбинации эффективного (оптимального) кода округленная до ближайшего большего целого, меньше длины примитивного кода N < nпр.
Информационная скорость на выходе оптимального кодера составит
(7)
где v – скорость передачи дискретного источника;
.
Помехоустойчивое кодирование.
В качестве помехоустойчивого кода выберем код Хемминга. Данный код, как и все блочные коды, можно формировать несложными кодирующими устройствами пассивного типа (требуются лишь типовые устройства, такие как регистры сдвига, сумматоры и умножители, построенные на типовых элементах цифровой техники: ключах, триггерах, и пр.).
Информационные символы представляют собой оптимальный код неравномерной длины. Поэтому применим помехоустойчивое кодирование для каждых трех символов, следующих последовательно, то есть количество информационных символов k = nср =5.
Минимальное кодовое расстоянием: d = 2. Количество проверочных символов необходимых для того, чтобы минимальное кодовое расстояние линейного кода достигало значения d равно r³2×d-2-log2 d r=1
Длина кодовой комбинации составит n = k + r = 5 + 1 = 6.
Кодовые комбинации будут определяться как
,
где b – вектор-строка информационных символов;
Gк – порождающая матрица, приведенная к каноническому виду.
Каноническая матрица Gк имеет вид:
Проверим правильность кода, при этом должен получиться нулевой синдром: