Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

(по цифровому вещанию) Dvorkovich_V_Cifrovye_videoinformacionnye_sistemy

.pdf
Скачиваний:
258
Добавлен:
15.03.2016
Размер:
23.26 Mб
Скачать

Глава 19. Помехоустойчивое кодирование в системах передачи

прежних битов и один новый. Этот блок кодируется по тому же правилу, что и предыдущий. Подобные шаги непрерывно повторяются один за другим с вовлечением каждый раз одного нового бита взамен последнего бита предыдущего

блока. В результате на выходе кодера формируется поток символов сверточного кода: u10, u20, . . . , uN0 , u11, u21, . . . , uN1 , . . . На каждый новый бит источника, обрабо-

танный по схеме рис. 19.16, кодер откликается N кодовыми символами, поэтому скорость кода в битах на кодовый символ равна R = 1/N .

Рассмотренная процедура кодирования для случая M = 4, N = 2 проиллюстрирована на рис. 19.17. Кодер как бы просматривает битовый поток источника сквозь скользящее окно ширины в M битовых интервалов, и кодирует все биты, попадающие в это окно на текущем шаге, в N кодовых символов. После каждого шага окно смещается вправо на один бит источника, и выполняется следующий шаг. Размер окна M или число бит источника, влияющих на кодовые символы на одном шаге, называется конструктивным или кодовым ограничением.

Использование пунктирных линий при обозначении связей между ячейками сдвигового регистра и сумматорами по модулю два на схеме рис. 19.16 означает возможность присутствия или отсутствия этих связей в конкретной схеме кодера и определяется видом образующих (порождающих, производящих) полиномов

g

(x) = gn + gnx +

· · ·

+ gnx2

+

· · ·

+ gn

xM−1, n = 1, 2, . . . , N, (19.48)

n

0 1

j

 

M−1

 

где x — формальная переменная.

Значения коэффициентов gjn {0, 1} полинома указывают на наличие или отсутствие связи между j-м разрядом регистра и n-м сумматором: gjn = 1 — определяет наличие связи, gjn = 0 — отсутствие. Выбор связей между сумматорами и разрядами регистра определяет правило кодирования и влияет на эффективность кода. Задача выбора связей, дающая оптимальные корректирующие свойства сверточного кода, сложна и в общем случае не решается. Однако для кодового ограничения M <20 найдены образующие полиномы, обеспечивающие хорошую помехоустойчивость [7.11, 7.12–7.14].

Для примера на рис. 19.18 приведена схема сверточного кодера с длиной кодового ограничения M = 3, скоростью кодирования R = 1/2 и образующими полиномами g1(x)x2 + x + 1, g2(x)x2 + 1. Входные биты b0, b1, . . . преобразуются в два потока кодовых символов u10, u11, . . . и u20, u21, . . . , которые затем мультиплексируются так, чтобы u1i и u2i занимали соответственно четные и нечетные позиции в общем кодовом потоке.

Например, битовый поток {bi} = 10100100 . . . порождает последовательности {u1i } = 11011111 . . . и {u2i } = 10001101 . . ., которые после мультиплексирования образуют кодовый поток {u1i , u2i } = 1110001011111011 . . ..

Для краткости описания кодирующего устройства вместо двоичных полиномов обычно указываются их коэффициенты, которые объединяют в двоичное слово и представляют в восьмеричной системе счисления. Например, для кодера на рис. 19.18 коэффициенты образующих полиномов g1(x), g2(x) составляют двоичные числа (111)2 и (101)2, что соответствует паре восьмеричных чисел (7, 5)8.

19.4.1. Систематические сверточные коды

Формируемые структурой по схеме на рис. 19.16 коды являются несистематическими — в них отсутствуют информационные символы. При g1(x) = 1 сверточный

19.4. Сверточные коды

Рис. 19.17. Временные диаграммы, иллюстрирующие работу сверточного кодера при

M = 4, N = 2

Рис. 19.18. Сверточный кодер со скоростью R = 1/2 на основе образующих полиномов g1(x)x2 + x + 1, g2(x)x2 + 1

Рис. 19.19. Схема кодера систематического нерекурсивного сверточного кода со скоростью кодирования R = 1/2

