Теорема Шеннона состоит из двух частей. Во-первых, требуется доказать, что к этой предельной кодовой скорости действительно можно приблизиться, увеличивая длину блока, существуют соответствующие коды. А именно, утверждение выглядит так: существует бесконечная последовательность кодов для блоков возрастающей длины, скорости которых приближаются к пропускной способности канала, а ошибка декодирования при этом стремится к нулю.
Ошибка декодирования - это ситуация, когда ошибок произошло слишком много, что код уже не может все их исправить. Скажем, вот мы повторили каждый бит трижды: 0->000, 1->111. Если произошла не одна, а две ошибки, т.е. вместо 000 получили 011, то получатель подумает, что было послано 111 и произошла одна ошибка в первой позиции. В результате он декодирует неправильно: не в 0, а в 1. Вот эта ошибка должна стремится к нулю.
А во-вторых, теорема Шеннона доказывает, что лучше - нельзя. Это довольно обычная схема, которую знают и школьники-олимпиадники по математике, "пример+оценка", кажется это называется: надо с одной стороны предъявить пример того, что можно достичь нужного "показателя качества", а с другой - доказать, что ещё лучше - нельзя.
И вот тут в случае с теоремой кодирования и есть тонкость. Что значит "нельзя"? Можно сформулировать так: если мы увеличиваем длину блока, но добавляем слишком мало проверочных битов, т.е. пытаемся передавать информацию быстрее, чем допускает пропускная способность, то вероятность ошибки декодирования НЕ стремится к нулю. Это называется "слабое обращение".
Почему слабое? Окей, хорошо, пусть моя ошибка декодирования не стремится к нулю, а стремится, допустим, к одной сотой. Т.е. примерно один раз из ста приёмник ошибочно декодирует сообщение. Но может, это не так страшно, если это позволяет передавать сообщения с намного большей скоростью? Т.е. вставляем намного меньше проверочных битов, платя за это лишь небольшой вероятностью "сбоя", - вполне неплохо.
Так вот "сильное обращение" (доказанное уже не Шенноном, а позже) утверждает, что нет: если мы вставляем слишком мало проверочных битов для данного уровня шума, то вероятность ошибки не просто не стремится к нулю, а стремится к единице! Причём стремится очень быстро (экспоненциально, в геометрической прогрессии) с размером блока. Вот это уже точно никуда не годится: не один раз из ста, а ПОЧТИ ВСЕГДА мы будем декодировать ошибочно. Никакую информацию так передавать нельзя, так что пропускная способность канала - действительно предел.
Post #395
50