- •Коды Рида-Соломона
- •Вероятность появления ошибок для кодов Рида-Соломона
- •8.1.2. Почему коды Рида-Соломона эффективны при борьбе с импульсными помехами
- •8.1.3. Рабочие характеристики кода Рида-Соломона как функция размера, избыточности и степени кодирования
- •8.1.4. Конечные поля
- •8.1.4.1. Операция сложения в поле расширения gf(2m)
- •8.1.4.2. Описание конечного поля с помощью примитивного полинома
- •8.1.4.3. Поле расширения gf(23)
- •8.1.4.4. Простой тест для проверки полинома на примитивность
- •8.1.5. Кодирование Рида-Соломона.
- •8.1.5.1. Кодирование в систематической форме
- •8.1.5.2. Систематическое кодирование с помощью (n-k)-разрядного регистра сдвига
- •8.1.6. Декодирование Рида-Соломона
- •8.1.6. Декодирование Рида-Соломона
- •8.1.6.3. Значения ошибок
8.1.2. Почему коды Рида-Соломона эффективны при борьбе с импульсными помехами
Давайте рассмотрим код (n, k) = (255, 247), в котором каждый символ состоит из т = 8 бит (такие символы принято называть байтами). Поскольку п-k=8, из уравнения (8.4) можно видеть, что этот код может исправлять любые 4-символьные ошибки в блоке длиной до 255. Пусть блок длительностью 25 бит в ходе передачи поражается помехами, как показано на рис. 8.3. В этом примере пакет шума, который попадает на 25 последовательных битов, исказит точно 4 символа. Декодер для кода (255, 247) исправит любые 4-символьные ошибки без учета характера повреждений, причиненных символу. Другими словами, если декодер исправляет байт (заменяет неправильный правильным), то ошибка может быть вызвана искажением одного или всех восьми битов. Поэтому, если символ неправильный, он может быть искажен на всех двоичных позициях. Это дает коду Рида-Соломона огромное преимущество при наличии импульсных помех по сравнению с двоичными кодами (даже при использовании в двоичном коде чередования). В этом примере, если наблюдается 25-битовая случайная помеха, ясно, что искаженными могут оказаться более чем 4 символа (искаженными могут оказаться до 25 символов). Конечно, исправление такого числа ошибок окажется вне возможностей кода (255, 247).
8.1.3. Рабочие характеристики кода Рида-Соломона как функция размера, избыточности и степени кодирования
Для того чтобы код успешно противостоял шумовым эффектам, длительность помех должна составлять относительно небольшой процент от количества кодовых слов. Чтобы быть уверенным, что так будет большую часть времени, принятый шум необходимо усреднить за большой промежуток времени, что снизит эффект от неожиданной или необычной полосы плохого приема. Следовательно, можно предвидеть, что код с коррекцией ошибок будет более эффективен (повысится надежность передачи) при увеличении размера передаваемого блока, что делает код Рида-Соломона более привлекательным, если желательна большая длина блока [3]. Это можно оценить по семейству кривых, показанному на рис. 8.4, где степей кодирования взята равной 7/8, при этом длина блока возрастает с n = 32 символов (при w = 5 бит на символ) до n=256 символов (при n=8 бит на символ). Таким образом, размер блока возрастает с 160 бит до 2048 бит.
Рис. 8.4. Характеристики декодера Рида-Соломона как функция размера символов (степень кодирования = 7/8)
По мере увеличения избыточности кода (и снижения его степени кодирования), сложность реализации этого кода повышается (особенно для высокоскоростных устройств). При этом для систем связи реального времени должна увеличиться ширина полосы пропускания. Увеличение избыточности, например увеличение размера символа, приводит к уменьшению вероятности появления битовых ошибок, как можно видеть на рис. 8.5, еще кодовая длина п равна постоянному значению 64 при снижении числа символов данных с k = 60 до k = 4 (избыточность возрастает с 4 до 60символов).
Рис. 8.5. Характеристики декодера Рида-Соломона (64, k) как функция избыточности
На
рис. 8.5 показана передаточная функция
(выходная вероятность появлений битовой
ошибки, зависящая от входной вероятности
появления символьной ошибки) гипотетических
декодеров. Поскольку здесь не имеется
в виду определенная система или канал
(лишь вход-выход декодера), можно
заключить, что надежность передачи
является монотонной функцией избыточности
и будет неуклонно возрастать с приближением
степени кодирования к нулю. Однако это
не так для кодов, используемых в системах
связи реального времени. По мере изменения
степени кодирования кода от максимального
значения до минимального (от 0 до 1),
интересно было бы понаблюдать за
эффектами, показанными на рис. 8.6. Здесь
кривые рабочих характеристик показаны
при модуляции BPSK и кодах (31, к)
для разных типов каналов. На рис. 8.6
показаны системы связи реального
времени, в которых за кодирование с
коррекцией ошибок приходится платить
расширением полосы пропускания,
пропорциональным величине, равной
обратной степени кодирования. Приведенные
кривые показывают четкий оптимум степени
кодирования, минимизирующий требуемое
значение
[4].
Для гауссова канала оптимальное значение
степени кодирования находится где-то
между 0,6 и 0,7, для канала с райсовским
замиранием - около 0,5 (с отношением
мощности прямого сигнала к мощности
отраженного К
= 7 дБ) и 0,3 — для канала с релеевским
замиранием. (Каналы с замиранием будут
рассматриваться в главе 15.) Почему здесь
как при очень высоких степенях кодирования
(малой избыточности), так и при очень
низких (значительной избыточности)
наблюдается ухудшение
?
Для высоких степеней кодирования это
легко объяснить, сравнивая высокие
степени кодирования с оптимальной
степенью кодирования. Любой код в целом
обеспечивает все преимущества кодирования;
следовательно, как только степень
кодирования приближается к единице
(нет кодирования), система проигрывает
в надежности передачи. Ухудшение
характеристик при низких степенях
кодирования является более тонким
вопросом, поскольку в системах связи
реального времени используется и
модуляция, и кодирование, т.е. работает
два механизма. Один механизм направлен
на снижение вероятности появления
ошибок, другой повышает ее. Механизм,
снижающий вероятность появления ошибки,
— это кодирование; чем больше избыточность,
тем больше возможности кода в коррекции
ошибок. Механизм, повышающий эту
вероятность, — это снижение энергии,
приходящейся на канальный символ (по
сравнению с информационным символом),
что следует из увеличения избыточности
(и более быстрой передачи сигналов в
системах связи реального времени).
Уменьшенная энергия символа вынуждает
демодулятор совершать больше ошибок.
В конечном счете второй механизм
подавляет первый, поэтому очень низкие
степени кодирования вызывают ухудшение
характеристик кода.
Рис. 8.6. Характеристики декодера Рида-Соломона (31, k) как функция степени кодирования (модуляция BPSK)
Давайте
попробуем подтвердить зависимость
вероятности появления ошибок от степени
кодирования, показанную на рис. 8.6, с
помощью кривых, изображенных на рис.
8.2. Непосредственно сравнить рисунки
не удастся, поскольку на рис. 8.6 применяется
модуляция BPSK, а на рис. 8.2 — 32-ричная
модуляция MFSK. Однако, пожалуй, нам удастся
показать, что зависимость характеристик
кода Рида-Соломона от его степени
кодирования выглядит одинаково как при
BPSK, так и при MFSK. На рис. 8.2 вероятность
появления ошибки в канале AWGN снижается
при увеличении способности кода t
к коррекции символьных ошибок с t
= 1 до t
= 4; случаи t
= 1 и t
= 4 относятся к кодам (31, 29) и (31,23) со
степенями кодирования 0,94 и 0,74. Хотя при
t
= 8, что отвечает коду (31,15) со степенью
кодирования 0,48, достоверность передачи
достигается
при примерно на 0,5 дБ большем отношении
,
по сравнению со случаем t
= 4. Из
рис. 8.2 можно сделать вывод, что если
нарисовать график зависимости
достоверности передачи от степени
кодирования кода, то кривая будет иметь
вид, подобный приведенному на рис. 8.6.
Заметим, что это утверждение нельзя
получить из рис. 8.1, поскольку там
представлена передаточная функция
декодера, которая несет в себе сведения
о канале и демодуляции. Поэтому из двух
механизмов, работающих в канале,
передаточная функция (рис. 8.1) представляет
только выгоды, которые проявляются на
входе/выходе декодера, и ничего не
говорит о потерях энергии как функции
низкой степени кодирования. В разделе
9.7.7 будет более подробно рассказано о
выборе кода в соответствии с типом
модуляции.