код становится систематическим. В нем биты источника явно присутствуют на определенных позициях, чередуясь с проверочными. Для получения систематических сверточных кодов можно построить как нерекурсивные так и рекурсивные кодеры. Для примера на рис. 19.19 представлена схема кодера систематического нерекурсивного сверточного кода.

Однако в рамках структуры рис. 19.16 систематические коды, как правило, оказываются не лучшими в отношении корректирующей способности [7.15].

Глава 19. Помехоустойчивое кодирование в системах передачи

Рис. 19.20. Схема систематического рекурсивного сверточного кодера с порождающими полиномами g1(x)x2 + x + 1 и g2(x)x2 + 1

Поэтому в обстоятельствах, когда систематичность кода критически важна, сверточный кодер модифицируют в структуру с обратной связью [7.16]. Такие кодеры называются рекурсивными.

Для перевода несистематическго сверточного кода со скоростью R = 1/2 в систематическую форму вычисляется остаток r(x)b(x)/g1 (x) от деления полинома b(x), описывающего кодируемую последовательность, на производящий полином g1(x). Определяются полиномы u1(x)b(x) и u2(x)r(x)/g2 (x), описывающие систематический выход и проверочные символы. Остаток r(x) можно получить с использованием регистра сдвига с обратными связями, поэтому полином g1(x) называется полиномом обратной связи, а полином g2(x) — выходным полиномом. Формируемые таким образом коды называются рекурсивными сверточными кодами RSC (Recursive Systematic Convolutional). Пример RSC-кодера, полученного из кодера на рис. 19.18, показан на рис. 19.20.

19.4.2. Управление скоростью кодирования

При использовании сверточных кодов со скоростью R = 1/N наибольшая кодовая скорость равна 1/2. Во многих практических случаях желательно работать на более высоких скоростях (например, 2/3 или 3/4). Одним из путей повышения кодовой скорости является переход к скоростям RS/N , где N и S < N — натуральные числа. Такие скорости могут быть получены, если скользящее окно сдвигать каждый раз не на один, а на S символов, и формировать N кодовых символов на интервале, занимаемом S информационными символами, а не одним. Однако в настоящее время такой вид кодеров не находит широкого применения вследствие того, что сложность декодера экспоненциально растет с увеличением S. Поэтому чаще применяют другой способ повышения кодовой скорости, называемый выкалыванием (puncturing).

Под выкалыванием понимается удаление из кода некоторых символов по правилу, согласованному между передающей и приемной сторонами. Количество удаляемых битов определяет получающуюся кодовую скорость. Например, если с выхода декодера со скоростью R = 1/2 удалять каждый четвертый выходной бит, то получится код со скоростью R = 2/3. Основной особенностью выкалывания является то, что с помощью простого изменения числа удаляемых битов на базе одного и того же кодера могут быть построены коды с широким диапазоном кодовых скоростей.

19.4. Сверточные коды

При использовании выкалывания необходимо определить правило, по которому определяется местоположение удаляемых битов. В [7.10] рассматривается правило, cогласно которому сверточный код со скоростью R = 1/n делится на блоки, состоящие из l групп по n символов. В каждом блоке удаляют по одному кодовому символу в g — n-символьных группах. Описанный алгоритм поясняется представленным на рис. 19.21 примером с параметрами n = 2, l = 3, g = 2, где удаляемые символы окрашены в серый цвет.

Рис. 19.21. Повышение скорости кодирования с помощью выкалывания при n = 2, l = 3, g = 2

Формируемый по рассмотренному правилу код с выкалыванием содержит l исходных битов сверточного кода в каждом блоке, длина которого после удаления g символов составляет (l −g)·n+g ·(n−1) = l ·n−g символов, так что в результате получается код со скоростью

l

R = ln − g .

Изменением параметров l и g при фиксированном n можно регулировать величину скорости в значительном диапазоне, добиваясь ее желаемого значения. Так, в рассмотренном примере R = 3/4.

Более компактно операцию выкалывания можно задать вектором выкалывания P, число элементов которого определяет период выкалывания. Передаваемые биты в этом векторе отмечаются «1», а удаляемые — «0». В частности, для получения кодов со скоростями R = 2/3 и R = 3/4 из кода со скоростью R = 1/2 можно воспользоваться векторами

