Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие по ТЭС модуль4.doc
Скачиваний:
298
Добавлен:
10.02.2016
Размер:
2.55 Mб
Скачать

6.3 Сложность реализации алгоритмов кодирования и декодирования

Степень использования корректирующей способности кода зависит от алгоритма декодирования. При полном декодировании используют все возможности исправлять ошибки, вытекающие из свойств кода. В соответствии с фундаментальной теоремой К. Шеннона корректирующие коды, используемые для исправления ошибок канала, должны выбираться достаточно длинными. Однако с ростом длины кодовой комбинации n возрастает сложность реализации процедур кодирования и декодирования, что обуславливает трудность практической реализации кодеков. В прикладной теории кодирования наряду с оценками корректирующей способности кодов принято оценивать сложность реализации процедур кодирования/декодирования, которые могут быть реализованы программными либо аппаратными средствами. При этом аргументом функции сложности должна выступать длина кодовой комбинации n.

Сложность кодирования блоковых кодов Cк с использованием порождающей матрицы (n, k) кода размером n·k = n2(1– Rкод) обычно оценивают величиной, пропорциональной числу элементов порождающей матрицы

Cк = n·k = n2(1 – Rкод). (6.3)

Алгоритмы декодирования оказываются сложнее. Среди них наиболее сложным алгоритмом принято считать алгоритм полного перебора, в соответствии с которым декодер переборно сопоставляет кодовую комбинацию на входе декодера с множеством всех возможных комбинаций и выносит решение о передаче той из разрешенных комбинаций, которая оказывается на минимальном расстоянии от комбинации на входе декодера (декодирование по минимуму расстояния). Сложность алгоритма переборного декодирования принято считать пропорциональной количеству всех возможных комбинаций кода (объему полного перебора):

Cд-эксп = mn. (6.4)

Говорят, что сложность переборного декодирования возрастает «экспоненциально» с ростом длины кода. Ясно, что переборные алгоритмы практически трудно реализовать для длинных кодов. В связи с этим у специалистов по прикладной теории кодирования бытует жаргонное выражение «проклятие размерности»: любая попытка реализовать декодирование длинных кодов оказывается безуспешной из-за катастрофического роста сложности программной либо аппаратной реализации алгоритма декодирования. Поэтому мерилом реализационных возможностей алгоритмов декодирования блоковых кодов является сопоставление сложности алгоритма с верхней границей сложности (6.4). Лучшими считаются коды с показателем сложности, пропорциональным малой степени длины кода:

Cд-степ = nk (k – малое). (6.5)

В таких случаях говорят, что алгоритм характеризуется «степенной» сложностью.

Контрольные вопросы

6.1. Каково практическое значение использования нижней границы Варшамова-Гилберта и верхней границы Хемминга для оценки характеристик блоковых корректирующих кодов?

6.2. К какой границе (верхней либо нижней) следует стремиться при разработке новых блоковых кодов?

7. Важные классы блоковых корректирующих кодов

7.1. Коды Хемминга [1, разд. 10.2; 5, разд.5.2; 7, разд. 19.2]

7.2. Циклические коды [1, разд. 10.3; 5, разд.5.4; 7, разд. 19.5]

Общие сведения. Известно большое число кодов, различных по структуре, принципам построения и корректирующей способности. В этом разделе рассмотрены классы блоковых кодов, для которых разработаны достаточно простые и эффективные алгоритмы декодирования.

Многие блоковые коды обладают циклическими свойствами, что позволяет использовать при кодировании и декодировании регистры сдвигов и упрощает построение кодеков, реализуя тем самым алгоритмы декодирования со степенной оценкой сложности (6.5). К алгебраическим относятся алгоритмы декодирования, работа которых основана на использовании алгебраических свойств кодовых комбинаций. При этом в демодуляторе производится жесткое решение о принятых сигналах и на вход декодера поступают дискретные символы, алфавит которых совпадает с алфавитом символов на передаче. При вероятностном декодировании существенным является более полное использование информации с выхода канала. В этом случае в демодуляторе производится мягкое решение, содержащее информацию об апостериорных вероятностях принимаемых символов. Возможны также и промежуточные варианты построения алгоритмов. В прикладной теории кодирования известен широкий набор корректирующих кодов, различающихся как способами кодирования/декодирования, так и корректирующими свойствами. Ниже рассмотрены наиболее типичные примеры.