2.4. Блочные коды и их характеристики
Блочный (п, к) код содержит к информационных и (п - к) проверочных символов и способен исправлять t ошибок на длине блока п.
Помехоустойчивые коды можно разделить на линейные и нелинейные.
Линейные коды отличаются от нелинейных замкнутостью кодового множества относительно некоторого линейного оператора, например сложения или умножения слов кода, рассматриваемых как векторы пространства, состоящего из кодовых слов - векторов. Для линейных блочных кодов проверочные символы представляют собой линейные комбинации информационных символов. Линейность кода упрощает его построение и реализацию. При большой длине практически могут быть использованы только линейные коды. Для относительно коротких кодов сложность построения и реализациилинейных и нелинейных кодов примерно одинакова.
Как линейные, так и нелинейные коды образуют обширные классы, содержащие много различных конкретных видов помехоустойчивых кодов. Среди линейных блочных наибольшее значение имеют коды с одной проверкой на четность, М-коды (симплексные), ортогональные, биортогональные, Хэмминга, Боуза- Чоудхури-Хоквингема, Голея, квадратично-вычетные, Рида-Соломона [3-9, 28]. К нелинейным относят коды с контрольной суммой, инверсные, Нордстрома-Робинсона, с постоянным весом, перестановочные с повторением и без повторения символов (полные коды ортогональных таблиц, проективных групп, групп Матье и других групп перестановок)[53].
Важной характеристикой кода является кодовое расстояние d равное минимальному числу позиций, в которых не совпадают два любых кодовых слова. Как правило, алгоритмы декодирования блочных кодов являются алгоритмами с ограниченным расстоянием. Это означает, что ни одна комбинация, содержащая больше t ошибок, не исправляется. Вероятность ошибки кодового слова для кода, исправляющего t ошибок, определяется вероятностью появления в кодовом слове более t ошибок и определяется выражением:
Ps= I CirPcO -Pc)n~\ (2.5)
i=t+l
где Pc - вероятность ошибки символа в рассматриваемом канале. При когерентном приеме BPSK [28]
J /2-R-Ebl
где R - скорость кода, EJ/NQ = h0 - отношение сигнал/шум,
Q(x) =
1
( \2Л exp dt.
При не когерентном приеме BPSK
Рс = 0.5 • ехр(- 0.5 • R • Eb/N0). (2.7)
Для получения верхней границы вероятности ошибки символа сделаем предположение, что набор i>t ошибок в канале приведет к
тому, что декодированное слово будет отличаться от переданного в i+t позициях. Тогда вероятность ошибки на символ можно будет записать так:
п
Рь= Е Чг1- Cn-Pe(l -Pc)n_i. (2.8)
При прочих равных условиях ЭВК блочных кодов с ростом длины блока возрастает, однако, растет и сложность алгоритма декодирования. На практике наибольшее распространение получили циклические коды, для которых при кодировании и декодировании используется теория полиномов, предполагающая алгебраические вычисления в конечных полях. Рассмотрим наиболее известные блочные коды