P = [1110]T и P = [110110]T соответственно.

Умножение PT на векторы кодовых символов сверточного кода дает соответствующие коды с выкалыванием.

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

19.4.3.Представление сверточных кодеров в виде цифровых фильтров

При описании сверточных кодеров и процесса кодирования используют разные подходы. Сверточные кодеры можно рассматривать как фильтры с конечной или бесконечной импульсной характеристикой (КИХ, БИХ), описывая связи в схеме фильтра с помощью образующих полиномов. Их можно представить в виде конечных автоматов, описывая процесс кодирования с помощью диаграмм состояний и кодовых решеток, позволяющих лучше понять алгоритмы декодирования.

Глава 19. Помехоустойчивое кодирование в системах передачи

Действительно, устройство, выполненное по схеме рис. 19.16, есть не что иное, как фильтр с конечной импульсной характеристикой (КИХ), реакцией которого на входной битовый поток является свертка последнего с импульсным откликом фильтра. Этот факт объясняет происхождение названия рассматриваемых кодов, а также лежит в основе удобного способа формального описания сверточного кодера. Свертка, связывающая кодовый символ uni (т. е. появляющийся на выходе n-го сумматора при поступлении бита источника bi) с входным битовым потоком:

 

M−1

 

j

uin =

bi−j gjn, i = 0, 1, . . . , n = 1, 2, . . . , N,

 

=0

где, gjn — коэффициенты порождающих полиномов (19.48), определяющих вид схемы кодера.

Представленную на рис. 19.20 структуру кодера можно рассматривать как фильтр с бесконечной импульсной характеристикой (БИХ-фильтр).

19.4.4. Диаграммы состояний и кодовые решетки

Сверточный кодер можно рассматривать как конечный автомат, т. е. устройство с конечным числом состояний, и описывать с помощью диаграммы состояний.

Для сверточного кода со скоростью кодирования R = 1/N состояние определяется содержимым M − 1 разрядов сдвигового регистра (рис. 19.16). Знание состояния и очередного бита данных на входе является необходимым и достаточным условием для определения данных на выходе.

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

Для кодера, схема которого представлена на рис. 19.19, диаграмма состояний показана на рис. 19.22. Кодер может принимать состояния 00, 10, 01 и 11 (первый символ отражает состояние крайней левой ячейки памяти), представляющие собой содержимое M = 2 разрядов сдвигового регистра. Существует всего два исходящих из каждого состояния перехода, соответствующие двум возможным значениям входного бита: переход, выполняемый при поступлении нуля, обозначен сплошной дугой, при поступлении единицы выполняется переход, обозначенный пунктирной линией. Например, если состояние кодера — 00, при поступлении очередного бита возможны только состояния 00 или 10. Для каждого пути между состояниями записано формируемое на выходе кодовое слово. Так, например, кодер, находящийся в состоянии 00, вырабатывает кодовую комбинацию 11 при поступлении на вход нулевого бита. Поэтому ветвь, отражающая переход 00→10, помечена символами 11 и т. д.

Двузначный характер переходов между состояниями объясняется поступлением на вход кодера только одного бита информации за один такт работы (R = 1/N ). При скорости RS/N , когда скользящее окно сдвигается на S битов за один шаг кодирования, число возможных переходов из текущего состояния равно 2S .

19.4. Сверточные коды

Рис. 19.22. Диаграмма состояний кодера, выполненного по схеме на рис. 19.18

Рис. 19.23. Граф, описывающий состояния кодера, выполненного по схеме на рис. 19.18

Продолжая оставаться в рамках рассматриваемого примера (рис. 19.18), диаграмму состояний можно изобразить в виде графа, представленного на рис. 19.23. Он является аналогичной графической иллюстрацией состояния кодера для двух последовательных временных интервалов. Как и ранее, текущее состояние изменяется на последующее в зависимости от значения поступающего входного бита.

Эта версия диаграммы состояний указывает путь к построению модели, описывающей весь процесс кодирования во времени.

Пусть кодер находится в начальном состоянии 00. В этой ситуации, согласно представленному на рис. 19.23 графу, на первом такте работы кодер переходит или в состояние 00, или в состояние 10. Если его состояние остается прежним, т. е. 00, то на втором такте он снова переходит в одно из двух ранее указанных состояний. Если же на первом такте работы кодер оказывается в состоянии 10, то на втором такте возможен переход или в состояние 01, или в состояние 11. Если на втором такте работы кодер оказывается

всостоянии 01, то на третьем такте возможен переход или в состояние 00, или

всостояние 10. Если же на втором такте кодер оказывается в состоянии 11, то на третьем такте возможен переход или в состояние 01, или в состояние 11. После третьего такта работа кодера становится устойчивой, повторяя ранее описанные переходы, пока не прекратится поток входных битов. При отсутствии входной информации кодеру потребуется еще M − 1 тактов для обнуления, в течение которых будет продолжено формирование кодовых символов.

Модель поведения кодера, построенная на основе вышеприведенных рассуждений, представлена на рис. 19.24 и называется решетчатой диаграммой или просто pешеткой. Любой путь по решетке представляет собой кодовое слово свер-

Глава 19. Помехоустойчивое кодирование в системах передачи

Рис. 19.24. Решетчатая диаграмма кодера, выполненного по схеме на рис. 19.18

точного кода. Например, входная информационная последовательность {bi} = = 10100100 отображается в кодовое слово {u1i , u2i } = 1110001011111011. Соответствующий этому кодовому слову путь выделен на рис. 19.24 жирной синей линией.

Сверточный код можно интерпретировать как достаточно длинный блоковый. Слова такого блокового кода есть просто различные пути на решетчатой диаграмме, так что минимальное расстояние Хэмминга между парами этих путей является кодовым расстоянием.

Для определения исправляющей способности сверточного кода необходимо установить минимальное расстояние Хэмминга между различными путями решетки. В случае сверточных кодов минимальное расстояние Хэмминга часто называют свободным расстоянием и обозначают как df . Данное название объясняется тем фактом, что вследствие линейности кода свободное расстояние есть не что иное, как минимальный вес ненулевого пути, т. е. пути, не совпадающего с верхней траекторией решетчатой диаграммы. Как отмечается в [7.10], для нахождения минимального расстояния Хэмминга в сверточном коде тестируются пути, которые отклоняются от нулевого в начале решетчатой диаграммы и после первого слияния с нулевым путем более от него не ответвляются. Среди всех путей с единственным отклонением от нулевого на рис. 19.23 кодовое слово {u1i , u2i } = 11101100 . . ., кодирующее битовый поток {bi} = 100 . . ., имеет наименьший вес, величина которого равна пяти, так что df = 5. Свободное расстояние df гарантирует исправление любых (df − 1)/2 битовых ошибок, однако обычно исправляются и многие конфигурации большего числа ошибок. Существует лишь несколько примеров эффективных алгебраических правил сверточного кодирования. В основном же известные сверточные коды с хорошей корректирующей способностью были найдены с помощью компьютерного поиска.

19.4.5. Декодирование сверточных кодов

Рекуррентный характер процесса сверточного кодирования открывает путь к также рекуррентному и эффективному с вычислительной точки зрения алгоритму декодирования, получившему наименование алгоритма Витерби. Свое название этот алгоритм получил по имени автора, предложившего его в 1967 году. Алгоритм Витерби является оптимальным. Он обеспечивает максимально правдоподобное решение (см. 19.4.4), и сводится к нахождению кодового слова, наиболее близкого к принятому наблюдению с точки зрения выбранного критерия.

19.4. Сверточные коды

Жесткое декодирование

Для случая жестких решений, т. е. для двоичного симметричного канала, в качестве критерия близости выбрано расстоянии Хэмминга. Наблюдение Y = {yi1, yi2}

˜ { 1 2}

декодируется в такое кодовое слово U = u˜i , u˜i , которое находится на наименьшем расстоянии Хэмминга относительно принятого Y. Основная идея декодирования по Витерби заключается в поэтапном сравнении всех путей решетчатой диаграммы, которые представляют собой кодовые слова U = {u1i , u2i }, с наблюдением Y и отбрасывании тех из них, которые находятся на большем расстоянии от Y, чем другие. Нетрудно убедиться в том, что если два пути, входящих в один и тот же узел, характеризуются различными расстояниями от наблюдения до данного узла, то у пути, который обладает большим кодовым расстоянием, отсутствует возможность стать впоследствии более близким к наблюдению. Он останется на большем расстоянии при любом продолжении обоих путей. Следовательно, из двух входящих в узел путей более удаленный от наблюдения может быть исключен из поиска ближайшего пути, что позволяет существенно сократить вычислительные затраты по сравнению с методом перебора всех возможных путей. Более подробно процедура декодирования может быть описана следующим образом.

На i-м шаге (этапе) декодирования, в течение которого принимается i-я n-сим- вольная кодовая группа наблюдения Y, выполняются следующие операции:

определяются Хэмминговы расстояния между принятой n-символьной ко-

довой группой и каждой из ветвей решетчатой диаграммы; поскольку из каждого из 2M−1 узлов выходят две ветви, всего вычисляется 2M расстояний;

рассматриваются две ветви, идущие из разных предшествующих состояний к каждому из 2M−1 узлов;

отвечающие указанным ветвям расстояния Хэмминга прибавляются к накопленным до i-го шага расстояниям Хэмминга двух соответствующих путей для получения новых значений расстояний; указанное накапливаемое расстояние пути называется метрикой;

сравниваются метрики двух соревнующихся путей, идущих в одно и то же состояние; путь, находящийся на большем расстоянии от наблюдения, чем другой, отбрасывается и больше не учитывается в процедуре декодирования; оставшийся путь называется выжившим путем;

для всех 2M−1 выживших путей запоминаются значения их метрик и декодер готов к переходу на (i + 1)-й шаг процедуры.

Из приведенного описания следует, что ресурсосбережение алгоритма заключается в отбрасывании на каждом шаге половины из 2M возможных путей, ведущих в 2M−1 узлов решетки. В результате число выживших путей остается постоянным и равным 2M−1 независимо от длины соревнующихся путей (кодовых слов), число которых удваивается на каждом шаге алгоритма декодирования.

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

Глава 19. Помехоустойчивое кодирование в системах передачи

пренебрежимо малы. Как альтернативный вариант можно посчитать оба конкурирующих пути выжившими и хранить их до тех пор, пока коллизия не разрешится на последующих шагах. При такой стратегии декодирование останется строго оптимальным, за что придется заплатить большим объемом памяти декодера.

Для лучшего понимания алгоритма Витерби рассмотрим в подробностях его функционирование на конкретном примере декодирования. Пусть сверточный код формируется кодером, выполненным по схеме на рис. 19.18. На приемной стороне наблюдается последовательность Y = 01001100000000.

Процесс декодирования этой последовательности проиллюстрирован решетчатыми диаграммами (рис. 19.25), на которых метрики узлов помещены непосредственно рядом с узлами, а принимаемые на текущем шаге пары символов наблюдения заключены в рамки.

Декодер инициализируется в предположении нулевого (т. е. 00) начального состояния регистра кодера. Два первых (M − 1 = 2) шага соответствуют переходному режиму кодера, когда лишь единственное ребро входит в каждое состояние (см. рис. 19.24), и поэтому все пути выживают. На первом шаге декодер сравнивает первую группу из n = 2 символов наблюдения Y с двумя ребрами, выходящими из состояния (00). В соответствии с их расстоянием Хэмминга от наблюдаемых символов 01 как сплошное, так и пунктирное ребра решетки получают одинаковую, равную единице метрику, оцифровывающую каждое из ребер. Таким образом, метрики двух узлов, в которые входят ребра, равны единице. На следующем шаге измеряются расстояния между второй группой наблюдаемых символов 00 и двумя парами ветвей, исходящих из узлов (00) и (10). Полученные в результате этих измерений метрики указаны на соответствующих ветвях. Прибавленные к метрикам узлов предшествующего шага, они обновляют метрики узлов (00) и (10), а также инициализируют метрики еще двух узлов (01)

и(11). Начиная с третьего шага в любой узел решетчатой диаграммы рис. 19.25 входит по два ребра, означая, что декодер должен решать, какое из них принадлежит выжившему пути. Чтобы не перегружать рисунок, метрики ребер на нем с этого шага не показаны. Как видно, на третьем шаге имеются два пути, ведущие к узлу (00). Их расстояния от наблюдаемых символов 010011 равны 3 и 2 соответственно. Первый из них не выживает и отбрасывается декодером вместе с его метрикой, поэтому на рисунке он зачеркнут, а на диаграмме, отвечающей следующему шагу, отсутствует. Второй путь выживает и запоминается со своей метрикой до следующего шага. Точно так же декодер выделяет выжившие пути

идля остальных узлов. На последующих шагах декодер действует аналогично, сохраняя в памяти только 2M−1 = 4 выживших путей, и каждая очередная диаграмма рис. 19.25 содержит только пути, выжившие на предшествующем шаге.

На 7-м шаге декодер впервые сталкивается с неоднозначностью: два пути приходят в узел (01), как и в узел (11), с равными расстояниями. Тот выбор выжившего пути, который показан на рисунке, сделан с помощью механизма равновероятного выбора, аналогичного бросанию монеты. Подобные события имеют место и на 8-м и 9-м шагах. Нетрудно убедиться, что любое альтернативное разрешение коллизий не повлияет на окончательный результат декодирования, за исключением, быть может, номера шага, на котором возможно первое считывание декодированных битов данных.

19.4. Сверточные коды

По завершении 9-го шага возникает критически важная ситуация: все выжившие пути совпадают друг с другом вплоть до седьмой группы наблюдаемых символов. Что бы ни произошло впоследствии, эта часть всех слившихся путей останется общей навсегда, означая, что соответствующие ей биты данных можно сразу выдать на выход как декодированные. Принимая во внимание, что ветви пути, показанные пунктиром, соответствуют нулю на входе кодера, а сплошной линией — единице, по выжившему пути (рис. 19.25) нетрудно видеть, что результатом декодирования будет последовательность B = 1000000. Сравнивая кодовое слово U = 11101100000000, соответствующее указанной последовательности B, с наблюдением Y = 01001100000000, можно видеть, что расстояние Хэмминга между ними равно двум, и если выданное декодером слово было передано в действительности, то имело место исправление двух символьных ошибок в полном согласии со свободным расстоянием df = 5. Подобные ситуации будут возникать и в дальнейшем, позволяя декодеру выдавать декодированные биты по ходу обработки потока символов наблюдения.

Выдача результатов декодирования в случайные моменты слияния выживших путей, как в рассмотренном примере, непрактична. Более предпочтительна процедура регулярного характера. С помощью многократных и практически исчерпывающих компьютерных тестов и имитационных экспериментов было установлено, что к i-му шагу декодирования слившийся участок всех выживших путей почти всегда заканчивается после (i − 5M ) битов данных, так что решение о любом бите может регулярно выдаваться на выход с задержкой в 5M [7.1].

Мягкое декодирование

Замечательное свойство сверточных кодов, придающее им еще большую привлекательность, — сравнительная простота осуществления мягкого декодирования.

Замена в алгоритме Витерби расстояния Хэмминга евклидовым преобразует декодирование в мягкое, оптимальное для АБГШ-канала. При этом метрики ребер и узлов становятся евклидовыми расстояниями. Такая модификация не лишит алгоритм Витерби присущих ему реализационных преимуществ. Метрики узлов вычисляются также рекурсивно, пошаговым аккумулированием метрик ребер, и на каждом шаге тот из двух путей, входящих в узел, который имеет худшую метрику, будет отброшен как невыживший.

Наиболее рациональна цифровая реализация декодеров, подразумевающая квантование входного наблюдения. Общепринято относить к числу мягких любые декодеры двоичных кодов с квантованием наблюдений более чем на два уровня. Исследования показывают, что в большинстве случаев 3-битовое (8-уров- невое) квантование достаточно для достижения почти потенциальной (теоретически ожидаемой при непрерывной обработке) достоверности декодирования.

Выбор между жестким и мягким декодированием зависит от конкретных условий, поскольку более простое в реализации жесткое декодирование оплачивается энергетическими потерями, составляющими для АБГШ-канала 2 дБ и более, что считается довольно значимой цифрой.

В настоящее время известно много эффективных сверточных кодов, диапазон реального и потенциального применения которых в телекоммуникациях чрезвычайно широк. В частности, в 2G- и 3G-стандартах cdmaOne и WCDMA использу-